Nim (formerly known as "Nimrod") is a statically typed, imperative
programming language that tries to give the programmer ultimate power
without compromises on runtime efficiency. This means it focuses on
compile-time mechanisms in all their various forms.
Beneath a nice infix/indentation based syntax with a powerful (AST
based, hygienic) macro system lies a semantic model that supports a soft
realtime GC on thread local heaps. Asynchronous message passing is used
between threads, so no "stop the world" mechanism is necessary. An unsafe
shared memory heap is also provided for the increased efficiency that
results from that model.
===> The following configuration options are available for nim-2.2.12_1:
DOCS=on: Build and/or install documentation
TOOLS=on: Build and install nim tools, not including nimble nor nimfind
===> Use 'make config' to modify these settings
lang/nim: fix on powerpc64
countProcessors() reads the 4-byte hw.ncpu into an 8-byte int, which puts
it in the high word on big-endian, so any nim c without --parallelBuild
tried to size its build state for 2^38 CPUs and got OOM-killed. That is
also why DOCS was turned off on powerpc64 in 2020, so enable it again.
Also take the upstream fix for the shr constant folding on big-endian and
apply it to the pre-generated bootstrap compiler too.
lang/nim: Remove deprecation
The test dependency is node instead of deprecated node18 so remove
DEPRECATED.
PR: 288078
Approved by: ports@nicandneal.net (maintainer)
lang/nim: Upgrade from 2.0.6 to 2.0.8
Major improvements in this release:
Nim’s allocator is now much more stable with --threads:on.
Better support for gcc14.
Optimized setLen(0) for uninitialized strings and seqs.
Optimized move when used with --mm:refc.
These reported issues were fixed:
Fixed “[Semi-regression] C code contains backtick`gensym” (#23711)
Fixed “setLen(0) allocates memory causing performance regression”
(#23742)
Fixed “Sigsegv on std/tasks destructor” (#23725)
Fixed “genericAssign does not take care of the importC variables”
(#9940)
(Only the first 15 lines of the commit message are shown above )
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
lang/nim: fix plist
- Fix problems with optional parts of the pkg-plist of lang/nim.
- Install an extra set of libraries needed by devel/nimble in order to build.
PR: 273482
lang/nim: Fix invalid path to documentation in compiler source code
Use /usr/local/share/doc/nim instead of ../doc.
PR: 270858
Reported by: thindil@laeran.pl.eu.org
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
lang/nim: Update 1.4 for unexpected change in distfile and include nimble
For some reason the distribution file of nim 1.4 has changed on the nim web
site without a change in version.
Two things have been added to the distribution and are no longer distributed
from their own github repository:
- fusion
- nimble
PR: 250881
Submitted by: Neal Nelson <ports@nicandneal.net> (maintainer)
lang/nim: Fix cssSource for nim doc
Nim doc expected to find nimdoc.css in ${PREFIX}/doc/nimdoc.css but our doc
directory is ${PREFIX}/share/doc/nim/
PR: 248814
Approved by: Neal Nelson (maintainer)
lang/nim: Fix the build of lang/nim within poudriere:
- Make sure we use specified build caches for all build commands (this was
causing the poudriere testport to fail for the tools build).
- Ensure that devel/nimble is not built as part of this port by using the koch
toolsToNimble command instead of koch tools. If left to it's own devices the
koch tools command will download nimble from git and build it itself.
PR: 245789
Submitted by: Neal Nelson
Reviewed by: tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D24585
For ports that are marked BROKEN on armv6, and also fail to build on
armv7, mark them so.
This is part two of a multipart commit to bring armv7 ports to parity
with armv6.
Approved by: portmgr (tier-2 blanket)
Obtained from: lonesome.com -exp run
When there is a do-install target, do not use a post-install target, do
everything at once. Sometime, rename post-install into a options helper
target.
I did not fix ports that were such a mess that I could not figure out
what they really wanted to do. I also did not change ports that had
some version of an auto-plist code in post-install, for the same reason.
With hat: portmgr
Sponsored by: Absolight
lang/nimrod: MOVED to lang/nim and update 0.9.2 -> 0.10.2
- Upstream has renamed the project from 'nimrod' to 'nim'
PR: 199118
Submitted by: Neal Nelson <ports@nicandneal.net>