This patch release improves Janet's pretty printer as well as tweaks some build settings.
- Increase default nesting depth of pretty printing to
- Update meson.build
- Add option to automatically add shebang line in installed scripts with
group-byto the core.
- Sort keys in pretty printing output.
Minor patch to Janet, fixes a vm bug and adds a new peg combinator.
- Fix a fiber bug that occured in deeply nested fibers
unrefcombinator to pegs.
- Small docstring changes.
Fix a handful of bugs in the 1.15.0 release.
- Fix bug in windows version of
os/executewith setting environment variables.
- Fix documentation typos.
- Fix peg integer reading combinators when used with capture tags.
1.15.0 brings only a few minor changes, mostly bug fixes.
ltimbytecode instructions on non-integer values.
- Clean up output of flychecking to be the same as the repl.
- Change behavior of
debug/stacktracewith a nil error value.
- Add optional argument to
no-coreoption to creating standalone binaries to make execution faster.
- Fix bug where a buffer overflow could be confused with an out of memory error.
- Change error output to
file:line:column: message. Column is in bytes - tabs
are considered to have width 1 (instead of 8).
This patch release fixes some bugs with the ev/module and adds preliminary support for
ev/thread, which can spawn and wait for threads without blocking the event loop. Communicating with threads should still be done with
JANET_PROFILEenv variable to load a profile before loading the repl.
tracevmacro to allow
varinside to work as expected.
(dyn :peg-grammar)for passing a default grammar to
peg/compileinstead of loading
default-peg-grammardirectly from the root environment.
ev/threadfor combining threading with the event loop.
ev/threadeasier to use.
- Automatically set supervisor channel in
This release brings lots of improvements to the
ev/ module, as well as bug fixes.
doc-offor reverse documentation lookup.
ev/give-supervsiorto send a message to the supervising channel.
ev/go. This new argument allows "supervisor channels"
for fibers to enable structured concurrency.
-kflag work on stdin if no files are given.
flycheckfunction to core.
backrefmore expressive in pegs.
- Fix buggy
fiber/last-valueto get the value that was last yielded, errored, or signaled
by a fiber.
loopmacros. Instead, use the
which will now work on fibers as well as other data structures.
infor fibers. This lets
map, and similar iteration macros can now iterate over fibers.
- Remove macro
eachy, which can be replaced by
dfltargument to find-index.
file/popenin favor of
net/readto make them more like
file/read. However, we
do not provide any
:lineoption as that requires buffering.
- Change repl behavior to make Ctrl-C raise SIGINT on posix. The old behavior for Ctrl-C,
to clear the current line buffer, has been moved to Ctrl-Q.
- Importing modules that start with
/is now the only way to import from project root.
Before, this would import from / on disk. Previous imports that did not start with
are now unambiguously importing from the syspath, instead of checking both the syspath and
the project root. This is backwards incompatible and dependencies should be updated for this.
- Change hash function for numbers.
- Improve error handling of
- Bug fixes in networking and subprocess code.
- Use markdown formatting in more places for docstrings.
This release brings lots of bug fixes, improvements, and new functions and macros. The largest change is the addition of the new
ev/ module which brings evented IO to Janet's core. The evented IO can be used to interact with the
net/ module, as well as with the native file system with
ev/ module is still in beta, so more functions may be added and interoperability with other parts of the system, including sub processes and threads, may come in future releases.
Besides the new
ev/ module, 1.13.1 also brings improvements to pegs, module loading, and more.
Those embedding Janet or managing packages should also note that janetconf.h is also no longer needed to supplement janet.h when embedding or installing janet - it is inlined as part of the amalgamation process. janetconf.h is no longer part of the release files for Janet.
- Pretty printing a table with a prototype will look for
in the prototype table to tag the output.
matchmacro implementation changed to be tail recursive.
- Adds a :preload loader which allows one to manually put things into
- Backtick delimited strings and buffers are now reindented based on the column of the
opening delimiter. Whitespace in columns to the left of the starting column is ignored unless
there are non-space/non-newline characters in that region, in which case the old behavior is preserved.
- Argument to
(error)combinator in PEGs is now optional.
(column)combinators to PEGs to capture source line and column.
This should make error reporting a bit easier.
- During installation and release, merge janetconf.h into janet.h for easier install.
os/spawncan take streams for redirecting IO.
os/openif ev is enabled.
os/pipeif ev is enabled.
janet_thread_current(void)to C API
- Add integer parsing forms to pegs. This makes parsing many binary protocols easier.
- Lots of updates to networking code - now can use epoll (or poll) on linux and IOCP on windows.
ev/module. This exposes a fiber scheduler, queues, timeouts, and other functionality to users
for single threaded cooperative scheduling and asynchronous IO.
net/listen. These functions break down
net/serverinto it's essential parts
and are more flexible. They also allow further improvements to these utility functions.
- Various small bug fixes.
Small updates that includes a bugfix and the addition of :pipe to
- Add janet_try and janet_restore to C API.
os/executeregression on windows.
- Add :pipe option to
- Fix docstring typos.