pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/nim



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sat Nov  7 22:43:07 UTC 2026

Modified Files:
        pkgsrc/lang/nim: Makefile PLIST distinfo
Added Files:
        pkgsrc/lang/nim/patches:
            patch-dist_nimble_src_nimblepkg_downloadnim.nim
            patch-dist_nimble_vendor_chronos_chronos_sendfile.nim
Removed Files:
        pkgsrc/lang/nim/patches: patch-bin_nim-gdb

Log Message:
nim: update to 2.4.0.

Provided via wip by arcathrax with help from ci4ic4.

2 years of development.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 pkgsrc/lang/nim/Makefile
cvs rdiff -u -r1.20 -r1.21 pkgsrc/lang/nim/PLIST
cvs rdiff -u -r1.30 -r1.31 pkgsrc/lang/nim/distinfo
cvs rdiff -u -r1.1 -r0 pkgsrc/lang/nim/patches/patch-bin_nim-gdb
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/lang/nim/patches/patch-dist_nimble_src_nimblepkg_downloadnim.nim \
    pkgsrc/lang/nim/patches/patch-dist_nimble_vendor_chronos_chronos_sendfile.nim

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/lang/nim/Makefile
diff -u pkgsrc/lang/nim/Makefile:1.37 pkgsrc/lang/nim/Makefile:1.38
--- pkgsrc/lang/nim/Makefile:1.37       Thu May 16 09:59:20 2024
+++ pkgsrc/lang/nim/Makefile    Sat Nov  7 22:43:07 2026
@@ -1,6 +1,29 @@
-# $NetBSD: Makefile,v 1.37 2024/05/16 09:59:20 pho Exp $
+# $NetBSD: Makefile,v 1.38 2026/11/07 22:43:07 wiz Exp $
 
-DISTNAME=      nim-2.0.4
+# Nim is quite a weird language to package, meaning that the official packaging
+# guideline recommends using a tarball that is created via a CI and also
+# because the bootstrap script uses git to clone some submodules. It however
+# seems that both of those weridinesses can be bypassed, for once because
+# just downloading the nim from the homepage is the same version as the one
+# that the CI created (checksums matched) and the git clone only happens if
+# the submodules are not already present. Because of this, we pull not only
+# the nim tarball but also the ones for:
+#
+# - Atlas (Package cloner, that manages project dependencies in an isolated
+#              deps/ directory)
+# - sat (SAT solver written in nim)
+#
+# When taking a look at `koch.nim` in the source tree of nim, we can see, that
+# these packages are not pinned to a version but rather a commit hash. We do
+# the same with the `*_TAG` variables. Afterwards we add the needed
+# `*_DISTFILE`'s to the distfiles and extract them into the root. Furthermore
+# we then move the extracted folders to the correct location in `post-extract`.
+#
+# Helpful sources:
+# - https://nim-lang.github.io/Nim/packaging.html
+# - `koch.nim` in the source tree
+
+DISTNAME=      nim-2.4.0
 CATEGORIES=    lang
 MASTER_SITES=  http://nim-lang.org/download/
 EXTRACT_SUFX=  .tar.xz
@@ -10,125 +33,98 @@ HOMEPAGE=  https://nim-lang.org/
 COMMENT=       The Nim programming language
 LICENSE=       mit
 
-# C2VERSION_TAG=       86742fb02c6606ab01a532a0085784effb2e753e
-# NIMBLE_TAG=  168416290e49023894fc26106799d6f1fc964a2d
-# CHECKSUMS_TAG=       b4c73320253f78e3a265aec6d9e8feb83f97c77b
-ATLAS_TAG=     7b780811a168f3f32bff4822369dda46a7f87f9a
+ATLAS_TAG=     aa6fb162006f3015aa84c4305e15cb4d230f5ad6
+SAT_TAG=       9d52513b3c68bfb929dbd687d4fb2836cfee6936
 
 GH_SFX=                .tar.gz
 
-# C2VERSION_DISTNAME=  c2version-${C2VERSION_TAG}
-# NIMBLE_DISTNAME=     nimble-${NIMBLE_TAG}
-# CHECKSUMS_DISTNAME=  checksums-${CHECKSUMS_TAG}
-ATLAS_DISTNAME=                atlas-${ATLAS_TAG}
-
-# C2VERSION_DISTFILE=  ${C2VERSION_DISTNAME}${GH_SFX}
-# NIMBLE_DISTFILE=     ${NIMBLE_DISTNAME}${GH_SFX}
-# CHECKSUMS_DISTFILE=  ${CHECKSUMS_DISTNAME}${GH_SFX}
-ATLAS_DISTFILE=                ${ATLAS_DISTNAME}${GH_SFX}
+ATLAS_DISTNAME=        atlas-${ATLAS_TAG}
+SAT_DISTNAME=  sat-${SAT_TAG}
+
+ATLAS_DISTFILE=        ${ATLAS_DISTNAME}${GH_SFX}
+SAT_DISTFILE=  ${SAT_DISTNAME}${GH_SFX}
 
 DISTFILES=             ${DEFAULT_DISTFILES}
