2019-01-22 20:23:42 +00:00
|
|
|
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
2023-04-24 14:19:15 +00:00
|
|
|
## Unreleased - ???
|
2023-05-06 21:33:45 +00:00
|
|
|
- Support the `NO_COLOR` environment variable to turn off VT100 color codes in repl (and in scripts).
|
2023-05-06 17:08:07 +00:00
|
|
|
- Disallow using `(splice x)` in contexts where it doesn't make sense rather than silently coercing to `x`.
|
2023-04-24 14:19:15 +00:00
|
|
|
- Change the names of `:user8` and `:user9` sigals to `:interrupt` and `:await`
|
|
|
|
- Change the names of `:user8` and `:user9` fiber statuses to `:interrupted` and `:suspended`.
|
|
|
|
- Add `ev/all-tasks` to see all currently suspended fibers.
|
|
|
|
- Add `keep-syntax` and `keep-syntax!` functions to make writing macros easier.
|
|
|
|
|
2023-03-05 15:48:25 +00:00
|
|
|
## 1.27.0 - 2023-03-05
|
2023-03-04 00:24:02 +00:00
|
|
|
- Change semantics around bracket tuples to no longer be equal to regular tuples.
|
|
|
|
- Add `index` argument to `ffi/write` for symmetry with `ffi/read`.
|
2023-02-12 17:19:09 +00:00
|
|
|
- Add `buffer/push-at`
|
2023-02-12 17:07:45 +00:00
|
|
|
- Add `ffi/pointer-buffer` to convert pointers to buffers the cannot be reallocated. This
|
|
|
|
allows easier manipulation of FFI memory, memory mapped files, and buffer memory shared between threads.
|
2023-02-06 18:31:49 +00:00
|
|
|
- Calling `ev/cancel` on a fiber waiting on `ev/gather` will correctly
|
|
|
|
cancel the child fibers.
|
|
|
|
- Add `(sandbox ...)` function to core for permission based security. Also add `janet_sandbox` to C API.
|
|
|
|
The sandbox allows limiting access to the file system, network, ffi, and OS resources at runtime.
|
|
|
|
- Add `(.locals)` function to debugger to see currently bound local symbols.
|
|
|
|
- Track symbol -> slot mapping so debugger can get symbolic information. This exposes local bindings
|
|
|
|
in `debug/stack` and `disasm`.
|
|
|
|
- Add `os/compiler` to detect what host compiler was used to compile the interpreter
|
|
|
|
- Add support for mingw and cygwin builds (mingw support also added in jpm).
|
2023-01-21 15:36:03 +00:00
|
|
|
|
2023-01-07 21:08:40 +00:00
|
|
|
## 1.26.0 - 2023-01-07
|
2022-12-16 03:38:36 +00:00
|
|
|
- Add `ffi/malloc` and `ffi/free`. Useful as tools of last resort.
|
2022-12-04 16:27:28 +00:00
|
|
|
- Add `ffi/jitfn` to allow calling function pointers generated at runtime from machine code.
|
|
|
|
Bring your own assembler, though.
|
2022-11-10 22:32:54 +00:00
|
|
|
- Channels can now be marshalled. Pending state is not saved, only items in the channel.
|
2022-11-05 21:38:52 +00:00
|
|
|
- Use the new `.length` function pointer on abstract types for lengths. Adding
|
|
|
|
a `length` method will still work as well.
|
2022-12-04 16:27:28 +00:00
|
|
|
- Support byte views on abstract types with the `.bytes` function pointer.
|
2022-11-05 16:33:19 +00:00
|
|
|
- Add the `u` format specifier to printf family functions.
|
|
|
|
- Allow printing 64 integer types in `printf` and `string/format` family functions.
|
2022-11-04 16:15:48 +00:00
|
|
|
- Allow importing modules from custom directories more easily with the `@` prefix
|
|
|
|
to module paths. For example, if there is a dynamic binding :custom-modules that
|
|
|
|
is a file system path to a directory of modules, import from that directory with
|
|
|
|
`(import @custom-modules/mymod)`.
|
2022-10-30 14:57:40 +00:00
|
|
|
- Fix error message bug in FFI library.
|
|
|
|
|
2022-10-29 16:58:29 +00:00
|
|
|
## 1.25.1 - 2022-10-29
|
2022-10-25 01:32:02 +00:00
|
|
|
- Add `memcmp` function to core library.
|
|
|
|
- Fix bug in `os/open` with `:rw` permissions not correct on Linux.
|
2022-10-24 14:49:51 +00:00
|
|
|
- Support config.mk for more easily configuring the Makefile.
|
|
|
|
|
2022-10-10 23:24:48 +00:00
|
|
|
## 1.25.0 - 2022-10-10
|
2022-10-10 23:23:15 +00:00
|
|
|
- Windows FFI fixes.
|
|
|
|
- Fix PEG `if-not` combinator with captures in the condition
|
|
|
|
- Fix bug with `os/date` with nil first argument
|
|
|
|
- Fix bug with `net/accept` on Linux that could leak file descriptors to subprocesses
|
2022-10-10 23:38:24 +00:00
|
|
|
- Reduce number of hash collisions from pointer hashing
|
2022-10-10 23:23:15 +00:00
|
|
|
- Add optional parameter to `marshal` to skip cycle checking code
|
2022-08-26 18:15:30 +00:00
|
|
|
|
2022-08-24 18:23:53 +00:00
|
|
|
## 1.24.1 - 2022-08-24
|
2022-08-16 17:20:38 +00:00
|
|
|
- Fix FFI bug on Linux/Posix
|
2022-08-24 18:23:53 +00:00
|
|
|
- Improve parse error messages for bad delimiters.
|
|
|
|
- Add optional `name` parameter to the `short-fn` macro.
|
2022-08-16 17:20:38 +00:00
|
|
|
|
2022-08-15 01:19:39 +00:00
|
|
|
## 1.24.0 - 2022-08-14
|
2022-08-14 20:40:09 +00:00
|
|
|
- Add FFI support to 64-bit windows compiled with MSVC
|
2022-07-20 01:05:21 +00:00
|
|
|
- Don't process shared object names passed to dlopen.
|
2022-08-16 17:20:38 +00:00
|
|
|
- Add better support for windows console in the default shell.c for auto-completion and
|
2022-07-09 16:39:06 +00:00
|
|
|
other shell-like input features.
|
2022-06-29 03:51:41 +00:00
|
|
|
- Improve default error message from `assert`.
|
|
|
|
- Add the `tabseq` macro for simpler table comprehensions.
|
2022-06-25 23:15:58 +00:00
|
|
|
- Allow setting `(dyn :task-id)` in fibers to improve context in supervisor messages. Prior to
|
2022-08-16 17:20:38 +00:00
|
|
|
this change, supervisor messages over threaded channels would be from ambiguous threads/fibers.
|
2022-06-25 23:15:58 +00:00
|
|
|
|
2022-06-20 15:49:25 +00:00
|
|
|
## 1.23.0 - 2022-06-20
|
2022-06-19 17:42:44 +00:00
|
|
|
- Add experimental `ffi/` module for interfacing with dynamic libraries and raw function pointers. Only available
|
|
|
|
on 64 bit linux, mac, and bsd systems.
|
2022-06-12 18:50:17 +00:00
|
|
|
- Allow using `&named` in function prototypes for named arguments. This is a more ergonomic
|
|
|
|
variant of `&keys` that isn't as redundant, more self documenting, and allows extension to
|
|
|
|
things like default arguments.
|
2022-06-17 22:24:52 +00:00
|
|
|
- Add `delay` macro for lazy evaluate-and-save thunks.
|
|
|
|
- Remove pthread.h from janet.h for easier includes.
|
2022-06-10 20:38:30 +00:00
|
|
|
- Add `debugger` - an easy to use debugger function that just takes a fiber.
|
2022-06-10 20:23:15 +00:00
|
|
|
- `dofile` will now start a debugger on errors if the environment it is passed has `:debug` set.
|
|
|
|
- Add `debugger-on-status` function, which can be passed to `run-context` to start a debugger on
|
|
|
|
abnormal fiber signals.
|
|
|
|
- Allow running scripts with the `-d` flag to use the built-in debugger on errors and breakpoints.
|
2022-06-05 22:40:50 +00:00
|
|
|
- Add mutexes (locks) and reader-writer locks to ev module for thread coordination.
|
2022-05-28 23:43:11 +00:00
|
|
|
- Add `parse-all` as a generalization of the `parse` function.
|
|
|
|
- Add `os/cpu-count` to get the number of available processors on a machine
|
2022-05-28 17:19:25 +00:00
|
|
|
|
2022-05-09 15:19:40 +00:00
|
|
|
## 1.22.0 - 2022-05-09
|
|
|
|
- Prohibit negative size argument to `table/new`.
|
2022-05-06 00:23:41 +00:00
|
|
|
- Add `module/value`.
|
2022-05-05 23:32:25 +00:00
|
|
|
- Remove `file/popen`. Use `os/spawn` with the `:pipe` options instead.
|
2022-05-05 23:24:53 +00:00
|
|
|
- Fix bug in peg `thru` and `to` combinators.
|
2022-04-23 04:12:03 +00:00
|
|
|
- Fix printing issue in `doc` macro.
|
|
|
|
- Numerous updates to function docstrings
|
|
|
|
- Add `defdyn` aliases for various dynamic bindings used in core.
|
|
|
|
- Install `janet.h` symlink to make Janet native libraries and applications
|
|
|
|
easier to build without `jpm`.
|
|
|
|
|
2022-04-02 02:58:22 +00:00
|
|
|
## 1.21.2 - 2022-04-01
|
2022-03-21 22:47:37 +00:00
|
|
|
- C functions `janet_dobytes` and `janet_dostring` will now enter the event loop if it is enabled.
|
|
|
|
- Fix hashing regression - hash of negative 0 must be the same as positive 0 since they are equal.
|
2022-02-12 17:04:24 +00:00
|
|
|
- The `flycheck` function no longer pollutes the module/cache
|
2022-02-10 04:31:27 +00:00
|
|
|
- Fix quasiquote bug in compiler
|
|
|
|
- Disallow use of `cancel` and `resume` on fibers scheduled or created with `ev/go`, as well as the root
|
|
|
|
fiber.
|
|
|
|
|
2022-01-28 03:38:07 +00:00
|
|
|
## 1.20.0 - 2022-1-27
|
|
|
|
- Add `:missing-symbol` hook to `compile` that will act as a catch-all macro for undefined symbols.
|
2022-01-23 01:38:08 +00:00
|
|
|
- Add `:redef` dynamic binding that will allow users to redefine top-level bindings with late binding. This
|
|
|
|
is intended for development use.
|
|
|
|
- Fix a bug with reading from a stream returned by `os/open` on Windows and Linux.
|
|
|
|
- Add `:ppc64` as a detectable OS type.
|
|
|
|
- Add `& more` support for destructuring in the match macro.
|
|
|
|
- Add `& more` support for destructuring in all binding forms (`def`).
|
|
|
|
|
2021-12-06 23:25:35 +00:00
|
|
|
## 1.19.2 - 2021-12-06
|
|
|
|
- Fix bug with missing status lines in some stack traces.
|
|
|
|
- Update hash function to have better statistical properties.
|
2021-12-05 22:31:18 +00:00
|
|
|
|
2021-12-04 19:34:41 +00:00
|
|
|
## 1.19.1 - 2021-12-04
|
2021-12-05 22:31:18 +00:00
|
|
|
- Add an optional `prefix` parameter to `debug/stacktrace` to allow printing prettier error messages.
|
2021-12-04 19:28:35 +00:00
|
|
|
- Remove appveyor for CI pipeline
|
2021-12-04 17:11:57 +00:00
|
|
|
- Fixed a bug that prevented sending threaded abstracts over threaded channels.
|
|
|
|
- Fix bug in the `map` function with arity at least 3.
|
|
|
|
|
2021-11-27 16:00:36 +00:00
|
|
|
## 1.19.0 - 2021-11-27
|
|
|
|
- Add `math/log-gamma` to replace `math/gamma`, and change `math/gamma` to be the expected gamma function.
|
|
|
|
- Fix leaking file-descriptors in os/spawn and os/execute.
|
2021-11-13 02:04:34 +00:00
|
|
|
- Ctrl-C will now raise SIGINT.
|
2021-11-08 21:33:11 +00:00
|
|
|
- Allow quoted literals in the `match` macro to behave as expected in patterns.
|
|
|
|
- Fix windows net related bug for TCP servers.
|
2021-10-30 19:41:01 +00:00
|
|
|
- Allow evaluating ev streams with dofile.
|
|
|
|
- Fix `ev` related bug with operations on already closed file descriptors.
|
|
|
|
- Add struct and table agnostic `getproto` function.
|
|
|
|
- Add a number of functions related to structs.
|
|
|
|
- Add prototypes to structs. Structs can now inherit from other structs, just like tables.
|
|
|
|
- Create a struct with a prototype with `struct/with-proto`.
|
2021-10-21 00:57:02 +00:00
|
|
|
- Deadlocked channels will no longer exit early - instead they will hang, which is more intuitive.
|
|
|
|
|
2021-10-16 20:05:48 +00:00
|
|
|
## 1.18.1 - 2021-10-16
|
|
|
|
- Fix some documentation typos
|
|
|
|
- Fix - Set pipes passed to subprocess to blocking mode.
|
|
|
|
- Fix `-r` switch in repl.
|
|
|
|
|
2021-10-10 14:27:31 +00:00
|
|
|
## 1.18.0 - 2021-10-10
|
|
|
|
- Allow `ev/cancel` to work on already scheduled fibers.
|
|
|
|
- Fix bugs with ev/ module.
|
|
|
|
- Add optional `base` argument to scan-number
|
2021-09-20 00:45:21 +00:00
|
|
|
- Add `-i` flag to janet binary to make it easier to run image files from the command line
|
2021-09-19 19:18:49 +00:00
|
|
|
- Remove `thread/` module.
|
2021-09-19 18:02:16 +00:00
|
|
|
- Add `(number ...)` pattern to peg for more efficient number parsing using Janet's
|
|
|
|
scan-number function without immediate string creation.
|
|
|
|
|
2021-09-18 18:42:26 +00:00
|
|
|
## 1.17.2 - 2021-09-18
|
2021-09-18 18:40:32 +00:00
|
|
|
- Remove include of windows.h from janet.h. This caused issues on certain projects.
|
2021-09-18 17:38:02 +00:00
|
|
|
- Fix formatting in doc-format to better handle special characters in signatures.
|
2021-09-17 21:59:50 +00:00
|
|
|
- Fix some marshalling bugs.
|
|
|
|
- Add optional Makefile target to install jpm as well.
|
2021-09-18 17:38:02 +00:00
|
|
|
- Supervisor channels in threads will no longer include a wasteful copy of the fiber in every
|
2021-08-31 03:06:28 +00:00
|
|
|
message across a thread.
|
2021-09-19 05:16:08 +00:00
|
|
|
- Allow passing a closure to `ev/thread` as well as a whole fiber.
|
2021-08-31 03:24:34 +00:00
|
|
|
- Allow passing a closure directly to `ev/go` to spawn fibers on the event loop.
|
2021-08-31 03:06:28 +00:00
|
|
|
|
2021-08-29 16:29:09 +00:00
|
|
|
## 1.17.1 - 2021-08-29
|
|
|
|
- Fix docstring typos
|
2021-09-18 17:38:02 +00:00
|
|
|
- Add `make install-jpm-git` to make jpm co-install simpler if using the Makefile.
|
|
|
|
- Fix bugs with starting ev/threads and fiber marshaling.
|
2021-08-29 16:29:09 +00:00
|
|
|
|
2021-08-21 17:07:28 +00:00
|
|
|
## 1.17.0 - 2021-08-21
|
2021-08-21 18:12:19 +00:00
|
|
|
- Add the `-E` flag for one-liners with the `short-fn` syntax for argument passing.
|
2021-08-20 22:57:23 +00:00
|
|
|
- Add support for threaded abstract types. Threaded abstract types can easily be shared between threads.
|
2021-08-15 22:36:47 +00:00
|
|
|
- Deprecate the `thread` library. Use threaded channels and ev instead.
|
|
|
|
- Channels can now be marshalled.
|
|
|
|
- Add the ability to close channels with `ev/chan-close` (or `:close`).
|
|
|
|
- Add threaded channels with `ev/thread-chan`.
|
2021-07-25 18:08:17 +00:00
|
|
|
- Add `JANET_FN` and `JANET_REG` macros to more easily define C functions that export their source mapping information.
|
|
|
|
- Add `janet_interpreter_interupt` and `janet_loop1_interrupt` to interrupt the interpreter while running.
|
2021-07-22 00:58:42 +00:00
|
|
|
- Add `table/clear`
|
2021-07-17 20:13:28 +00:00
|
|
|
- Add build option to disable the threading library without disabling all threads.
|
2021-07-17 02:10:02 +00:00
|
|
|
- Remove JPM from the main Janet distribution. Instead, JPM must be installed
|
2021-07-17 02:05:42 +00:00
|
|
|
separately like any other package.
|
2021-06-27 15:54:03 +00:00
|
|
|
- Fix issue with `ev/go` when called with an initial value and supervisor.
|
2021-07-17 02:05:42 +00:00
|
|
|
- Add the C API functions `janet_vm_save` and `janet_vm_load` to allow
|
|
|
|
saving and restoring the entire VM state.
|
2021-06-27 15:54:03 +00:00
|
|
|
|
2021-06-10 00:08:24 +00:00
|
|
|
## 1.16.1 - 2021-06-09
|
2021-05-31 21:51:14 +00:00
|
|
|
- Add `maclintf` - a utility for adding linting messages when inside macros.
|
|
|
|
- Print source code of offending line on compiler warnings and errors.
|
|
|
|
- Fix some issues with linting and re-add missing `make docs`.
|
|
|
|
- Allow controlling linting with dynamic bindings `:lint-warn`, `:lint-error`, and `:lint-levels`.
|
|
|
|
- Add `-w` and `-x` command line flags to the `janet` binary to set linting thresholds.
|
|
|
|
linting thresholds are as follows:
|
|
|
|
- :none - will never be trigger.
|
|
|
|
- :relaxed - will only trigger on `:relaxed` lints.
|
|
|
|
- :normal - will trigger on `:relaxed` and `:normal` lints.
|
|
|
|
- :strict - will trigger on `:strict`, `:normal`, and `:relaxed` lints. This will catch the most issues
|
|
|
|
but can be distracting.
|
|
|
|
|
2021-05-30 17:15:56 +00:00
|
|
|
## 1.16.0 - 2021-05-30
|
|
|
|
- Add color documentation to the `doc` macro - enable/disable with `(dyn :doc-color)`.
|
|
|
|
- Remove simpler HTML docs from distribution - use website or built-in documentation instead.
|
|
|
|
- Add compiler warnings and deprecation levels.
|
2021-05-19 23:18:00 +00:00
|
|
|
- Add `as-macro` to make using macros within quasiquote easier to do hygienically.
|
2021-04-29 19:04:18 +00:00
|
|
|
- Expose `JANET_OUT_OF_MEMORY` as part of the Janet API.
|
2021-06-08 16:22:54 +00:00
|
|
|
- Add `native-deps` option to `declare-native` in `jpm`. This lets native libraries link to other
|
2021-04-29 18:11:46 +00:00
|
|
|
native libraries when building with jpm.
|
2021-04-29 17:33:49 +00:00
|
|
|
- Remove the `tarray` module. The functionality of typed arrays will be moved to an external module
|
|
|
|
that can be installed via `jpm`.
|
2021-04-29 17:06:24 +00:00
|
|
|
- Add `from-pairs` to core.
|
2021-05-26 15:07:11 +00:00
|
|
|
- Add `JPM_OS_WHICH` environment variable to jpm to allow changing auto-detection behavior.
|
|
|
|
- The flychecker will consider any top-level calls of functions that start with `define-` to
|
|
|
|
be safe to execute and execute them. This allows certain patterns (like spork/path) to be
|
|
|
|
better processed by the flychecker.
|
2021-04-29 17:06:24 +00:00
|
|
|
|
2021-04-25 19:00:16 +00:00
|
|
|
## 1.15.5 - 2021-04-25
|
2021-04-25 18:38:24 +00:00
|
|
|
- Add `declare-headers` to jpm.
|
|
|
|
- Fix error using unix pipes on BSDs.
|
2021-03-26 20:36:50 +00:00
|
|
|
- Support .cc and .cxx extensions in `jpm` for C++ code.
|
|
|
|
- Change networking code to not create as many HUP errors.
|
|
|
|
- Add `net/shutdown` to close sockets in one direction without hang ups.
|
2021-03-19 20:41:34 +00:00
|
|
|
- Update code for printing the debug repl
|
|
|
|
|
2021-03-17 01:12:33 +00:00
|
|
|
## 1.15.4 - 2021-03-16
|
2021-03-13 23:43:19 +00:00
|
|
|
- Increase default nesting depth of pretty printing to `JANET_RECURSION_GUARD`
|
|
|
|
- Update meson.build
|
|
|
|
- Add option to automatically add shebang line in installed scripts with `jpm`.
|
|
|
|
- Add `partition-by` and `group-by` to the core.
|
2021-03-14 01:22:47 +00:00
|
|
|
- Sort keys in pretty printing output.
|
2021-03-13 23:43:19 +00:00
|
|
|
|
2021-02-28 19:02:45 +00:00
|
|
|
## 1.15.3 - 2021-02-28
|
|
|
|
- Fix a fiber bug that occured in deeply nested fibers
|
|
|
|
- Add `unref` combinator to pegs.
|
|
|
|
- Small docstring changes.
|
|
|
|
|
2021-02-15 16:27:19 +00:00
|
|
|
## 1.15.2 - 2021-02-15
|
2021-02-15 16:19:24 +00:00
|
|
|
- Fix bug in windows version of `os/spawn` and `os/execute` with setting environment variables.
|
|
|
|
- Fix documentation typos.
|
2021-02-10 02:32:09 +00:00
|
|
|
- Fix peg integer reading combinators when used with capture tags.
|
|
|
|
|
2021-02-09 00:10:46 +00:00
|
|
|
## 1.15.0 - 2021-02-08
|
|
|
|
- Fix `gtim` and `ltim` bytecode instructions on non-integer values.
|
|
|
|
- Clean up output of flychecking to be the same as the repl.
|
|
|
|
- Change behavior of `debug/stacktrace` with a nil error value.
|
|
|
|
- Add optional argument to `parser/produce`.
|
|
|
|
- Add `no-core` option to creating standalone binaries to make execution faster.
|
2021-01-30 17:33:15 +00:00
|
|
|
- Fix bug where a buffer overflow could be confused with an out of memory error.
|
|
|
|
- Change error output to `file:line:column: message`. Column is in bytes - tabs
|
|
|
|
are considered to have width 1 (instead of 8).
|
|
|
|
|
2021-01-23 20:48:36 +00:00
|
|
|
## 1.14.2 - 2021-01-23
|
|
|
|
- Allow `JANET_PROFILE` env variable to load a profile before loading the repl.
|
|
|
|
- Update `tracev` macro to allow `def` and `var` inside to work as expected.
|
2021-01-23 19:54:02 +00:00
|
|
|
- Use `(dyn :peg-grammar)` for passing a default grammar to `peg/compile` instead of loading
|
|
|
|
`default-peg-grammar` directly from the root environment.
|
2021-01-22 18:55:38 +00:00
|
|
|
- Add `ev/thread` for combining threading with the event loop.
|
|
|
|
- Add `ev/do-thread` to make `ev/thread` easier to use.
|
|
|
|
- Automatically set supervisor channel in `net/accept-loop` and `net/server` correctly.
|
|
|
|
|
2021-01-18 17:43:53 +00:00
|
|
|
## 1.14.1 - 2021-01-18
|
2021-01-12 02:30:24 +00:00
|
|
|
- Add `doc-of` for reverse documentation lookup.
|
2021-01-17 00:29:23 +00:00
|
|
|
- Add `ev/give-supervsior` to send a message to the supervising channel.
|
2021-01-07 05:25:00 +00:00
|
|
|
- Add `ev/gather` and `chan` argument to `ev/go`. This new argument allows "supervisor channels"
|
|
|
|
for fibers to enable structured concurrency.
|
|
|
|
- Make `-k` flag work on stdin if no files are given.
|
2021-01-06 23:27:17 +00:00
|
|
|
- Add `flycheck` function to core.
|
2021-01-06 01:51:00 +00:00
|
|
|
- Make `backmatch` and `backref` more expressive in pegs.
|
|
|
|
- Fix buggy `string/split`.
|
2021-01-03 22:32:50 +00:00
|
|
|
- Add `fiber/last-value` to get the value that was last yielded, errored, or signaled
|
|
|
|
by a fiber.
|
|
|
|
- Remove `:generate` verb from `loop` macros. Instead, use the `:in` verb
|
|
|
|
which will now work on fibers as well as other data structures.
|
2021-01-03 22:30:43 +00:00
|
|
|
- Define `next`, `get`, and `in` for fibers. This lets
|
|
|
|
`each`, `map`, and similar iteration macros can now iterate over fibers.
|
|
|
|
- Remove macro `eachy`, which can be replaced by `each`.
|
2021-01-03 15:32:59 +00:00
|
|
|
- Add `dflt` argument to find-index.
|
2020-12-30 16:22:45 +00:00
|
|
|
- Deprecate `file/popen` in favor of `os/spawn`.
|
2020-12-30 02:37:59 +00:00
|
|
|
- Add `:all` keyword to `ev/read` and `net/read` to make them more like `file/read`. However, we
|
|
|
|
do not provide any `:line` option as that requires buffering.
|
2020-12-29 22:20:37 +00:00
|
|
|
- Change repl behavior to make Ctrl-C raise SIGINT on posix. The old behavior for Ctrl-C,
|
|
|
|
to clear the current line buffer, has been moved to Ctrl-Q.
|
2020-12-26 21:38:04 +00:00
|
|
|
- Importing modules that start with `/` is now the only way to import from project root.
|
2021-01-03 15:32:59 +00:00
|
|
|
Before, this would import from / on disk. Previous imports that did not start with `.` or `/`
|
|
|
|
are now unambiguously importing from the syspath, instead of checking both the syspath and
|
|
|
|
the project root. This is backwards incompatible and dependencies should be updated for this.
|
2020-12-26 21:38:04 +00:00
|
|
|
- Change hash function for numbers.
|
2020-12-14 14:23:06 +00:00
|
|
|
- Improve error handling of `dofile`.
|
2021-01-17 00:29:23 +00:00
|
|
|
- Bug fixes in networking and subprocess code.
|
|
|
|
- Use markdown formatting in more places for docstrings.
|
2020-12-14 14:23:06 +00:00
|
|
|
|
2020-12-13 17:59:52 +00:00
|
|
|
## 1.13.1 - 2020-12-13
|
2020-12-12 00:28:09 +00:00
|
|
|
- Pretty printing a table with a prototype will look for `:_name` instead of `:name`
|
|
|
|
in the prototype table to tag the output.
|
2020-12-13 16:55:15 +00:00
|
|
|
- `match` macro implementation changed to be tail recursive.
|
2020-12-07 03:05:16 +00:00
|
|
|
- Adds a :preload loader which allows one to manually put things into `module/cache`.
|
2020-12-05 16:36:27 +00:00
|
|
|
- Add `buffer/push` function.
|
2020-11-27 00:57:24 +00:00
|
|
|
- Backtick delimited strings and buffers are now reindented based on the column of the
|
2020-12-13 16:55:15 +00:00
|
|
|
opening delimiter. Whitespace in columns to the left of the starting column is ignored unless
|
2020-11-27 00:57:24 +00:00
|
|
|
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.
|
2020-11-27 06:16:54 +00:00
|
|
|
- Add `merge-module` to core.
|
2020-11-17 15:48:31 +00:00
|
|
|
- During installation and release, merge janetconf.h into janet.h for easier install.
|
2020-11-16 22:42:09 +00:00
|
|
|
- Add `upscope` special form.
|
2020-11-15 21:34:32 +00:00
|
|
|
- `os/execute` and `os/spawn` can take streams for redirecting IO.
|
2020-12-02 08:52:29 +00:00
|
|
|
- Add `:parser` and `:read` parameters to `run-context`.
|
2020-11-15 15:56:19 +00:00
|
|
|
- Add `os/open` if ev is enabled.
|
|
|
|
- Add `os/pipe` if ev is enabled.
|
2020-11-13 00:42:41 +00:00
|
|
|
- Add `janet_thread_current(void)` to C API
|
2020-09-27 17:18:12 +00:00
|
|
|
- Add integer parsing forms to pegs. This makes parsing many binary protocols easier.
|
2020-11-09 17:24:28 +00:00
|
|
|
- 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
|
2020-12-13 16:55:15 +00:00
|
|
|
for single threaded cooperative scheduling and asynchronous IO.
|
2020-11-09 17:24:28 +00:00
|
|
|
- Add `net/accept-loop` and `net/listen`. These functions break down `net/server` into it's essential parts
|
2020-12-13 16:55:15 +00:00
|
|
|
and are more flexible. They also allow further improvements to these utility functions.
|
|
|
|
- Various small bug fixes.
|
2020-09-27 17:18:12 +00:00
|
|
|
|
2020-09-20 17:03:59 +00:00
|
|
|
## 1.12.2 - 2020-09-20
|
|
|
|
- Add janet\_try and janet\_restore to C API.
|
2020-09-19 21:54:56 +00:00
|
|
|
- Fix `os/execute` regression on windows.
|
2020-09-13 16:06:49 +00:00
|
|
|
- Add :pipe option to `os/spawn`.
|
|
|
|
- Fix docstring typos.
|
2020-09-12 14:38:29 +00:00
|
|
|
|
2020-09-07 21:10:33 +00:00
|
|
|
## 1.12.1 - 2020-09-07
|
2020-09-07 20:28:46 +00:00
|
|
|
- Make `zero?`, `one?`, `pos?`, and `neg?` polymorphic.
|
2020-09-06 01:23:55 +00:00
|
|
|
- Add C++ support to jpm and improve C++ interop in janet.h.
|
|
|
|
- Add `%t` formatter to `printf`, `string/format`, and other formatter functions.
|
2020-09-04 13:09:05 +00:00
|
|
|
- Expose `janet_cfuns_prefix` in C API.
|
2020-09-02 02:36:49 +00:00
|
|
|
- Add `os/proc-wait` and `os/proc-kill` for interacting with processes.
|
2020-08-29 22:36:14 +00:00
|
|
|
- Add `janet_getjfile` to C API.
|
2020-09-04 13:09:05 +00:00
|
|
|
- Allow redirection of stdin, stdout, and stderr by passing keywords in the env table in `os/spawn` and `os/execute`.
|
|
|
|
- Add `os/spawn` to get a core/process back instead of an exit code as in `os/execute`.
|
2020-09-02 02:36:49 +00:00
|
|
|
When called like this, `os/execute` returns immediately.
|
2020-08-29 15:27:32 +00:00
|
|
|
- Add `:x` flag to os/execute to raise error when exit code is non-zero.
|
2020-08-29 14:22:10 +00:00
|
|
|
- Don't run `main` when flychecking.
|
2020-08-27 12:46:00 +00:00
|
|
|
- Add `:n` flag to `file/open` to raise an error if file cannot be opened.
|
|
|
|
- Fix import macro to not try and coerce everything to a string.
|
2020-08-22 21:18:10 +00:00
|
|
|
- Allow passing a second argument to `disasm`.
|
2020-08-22 20:35:37 +00:00
|
|
|
- Add `cancel`. Resumes a fiber but makes it immediately error at the yield point.
|
|
|
|
- Allow multi-line paste into built in repl.
|
2020-08-22 15:16:14 +00:00
|
|
|
- Add `(curenv)`.
|
2020-08-11 12:19:34 +00:00
|
|
|
- Change `net/read`, `net/chunk`, and `net/write` to raise errors in the case of failures.
|
|
|
|
- Add `janet_continue_signal` to C API. This indirectly enables C functions that yield to the event loop
|
|
|
|
to raise errors or other signals.
|
2020-08-08 00:48:06 +00:00
|
|
|
- Update meson build script to fix bug on Debian's version of meson
|
2020-08-09 16:39:40 +00:00
|
|
|
- Add `xprint`, `xprin`, `xprintf`, and `xprinf`.
|
2020-08-11 12:19:34 +00:00
|
|
|
- `net/write` now raises an error message if write fails.
|
2020-08-10 16:01:57 +00:00
|
|
|
- Fix issue with SIGPIPE on macOS and BSDs.
|
2020-08-08 00:48:06 +00:00
|
|
|
|
2020-08-04 01:53:32 +00:00
|
|
|
## 1.11.3 - 2020-08-03
|
|
|
|
- Add `JANET_HASHSEED` environment variable when `JANET_PRF` is enabled.
|
|
|
|
- Expose `janet_cryptorand` in C API.
|
|
|
|
- Properly initialize PRF in default janet program
|
2020-08-02 18:52:21 +00:00
|
|
|
- Add `index-of` to core library.
|
2020-08-22 20:35:37 +00:00
|
|
|
- Add `-fPIC` back to core CFLAGS (non-optional when compiling default client with Makefile)
|
2020-08-02 18:52:21 +00:00
|
|
|
- Fix defaults on Windows for ARM
|
|
|
|
- Fix defaults on NetBSD.
|
|
|
|
|
2020-07-25 18:47:54 +00:00
|
|
|
## 1.11.1 - 2020-07-25
|
2020-07-24 12:01:34 +00:00
|
|
|
- Fix jpm and git with multiple git installs on Windows
|
|
|
|
- Fix importing a .so file in the current directory
|
|
|
|
- Allow passing byte sequence types directly to typed-array constructors.
|
2020-07-25 15:14:11 +00:00
|
|
|
- Fix bug sending files between threads.
|
2020-07-25 18:47:54 +00:00
|
|
|
- Disable PRF by default.
|
|
|
|
- Update the soname.
|
2020-07-24 12:01:34 +00:00
|
|
|
|
2020-07-18 21:21:01 +00:00
|
|
|
## 1.11.0 - 2020-07-18
|
2020-07-07 00:25:34 +00:00
|
|
|
- Add `forever` macro.
|
2020-07-06 22:21:55 +00:00
|
|
|
- Add `any?` predicate to core.
|
2020-07-05 22:49:48 +00:00
|
|
|
- Add `jpm list-pkgs` subcommand to see which package aliases are in the listing.
|
2020-07-05 22:43:39 +00:00
|
|
|
- Add `jpm list-installed` subcommand to see which packages are installed.
|
2020-07-03 19:14:59 +00:00
|
|
|
- Add `math/int-min`, `math/int-max`, `math/int32-min`, and `math/int32-max` for getting integer limits.
|
2020-07-03 15:13:55 +00:00
|
|
|
- The gc interval is now autotuned, to prevent very bad gc behavior.
|
|
|
|
- Improvements to the bytecode compiler, Janet will now generate more efficient bytecode.
|
|
|
|
- Add `peg/find`, `peg/find-all`, `peg/replace`, and `peg/replace-all`
|
|
|
|
- Add `math/nan`
|
|
|
|
- Add `forv` macro
|
2020-06-27 20:21:17 +00:00
|
|
|
- Add `symbol/slice`
|
|
|
|
- Add `keyword/slice`
|
|
|
|
- Allow cross compilation with Makefile.
|
2020-06-24 21:00:00 +00:00
|
|
|
- Change `compare-primitve` to `cmp` and make it more efficient.
|
2020-07-03 15:13:55 +00:00
|
|
|
- Add `reverse!` for reversing an array or buffer in place.
|
2020-06-22 13:31:07 +00:00
|
|
|
- `janet_dobytes` and `janet_dostring` return parse errors in \*out
|
2020-06-21 23:52:10 +00:00
|
|
|
- Add `repeat` macro for iterating something n times.
|
|
|
|
- Add `eachy` (each yield) macro for iterating a fiber.
|
|
|
|
- Fix `:generate` verb in loop macro to accept non symbols as bindings.
|
2020-07-18 18:09:53 +00:00
|
|
|
- Add `:h`, `:h+`, and `:h*` in `default-peg-grammar` for hexidecimal digits.
|
2020-06-19 02:52:20 +00:00
|
|
|
- Fix `%j` formatter to print numbers precisely (using the `%.17g` format string to printf).
|
|
|
|
|
2020-06-18 23:41:09 +00:00
|
|
|
## 1.10.1 - 2020-06-18
|
|
|
|
- Expose `janet_table_clear` in API.
|
2020-06-15 16:54:51 +00:00
|
|
|
- Respect `JANET_NO_PROCESSES` define when building
|
|
|
|
- Fix `jpm` rules having multiple copies of the same dependency.
|
2020-06-18 23:41:09 +00:00
|
|
|
- Fix `jpm` install in some cases.
|
2020-06-14 22:40:48 +00:00
|
|
|
- Add `array/trim` and `buffer/trim` to shrink the backing capacity of these types
|
|
|
|
to their current length.
|
|
|
|
|
2020-06-14 20:10:54 +00:00
|
|
|
## 1.10.0 - 2020-06-14
|
2020-06-14 19:16:01 +00:00
|
|
|
- Hardcode default jpm paths on install so env variables are needed in fewer cases.
|
2020-06-14 17:15:56 +00:00
|
|
|
- Add `:no-compile` to `create-executable` option for jpm.
|
2020-06-14 17:12:41 +00:00
|
|
|
- Fix bug with the `trace` function.
|
2020-06-13 19:09:45 +00:00
|
|
|
- Add `:h`, `:a`, and `:c` flags to `thread/new` for creating new kinds of threads.
|
2020-06-14 17:12:41 +00:00
|
|
|
By default, threads will now consume much less memory per thread, but sending data between
|
|
|
|
threads may cost more.
|
2020-06-13 19:09:45 +00:00
|
|
|
- Fix flychecking when using the `use` macro.
|
|
|
|
- CTRL-C no longer exits the repl, and instead cancels the current form.
|
|
|
|
- Various small bug fixes
|
|
|
|
- New MSI installer instead of NSIS based installer.
|
|
|
|
- Make `os/realpath` work on windows.
|
|
|
|
- Add polymorphic `compare` functions for comparing numbers.
|
|
|
|
- Add `to` and `thru` peg combinators.
|
|
|
|
- Add `JANET_GIT` environment variable to jpm to use a specific git binary (useful mainly on windows).
|
2020-05-19 18:17:50 +00:00
|
|
|
- `asm` and `disasm` functions now use keywords instead of macros for keys. Also
|
|
|
|
some slight changes to the way constants are encoded (remove wrapping `quote` in some cases).
|
2020-05-18 23:22:43 +00:00
|
|
|
- Expose current macro form inside macros as (dyn :macro-form)
|
2020-05-18 22:43:41 +00:00
|
|
|
- Add `tracev` macro.
|
2020-05-16 13:36:32 +00:00
|
|
|
- Fix compiler bug that emitted incorrect code in some cases for while loops that create closures.
|
2020-05-15 22:19:37 +00:00
|
|
|
- Add `:fresh` option to `(import ...)` to overwrite the module cache.
|
|
|
|
- `(range x y 0)` will return an empty array instead of hanging forever.
|
2020-05-15 22:21:58 +00:00
|
|
|
- Rename `jpm repl` to `jpm debug-repl`.
|
2020-05-15 22:19:37 +00:00
|
|
|
|
2020-05-12 14:16:45 +00:00
|
|
|
## 1.9.1 - 2020-05-12
|
|
|
|
- Add :prefix option to declare-source
|
|
|
|
- Re-enable minimal builds with the debugger.
|
|
|
|
- Add several flags for configuring Janet on different platforms.
|
2020-05-12 13:56:58 +00:00
|
|
|
- Fix broken meson build from 1.9.0 and add meson to CI.
|
2020-05-11 04:07:54 +00:00
|
|
|
- Fix compilation issue when nanboxing is disabled.
|
|
|
|
|
2020-05-10 21:44:16 +00:00
|
|
|
## 1.9.0 - 2020-05-10
|
|
|
|
- Add `:ldflags` option to many jpm declare functions.
|
2020-05-09 16:06:02 +00:00
|
|
|
- Add `errorf` to core.
|
2020-05-02 15:37:39 +00:00
|
|
|
- Add `lenprefix` combinator to PEGs.
|
2020-04-26 18:17:28 +00:00
|
|
|
- Add `%M`, `%m`, `%N`, and `%n` formatters to formatting functions. These are the
|
|
|
|
same as `%Q`, `%q`, `%P`, and `%p`, but will not truncate long values.
|
2020-05-01 04:21:26 +00:00
|
|
|
- Add `fiber/root`.
|
2020-04-26 17:26:46 +00:00
|
|
|
- Add beta `net/` module to core for socket based networking.
|
2020-04-25 16:46:32 +00:00
|
|
|
- Add the `parse` function to parse strings of source code more conveniently.
|
2020-04-21 23:24:46 +00:00
|
|
|
- Add `jpm rule-tree` subcommand.
|
|
|
|
- Add `--offline` flag to jpm to force use of the cache.
|
2020-04-19 15:57:50 +00:00
|
|
|
- Allow sending pointers and C functions across threads via `thread/send`.
|
2020-04-16 17:11:17 +00:00
|
|
|
- Fix bug in `getline`.
|
2020-04-15 02:27:48 +00:00
|
|
|
- Add `sh-rule` and `sh-phony` to jpm's dialect of Janet.
|
2020-04-21 23:24:46 +00:00
|
|
|
- Change C api's `janet_formatb` -> `janet_formatbv`, and add new function `janet_formatb` to C api.
|
2020-04-14 01:24:11 +00:00
|
|
|
- Add `edefer` macro to core.
|
2020-04-11 17:49:39 +00:00
|
|
|
- A struct/table literal/constructor with duplicate keys will use the last value given.
|
|
|
|
Previously, this was inconsistent between tables and structs, literals and constructor functions.
|
2020-04-10 22:01:41 +00:00
|
|
|
- Add debugger to core. The debugger functions are only available
|
|
|
|
in a debug repl, and are prefixed by a `.`.
|
2020-04-10 01:42:49 +00:00
|
|
|
- Add `sort-by` and `sorted-by` to core.
|
2020-04-05 12:12:00 +00:00
|
|
|
- Support UTF-8 escapes in strings via `\uXXXX` or `\UXXXXXX`.
|
2020-04-04 17:51:47 +00:00
|
|
|
- Add `math/erf`
|
|
|
|
- Add `math/erfc`
|
|
|
|
- Add `math/log1p`
|
|
|
|
- Add `math/next`
|
2020-04-03 20:12:58 +00:00
|
|
|
- Add os/umask
|
|
|
|
- Add os/perm-int
|
2020-04-03 20:23:29 +00:00
|
|
|
- Add os/perm-string
|
2020-05-10 21:44:16 +00:00
|
|
|
- Add :int-permissions option for os/stat.
|
2020-04-04 00:32:50 +00:00
|
|
|
- Add `jpm repl` subcommand, as well as `post-deps` macro in project.janet files.
|
2020-04-19 15:57:50 +00:00
|
|
|
- Various bug fixes.
|
2020-04-03 20:12:58 +00:00
|
|
|
|
2020-03-31 12:50:40 +00:00
|
|
|
## 1.8.1 - 2020-03-31
|
2020-03-30 21:59:51 +00:00
|
|
|
- Fix bugs for big endian systems
|
|
|
|
- Fix 1.8.0 regression on BSDs
|
|
|
|
|
2020-03-29 19:18:28 +00:00
|
|
|
## 1.8.0 - 2020-03-29
|
2020-03-27 02:35:11 +00:00
|
|
|
- Add `reduce2`, `accumulate`, and `accumulate2`.
|
2020-03-26 02:06:45 +00:00
|
|
|
- Add lockfiles to `jpm` via `jpm make-lockfile` and `jpm load-lockfile`.
|
2020-03-25 00:45:57 +00:00
|
|
|
- Add `os/realpath` (Not supported on windows).
|
2020-03-14 16:56:42 +00:00
|
|
|
- Add `os/chmod`.
|
2020-03-11 03:46:18 +00:00
|
|
|
- Add `chr` macro.
|
2020-03-07 15:38:37 +00:00
|
|
|
- Allow `_` in the `match` macro to match anything without creating a binding
|
2020-03-18 14:30:10 +00:00
|
|
|
or doing unification. Also change behavior of matching nil.
|
2020-03-07 15:31:52 +00:00
|
|
|
- Add `:range-to` and `:down-to` verbs in the `loop` macro.
|
2020-03-06 14:40:51 +00:00
|
|
|
- Fix `and` and `or` macros returning nil instead of false in some cases.
|
|
|
|
- Allow matching successfully against nil values in the `match` macro.
|
2020-02-26 02:08:22 +00:00
|
|
|
- Improve `janet_formatc` and `janet_panicf` formatters to be more like `string/format`.
|
|
|
|
This makes it easier to make nice error messages from C.
|
2020-02-23 20:55:21 +00:00
|
|
|
- Add `signal`
|
|
|
|
- Add `fiber/can-resume?`
|
|
|
|
- Allow fiber functions to accept arguments that are passed in via `resume`.
|
|
|
|
- Make flychecking slightly less strict but more useful
|
|
|
|
- Correct arity for `next`
|
|
|
|
- Correct arity for `marshal`
|
|
|
|
- Add `flush` and `eflush`
|
2020-02-23 22:35:33 +00:00
|
|
|
- Add `prompt` and `return` on top of signal for user friendly delimited continuations.
|
2020-03-09 01:43:06 +00:00
|
|
|
- Fix bug in buffer/blit when using the offset-src argument.
|
|
|
|
- Fix segfault with malformed pegs.
|
2020-02-23 20:55:21 +00:00
|
|
|
|
2020-02-02 15:38:26 +00:00
|
|
|
## 1.7.0 - 2020-02-01
|
2020-01-24 01:07:09 +00:00
|
|
|
- Remove `file/fileno` and `file/fdopen`.
|
2019-12-28 20:57:36 +00:00
|
|
|
- Remove `==`, `not==`, `order<`, `order>`, `order<=`, and `order>=`. Instead, use the normal
|
|
|
|
comparison and equality functions.
|
|
|
|
- Let abstract types define a hash function and comparison/equality semantics. This lets
|
|
|
|
abstract types much better represent value types. This adds more fields to abstract types, which
|
|
|
|
will generate warnings when compiled against other versions.
|
2019-12-28 21:11:15 +00:00
|
|
|
- Remove Emscripten build. Instead, use the amalgamated source code with a custom toolchain.
|
2019-12-28 16:58:40 +00:00
|
|
|
- Update documentation.
|
2020-01-25 04:52:28 +00:00
|
|
|
- Add `var-`
|
2020-01-13 02:59:45 +00:00
|
|
|
- Add `module/add-paths`
|
2020-01-14 02:49:00 +00:00
|
|
|
- Add `file/temp`
|
2020-01-24 01:07:09 +00:00
|
|
|
- Add `mod` function to core.
|
2020-01-14 02:49:00 +00:00
|
|
|
- Small bug fixes
|
|
|
|
- Allow signaling from C functions (yielding) via janet\_signalv. This
|
|
|
|
makes it easy to write C functions that work with event loops, such as
|
|
|
|
in libuv or embedded in a game.
|
2020-01-24 14:52:27 +00:00
|
|
|
- Add '%j' formatting option to the format family of functions.
|
2020-01-16 04:38:06 +00:00
|
|
|
- Add `defer`
|
|
|
|
- Add `assert`
|
2020-01-16 04:49:41 +00:00
|
|
|
- Add `when-with`
|
|
|
|
- Add `if-with`
|
2020-01-19 21:43:47 +00:00
|
|
|
- Add completion to the default repl based on currently defined bindings. Also generally improve
|
|
|
|
the repl keybindings.
|
2020-01-19 00:44:41 +00:00
|
|
|
- Add `eachk`
|
|
|
|
- Add `eachp`
|
|
|
|
- Improve functionality of the `next` function. `next` now works on many different
|
|
|
|
types, not just tables and structs. This allows for more generic data processing.
|
2020-01-16 04:38:06 +00:00
|
|
|
- Fix thread module issue where sometimes decoding a message failed.
|
2019-12-31 17:17:32 +00:00
|
|
|
- Fix segfault regression when macros are called with bad arity.
|
2019-12-28 16:58:40 +00:00
|
|
|
|
2020-02-02 15:38:26 +00:00
|
|
|
## 1.6.0 - 2019-12-22
|
2019-12-12 23:51:49 +00:00
|
|
|
- Add `thread/` module to the core.
|
2019-11-26 02:11:10 +00:00
|
|
|
- Allow seeding RNGs with any sequence of bytes. This provides
|
|
|
|
a wider key space for the RNG. Exposed in C as `janet_rng_longseed`.
|
|
|
|
- Fix issue in `resume` and similar functions that could cause breakpoints to be skipped.
|
|
|
|
- Add a number of new math functions.
|
|
|
|
- Improve debugger experience and capabilities. See examples/debugger.janet
|
|
|
|
for what an interactive debugger could look like.
|
|
|
|
- Add `debug/step` (janet\_step in the C API) for single stepping Janet bytecode.
|
|
|
|
- The built in repl now can enter the debugger on any signal (errors, yields,
|
|
|
|
user signals, and debug signals). To enable this, type (setdyn :debug true)
|
|
|
|
in the repl environment.
|
|
|
|
- When exiting the debugger, the fiber being debugged is resumed with the exit value
|
|
|
|
of the debug session (the value returned by `(quit return-value)`, or nil if user typed Ctrl-D).
|
|
|
|
- `(quit)` can take an optional argument that is the return value. If a module
|
|
|
|
contains `(quit some-value)`, the value of that module returned to `(require "somemod")`
|
|
|
|
is the return value. This lets module writers completely customize a module without writing
|
|
|
|
a loader.
|
2019-12-04 22:51:34 +00:00
|
|
|
- Add nested quasiquotation.
|
|
|
|
- Add `os/cryptorand`
|
|
|
|
- Add `prinf` and `eprinf` to be have like `printf` and `eprintf`. The latter two functions
|
|
|
|
now including a trailing newline, like the other print functions.
|
|
|
|
- Add nan?
|
|
|
|
- Add `janet_in` to C API.
|
|
|
|
- Add `truthy?`
|
|
|
|
- Add `os/environ`
|
2019-12-19 17:58:11 +00:00
|
|
|
- Add `buffer/fill` and `array/fill`
|
|
|
|
- Add `array/new-filled`
|
2019-12-04 22:51:34 +00:00
|
|
|
- Use `(doc)` with no arguments to see available bindings and dynamic bindings.
|
|
|
|
- `jpm` will use `CC` and `AR` environment variables when compiling programs.
|
2019-12-05 02:02:15 +00:00
|
|
|
- Add `comptime` macro for compile time evaluation.
|
2019-12-07 01:54:11 +00:00
|
|
|
- Run `main` functions in scripts if they exist, just like jpm standalone binaries.
|
2019-12-10 00:26:58 +00:00
|
|
|
- Add `protect` macro.
|
2019-12-12 23:25:04 +00:00
|
|
|
- Add `root-env` to get the root environment table.
|
2019-12-07 16:35:40 +00:00
|
|
|
- Change marshalling protocol with regard to abstract types.
|
2019-12-16 04:02:33 +00:00
|
|
|
- Add `show-paths` to `jpm`.
|
|
|
|
- Add several default patterns, like `:d` and `:s+`, to PEGs.
|
2019-12-13 01:39:00 +00:00
|
|
|
- Update `jpm` path settings to make using `jpm` easier on non-global module trees.
|
2019-12-04 22:51:34 +00:00
|
|
|
- Numerous small bug fixes and usability improvements.
|
2019-11-26 02:11:10 +00:00
|
|
|
|
2019-11-16 23:17:13 +00:00
|
|
|
### 1.5.1 - 2019-11-16
|
|
|
|
- Fix bug when printing buffer to self in some edge cases.
|
|
|
|
- Fix bug with `jpm` on windows.
|
|
|
|
- Fix `update` return value.
|
2019-11-10 20:50:21 +00:00
|
|
|
|
2019-11-10 16:57:18 +00:00
|
|
|
## 1.5.0 - 2019-11-10
|
|
|
|
- `os/date` now defaults to UTC.
|
2019-11-09 16:05:29 +00:00
|
|
|
- Add `--test` flag to jpm to test libraries on installation.
|
2019-11-08 23:35:27 +00:00
|
|
|
- Add `math/rng`, `math/rng-int`, and `math/rng-uniform`.
|
2019-11-10 17:30:09 +00:00
|
|
|
- Add `in` function to index in a stricter manner. Conversely, `get` will
|
2019-11-08 23:35:27 +00:00
|
|
|
now not throw errors on bad keys.
|
|
|
|
- Indexed types and byte sequences will now error when indexed out of range or
|
|
|
|
with bad keys.
|
|
|
|
- Add rng functions to Janet. This also replaces the RNG behind `math/random`
|
|
|
|
and `math/seedrandom` with a consistent, platform independent RNG.
|
2019-11-01 02:58:43 +00:00
|
|
|
- Add `with-vars` macro.
|
2019-10-30 01:33:18 +00:00
|
|
|
- Add the `quickbin` command to jpm.
|
2019-11-10 17:30:09 +00:00
|
|
|
- Create shell.c when making the amalgamated source. This can be compiled with
|
2019-10-30 00:41:48 +00:00
|
|
|
janet.c to make the janet interpreter.
|
2019-10-29 23:47:54 +00:00
|
|
|
- Add `cli-main` function to the core, which invokes Janet's CLI interface.
|
|
|
|
This basically moves what was init.janet into boot.janet.
|
2019-11-26 02:11:10 +00:00
|
|
|
- Improve flychecking, and fix flychecking bugs introduced in 1.4.0.
|
2019-10-19 15:35:56 +00:00
|
|
|
- Add `prin`, `eprint`, `eprintf` and `eprin` functions. The
|
|
|
|
functions prefix with e print to `(dyn :err stderr)`
|
|
|
|
- Print family of functions can now also print to buffers
|
|
|
|
(before, they could only print to files.) Output can also
|
|
|
|
be completely disabled with `(setdyn :out false)`.
|
|
|
|
- `printf` is now a c function for optimizations in the case
|
|
|
|
of printing to buffers.
|
2019-10-15 01:55:04 +00:00
|
|
|
|
2019-10-15 01:35:13 +00:00
|
|
|
## 1.4.0 - 2019-10-14
|
2019-10-11 05:11:19 +00:00
|
|
|
- Add `quit` function to exit from a repl, but not always exit the entire
|
|
|
|
application.
|
2019-10-15 01:35:13 +00:00
|
|
|
- Add `update-pkgs` to jpm.
|
2019-10-11 00:06:16 +00:00
|
|
|
- Integrate jpm with https://github.com/janet-lang/pkgs.git. jpm can now
|
|
|
|
install packages based on their short names in the package listing, which
|
|
|
|
can be customized via an env variable.
|
2019-10-04 01:20:42 +00:00
|
|
|
- Add `varfn` macro
|
2019-10-01 00:50:42 +00:00
|
|
|
- Add compile time arity checking when function in function call is known.
|
2019-09-25 02:25:21 +00:00
|
|
|
- Added `slice` to the core library.
|
|
|
|
- The `*/slice` family of functions now can take nil as start or end to get
|
|
|
|
the same behavior as the defaults (0 and -1) for those parameters.
|
2019-09-24 18:23:18 +00:00
|
|
|
- `string/` functions that take a pattern to search for will throw an error
|
|
|
|
when receiving the empty string.
|
2019-09-22 23:00:25 +00:00
|
|
|
- Replace (start:end) style stacktrace source position information with
|
|
|
|
line, column. This should be more readable for humans. Also, range information
|
|
|
|
can be recovered by re-parsing source.
|
2019-09-22 20:15:28 +00:00
|
|
|
|
2019-09-22 00:04:59 +00:00
|
|
|
## 1.3.1 - 2019-09-21
|
2019-09-21 23:57:04 +00:00
|
|
|
- Fix some linking issues when creating executables with native dependencies.
|
|
|
|
- jpm now runs each test script in a new interpreter.
|
2019-09-20 01:26:16 +00:00
|
|
|
- Fix an issue that prevent some valid programs from compiling.
|
|
|
|
- Add `mean` to core.
|
2019-09-22 00:04:59 +00:00
|
|
|
- Abstract types that implement the `:+`, `:-`, `:*`, `:/`, `:>`, `:==`, `:<`,
|
|
|
|
`:<=`, and `:>=` methods will work with the corresponding built-in
|
|
|
|
arithmetic functions. This means built-in integer types can now be used as
|
|
|
|
normal number values in many contexts.
|
2019-09-08 20:36:21 +00:00
|
|
|
- Allow (length x) on typed arrays an other abstract types that implement
|
|
|
|
the :length method.
|
|
|
|
|
2019-09-06 00:33:08 +00:00
|
|
|
## 1.3.0 - 2019-09-05
|
2019-09-05 18:21:17 +00:00
|
|
|
- Add `get-in`, `put-in`, `update-in`, and `freeze` to core.
|
2019-09-01 16:36:44 +00:00
|
|
|
- Add `jpm run rule` and `jpm rules` to jpm to improve utility and discoverability of jpm.
|
|
|
|
- Remove `cook` module and move `path` module to https://github.com/janet-lang/path.git.
|
|
|
|
The functionality in `cook` is now bundled directly in the `jpm` script.
|
2019-08-25 02:53:45 +00:00
|
|
|
- Add `buffer/format` and `string/format` format flags `Q` and `q` to print colored and
|
2019-08-29 01:54:31 +00:00
|
|
|
non-colored single-line values, similar to `P` and `p`.
|
2019-09-01 16:36:44 +00:00
|
|
|
- Change default repl to print long sequences on one line and color stacktraces if color is enabled.
|
2019-08-24 23:06:02 +00:00
|
|
|
- Add `backmatch` pattern for PEGs.
|
2019-08-24 21:36:50 +00:00
|
|
|
- jpm detects if not in a Developer Command prompt on windows for a better error message.
|
|
|
|
- jpm install git submodules in dependencies
|
2019-08-19 05:19:51 +00:00
|
|
|
- Change default fiber stack limit to the maximum value of a 32 bit signed integer.
|
2019-08-18 20:54:43 +00:00
|
|
|
- Some bug fixes with `jpm`
|
2019-09-01 16:36:44 +00:00
|
|
|
- Fix bugs with pegs.
|
2019-08-18 20:54:43 +00:00
|
|
|
- Add `os/arch` to get ISA that janet was compiled for
|
|
|
|
- Add color to stacktraces via `(dyn :err-color)`
|
|
|
|
|
2019-08-08 23:51:24 +00:00
|
|
|
## 1.2.0 - 2019-08-08
|
2019-08-06 23:10:48 +00:00
|
|
|
- Add `take` and `drop` functions that are easier to use compared to the
|
|
|
|
existing slice functions.
|
|
|
|
- Add optional default value to `get`.
|
2019-08-04 17:18:57 +00:00
|
|
|
- Add function literal short-hand via `|` reader macro, which maps to the
|
|
|
|
`short-fn` macro.
|
|
|
|
- Add `int?` and `nat?` functions to the core.
|
2019-07-27 14:31:03 +00:00
|
|
|
- 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)`.
|
2019-07-12 12:19:29 +00:00
|
|
|
- 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
|
2019-07-05 16:00:46 +00:00
|
|
|
- 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-05 16:00:46 +00:00
|
|
|
|
2019-07-01 19:47:03 +00:00
|
|
|
## 1.0.0 - 2019-07-01
|
2019-06-25 02:02:37 +00:00
|
|
|
- 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.
|
2019-06-19 02:01:14 +00:00
|
|
|
- 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.
|
2019-05-30 01:57:03 +00:00
|
|
|
- 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-30 01:57:03 +00:00
|
|
|
|
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`.
|
2019-05-28 17:59:12 +00:00
|
|
|
- Add `jpm` tool for building and managing projects.
|
|
|
|
- Change interface to `cook` tool.
|
2019-05-25 21:10:25 +00:00
|
|
|
- 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
|
2019-05-09 17:42:14 +00:00
|
|
|
- Fix some bugs with buffers.
|
2019-05-04 19:03:41 +00:00
|
|
|
- Add `trace` and `untrace` to the core library.
|
2019-05-04 14:11:36 +00:00
|
|
|
- Add `string/has-prefix?` and `string/has-suffix?` to string module.
|
|
|
|
- Add simple debugger to repl that activates on errors or debug signal
|
2019-04-21 19:45:55 +00:00
|
|
|
- Remove `*env*` and `*doc-width*`.
|
2019-04-16 19:48:53 +00:00
|
|
|
- Add `fiber/getenv`, `fiber/setenv`, and `dyn`, and `setdyn`.
|
2019-04-16 23:10:01 +00:00
|
|
|
- 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.
|
2019-04-16 23:10:01 +00:00
|
|
|
- Add `with-dyns` for blocks with dynamic bindings assigned.
|
2019-04-21 19:45:55 +00:00
|
|
|
- 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)`
|
2019-02-21 02:08:54 +00:00
|
|
|
operations. Instead, use the `splice` special to extend tuples.
|
2019-02-18 20:06:17 +00:00
|
|
|
- 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`.
|
2019-02-16 18:21:29 +00:00
|
|
|
- `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`.
|
2019-02-15 23:56:41 +00:00
|
|
|
- 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
|
2019-01-27 01:46:40 +00:00
|
|
|
- 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.
|