Releases: c-blake/cligen
Nim portability & couple APIs
See release notes or git log for more details. Should be pretty minor and get some things working again for some people.
Bug fixes & API spruce ups
See RELEASE_NOTES.md and/or VC log for more details.
Minor enhancements
Fix a problem with past-first read() after select() blocking in procpool
, add some more string-MSlice compatibility routines in mslice
, and add sysUt.newSeqNoInit
.
Ditch shallowCopy -> move
Nothing else substantive. See release notes and/or git log for more details.
Space optimization define & a few utility procs
If you don't care about config files and nice generated help colors, but you do care about object file sizes, then look into --define:cgCfgNone
and #207 .
BREAKING CHANGE: in the both unlikely and unwise case that you relied upon import cligen/humanUt
exporting initHashSet
, toHashSet
- you can no longer.
Harden cligen/procpool
a bit more and add a new examples/piPar.nim
that runs 1000s of times faster than similar renditions of this already slow way to compute π (pi).
Also, courtesy of @Vindaar a docCommentAdd
for compile-time computed documentation and a few other utility APIs like nextSlice
, echoQuit130
proc for setControlCHook
, etc. See RELEASE_NOTES.md
for more details.
Bug fixes, MFile & ProcPool enhancements
This release fixes a couple bugs. It slightly enhances cligen/mfile.MFile
.
Usage by @Vindaar helped to motivate hardening procpool.nim
interfaces to avoid deadlock from insufficient statistical regularity and one breaking change (to avoid same-fd-as-parent footguns). Also, silence nCPU-way repetitions of Control-C messages (but provide a way to get them back if users want).
Also, remove need for (not so perf helpful anyway) ||
iterator in examples/dups.nim
.
Terser default enum; float slice support
Release title, notes & commit tell the whole short story of this release.
Fix $HOME/.config/autoCmdName
Fix an old bug, add some library features, and spruce up rp
a bit in light of https://github.com/benhoyt/prig which may bring it more attention. See RELEASE_NOTES.md for more details.
Add ability for CLusers to edit "REQUIRED"
See RELEASE_NOTES.md
for more details.
This is also partly a checkpoint release as there are inbound very minorly breaking changes (dropped optional params in some uncertain value formatting APIs that are only half a year old anyway). Even so, good to give any client code a version number before/after in case they want to condition upon that.
Add UserError & various other niceties
Began a scope discussion: #201
Add a new exception type for the main CLI generation framework that allows raising user syntax/semantic errors when the CLauthor controls (or explicitly wraps) an API. Either a terse message or the full help string interpolated in is possible (via ${HELP}). See test/UserError.nim
for how to use. This feature vaguely relates to these issues: #160 #180 #135
Add madvise
API to posixUt
.
Add strip(MSlice)
, firstN(MSlice)
to mslice
; Make w* abbreviate "white" in mslice.initSep; Have cligen/mslice.parseFloat
/ints take sum type including openArray[char]
for more flexible deployment.
Make cligen/strUt.(ecvt|fcvt) thread safety analyzer-safe with a compile-time proc to init zeros
instead of using strutils.repeat
.
Add a convenience first param broadcaster macro macUt.callsOn
.
Rename rp --test
to where
and fix a few bugs (pclose
on Windows, isNan
for Nim<1.6, textAttrRegisterAliases
, tcc
-compat osUt
).