-# DISTFILES+=          ${C2VERSION_DISTFILE}
-# DISTFILES+=          ${NIMBLE_DISTFILE}
-# DISTFILES+=          ${CHECKSUMS_DISTFILE}
 DISTFILES+=            ${ATLAS_DISTFILE}
+DISTFILES+=            ${SAT_DISTFILE}
 
-# SITES.${C2VERSION_DISTFILE}= -${MASTER_SITE_GITHUB:=nim-lang/csources_v2/archive/}${C2VERSION_TAG}${GH_SFX}
-# SITES.${NIMBLE_DISTFILE}=    -${MASTER_SITE_GITHUB:=nim-lang/nimble/archive/}${NIMBLE_TAG}${GH_SFX}
-# SITES.${CHECKSUMS_DISTFILE}= -${MASTER_SITE_GITHUB:=nim-lang/checksums/archive/}${CHECKSUMS_TAG}${GH_SFX}
 SITES.${ATLAS_DISTFILE}=       -${MASTER_SITE_GITHUB:=nim-lang/atlas/archive/}${ATLAS_TAG}${GH_SFX}
+SITES.${SAT_DISTFILE}=         -${MASTER_SITE_GITHUB:=nim-lang/sat/archive/}${SAT_TAG}${GH_SFX}
 
-# EXTRACT_DIR.${C2VERSION_DISTFILE}=   ${WRKSRC}/
-# EXTRACT_DIR.${NIMBLE_DISTFILE}=              ${WRKSRC}/dist/
-# EXTRACT_DIR.${CHECKSUMS_DISTFILE}=   ${WRKSRC}/dist/
-EXTRACT_DIR.${ATLAS_DISTFILE}=         ${WRKSRC}/dist/
-
-#
-# Support NetBSD/aarch64:
-#     https://github.com/nim-lang/Nim/pull/23616
-#
-# Please remove this block once the upstream merges it. Also remove
-# nim-2.0.4+netbsd-aarch64.tar.xz from our LOCAL_PORTS; it is a tarball of
-# updated csources that support this platform.
-#
-.include "../../mk/bsd.prefs.mk"
-.if ${MACHINE_PLATFORM:MNetBSD-*-aarch64} || make(distinfo) || make(makesum) || make(mdi)
-NBAARCH64_DISTFILE=                    nim-2.0.4+netbsd-aarch64.tar.xz
-DISTFILES+=                            ${NBAARCH64_DISTFILE}
-SITES.${NBAARCH64_DISTFILE}=           ${MASTER_SITE_LOCAL}
-EXTRACT_DIR.${NBAARCH64_DISTFILE}=     ${WRKSRC}/
-.endif
-#
+EXTRACT_DIR.${ATLAS_DISTFILE}= ${WRKSRC}
+EXTRACT_DIR.${SAT_DISTFILE}=   ${WRKSRC}
 
 DEPENDS+=      coreutils-[0-9]*:../../sysutils/coreutils
 
-USE_TOOLS+=    bash pax
+USE_TOOLS+=    bash gmake
 REPLACE_BASH+= bin/nim-gdb
 
-INSTALLATION_DIRS=     bin
-INSTALLATION_DIRS+=    lib/nim/tools/debug
-INSTALLATION_DIRS+=    share/nimble/pkgs/nim-${PKGVERSION_NOREV}/dist/checksums
-INSTALLATION_DIRS+=    share/nim
-INSTALLATION_DIRS+=    include
-INSTALLATION_DIRS+=    lib/nim/nimsuggest
-INSTALLATION_DIRS+=    lib/nim/nimpretty
-
-SUBST_CLASSES+=                paths
-SUBST_STAGE.paths=     pre-configure
-SUBST_FILES.paths=     config/nim.cfg
-SUBST_SED.paths=       -e 's,/usr/pkg,${PREFIX},g'
+USE_LANGUAGES= c
+
+# SUBST_CLASSES+=              paths
+# SUBST_STAGE.paths=   pre-configure
+# SUBST_FILES.paths=   config/nim.cfg
+# SUBST_SED.paths=     -e 's,/usr/pkg,${PREFIX},g'
+
+# Nim doesn't automatically passes LDFLAGS/CFLAGS variables to the compiler
+# but rather uses its own --passL/--passC flags. The two lines below translate
+# the flags so the nim compiler actually uses them.
+NIM_FLAGS=     ${LDFLAGS:S/^/--passL:/}
+NIM_FLAGS+=    ${CFLAGS:S/^/--passC:/}
+
+INSTALLATION_DIRS+=    bin
 
 post-extract:
        # TODO: csources for cross-building?
        # ${MV} ${WRKSRC}/csources_v2-${C2VERSION_TAG} ${WRKSRC}/csources_v2
+
        ${MKDIR} ${WRKSRC}/dist
