mirror of
https://github.com/janet-lang/janet
synced 2024-12-23 15:00:27 +00:00
145 lines
6.4 KiB
Markdown
145 lines
6.4 KiB
Markdown
# Changelog
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
## Unreleased
|
|
- Add `(dyn :executable)` at top level to get what used to be
|
|
`(process/args 0)`.
|
|
- Add `:linux` to platforms returned by `(os/which)`.
|
|
- Update jpm to build standalone executables. Use `declare-executable` for this.
|
|
- Add `use` macro.
|
|
- Remove `process/args` in favor of `(dyn :args)`.
|
|
- Fix bug with Nanbox implementation allowing users to created
|
|
custom values of any type with typed array and marshal modules, which
|
|
was unsafe.
|
|
- Add `janet_wrap_number_safe` to API, for converting numbers to Janets
|
|
where the number could be any 64 bit, user provided bit pattern. Certain
|
|
NaN values (which a machine will never generate as a result of a floating
|
|
point operation) are guarded against and converted to a default NaN value.
|
|
|
|
## 1.1.0 - 2019-07-08
|
|
- Change semantics of `-l` flag to be import rather than dofile.
|
|
- Fix compiler regression in top level defs with destructuring.
|
|
- Add `table/clone`.
|
|
- Improve `jpm` tool with git and dependency capabilities, as well as better
|
|
module uninstalls.
|
|
|
|
## 1.0.0 - 2019-07-01
|
|
- 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.
|
|
|
|
## 0.6.0 - 2019-05-29
|
|
- `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.
|
|
|
|
## 0.5.0 - 2019-05-09
|
|
- 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.
|
|
|
|
## 0.4.1 - 2019-04-14
|
|
- Squash some bugs
|
|
- Peg patterns can now make captures in any position in a grammar.
|
|
- Add color to repl output
|
|
- Add array/remove function
|
|
- Add meson build support
|
|
- Add int module for int types
|
|
- Add meson build option
|
|
- Add (break) special form and improve loop macro
|
|
- Allow abstract types to specify custom tostring method
|
|
- Extend C API for marshalling abstract types and other values
|
|
- Add functions to `os` module.
|
|
|
|
## 0.4.0 - 2019-03-08
|
|
- Fix a number of smaller bugs
|
|
- Added :export option to import and require
|
|
- Added typed arrays
|
|
- Remove `callable?`.
|
|
- Remove `tuple/append` and `tuple/prepend`, which may have seemed like `O(1)`
|
|
operations. Instead, use the `splice` special to extend tuples.
|
|
- Add `-m` flag to main client to allow specifying where to load
|
|
system modules from.
|
|
- Add `-c` flag to main client to allow compiling Janet modules to images.
|
|
- Add `string/format` and `buffer/format`.
|
|
- Remove `string/pretty` and `string/number`.
|
|
- `make-image` function creates pre compiled images for janet. These images
|
|
link to the core library. They can be loaded via require or manually via
|
|
`load-image`.
|
|
- Add bracketed tuples as tuple constructor.
|
|
- Add partition function to core library.
|
|
- Pre-compile core library into an image for faster startup.
|
|
- Add methods to parser values that mirror the api.
|
|
- Add janet\_getmethod to CAPI for easier use of method like syntax.
|
|
- Add get/set to abstract types to allow them to behave more
|
|
like objects with methods.
|
|
- Add parser/insert to modify parser state programmatically
|
|
- Add debug/stacktrace for easy, pretty stacktraces
|
|
- Remove the status-pp function
|
|
- Update API to run-context to be much more sane
|
|
- Add :lflags option to cook/make-native
|
|
- Disallow NaNs as table or struct keys
|
|
- Update module resolution paths and format
|
|
|
|
## 0.3.0 - 2019-01-26
|
|
- Add amalgamated build to janet for easier embedding.
|
|
- Add os/date function
|
|
- Add slurp and spit to core library.
|
|
- Added this changelog.
|
|
- Added peg module (Parsing Expression Grammars)
|
|
- Move hand written documentation into website repository.
|