Janet Versions Save

A dynamic language and bytecode vm

v1.33.0

3 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/janet-lang/janet/compare/v1.32.1...v1.33.0

v1.32.1

6 months ago

Small fix over v1.32.0 that fixes wasm build.

v1.32.0

6 months ago
  • 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

v1.31.0

7 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/janet-lang/janet/compare/v1.30.0...v1.31.0

v1.30.0

8 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/janet-lang/janet/compare/v1.29.1...v1.30.0

v1.29.1

10 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/janet-lang/janet/compare/v1.28.0...v1.29.1

v1.28.0

11 months ago

Overview

  • 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). See http://no-color.org/
  • 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

v1.27.0

1 year ago
  • 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).

v1.26.0

1 year ago
  • 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.

v1.25.1

1 year ago
  • Add memcmp function to core library.
  • Fix bug in os/open with :rw permissions not correct on Linux.
  • Support config.mk for more easily configuring the Makefile.