-       # ${MV} nimble-$_nimbleversion $build_wrksrc/dist/nimble
-       #mv checksums-$_checksumsversion $build_wrksrc/dist/checksums
-       #mkdir -p $build_wrksrc/dist/nimble/dist
-       #cp -r $build_wrksrc/dist/checksums $build_wrksrc/dist/nimble/dist/checksums
-       ${MV} ${WRKSRC}/dist/atlas-${ATLAS_TAG} ${WRKSRC}/dist/atlas
-
-# nim doesn't honor the environment variable LDFLAGS. In order to
-# support PKGSRC_USE_RELRO, we need to translate the flags to compiler
-# options.
-NIM_FLAGS=     ${LDFLAGS:S/^/--passL:/}
+       ${MV} ${WRKSRC}/atlas-${ATLAS_TAG} ${WRKSRC}/dist/atlas
+
+       ${MKDIR} ${WRKSRC}/dist/atlas/dist
+       ${MV} ${WRKSRC}/sat-${SAT_TAG} ${WRKSRC}/dist/atlas/dist/sat
+
+
 do-build:
-       # build nim csource
-       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} sh ./build.sh
-       printf '#! %s\nexec %s _=%s/nim/bin/nim %s/nim/bin/nim "$$@"\n' \
-               "${SH}" "${SETENV}" "${PREFIX}" "${PREFIX}" \
-               > ${WRKSRC}/nim-wrapper.sh
+       cd ${WRKSRC} && ${GMAKE}
+
        # build koch
-       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./bin/nim c --skipUserCfg --skipParentCfg --parallelBuild:${_MAKE_JOBS_N} koch
-       # build nim
-       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch boot --parallelBuild:${_MAKE_JOBS_N} -d:release ${NIM_FLAGS}
-       # build tools
-       # TODO: build the 'external' tools, in separate packages
-       # cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch --stable toolsNoExternal --parallelBuild:${_MAKE_JOBS_N} ${NIM_FLAGS}
-       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch --stable tools --parallelBuild:${_MAKE_JOBS_N} ${NIM_FLAGS}
-       # build niminst
-       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./bin/nim compile -d:release --parallelBuild:${_MAKE_JOBS_N} ${NIM_FLAGS} tools/niminst/niminst.nim
+       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./bin/nim c \
+               -d:release \
+               --parallelBuild:${_MAKE_JOBS_N} \
+               koch
+
+       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch \
+               boot \
+               -d:release \
+               --parallelBuild:${_MAKE_JOBS_N} \
+               ${NIM_FLAGS}
+
+       # Build tools
+       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch \
+               tools \
+               -d:release \
+               --parallelBuild:${_MAKE_JOBS_N} \
+               ${NIM_FLAGS}
+
+
+# The test suite will fail, however it may work in the future. For now, this
+# is commented out.
+# do-test:
+#      cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./koch \
+#              tests \
+#              --pedantic \
+#              --targets="c js" \
+#              all
+
 
 do-install:
-       cd ${WRKSRC} && sh ./install.sh ${DESTDIR}${PREFIX}
-       cd ${WRKSRC}/bin && ${PAX} -r -w . ${DESTDIR}${PREFIX}/nim/bin/
-       ${INSTALL_SCRIPT} ${WRKSRC}/nim-wrapper.sh ${DESTDIR}${PREFIX}/bin/nim
-       ${RM} ${DESTDIR}${PREFIX}/nim/bin/nim-gdb.orig
-       ${INSTALL} ${WRKSRC}/tools/niminst/niminst ${DESTDIR}${PREFIX}/nim/bin/
-.for x in nim-gdb nim_dbg nimgrep niminst nimpretty nimsuggest testament
-       cd ${DESTDIR}${PREFIX}/bin && ${LN} -sf ${DESTDIR}${PREFIX}/nim/bin/${x} ${x}
-.endfor
-       cd ${WRKSRC}/tools/debug/ && ${PAX} -r -w . ${DESTDIR}${PREFIX}/lib/nim/tools/debug/
+       cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ./install.sh \
+               ${DESTDIR}${PREFIX}
 
-       # This is imported from share/nimble/pkgs/nim-*/compiler/nimblecmd.nim.
-       cd ${WRKSRC}/dist/checksums/ && ${PAX} -r -w . ${DESTDIR}${PREFIX}/share/nimble/pkgs/nim-${PKGVERSION_NOREV}/dist/checksums/
-.for d in nimsuggest nimpretty
-       cd ${WRKSRC}/${d} && ${PAX} -r -w . ${DESTDIR}${PREFIX}/lib/nim/${d}/
-       ${LN} -sf ${DESTDIR}${PREFIX}/lib/nim/${d} ${DESTDIR}${PREFIX}/share/nim/${d}
+.for fn in nim nimble nimsuggest nimgrep
+       ${LN} -sf ${DESTDIR}${PREFIX}/nim/bin/${fn} ${DESTDIR}${PREFIX}/bin/${fn}
 .endfor
 
