summaryrefslogtreecommitdiff
path: root/dev-lang/nim
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/nim')
-rw-r--r--dev-lang/nim/Manifest3
-rw-r--r--dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt87
-rw-r--r--dev-lang/nim/nim-2.2.2.ebuild188
3 files changed, 278 insertions, 0 deletions
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest
index ad88253a4dbe..764576677e2f 100644
--- a/dev-lang/nim/Manifest
+++ b/dev-lang/nim/Manifest
@@ -1,9 +1,12 @@
AUX nim-2.0.6-testament-skipfile.txt 2594 BLAKE2B 58af9e632d595e1dc8f6b4fadacf55f10697d75a1ff21a2a6be2feb14eb7e86c27d5fb10737614b2dad3eb7ee3b4a8d76d30ef1c7117e1b7738ca00960450c4c SHA512 940b9ad7eb1debee502568abf30f81970fc431785c3f9b00d8322eaa686f17e6b641e66baaecc7a6ec288076139d180f87978dec24a9ac949e14b5051829228f
AUX nim-2.2.0-makefile.patch 308 BLAKE2B 2984a3487838dd65f067eaab54f7ea6ed18f000c97098f735f26df2609b8485fe91c3d1cb2711ca1c987a955f5b340cf90ceffbbc2e5663794fe5ab3239d3c80 SHA512 5de4b4990d050fff655249d8ad11ba316640bb301854c526f7772146289a7505ec3cd59a6b7811a78b4d03b0bca7e70d0c6264ea06b2b59d11a790cbea3dfb0b
+AUX nim-2.2.2-testament-skipfile.txt 2662 BLAKE2B 0011401b582e713fdb4b51e90e667228db0a0c16c8ffba31aa68889a643a9e1a2ca9acf52945690ed3bdcc44e4bd6f50b1c184d53c616449026e0c7515a4d439 SHA512 ce85f4ca3917762cca3302c552aa51c0bebc5bfeaea6e03e451553121dd610323fb6ccd59c542087e50052a12e0f073bb0f8da16e87d4074e91020cbbd4b8f27
AUX nim-sets.conf 162 BLAKE2B 976422f31cf8a64e1fad537f4db38a07e0022b9460936c63e0220cb3858ba02704857841d5010ad8c7bde0e6192c4c3c1329aeca8080a48a728e8b288cefc0fb SHA512 61a07de9973fc77998515bbb62498ffd1de991241bf32805f4acc0e4325e39d767ac862f2546757763aa8d0a7f35b95a9e1df91e6aa6f241eed6e93c8e3c46f0
DIST nim-2.0.8.tar.xz 7617556 BLAKE2B 96ab3e92c7c9d3dcb54de6528f2ae788f3ff4a927d693f2ca4917231441d85d12c8bda44c41c8f363979dbd0d8db54098648512caf7780bdc40e393c4f7803ec SHA512 e64abc379c046a9432515d1c8074a7e10ff72a1076663a5b7bdd39ae92852c98ba2cab96aa5e968fc31ca393e778e70b2392d6ab56bca7ac956d0176b4b69a83
DIST nim-2.2.0.tar.xz 7896912 BLAKE2B 671b1f5551e093933519797bbfe2875c1726a0cdd1b33288a9ab189fb966fdb21583027345e58ab13d7e7e85479aafc52340e8ddecd062aca4b4b8de6466b88e SHA512 56374815770b1b92bef3521471a3b1a8b810646eb7f978ff329075d64d231a7d1591a928c28407aa507f1b59375d539fc81b678b84f6b8b4a88ed274048ebf21
+DIST nim-2.2.2.tar.xz 8188616 BLAKE2B e9b5dc3d12165fe12555a22fbf2125f1dc6e828ae5ce9f146c2347b2629623491498a0cf681355379d0c2252aa7d4d7d02d201a8722838da93b785b1a6dd3af6 SHA512 8b61fa55918e01adc782250b5cb931303adeaf185ee65faf3f1fd3843a0050dc7f3dfb363848f8769045e5ac5663f390ae4d8070906cdf0892d749f4426902b3
DIST nim-atlas-0.8.0.tar.gz 59097 BLAKE2B 231b238ac3b15cc2c2d9ad927f80ae72d8ae4c649277515f32df6cc04275ccd38db5307d627572af547501e6522c06c86dc279dc3e13b5385f14e24032f6fe69 SHA512 747c13e2c5bd45a1dc6c1426f8c7637f638ada9dd4c9aa3edf4ef8367060e73226dc4bcde6380fac25ed47ebf4097fd223c72fadc3cceba8c71dd0f0571e47eb
EBUILD nim-2.0.8.ebuild 4516 BLAKE2B 07206721451f39505ff611379f04fdcae8eb6fba3d880aaad16fe1df117cd78cabb6c04697f8774c21a425206469e81336070d728a7dc8919c8f3bcd4abd6bb1 SHA512 b5441992666d3c6b33364942bb557c97e6724a57b591daa2f4bff457ad1cf6250c6b92991411a561e38bfac8df41847248e0da3768906d630deb4df35b8c8734
EBUILD nim-2.2.0.ebuild 4495 BLAKE2B 14aa3f9749c4c2641d677a97b96e88d5b931cd1d2cdb760c60e4c8acafff1b20fa90906d015f2d57b5e51ea4f30b7927c6583b26eda3e17461a461a355a8b48d SHA512 b6049dde621b18077f29873fced28c5cf72ee384a1dafca393369e3a5a57f830939253de1d72ae8d29cc32f727e12a8268ba732538c50262616d6620afe2347c
+EBUILD nim-2.2.2.ebuild 4511 BLAKE2B 2579fdd6e71f73b9a92a6b1ae039e1ee210eef05c6b050109a27a0325a042f5f95389e59ac4c316749fccc07d4460593063aca8fa0d8f2970c4a87e28a67fcea SHA512 c8adfabfd8d59e35af3b968d1009c3a81eeaad8b513bed8571429f6b390157333b61e8378f1ffce1073e631f6a6cfb72bc94b7d1b293596573f58bf8a841f3b6
MISC metadata.xml 2093 BLAKE2B 250d27e71538be674ff7f32fe55089fca33f0d6ab55fdbe2b0f858f3d4373e729f273c16b2bf0bc3265be4289e7de1438096bf60e69bd0100e126fc5cc6173eb SHA512 74a188f13cc0653aa30d0c18126ed1cfb11d4325d71ffca6af03ad62b135796cd64d269e2ea85280cd1e486b527947b287eee4db648600451336e323882ff0e3
diff --git a/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt b/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt
new file mode 100644
index 000000000000..347718d826de
--- /dev/null
+++ b/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt
@@ -0,0 +1,87 @@
+# -*- conf -*-
+# broken, bug https://bugs.gentoo.org/930542
+tests/c/temit.nim
+tests/ccgbugs/t10964.nim
+tests/niminaction/Chapter3/ChatApp/src/client.nim
+tests/niminaction/Chapter3/various3.nim
+tests/niminaction/Chapter6/WikipediaStats/concurrency.nim
+tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim
+tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim
+tests/niminaction/Chapter8/sdl/sdl_test.nim
+tests/parallel/tdeepcopy.nim
+tests/parallel/tdeepcopy2.nim
+tests/parallel/tflowvar.nim
+tests/parallel/tlet_spawn.nim
+tests/parallel/tpi.nim
+tests/parallel/tsysspawn.nim
+tests/parallel/twaitany.nim
+tests/stdlib/thttpclient_ssl.nim
+tests/stdlib/tthreadpool.nim
+# broken
+tests/assert/tassert_c.nim
+tests/async/tasync_traceback.nim
+tests/async/tasync_traceback2.nim
+tests/async/tasync_traceback2.nim
+tests/coroutines/twait.nim
+tests/dll/nimhcr_unit.nim
+tests/errmsgs/t14444.nim
+tests/errmsgs/t23536.nim
+tests/errmsgs/tcall_with_default_arg.nim
+tests/errmsgs/tproper_stacktrace.nim
+tests/errmsgs/tproper_stacktrace2.nim
+tests/errmsgs/tproper_stacktrace3.nim
+tests/exception/t13115.nim
+tests/exception/t22469.nim
+tests/js/tmangle.nim
+tests/js/twritestacktrace.nim
+tests/lent/tbasic_lent_check.nim
+tests/misc/trunner.nim
+tests/misc/tsizeof4.nim
+tests/misc/tstrace.nim
+tests/misc/twarningaserror.nim
+tests/parser/t20922.nim
+tests/pragmas/thintprocessing.nim
+tests/pragmas/tused.nim
+tests/pragmas/twarning_off.nim
+tests/range/tcompiletime_range_checks.nim
+tests/stdlib/tos.nim
+tests/stdlib/tstackframes.nim
+tests/stdlib/tstats.nim
+tests/system/talloc.nim
+tests/testament/tshould_not_work.nim
+# broken on musl + llvm
+tests/coroutines/tgc.nim
+tests/coroutines/twait.nim
+tests/misc/t18077.nim
+tests/misc/temit.nim
+tests/nimdoc/t15916.nim
+tests/nimdoc/trunnableexamples.nim
+tests/nimdoc/trunnableexamples2.nim
+tests/objects/tobjcov.nim
+tests/objects/toop1.nim
+tests/stdlib/tencodings.nim
+tests/stdlib/tgetaddrinfo.nim
+tests/stdlib/tstdlib_various.nim
+tests/stdlib/tstreams.nim
+tests/stdlib/ttimes.nim
+tests/vm/tvmmisc.nim
+# require network
+tests/stdlib/thttpclient.nim
+tests/stdlib/tnetconnect.nim
+tests/stdlib/tssl.nim
+# don't work without megatest
+tests/misc/tjoinable.nim
+tests/testament/tjoinable.nim
+# don't work with "--hint:all:off" hack
+tests/concepts/t3330.nim
+tests/stylecheck/t20397_2.nim
+tests/stylecheck/treject.nim
+tests/stylecheck/tusages.nim
+# need external dependencies
+tests/manyloc/keineschweine/keineschweine.nim
+tests/manyloc/nake/nakefile.nim
+tests/niminaction/Chapter7/Tweeter/src/tweeter.nim
+# need functional valgrind
+tests/destructor/tnewruntime_strutils.nim
+tests/destructor/tv2_raise.nim
+tests/views/tsplit_into_openarray.nim
diff --git a/dev-lang/nim/nim-2.2.2.ebuild b/dev-lang/nim/nim-2.2.2.ebuild
new file mode 100644
index 000000000000..a318694ec47b
--- /dev/null
+++ b/dev-lang/nim/nim-2.2.2.ebuild
@@ -0,0 +1,188 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ATLAS_V="0.8.0"
+
+inherit edo multiprocessing shell-completion toolchain-funcs xdg-utils
+
+DESCRIPTION="Compiled, garbage-collected systems programming language"
+HOMEPAGE="https://nim-lang.org/
+ https://github.com/nim-lang/Nim/"
+
+SRC_URI="
+ https://nim-lang.org/download/${P}.tar.xz
+ https://github.com/nim-lang/atlas/archive/refs/tags/${ATLAS_V}.tar.gz
+ -> nim-atlas-${ATLAS_V}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+IUSE="test-js test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ sys-process/parallel
+ test? (
+ dev-db/sqlite:3
+ dev-libs/boehm-gc
+ dev-libs/libffi
+ dev-libs/libpcre:3
+ dev-libs/openssl
+ media-libs/libsdl
+ media-libs/libsfml
+ test-js? (
+ net-libs/nodejs
+ )
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-2.2.0-makefile.patch" )
+
+src_configure() {
+ xdg_environment_reset # bug #667182
+
+ unset NIMBLE_DIR
+ tc-export CC CXX LD
+
+ mkdir "${HOME}/.parallel" || die
+ touch "${HOME}/.parallel/will-cite" || die "parallel setup failed"
+
+ cat > nim.cfg <<- EOF || die "Failed to create Nim config"
+ cc:"gcc"
+ gcc.exe:"$(tc-getCC)"
+ gcc.linkerexe:"$(tc-getCC)"
+ gcc.cpp.exe:"$(tc-getCXX)"
+ gcc.cpp.linkerexe:"$(tc-getCXX)"
+ gcc.options.speed:"${CFLAGS}"
+ gcc.options.size:"${CFLAGS}"
+ gcc.options.debug:"${CFLAGS}"
+ gcc.options.always:"${CPPFLAGS}"
+ gcc.options.linker:"${LDFLAGS}"
+ gcc.cpp.options.speed:"${CXXFLAGS}"
+ gcc.cpp.options.size:"${CXXFLAGS}"
+ gcc.cpp.options.debug:"${CXXFLAGS}"
+ gcc.cpp.options.always:"${CPPFLAGS}"
+ gcc.cpp.options.linker:"${LDFLAGS}"
+
+ $([[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && echo '--colors:"off"')
+ -d:"release"
+ --parallelBuild:"$(makeopts_jobs)"
+
+ # some tests don't work with processing hints
+ --processing:"off"
+ EOF
+
+ cp -r "${WORKDIR}/atlas-${ATLAS_V}" "${S}/dist/atlas" || die
+
+ mkdir -p "${S}/dist/atlas/dist" || die
+ cp -r "${S}/dist/nimble/vendor/sat" "${S}/dist/atlas/dist/sat" || die
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+
+ local -x PATH="${S}/bin:${PATH}"
+ local -a nimflags=(
+ -d:release
+ --listCmd
+ --parallelBuild:$(makeopts_jobs)
+ )
+
+ edo ./bin/nim compile "${nimflags[@]}" koch
+ edo ./koch boot "${nimflags[@]}" -d:nimUseLinenoise --skipParentCfg:off
+ edo ./koch tools "${nimflags[@]}"
+ edo ./bin/nim compile "${nimflags[@]}" ./tools/niminst/niminst.nim
+}
+
+src_test() {
+ local -x PATH="${S}/bin:${PATH}"
+ local -a nimflags=(
+ # Leave only the safe hints enabled.
+ --hint:all:off
+ --hint:User:on
+ --hint:UserRaw:on
+ )
+ local -a testament_args=(
+ --skipFrom:"${FILESDIR}/nim-2.2.2-testament-skipfile.txt"
+ --nim:"bin/nim"
+ --targets:"$(usex test-js 'c js' 'c')"
+ )
+
+ if [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] ; then
+ testament_args+=( --colors:off )
+ fi
+
+ local -a categories=()
+ readarray -t categories < <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort)
+
+ # AdditionalCategories from "testament/categories.nim".
+ categories+=( debugger examples lib )
+
+ local test_return=0
+
+ local tcat=""
+ local checkpoint=""
+ for tcat in "${categories[@]}"; do
+ # Use checkpoints for less painful testing.
+ checkpoint="${T}/.testament-${tcat}"
+
+ if [[ -f "${checkpoint}" ]] ; then
+ continue
+ fi
+
+ case "${tcat}" in
+ testdata )
+ :
+ ;;
+
+ arc | gc | ic | js | msgs | stylecheck \
+ | testament | untestable | objects | valgrind )
+ einfo "Skipped nim test category: ${tcat}"
+ ;;
+
+ * )
+ einfo "Running tests in category '${tcat}'"
+ nonfatal edo ./bin/testament "${testament_args[@]}" \
+ category "${tcat}" "${nimflags[@]}" \
+ || test_return=1
+ ;;
+ esac
+
+ touch "${checkpoint}" || die
+ done
+
+ if [[ "${test_return}" -eq 1 ]] ; then
+ die "tests failed, please inspect the failed test categories above"
+ fi
+}
+
+src_install() {
+ local -x PATH="${S}/bin:${PATH}"
+
+ edo ./koch install "${ED}/usr/lib"
+ dosym -r /usr/lib/nim/bin/nim /usr/bin/nim
+
+ # "./koch install" installs only "nim" binary but not the rest.
+ local exe=""
+ while read -r exe ; do
+ einfo "Installing nim support tool: ${exe}"
+
+ exeinto /usr/bin
+ doexe "${exe}"
+ done < <(find ./bin -type f -not -iname nim)
+
+ newbashcomp dist/nimble/nimble.bash-completion nimble
+ newbashcomp tools/nim.bash-completion nim
+ newzshcomp dist/nimble/nimble.zsh-completion _nimble
+ newzshcomp tools/nim.zsh-completion _nim
+
+ # Install the @nim-rebuild set for Portage.
+ insinto /usr/share/portage/config/sets
+ newins "${FILESDIR}/nim-sets.conf" nim.conf
+
+ einstalldocs
+}