1
0
mirror of https://github.com/janet-lang/janet synced 2024-12-24 23:40:27 +00:00
janet/CHANGELOG.md

148 lines
6.6 KiB
Markdown
Raw Normal View History

2019-01-22 20:23:42 +00:00
# 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)`.
2019-07-27 03:47:42 +00:00
- Add `:linux` to platforms returned by `(os/which)`.
- Update jpm to build standalone executables. Use `declare-executable` for this.
2019-07-20 21:59:11 +00:00
- 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.
2019-07-08 23:15:14 +00:00
## 1.1.0 - 2019-07-08
- Change semantics of `-l` flag to be import rather than dofile.
2019-07-08 23:15:14 +00:00
- 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.
2019-07-01 19:47:03 +00:00
## 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.
2019-06-19 23:52:41 +00:00
- 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`.
2019-06-18 19:41:48 +00:00
- Compiled PEGs can now be marshaled and unmarshaled.
2019-06-18 02:46:38 +00:00
- Change signature to `parser/state`
- Add `:until` verb to loop.
2019-06-08 21:22:42 +00:00
- Add `:p` flag to `fiber/new`.
- Add `file/{fdopen,fileno}` functions.
- Add `parser/clone` function.
2019-06-03 14:55:26 +00:00
- Add optional argument to `parser/where` to set parser byte index.
- Add optional `env` argument to `all-bindings` and `all-dynamics`.
2019-06-02 03:52:01 +00:00
- 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.
2019-05-30 23:33:09 +00:00
- Change signature of `os/execute` to be much more flexible.
2019-05-29 16:19:39 +00:00
## 0.6.0 - 2019-05-29
2019-05-29 15:58:41 +00:00
- `file/close` returns exit code when closing file opened with `file/popen`.
- Add `os/rename`
2019-05-29 02:12:42 +00:00
- 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.
2019-05-24 21:13:35 +00:00
- 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.
2019-05-09 17:45:19 +00:00
## 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*`.
2019-04-16 19:48:53 +00:00
- Add `fiber/getenv`, `fiber/setenv`, and `dyn`, and `setdyn`.
- Add support for dynamic bindings (via the `dyn` and `setdyn` functions).
2019-04-16 19:48:53 +00:00
- 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.
2019-04-16 19:48:53 +00:00
2019-04-13 23:32:31 +00:00
## 0.4.1 - 2019-04-14
- Squash some bugs
- Peg patterns can now make captures in any position in a grammar.
2019-03-24 19:11:00 +00:00
- Add color to repl output
2019-03-08 15:17:57 +00:00
- Add array/remove function
2019-03-24 02:16:12 +00:00
- 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
2019-03-29 03:22:58 +00:00
- Add functions to `os` module.
2019-03-08 15:17:57 +00:00
2019-03-08 05:56:19 +00:00
## 0.4.0 - 2019-03-08
2019-03-08 05:54:53 +00:00
- Fix a number of smaller bugs
- Added :export option to import and require
- Added typed arrays
2019-02-22 01:40:13 +00:00
- Remove `callable?`.
2019-03-08 05:54:53 +00:00
- 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.
2019-02-17 02:57:47 +00:00
- Add `-c` flag to main client to allow compiling Janet modules to images.
2019-02-16 22:55:08 +00:00
- 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.
2019-02-08 18:45:04 +00:00
- Add partition function to core library.
- Pre-compile core library into an image for faster startup.
2019-02-06 00:49:10 +00:00
- Add methods to parser values that mirror the api.
2019-02-06 00:43:41 +00:00
- 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.
2019-01-31 19:48:28 +00:00
- Add parser/insert to modify parser state programmatically
2019-01-31 15:09:34 +00:00
- 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
2019-05-30 02:21:06 +00:00
## 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.
2019-01-22 20:23:42 +00:00
- Added this changelog.
- Added peg module (Parsing Expression Grammars)
- Move hand written documentation into website repository.