-do-test:
-       cd ${WRKSRC} && ./bin/nim compile koch.nim
-       cd ${WRKSRC} && LD_LIBRARY_PATH=${PREFIX}/lib ./koch test all --parallelBuild:${_MAKE_JOBS_N}
-
+.include "options.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/lang/nim/PLIST
diff -u pkgsrc/lang/nim/PLIST:1.20 pkgsrc/lang/nim/PLIST:1.21
--- pkgsrc/lang/nim/PLIST:1.20  Mon Apr 22 13:23:55 2024
+++ pkgsrc/lang/nim/PLIST       Sat Nov  7 22:43:07 2026
@@ -1,122 +1,23 @@
-@comment $NetBSD: PLIST,v 1.20 2024/04/22 13:23:55 nikita Exp $
+@comment $NetBSD: PLIST,v 1.21 2026/11/07 22:43:07 wiz Exp $
 bin/nim
-bin/nim-gdb
-bin/nim_dbg
+bin/nimble
 bin/nimgrep
-bin/niminst
-bin/nimpretty
 bin/nimsuggest
-bin/testament
-lib/nim/nimpretty/nimpretty.nim
-lib/nim/nimpretty/nimpretty.nim.cfg
-lib/nim/nimpretty/tester.nim
-lib/nim/nimpretty/tests/exhaustive.nim
-lib/nim/nimpretty/tests/expected/exhaustive.nim
-lib/nim/nimpretty/tests/expected/simple.nim
-lib/nim/nimpretty/tests/expected/simple2.nim
-lib/nim/nimpretty/tests/expected/simple3.nim
-lib/nim/nimpretty/tests/expected/simple4.nim
-lib/nim/nimpretty/tests/expected/tevil_spaces.nim
-lib/nim/nimpretty/tests/expected/wrong_ind.nim
-lib/nim/nimpretty/tests/simple.nim
-lib/nim/nimpretty/tests/simple2.nim
-lib/nim/nimpretty/tests/simple3.nim
-lib/nim/nimpretty/tests/simple4.nim
-lib/nim/nimpretty/tests/tevil_spaces.nim
-lib/nim/nimpretty/tests/wrong_ind.nim
-lib/nim/nimsuggest/config.nims
-lib/nim/nimsuggest/crashtester.nim
-lib/nim/nimsuggest/nimsuggest.nim
-lib/nim/nimsuggest/nimsuggest.nim.cfg
-lib/nim/nimsuggest/nimsuggest.nimble
-lib/nim/nimsuggest/procmonitor.nim
-lib/nim/nimsuggest/sexp.nim
-lib/nim/nimsuggest/tester.nim
-lib/nim/nimsuggest/tests/fixtures/mclass_macro.nim
-lib/nim/nimsuggest/tests/fixtures/mdep_v1.nim
-lib/nim/nimsuggest/tests/fixtures/mdep_v2.nim
-lib/nim/nimsuggest/tests/fixtures/mfakeassert.nim
-lib/nim/nimsuggest/tests/fixtures/minclude_import.nim
-lib/nim/nimsuggest/tests/fixtures/minclude_include.nim
-lib/nim/nimsuggest/tests/fixtures/minclude_types.nim
-lib/nim/nimsuggest/tests/fixtures/mstrutils.nim
-lib/nim/nimsuggest/tests/module_20265.nim
-lib/nim/nimsuggest/tests/t20265_1.nim
-lib/nim/nimsuggest/tests/t20265_2.nim
-lib/nim/nimsuggest/tests/t20440.nim
-lib/nim/nimsuggest/tests/t20440.nims
-lib/nim/nimsuggest/tests/t21185.nim
-lib/nim/nimsuggest/tests/taccent_highlight.nim
-lib/nim/nimsuggest/tests/tcallstrlit_highlight.nim
-lib/nim/nimsuggest/tests/tcase.nim
-lib/nim/nimsuggest/tests/tchk1.nim
-lib/nim/nimsuggest/tests/tchk_compiles.nim
-lib/nim/nimsuggest/tests/tcon1.nim
-lib/nim/nimsuggest/tests/tcon_variable.nim
-lib/nim/nimsuggest/tests/tconcept1.nim
-lib/nim/nimsuggest/tests/tconcept2.nim
-lib/nim/nimsuggest/tests/tcursor_at_end.nim
-lib/nim/nimsuggest/tests/tdef1.nim
-lib/nim/nimsuggest/tests/tdef2.nim
-lib/nim/nimsuggest/tests/tdef_forward.nim
-lib/nim/nimsuggest/tests/tdef_let.nim
-lib/nim/nimsuggest/tests/tdot1.nim
-lib/nim/nimsuggest/tests/tdot2.nim
-lib/nim/nimsuggest/tests/tdot3.nim
-lib/nim/nimsuggest/tests/tdot4.nim
-lib/nim/nimsuggest/tests/tfatal1.nim
-lib/nim/nimsuggest/tests/tgeneric_highlight.nim
-lib/nim/nimsuggest/tests/tinclude.nim
-lib/nim/nimsuggest/tests/tmacro_highlight.nim
-lib/nim/nimsuggest/tests/tno_deref.nim
-lib/nim/nimsuggest/tests/tobj_highlight.nim
-lib/nim/nimsuggest/tests/top_highlight.nim
-lib/nim/nimsuggest/tests/tqualified_highlight.nim
-lib/nim/nimsuggest/tests/tsetter_highlight.nim
-lib/nim/nimsuggest/tests/tsi_highlight.nim
-lib/nim/nimsuggest/tests/tsug_accquote.nim
-lib/nim/nimsuggest/tests/tsug_enum.nim
-lib/nim/nimsuggest/tests/tsug_regression.nim
-lib/nim/nimsuggest/tests/tsug_template.nim
-lib/nim/nimsuggest/tests/tsug_typedecl.nim
-lib/nim/nimsuggest/tests/ttempl_inst.nim
-lib/nim/nimsuggest/tests/ttemplate_highlight.nim
-lib/nim/nimsuggest/tests/ttype_decl.nim
-lib/nim/nimsuggest/tests/ttype_highlight.nim
-lib/nim/nimsuggest/tests/tuse.nim
-lib/nim/nimsuggest/tests/tuse_enum.nim
-lib/nim/nimsuggest/tests/tuse_structure.nim
-lib/nim/nimsuggest/tests/tv3.nim
-lib/nim/nimsuggest/tests/tv3_con.nim
-lib/nim/nimsuggest/tests/tv3_definition.nim
-lib/nim/nimsuggest/tests/tv3_forward_definition.nim
-lib/nim/nimsuggest/tests/tv3_globalSymbols.nim
-lib/nim/nimsuggest/tests/tv3_import.nim
-lib/nim/nimsuggest/tests/tv3_outline.nim
-lib/nim/nimsuggest/tests/tv3_typeDefinition.nim
-lib/nim/nimsuggest/tests/twithin_macro.nim
-lib/nim/nimsuggest/tests/twithin_macro_prefix.nim
-lib/nim/tools/debug/customdebugtype.nim
-lib/nim/tools/debug/nim-gdb.py
-lib/nim/tools/debug/nimlldb.py
-nim/bin/atlas
 nim/bin/nim
