Releases · janet-lang/janet
- Fix return value from C function
janet_dobyteswhen called on Janet functions that yield to event loop.
- Change C API for event loop interaction - get rid of JanetListener and instead use
- Rework event loop to make fewer system calls on kqueue and epoll.
- Expose atomic refcount abstraction in janet.h
array/weakfor weak references in arrays
- Add support for weak tables via
- Fix compiler bug with using the result of
(break x)expression in some contexts.
- Rework internal event loop code to be better behaved on Windows
- Update meson build to work better on windows
pairsby @primo-ppcg in #1241
reverseby @primo-ppcg in #1242
dictionary?to corelib by @primo-ppcg in #1244
- Speed up
comparefunctions by @primo-ppcg in #1249
reverse, again by @primo-ppcg in #1252
- Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts. by @wooosh in #1246
- Special case common
sortusages by @primo-ppcg in #1255
buffer/from-bytesby @primo-ppcg in #1259
eachkeys before body by @primo-ppcg in #1258
every?by @primo-ppcg in #1257
- Speed up
maxby @primo-ppcg in #1266
- Optimize nil conditions for while and if by @primo-ppcg in #1269
- Allow one-term
:downforms by @primo-ppcg in #1278
lengthable?by @primo-ppcg in #1280
interposeby @primo-ppcg in #1281
meanby @primo-ppcg in #1283
- Document array/push variadic argument by @pepe in #1287
:unlessloop modifier by @primo-ppcg in #1289
- Report line and col more in janet_dobytes by @sogaiu in #1288
Full Changelog: v1.30.0...v1.31.0
- Use vm_commit by @sogaiu in #1200
- Avoid prematurely closing file descriptors when redirecting IO by @pyrmont in #1201
- Add C escape sequences by @czkz in #1203
- Avoid removing too many symbols with strip on macOS by @pyrmont in #1209
- floor div, variadic mod by @primo-ppcg in #1207
- Add bnot for int types by @primo-ppcg in #1210
- Update and ascii-sort string escapes in peg by @sogaiu in #1216
- Add source view to .ppasm output by @sogaiu in #1213
array/remove: update final array index to be -1 by @primo-ppcg in #1224
- Add fopen reference to file/open docstring by @sogaiu in #1231
rangeto corelib by @primo-ppcg in #1236
Full Changelog: v1.29.1...v1.30.0
- add net/setsockopt by @zevv in #1138
- Enable debug symbols in janet binary; strip target at 'make install' by @zevv in #1140
- Add CI test for mingw/wine on linux by @zevv in #1141
- changed net/connect to be non-blocking / asynchronous by @zevv in #1139
- added thaw to complement freeze by @tionis in #1142
- Add clock sources to os/clock (:realtime, :monotonic, :cputime) by @zevv in #1146
- improved error messages for special forms by @zevv in #1147
- os/proc-kill now accepts an optional signal to send by @tionis in #1137
- Fix warning in janet_gettime() by @zevv in #1153
- Improved various error messages when handling unexpected types. by @zevv in #1152
- Add docstring to string/format by @zevv in #1151
- Allow mapcat et al to accept multiple iterable arguments by @primo-ppcg in #1160
- Add file/lines iterator by @zevv in #1157
- More portable method of installing janet.h -> janet/janet.h symlink by @dressupgeekout in #1164
- Updated documentation for buffer/push-at by @zevv in #1169
- Fix janet_formatbv() type when handling %d %u int specifiers by @zevv in #1167
- Fixed net/connect binding address by @zevv in #1171
- fix for crash on windows in src/core/ev.c: initialze state->fromlen by @zevv in #1172
contains?helper function to boot.janet by @Techcable in #1017
- added os/isatty, do not enable colors if stdout is not a tty by @zevv in #1177
- Reorganize tests by @sogaiu in #1162
- Ensure ev/gather fibers are fully canceled on error by @chris-chambers in #1181
- Added misc tests to increase test coverage by @zevv in #1179
- Added JANET_NO_AMALG flag to Makefile by @zevv in #1175
- Fix resumption values when closing a channel by @chris-chambers in #1182
- Make take and drop more symmetric by @primo-ppcg in #1183
- Simplify if-let logic by @primo-ppcg in #1188
- update if-let by @primo-ppcg in #1190
- Fix order in which macro-lints is set during expansion by @chris-chambers in #1185
- peg: add support for "true" and "false" primitives to always/never match by @CosmicToast in #1187
- @tionis made their first contribution in #1142
- @primo-ppcg made their first contribution in #1160
- @chris-chambers made their first contribution in #1181
Full Changelog: v1.28.0...v1.29.1
- Various bug fixes
- Make nested short-fn's behave a bit more predictably (it is still not recommended to nest short-fns).
os/strftimefor date formatting.
ev/selecton threaded channels sometimes live-locking.
- Support the
NO_COLORenvironment variable to turn off VT100 color codes in repl (and in scripts).
- Disallow using
(splice x)in contexts where it doesn't make sense rather than silently coercing to
Instead, raise a compiler error.
- Change the names of
- Change the names of
:user9fiber statuses to
ev/all-tasksto see all currently suspended fibers.
keep-syntax!functions to make writing macros easier.
- Some basic fixes for DragonFly by @dressupgeekout in #1079
- remove quotes in math/log-gamma docstring by @ianthehenry in #1081
keep-syntax!functions by @ml-2 in #1095
- handle null-byte case in scanformat (fixes #1105) by @CosmicToast in #1106
- string and peg replacement functions can now take functions by @ianthehenry in #1112
- add catseq by @ianthehenry in #1113
- Remove double space in help message by @wackbyte in #1109
- README grammar and formatting changes by @wackbyte in #1108
- drop with a negative count now drops from the end by @ianthehenry in #1114
- Tweak long-string|bytes peg in test suite files by @sogaiu in #1116
- Add get/opt cbytes by @CosmicToast in #1122
- Tweak ev/select docstring by @sogaiu in #1124
- Make JANET_FN_S* sourceline const by @CosmicToast in #1134
- Added os.strftime() by @zevv in #1128
- Updated Makefile for better cross-compilation support. by @zevv in #1133
- Change semantics around bracket tuples to no longer be equal to regular tuples.
ffi/writefor symmetry with
ffi/pointer-bufferto convert pointers to buffers the cannot be reallocated. This
allows easier manipulation of FFI memory, memory mapped files, and buffer memory shared between threads.
ev/cancelon a fiber waiting on
cancel the child fibers.
(sandbox ...)function to core for permission based security. Also add
janet_sandboxto C API.
The sandbox allows limiting access to the file system, network, ffi, and OS resources at runtime.
(.locals)function to debugger to see currently bound local symbols.
- Track symbol -> slot mapping so debugger can get symbolic information. This exposes local bindings
os/compilerto detect what host compiler was used to compile the interpreter
- Add support for mingw and cygwin builds (mingw support also added in jpm).
ffi/free. Useful as tools of last resort.
ffi/jitfnto allow calling function pointers generated at runtime from machine code.
Bring your own assembler, though.
- Channels can now be marshalled. Pending state is not saved, only items in the channel.
- Use the new
.lengthfunction pointer on abstract types for lengths. Adding
lengthmethod will still work as well.
- Support byte views on abstract types with the
- Add the
uformat specifier to printf family functions.
- Allow printing 64 integer types in
- Allow importing modules from custom directories more easily with the
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
- Fix error message bug in FFI library.
- Windows FFI fixes
- Fix PEG
if-notcombinator with captures in the condition
- Fix bug with
os/datewith nil first argument
- Fix bug with
net/accepton Linux that could leak file descriptors to sub-processes
- Reduce number of hash collisions from pointer hashing
- Add optional parameter to
marshalto skip cycle checking code