Skip to content

Releases: janet-lang/janet

Janet 1.0.0

01 Jul 20:17
Compare
Choose a tag to compare

First non-alpha release of Janet. This introduces a number of changes to the language, including
the propagate function, an improved meson build, a better parser API, a better os/execute API, the ability to marshal and unmarshal PEGs, and more.

Changelog

  • Add with macro for resource handling.
  • Add propagate function so we can "rethrow" signals after they are
    intercepted. This makes signals even more flexible.
  • Add JANET_NO_DOCSTRINGS and JANET_NO_SOURCEMAPS defines in janetconf.h
    for shrinking binary size.
    This seems to save about 50kB in most builds, so it's not usually worth it.
  • Update module system to allow relative imports. The :cur: pattern
    in module/expand-path will expand to the directory part of the current file, or
    whatever the value of (dyn :current-file) is. The :dir: pattern gets
    the directory part of the input path name.
  • Remove :native: pattern in module/paths.
  • Add module/expand-path
  • Remove module/*syspath* and module/*headerpath* in favor of dynamic
    bindings :syspath and :headerpath.
  • Compiled PEGs can now be marshaled and unmarshaled.
  • Change signature to parser/state
  • Add :until verb to loop.
  • Add :p flag to fiber/new.
  • Add file/{fdopen,fileno} functions.
  • Add parser/clone function.
  • Add optional argument to parser/where to set parser byte index.
  • Add optional env argument to all-bindings and all-dynamics.
  • Add scratch memory C API functions for auto-released memory on next gc.
    Scratch memory differs from normal GCed memory as it can also be freed normally
    for better performance.
  • Add API compatibility checking for modules. This will let native modules not load
    when the host program is not of a compatible version or configuration.
  • Change signature of os/execute to be much more flexible.

Janet 0.6.0

29 May 17:01
Compare
Choose a tag to compare

Hopefully last release before 1.0.0! This release brings a number of improvements since 0.5.0, including an improved build tool jpm for building native modules and other tasks, an improved windows installer, and more. See the Changelog for more details. The windows installer seems to be flagged by windows defender, but should work just find and I promise is not a trojan :).

  • file/close returns exit code when closing file opened with file/popen.
  • Add os/rename
  • Update windows installer to include tools like jpm.
  • Add jpm tool for building and managing projects.
  • Change interface to cook tool.
  • Add optional filters to module/paths to further refine import methods.
  • Add keyword arguments via &keys in parameter list.
  • Add -k flag for flychecking source.
  • Change signature to compile function.
  • Add module/loaders for custom loading functions.
  • Add external unification to match macro.
  • Add static library to main build.
  • Add janet/*headerpath* and change location of installed headers.
  • Let partition take strings.
  • Haiku OS support
  • Add string/trim, string/trimr, and string/triml.
  • Add dofile function.
  • Numbers require at least 1 significant digit.
  • file/read will return nil on end of file.
  • Fix various bugs.

Janet 0.5.0

09 May 18:04
Compare
Choose a tag to compare

Medium-sized update, with a number of improvements including dynamic scoping and some more debugging facilities. From the changelog:

  • Fix some bugs with buffers.
  • Add trace and untrace to the core library.
  • Add string/has-prefix? and string/has-suffix? to string module.
  • Add simple debugger to repl that activates on errors or debug signal
  • Remove *env* and *doc-width*.
  • Add fiber/getenv, fiber/setenv, and dyn, and setdyn.
  • Add support for dynamic bindings (via the dyn and setdyn functions).
  • Change signatures of some functions like eval which no longer takes
    an optional environment.
  • Add printf function
  • Make pp configurable with dynamic binding :pretty-format.
  • Remove the meta function.
  • Add with-dyns for blocks with dynamic bindings assigned.
  • Allow leading and trailing newlines in backtick-delimited string (long strings).
    These newlines will not be included in the actual string value.

v0.4.1

14 Apr 16:11
Compare
Choose a tag to compare

This version contains a number of updates and bug fixes. This biggest additions are the the int module, for native integer types that don't fit in a double precision number, and new functions in the os module.

Also, the repl is colorful now!

Check out the changelog for more information.

Version 0.4.0

08 Mar 15:03
Compare
Choose a tag to compare

0.4.0 release of Janet!

This release marks a big update with lots of changes to Janet, as you can see in the changelog! The most interesting are probably the addition of typed arrays and the ability to compile Janet to cross platform image files, which contain precompiled bytecode. Lots of bug fixes and smaller additions to the language, as well as the ability to create an amalgamated build for Janet. Attached are the two files janet.h and janet.c, which can be dropped into many projects to extend them with Janet scripting.

Janet should also start faster now, as the core library is precompiled to bytecode instead of being parsed and compile on startup.

The latest version of Janet is also a bit larger than previous version, and will now weigh in at around 300-400kB, depending on architecture, flags and OS. This footprint can be made smaller by disabling certain modules, like the peg module, typed array module, and assembler module.

0.3.0

27 Jan 02:48
Compare
Choose a tag to compare

Third main release of Janet!

This release brings a lot of functionality to Janet, not the least of which is the peg module, which
allows for powerful pattern matching. Check out the new and improved website at https://janet-lang.org, as well as the new documentation and API docs.

0.2.0

24 Dec 04:43
Compare
Choose a tag to compare

The Janet Programming Language.

Some minor updates to Janet, including some more core functions and macros and bundled API documentation.

0.1.0

09 Dec 00:56
Compare
Choose a tag to compare

The Janet Programming Language, first release!

Download prebuilt binaries for some systems here, or build from source. After downloading
the the artifact for your system, run janet simply by running the executable janet.exe on windows, and janet on other systems.