-nim/bin/nim-gdb
-nim/bin/nim_dbg
-nim/bin/nimble
-nim/bin/nimgrep
-nim/bin/niminst
-nim/bin/nimpretty
-nim/bin/nimsuggest
-nim/bin/testament
 nim/compiler/aliasanalysis.nim
 nim/compiler/aliases.nim
 nim/compiler/ast.nim
+nim/compiler/ast2nif.nim
 nim/compiler/astalgo.nim
+nim/compiler/astdef.nim
 nim/compiler/astmsgs.nim
-nim/compiler/backendpragmas.nim
+nim/compiler/astyaml.nim
 nim/compiler/bitsets.nim
 nim/compiler/btrees.nim
+nim/compiler/cbuilderbase.nim
+nim/compiler/cbuilderdecls.nim
+nim/compiler/cbuilderexprs.nim
+nim/compiler/cbuilderstmts.nim
 nim/compiler/ccgcalls.nim
 nim/compiler/ccgexprs.nim
 nim/compiler/ccgliterals.nim
@@ -132,46 +33,51 @@ nim/compiler/cgendata.nim
 nim/compiler/cgmeth.nim
 nim/compiler/closureiters.nim
 nim/compiler/cmdlinehelper.nim
+nim/compiler/cnif.nim
 nim/compiler/commands.nim
 nim/compiler/compiler.nimble
 nim/compiler/concepts.nim
+nim/compiler/concurrency.nim
 nim/compiler/condsyms.nim
 nim/compiler/debuginfo.nim
 nim/compiler/debugutils.nim
 nim/compiler/depends.nim
+nim/compiler/deps.nim
 nim/compiler/dfa.nim
 nim/compiler/docgen.nim
 nim/compiler/docgen2.nim
 nim/compiler/enumtostr.nim
 nim/compiler/errorhandling.nim
-nim/compiler/evalffi.nim
 nim/compiler/evaltempl.nim
+nim/compiler/expanddefaults.nim
 nim/compiler/extccomp.nim
 nim/compiler/filter_tmpl.nim
 nim/compiler/filters.nim
 nim/compiler/gorgeimpl.nim
 nim/compiler/guards.nim
 nim/compiler/hlo.nim
-nim/compiler/ic/bitabs.nim
-nim/compiler/ic/cbackend.nim
-nim/compiler/ic/dce.nim
-nim/compiler/ic/design.rst
-nim/compiler/ic/ic.nim
-nim/compiler/ic/integrity.nim
-nim/compiler/ic/navigator.nim
-nim/compiler/ic/packed_ast.nim
+nim/compiler/ic/enum2nif.nim
 nim/compiler/ic/replayer.nim
-nim/compiler/ic/rodfiles.nim
+nim/compiler/ic/sharedcounters.nim
+nim/compiler/icbif.nim
+nim/compiler/icconfig.nim
+nim/compiler/icmodnames.nim
+nim/compiler/icnifcore.nim
+nim/compiler/icprof.nim
 nim/compiler/idents.nim
