A dynamic language and bytecode vm
memcmp
function to core library.os/open
with :rw
permissions not correct on Linux.if-not
combinator with captures in the conditionos/date
with nil first argumentnet/accept
on Linux that could leak file descriptors to sub-processesmarshal
to skip cycle checking codename
parameter to the short-fn
macro.assert
.tabseq
macro for simpler table comprehensions.(dyn :task-id)
in fibers to improve context in supervisor messages. Prior to
this change, supervisor messages over threaded channels would be from ambiguous threads/fibers.This release brings a number of new features that will make Janet useful in even more domains, including mutexes and reader-writer locks to the ev module to improve interactions with multi-threaded, native code, better named arguments support, and an experimental FFI module. Also a number of improvements and simplification to Janet's debugging capabilities have been made, and exposed with the new debugger
function.
ffi/
module for interfacing with dynamic libraries and raw function pointers. Only available
on 64 bit linux, mac, and bsd systems.&named
in function prototypes for named arguments. This is a more ergonomic
variant of &keys
that isn't as redundant, more self documenting, and allows extension to
things like default arguments.delay
macro for lazy evaluate-and-save thunks.debugger
- an easy to use debugger function that just takes a fiber.dofile
will now start a debugger on errors if the environment it is passed has :debug
set.debugger-on-status
function, which can be passed to run-context
to start a debugger on
abnormal fiber signals.-d
flag to use the built-in debugger on errors and breakpoints.parse-all
as a generalization of the parse
function.os/cpu-count
to get the number of available processors on a machinetable/new
.module/value
.file/popen
. Use os/spawn
with the :pipe
options instead.thru
and to
combinators.doc
macro.defdyn
aliases for various dynamic bindings used in core.janet.h
symlink to make Janet native libraries and applications
easier to build without jpm
.Patch release to fix some versioning issues in the previous 1.21.0 release. No new changes here.
janet_dobytes
and janet_dostring
will now enter the event loop if it is enabled.flycheck
function no longer pollutes the module/cachecancel
and resume
on fibers scheduled or created with ev/go
, as well as the root
fiber.Add :missing-symbol
hook to compile
that will act as a catch-all macro for undefined symbols.
:redef
dynamic binding that will allow users to redefine top-level bindings with late binding. This
is intended for development use.os/open
on Windows and Linux.:ppc64
as a detectable OS type.& more
support for destructuring in the match macro.& more
support for destructuring in all binding forms (def
).