Janet Versions Save

A dynamic language and bytecode vm

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.

v1.25.0

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

v1.24.1

1 year ago
  • Fix FFI bug on Linux/Posix
  • Improve parse error messages for bad delimiters.
  • Add optional name parameter to the short-fn macro.

v1.24.0

1 year ago
  • Add FFI support to 64-bit windows compiled with MSVC
  • Don't process shared object names passed to dlopen.
  • Add better support for windows console in the default shell.c for auto-completion and other shell-like input features.
  • Improve default error message from assert.
  • Add the tabseq macro for simpler table comprehensions.
  • Allow setting (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.

v1.23.0

1 year ago

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.

  • Add experimental ffi/ module for interfacing with dynamic libraries and raw function pointers. Only available on 64 bit linux, mac, and bsd systems.
  • Allow using &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.
  • Add delay macro for lazy evaluate-and-save thunks.
  • Remove pthread.h from janet.h for easier includes.
  • Add 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.
  • Add debugger-on-status function, which can be passed to run-context to start a debugger on abnormal fiber signals.
  • Allow running scripts with the -d flag to use the built-in debugger on errors and breakpoints.
  • Add mutexes (locks) and reader-writer locks to ev module for thread coordination.
  • Add parse-all as a generalization of the parse function.
  • Add os/cpu-count to get the number of available processors on a machine

v1.22.0

1 year ago
  • Prohibit negative size argument to table/new.
  • Add module/value.
  • Remove file/popen. Use os/spawn with the :pipe options instead.
  • Fix bug in peg thru and to combinators.
  • Fix printing issue in doc macro.
  • Numerous updates to function docstrings
  • Add defdyn aliases for various dynamic bindings used in core.
  • Install janet.h symlink to make Janet native libraries and applications easier to build without jpm.

v1.21.2

1 year ago

v1.21.1

2 years ago

Patch release to fix some versioning issues in the previous 1.21.0 release. No new changes here.

v1.21.0

2 years ago
  • C functions janet_dobytes and janet_dostring will now enter the event loop if it is enabled.
  • Fix hashing regression - hash of negative 0 must be the same as positive 0 since they are equal.
  • The flycheck function no longer pollutes the module/cache
  • Fix quasiquote bug in compiler
  • Disallow use of cancel and resume on fibers scheduled or created with ev/go, as well as the root fiber.

v1.20.0

2 years ago

Add :missing-symbol hook to compile that will act as a catch-all macro for undefined symbols.

  • Add :redef dynamic binding that will allow users to redefine top-level bindings with late binding. This is intended for development use.
  • Fix a bug with reading from a stream returned by os/open on Windows and Linux.
  • Add :ppc64 as a detectable OS type.
  • Add & more support for destructuring in the match macro.
  • Add & more support for destructuring in all binding forms (def).