+nim/compiler/idetools.nim
 nim/compiler/importer.nim
 nim/compiler/index.nim
 nim/compiler/injectdestructors.nim
+nim/compiler/inliner.nim
 nim/compiler/installer.ini
 nim/compiler/int128.nim
 nim/compiler/isolation_check.nim
+nim/compiler/itemids.nim
 nim/compiler/jsgen.nim
 nim/compiler/jstypes.nim
 nim/compiler/lambdalifting.nim
+nim/compiler/layeredtable.nim
 nim/compiler/layouter.nim
 nim/compiler/lexer.nim
 nim/compiler/liftdestructors.nim
@@ -184,12 +90,15 @@ nim/compiler/lowerings.nim
 nim/compiler/macrocacheimpl.nim
 nim/compiler/magicsys.nim
 nim/compiler/main.nim
+nim/compiler/mangleutils.nim
 nim/compiler/mapping.txt
 nim/compiler/modulegraphs.nim
 nim/compiler/modulepaths.nim
 nim/compiler/modules.nim
 nim/compiler/msgs.nim
-nim/compiler/ndi.nim
+nim/compiler/nifbackend.nim
+nim/compiler/nifgen.nim
+nim/compiler/nifstreams.nim
 nim/compiler/nilcheck.nim
 nim/compiler/nim.cfg
 nim/compiler/nim.nim
@@ -200,6 +109,7 @@ nim/compiler/nimlexbase.nim
 nim/compiler/nimpaths.nim
 nim/compiler/nimsets.nim
 nim/compiler/nodejs.nim
+nim/compiler/nodekinds.nim
 nim/compiler/nversion.nim
 nim/compiler/optimizer.nim
 nim/compiler/options.nim
@@ -215,12 +125,15 @@ nim/compiler/pipelines.nim
 nim/compiler/pipelineutils.nim
 nim/compiler/platform.nim
 nim/compiler/plugins/active.nim
+nim/compiler/plugins/customast.nim
 nim/compiler/plugins/itersgen.nim
 nim/compiler/plugins/locals.nim
+nim/compiler/plugins/plugins.nimble
 nim/compiler/pluginsupport.nim
 nim/compiler/pragmas.nim
 nim/compiler/prefixmatches.nim
 nim/compiler/procfind.nim
+nim/compiler/pushpoppragmas.nim
 nim/compiler/readme.md
 nim/compiler/renderer.nim
 nim/compiler/renderverbatim.nim
@@ -254,12 +167,14 @@ nim/compiler/sizealignoffsetimpl.nim
 nim/compiler/sourcemap.nim
 nim/compiler/spawn.nim
 nim/compiler/suggest.nim
+nim/compiler/suggestsymdb.nim
 nim/compiler/syntaxes.nim
 nim/compiler/tccgen.nim
 nim/compiler/transf.nim
 nim/compiler/trees.nim
 nim/compiler/treetab.nim
 nim/compiler/typeallowed.nim
+nim/compiler/typekeys.nim
 nim/compiler/types.nim
 nim/compiler/typesrenderer.nim
 nim/compiler/varpartitions.nim
@@ -267,11 +182,16 @@ nim/compiler/vm.nim
 nim/compiler/vmconv.nim
 nim/compiler/vmdef.nim
 nim/compiler/vmdeps.nim
+nim/compiler/vmffi.nim
 nim/compiler/vmgen.nim
 nim/compiler/vmhooks.nim
+nim/compiler/vmlayout.nim
 nim/compiler/vmmarshal.nim
+nim/compiler/vmmem.nim
 nim/compiler/vmops.nim
 nim/compiler/vmprofiler.nim
+nim/compiler/vmvalue.nim
+nim/compiler/vtables.nim
 nim/compiler/wordrecg.nim
 nim/config/config.nims
 nim/config/nim.cfg
@@ -280,6 +200,7 @@ nim/config/nimdoc.tex.cfg
 nim/config/rename.rules.cfg
 nim/doc/advopt.txt
 nim/doc/basicopt.txt
+nim/doc/nimdoc.cls
 nim/doc/nimdoc.css
 nim/lib/arch/x86/amd64.S
 nim/lib/arch/x86/i386.S
@@ -479,6 +400,8 @@ nim/lib/std/jsheaders.nim
 nim/lib/std/jsonutils.nim
 nim/lib/std/logic.nim
 nim/lib/std/monotimes.nim
+nim/lib/std/nre2.nim
+nim/lib/std/nre2.nims
 nim/lib/std/objectdollar.nim
 nim/lib/std/oserrors.nim
 nim/lib/std/outparams.nim
@@ -513,6 +436,7 @@ nim/lib/std/setutils.nim
 nim/lib/std/sha1.nim
 nim/lib/std/socketstreams.nim
 nim/lib/std/stackframes.nim
+nim/lib/std/staticos.nim
 nim/lib/std/strbasics.nim
 nim/lib/std/symlinks.nim
 nim/lib/std/syncio.nim
