github janet-lang/janet v1.13.1
Janet 1.13.1

latest releases: v1.37.1, v1.37.0, v1.36.0...
4 years ago

This release brings lots of bug fixes, improvements, and new functions and macros. The largest change is the addition of the new ev/ module which brings evented IO to Janet's core. The evented IO can be used to interact with the net/ module, as well as with the native file system with os/open. The ev/ module is still in beta, so more functions may be added and interoperability with other parts of the system, including sub processes and threads, may come in future releases.

Besides the new ev/ module, 1.13.1 also brings improvements to pegs, module loading, and more.

Those embedding Janet or managing packages should also note that janetconf.h is also no longer needed to supplement janet.h when embedding or installing janet - it is inlined as part of the amalgamation process. janetconf.h is no longer part of the release files for Janet.

Changes:

  • Pretty printing a table with a prototype will look for :_name instead of :name
    in the prototype table to tag the output.
  • match macro implementation changed to be tail recursive.
  • Adds a :preload loader which allows one to manually put things into module/cache.
  • Add buffer/push function.
  • Backtick delimited strings and buffers are now reindented based on the column of the
    opening delimiter. Whitespace in columns to the left of the starting column is ignored unless
    there are non-space/non-newline characters in that region, in which case the old behavior is preserved.
  • Argument to (error) combinator in PEGs is now optional.
  • Add (line) and (column) combinators to PEGs to capture source line and column.
    This should make error reporting a bit easier.
  • Add merge-module to core.
  • During installation and release, merge janetconf.h into janet.h for easier install.
  • Add upscope special form.
  • os/execute and os/spawn can take streams for redirecting IO.
  • Add :parser and :read parameters to run-context.
  • Add os/open if ev is enabled.
  • Add os/pipe if ev is enabled.
  • Add janet_thread_current(void) to C API
  • Add integer parsing forms to pegs. This makes parsing many binary protocols easier.
  • Lots of updates to networking code - now can use epoll (or poll) on linux and IOCP on windows.
  • Add ev/ module. This exposes a fiber scheduler, queues, timeouts, and other functionality to users
    for single threaded cooperative scheduling and asynchronous IO.
  • Add net/accept-loop and net/listen. These functions break down net/server into it's essential parts
    and are more flexible. They also allow further improvements to these utility functions.
  • Various small bug fixes.

Don't miss a new janet release

NewReleases is sending notifications on new releases.