Skip to content

Releases: janet-lang/janet

Janet 1.32.1

16 Oct 00:12
Choose a tag to compare

Small fix over v1.32.0 that fixes wasm build.

Janet 1.32.0

15 Oct 01:38
Choose a tag to compare
  • Fix return value from C function janet_dobytes when called on Janet functions that yield to event loop.
  • Change C API for event loop interaction - get rid of JanetListener and instead use janet_async_start and janet_async_end.
  • Rework event loop to make fewer system calls on kqueue and epoll.
  • Expose atomic refcount abstraction in janet.h
  • Add array/weak for weak references in arrays
  • Add support for weak tables via table/weak, table/weak-keys, and table/weak-values.
  • Fix compiler bug with using the result of (break x) expression in some contexts.
  • Rework internal event loop code to be better behaved on Windows
  • Update meson build to work better on windows

Janet 1.31.0

17 Sep 20:37
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.30.0...v1.31.0

Janet 1.30.0

06 Aug 13:09
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.29.1...v1.30.0

Janet 1.29.1

19 Jun 12:20
Choose a tag to compare

What's Changed

  • add net/setsockopt by @zevv in #1138
  • Enable debug symbols in janet binary; strip target at 'make install' by @zevv in #1140
  • Add CI test for mingw/wine on linux by @zevv in #1141
  • changed net/connect to be non-blocking / asynchronous by @zevv in #1139
  • added thaw to complement freeze by @tionis in #1142
  • Add clock sources to os/clock (:realtime, :monotonic, :cputime) by @zevv in #1146
  • improved error messages for special forms by @zevv in #1147
  • os/proc-kill now accepts an optional signal to send by @tionis in #1137
  • Fix warning in janet_gettime() by @zevv in #1153
  • Improved various error messages when handling unexpected types. by @zevv in #1152
  • Add docstring to string/format by @zevv in #1151
  • Allow mapcat et al to accept multiple iterable arguments by @primo-ppcg in #1160
  • Add file/lines iterator by @zevv in #1157
  • More portable method of installing janet.h -> janet/janet.h symlink by @dressupgeekout in #1164
  • Updated documentation for buffer/push-at by @zevv in #1169
  • Fix janet_formatbv() type when handling %d %u int specifiers by @zevv in #1167
  • Fixed net/connect binding address by @zevv in #1171
  • fix for crash on windows in src/core/ev.c: initialze state->fromlen by @zevv in #1172
  • Add contains? helper function to boot.janet by @Techcable in #1017
  • added os/isatty, do not enable colors if stdout is not a tty by @zevv in #1177
  • Reorganize tests by @sogaiu in #1162
  • Ensure ev/gather fibers are fully canceled on error by @chris-chambers in #1181
  • Added misc tests to increase test coverage by @zevv in #1179
  • Added JANET_NO_AMALG flag to Makefile by @zevv in #1175
  • Fix resumption values when closing a channel by @chris-chambers in #1182
  • Make take and drop more symmetric by @primo-ppcg in #1183
  • Simplify if-let logic by @primo-ppcg in #1188
  • update if-let by @primo-ppcg in #1190
  • Fix order in which macro-lints is set during expansion by @chris-chambers in #1185
  • peg: add support for "true" and "false" primitives to always/never match by @CosmicToast in #1187

New Contributors

Full Changelog: v1.28.0...v1.29.1

Janet 1.28.0

13 May 15:25
Choose a tag to compare


  • Various bug fixes
  • Make nested short-fn's behave a bit more predictably (it is still not recommended to nest short-fns).
  • Add os/strftime for date formatting.
  • Fix ev/select on threaded channels sometimes live-locking.
  • Support the NO_COLOR environment variable to turn off VT100 color codes in repl (and in scripts).
  • Disallow using (splice x) in contexts where it doesn't make sense rather than silently coercing to x.
    Instead, raise a compiler error.
  • Change the names of :user8 and :user9 sigals to :interrupt and :await
  • Change the names of :user8 and :user9 fiber statuses to :interrupted and :suspended.
  • Add ev/all-tasks to see all currently suspended fibers.
  • Add keep-syntax and keep-syntax! functions to make writing macros easier.

More detail

Janet 1.27.0

05 Mar 16:36
Choose a tag to compare
  • Change semantics around bracket tuples to no longer be equal to regular tuples.
  • Add index argument to ffi/write for symmetry with ffi/read.
  • Add buffer/push-at
  • Add 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.
  • Calling ev/cancel on a fiber waiting on ev/gather will correctly
    cancel the child fibers.
  • Add (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.
  • Add (.locals) function to debugger to see currently bound local symbols.
  • Track symbol -> slot mapping so debugger can get symbolic information. This exposes local bindings
    in debug/stack and disasm.
  • Add os/compiler to detect what host compiler was used to compile the interpreter
  • Add support for mingw and cygwin builds (mingw support also added in jpm).

Janet 1.26.0

07 Jan 21:23
Choose a tag to compare
  • Add ffi/malloc and ffi/free. Useful as tools of last resort.
  • Add ffi/jitfn to allow calling function pointers generated at runtime from machine code.
    Bring your own assembler, though.
  • Channels can now be marshalled. Pending state is not saved, only items in the channel.
  • Use the new .length function pointer on abstract types for lengths. Adding
    a length method will still work as well.
  • Support byte views on abstract types with the .bytes function pointer.
  • Add the u format specifier to printf family functions.
  • Allow printing 64 integer types in printf and string/format family functions.
  • Allow importing modules from custom directories more easily with the @ 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).
  • Fix error message bug in FFI library.

Janet 1.25.1

29 Oct 20:05
Choose a tag to compare
  • Add memcmp function to core library.
  • Fix bug in os/open with :rw permissions not correct on Linux.
  • Support for more easily configuring the Makefile.

Janet 1.25.0

10 Oct 23:37
Choose a tag to compare
  • Windows FFI fixes
  • Fix PEG if-not combinator with captures in the condition
  • Fix bug with os/date with nil first argument
  • Fix bug with net/accept on Linux that could leak file descriptors to sub-processes
  • Reduce number of hash collisions from pointer hashing
  • Add optional parameter to marshal to skip cycle checking code