@@ -585,11 +509,13 @@ nim/lib/system/orc.nim
 nim/lib/system/osalloc.nim
 nim/lib/system/platforms.nim
 nim/lib/system/profiler.nim
+nim/lib/system/ptrarith.nim
 nim/lib/system/rawquits.nim
 nim/lib/system/repr.nim
 nim/lib/system/repr_impl.nim
 nim/lib/system/repr_v2.nim
 nim/lib/system/reprjs.nim
+nim/lib/system/rwlocks.nim
 nim/lib/system/seqs_v2.nim
 nim/lib/system/seqs_v2_reimpl.nim
 nim/lib/system/setops.nim
@@ -597,11 +523,18 @@ nim/lib/system/sets.nim
 nim/lib/system/stacktraces.nim
 nim/lib/system/strmantle.nim
 nim/lib/system/strs_v2.nim
+nim/lib/system/strs_v3.nim
+nim/lib/system/sysmem.nim
 nim/lib/system/sysstr.nim
 nim/lib/system/threadids.nim
 nim/lib/system/threadimpl.nim
 nim/lib/system/threadlocalstorage.nim
 nim/lib/system/timers.nim
+nim/lib/system/yrc.nim
+nim/lib/system/yrc_opt_proof.lean
+nim/lib/system/yrc_proof.lean
+nim/lib/system/yrc_proof.tla
+nim/lib/system/yrc_tarjan_proof.lean
 nim/lib/system_overview.rst
 nim/lib/windows/registry.nim
 nim/lib/windows/winlean.nim
@@ -614,22 +547,4 @@ nim/lib/wrappers/openssl.nim
 nim/lib/wrappers/pcre.nim
 nim/lib/wrappers/tinyc.nim
 nim/nim.nimble
-share/nim/nimpretty
-share/nim/nimsuggest
-share/nimble/pkgs/${PKGNAME}/dist/checksums/README.md
-share/nimble/pkgs/${PKGNAME}/dist/checksums/checksums.nimble
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/bcrypt.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/docutils.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/md5.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/private/sha_utils.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/sha1.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/sha2.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/src/checksums/sha3.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/config.nims
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/crypto/tbcrypt.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/crypto/tmd5.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/crypto/tsha1.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/crypto/tsha2.nim
-share/nimble/pkgs/${PKGNAME}/dist/checksums/tests/crypto/tsha3.nim
 @pkgdir nim/data
-@pkgdir include

Index: pkgsrc/lang/nim/distinfo
diff -u pkgsrc/lang/nim/distinfo:1.30 pkgsrc/lang/nim/distinfo:1.31
--- pkgsrc/lang/nim/distinfo:1.30       Thu May 16 09:59:20 2024
+++ pkgsrc/lang/nim/distinfo    Sat Nov  7 22:43:07 2026
@@ -1,12 +1,13 @@
-$NetBSD: distinfo,v 1.30 2024/05/16 09:59:20 pho Exp $
+$NetBSD: distinfo,v 1.31 2026/11/07 22:43:07 wiz Exp $
 
-BLAKE2s (atlas-7b780811a168f3f32bff4822369dda46a7f87f9a.tar.gz) = 88f21b8c524da0db89f53d3233040be6a9a021157e04d6d24f5516fdc03421ef
-SHA512 (atlas-7b780811a168f3f32bff4822369dda46a7f87f9a.tar.gz) = 392c4149ceec9918ff0277afd02d89cb13ce98c326744119b9bc9fe439e187cdb9230c3b300a6a48f93b0b2378ffc10e1a3a6990df31f4d36dd392dd7aa83797
-Size (atlas-7b780811a168f3f32bff4822369dda46a7f87f9a.tar.gz) = 49221 bytes
-BLAKE2s (nim-2.0.4+netbsd-aarch64.tar.xz) = 51931047f5ed0d2268f0029338b4dc7220a6b10b906bdde904b4f67fbbe7470f
-SHA512 (nim-2.0.4+netbsd-aarch64.tar.xz) = 914c370dccda9e9a06d02e7fc29473b7d0cfcdfde8de41ddaddd149ea17700168314b0eaea0cef79c4e3472346832f279a18f5225e7b12206e47f48155d01bbd
-Size (nim-2.0.4+netbsd-aarch64.tar.xz) = 3393348 bytes
-BLAKE2s (nim-2.0.4.tar.xz) = e81586f329ba76f4891c68dc2c5d352c812fc66223c869278d44a5d3f17bf0da
-SHA512 (nim-2.0.4.tar.xz) = 1918b3d4a4fc02714677b2ca5051dc69e1d1daead2cf4dcc9b997076540d07d58ee4fe3049de86a37faa3143de1d3b95bedfa31f31d8463987bb267107459793
-Size (nim-2.0.4.tar.xz) = 7620508 bytes
-SHA1 (patch-bin_nim-gdb) = 0d4e9ae4cc8687ca7821891b63808fa1d175069c
+BLAKE2s (atlas-aa6fb162006f3015aa84c4305e15cb4d230f5ad6.tar.gz) = ea416dc909621edec9b06fa0cc510e3248b9638331055d5b9faaa1dce0f0f0d9
+SHA512 (atlas-aa6fb162006f3015aa84c4305e15cb4d230f5ad6.tar.gz) = 66c37492872dc47105f9c40d3f0c7be105b69e089293996eb9b0ccf441248dce351be2fa8bfbc9ecd7914fd2a6d66f64d83f3280f32561a03a6b4f4d581e7b0b
+Size (atlas-aa6fb162006f3015aa84c4305e15cb4d230f5ad6.tar.gz) = 160714 bytes
+BLAKE2s (nim-2.4.0.tar.xz) = 79eda24bceb44181b3ccc1828cb38720b3e50c0b16735a2acb1cda6be123aba2
+SHA512 (nim-2.4.0.tar.xz) = 75aaab6903dd2bb7766be722e2a765ffccd035f754e6f08af5049b9ba3cffa2c64a96ad0ff71602daffe4f6ccbec3aa7010f06ba8bd807c44897c9613a2bb550
+Size (nim-2.4.0.tar.xz) = 16957544 bytes
+BLAKE2s (sat-9d52513b3c68bfb929dbd687d4fb2836cfee6936.tar.gz) = e61713da1b17aea1a345df71dc22cd8ec2058623546668a7b9af6db501d1a224
+SHA512 (sat-9d52513b3c68bfb929dbd687d4fb2836cfee6936.tar.gz) = 6dff5f65bb7aaa7c59b7c832e760b35ba6f9aebbc53ef6e4d87ef3dde6308458cd6c27988c309f60f8eca9019e135fb34981704310cb55b5dd5c84de1641b20d
+Size (sat-9d52513b3c68bfb929dbd687d4fb2836cfee6936.tar.gz) = 10247 bytes
+SHA1 (patch-dist_nimble_src_nimblepkg_downloadnim.nim) = 499197b81265ecf16d4c6baeca54673aead052c6
+SHA1 (patch-dist_nimble_vendor_chronos_chronos_sendfile.nim) = da30276501e0521056267c28f35e14949f5a2f96

