A dynamic language and bytecode vm
Full Changelog: https://github.com/janet-lang/janet/compare/v1.32.1...v1.33.0
Small fix over v1.32.0 that fixes wasm build.
janet_dobytes
when called on Janet functions that yield to event loop.janet_async_start
and janet_async_end
.array/weak
for weak references in arraystable/weak
, table/weak-keys
, and table/weak-values
.(break x)
expression in some contexts.keys
, values
, pairs
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1241
reverse
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1242
bytes?
, indexed?
, dictionary?
to corelib by @primo-ppcg in https://github.com/janet-lang/janet/pull/1244
compare
functions by @primo-ppcg in https://github.com/janet-lang/janet/pull/1249
reverse
, again by @primo-ppcg in https://github.com/janet-lang/janet/pull/1252
sort
usages by @primo-ppcg in https://github.com/janet-lang/janet/pull/1255
buffer/from-bytes
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1259
each
keys before body by @primo-ppcg in https://github.com/janet-lang/janet/pull/1258
any?
, every?
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1257
min
, max
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1266
:range
and :down
forms by @primo-ppcg in https://github.com/janet-lang/janet/pull/1278
lengthable?
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1280
interleave
, interpose
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1281
partition
, mean
by @primo-ppcg in https://github.com/janet-lang/janet/pull/1283
:unless
loop modifier by @primo-ppcg in https://github.com/janet-lang/janet/pull/1289
Full Changelog: https://github.com/janet-lang/janet/compare/v1.30.0...v1.31.0
array/remove
: update final array index to be -1 by @primo-ppcg in https://github.com/janet-lang/janet/pull/1224
range
to corelib by @primo-ppcg in https://github.com/janet-lang/janet/pull/1236
Full Changelog: https://github.com/janet-lang/janet/compare/v1.29.1...v1.30.0
contains?
helper function to boot.janet by @Techcable in https://github.com/janet-lang/janet/pull/1017
Full Changelog: https://github.com/janet-lang/janet/compare/v1.28.0...v1.29.1
os/strftime
for date formatting.ev/select
on threaded channels sometimes live-locking.NO_COLOR
environment variable to turn off VT100 color codes in repl (and in scripts).
See http://no-color.org/
(splice x)
in contexts where it doesn't make sense rather than silently coercing to x
.
Instead, raise a compiler error.:user8
and :user9
sigals to :interrupt
and :await
:user8
and :user9
fiber statuses to :interrupted
and :suspended
.ev/all-tasks
to see all currently suspended fibers.keep-syntax
and keep-syntax!
functions to make writing macros easier.keep-syntax
and keep-syntax!
functions by @ml-2 in https://github.com/janet-lang/janet/pull/1095
index
argument to ffi/write
for symmetry with ffi/read
.buffer/push-at
ffi/pointer-buffer
to convert pointers to buffers the cannot be reallocated. This
allows easier manipulation of FFI memory, memory mapped files, and buffer memory shared between threads.ev/cancel
on a fiber waiting on ev/gather
will correctly
cancel the child fibers.(sandbox ...)
function to core for permission based security. Also add janet_sandbox
to C API.
The sandbox allows limiting access to the file system, network, ffi, and OS resources at runtime.(.locals)
function to debugger to see currently bound local symbols.debug/stack
and disasm
.os/compiler
to detect what host compiler was used to compile the interpreterffi/malloc
and ffi/free
. Useful as tools of last resort.ffi/jitfn
to allow calling function pointers generated at runtime from machine code.
Bring your own assembler, though..length
function pointer on abstract types for lengths. Adding
a length
method will still work as well..bytes
function pointer.u
format specifier to printf family functions.printf
and string/format
family functions.@
prefix
to module paths. For example, if there is a dynamic binding :custom-modules that
is a file system path to a directory of modules, import from that directory with
(import @custom-modules/mymod)
.memcmp
function to core library.os/open
with :rw
permissions not correct on Linux.