mirror of
https://github.com/janet-lang/janet
synced 2025-01-12 00:20:26 +00:00
44e752d737
These are similar to the function literals from Clojure (also Fennel), and should make short functions for maps, filters, etc. easier to write.
148 lines
6.6 KiB
Markdown
148 lines
6.6 KiB
Markdown
# Changelog
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
## Unreleased
|
|
- Add function literal short-hand via `|` reader macro, which maps to the
|
|
`short-fn` macro.
|
|
- Add `int?` and `nat?` functions to the core.
|
|
- 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.
|