Added files:

Index: pkgsrc/lang/nim/patches/patch-dist_nimble_src_nimblepkg_downloadnim.nim
diff -u /dev/null pkgsrc/lang/nim/patches/patch-dist_nimble_src_nimblepkg_downloadnim.nim:1.1
--- /dev/null   Sat Nov  7 22:43:08 2026
+++ pkgsrc/lang/nim/patches/patch-dist_nimble_src_nimblepkg_downloadnim.nim     Sat Nov  7 22:43:07 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-dist_nimble_src_nimblepkg_downloadnim.nim,v 1.1 2026/11/07 22:43:07 wiz Exp $
+
+Add NetBSD to nimble's nightly-OS detection. Without a matching branch the
+`when` expression in getNightliesUrl is empty on NetBSD and the compiler
+rejects it with "expression '' has no type (or is ambiguous)".
+
+--- dist/nimble/src/nimblepkg/downloadnim.nim.orig
++++ dist/nimble/src/nimblepkg/downloadnim.nim
+@@ -146,5 +146,7 @@
+     elif defined(openbsd):
+       "openbsd"
+     elif defined(haiku):
+       "haiku"
++    elif defined(netbsd):
++      "netbsd"
+   for jn in parsedContents.getElems():
Index: pkgsrc/lang/nim/patches/patch-dist_nimble_vendor_chronos_chronos_sendfile.nim
diff -u /dev/null pkgsrc/lang/nim/patches/patch-dist_nimble_vendor_chronos_chronos_sendfile.nim:1.1
--- /dev/null   Sat Nov  7 22:43:08 2026
+++ pkgsrc/lang/nim/patches/patch-dist_nimble_vendor_chronos_chronos_sendfile.nim       Sat Nov  7 22:43:07 2026
@@ -0,0 +1,19 @@
+$NetBSD: patch-dist_nimble_vendor_chronos_chronos_sendfile.nim,v 1.1 2026/11/07 22:43:07 wiz Exp $
+
+NetBSD does not provide sendfile(2) (no libc symbol, no header declaration,
+no man page). chronos grouped NetBSD with the BSDs that do, so the generated
+code called an implicitly-declared function, which the pkgsrc compiler
+wrapper turns into an error. Treat NetBSD like emscripten/haiku instead.
+
+--- dist/nimble/vendor/chronos/chronos/sendfile.nim.orig
++++ dist/nimble/vendor/chronos/chronos/sendfile.nim
+@@ -41,3 +41,3 @@
+-elif defined(emscripten) or defined(haiku):
++elif defined(emscripten) or defined(haiku) or defined(netbsd):
+ 
+   proc sendfile*(outfd, infd: int, offset: int, count: var int): int =
+@@ -67,3 +67,2 @@
+-elif defined(freebsd) or defined(openbsd) or defined(netbsd) or
+-     defined(dragonflybsd):
++elif defined(freebsd) or defined(openbsd) or defined(dragonflybsd):
+   import oserrno



Home | Main Index | Thread Index | Old Index