./lang/janet, Functional and imperative programming language

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.33.0, Package name: janet-1.33.0, Maintainer: charlotte

Janet is a functional and imperative programming language.

Janet makes a good system scripting language, or a language to embed in
other programs. Think Lua or Guile. Janet also can be used for rapid
prototyping, dynamic systems, and other domains where lisp shines.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 545.276 KB

Version history: (Expand)


CVS history: (Expand)


   2024-02-21 11:57:08 by Nia Alarie | Files touched by this commit (1)
Log message:
janet: Requires C11 atomics support
   2024-02-14 19:39:37 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.33.0

Notable changes since 1.31.0:

## 1.33.0 - 2024-01-07

- Add more + and * keywords to default-peg-grammar by @sogaiu.
- Use libc strlen in janet_buffer_push_cstring by @williewillus.
- Be a bit safer with reference counting.
- Add support for atomic loads in Janet's atomic abstraction.
- Fix poll event loop CPU usage issue.
- Add ipv6, shared, and cryptorand options to meson.
- Add more ipv6 feature detection.
- Fix loop for forever loop.
- Cleaned up unused NetStateConnect, fixed janet_async_end() ev refcount by
  @zevv.
- Fix warnings w/ MSVC and format.
- Fix marshal_one_env w/ JANET_MARSHAL_UNSAFE.
- Fix `(default)`.
- Fix cannot marshal fiber with c stackframe, in a dynamic way that is fairly
  conservative.
- Fix typo for SIGALARM in os/proc-kill.
- Prevent bytecode optimization from remove mk* instructions.
- Fix arity typo in peg.c by @pepe.
- Update Makefile for MinGW.
- Fix canceling waiting fiber.
- Add a new (sub) PEG special by @ianthehenry.
- Fix if net/server's handler has incorrect arity.
- Fix macex raising on ().

## 1.32.1 - 2023-10-15

- Fix return value from C function `janet_dobytes` when called on Janet
  functions that yield to event loop.
- Change C API for event loop interaction - get rid of JanetListener and
  instead use `janet_async_start` and `janet_async_end`.
- Rework event loop to make fewer system calls on kqueue and epoll.
- Expose atomic refcount abstraction in janet.h
- Add `array/weak` for weak references in arrays
- Add support for weak tables via `table/weak`, `table/weak-keys`, and
  `table/weak-values`.
- 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
   2023-09-28 01:58:51 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.31.0.

## 1.31.0 - 2023-09-17

- Report line and column when using `janet_dobytes`
- Add `:unless` loop modifier
- Allow calling `reverse` on generators.
- Improve performance of a number of core functions including `partition`, \ 
`mean`, `keys`, `values`, `pairs`, `interleave`.
- Add `lengthable?`
- Add `os/sigaction`
- Change `every?` and `any?` to behave like the functional versions of the `and` \ 
and `or` macros.
- Fix bug with garbage collecting threaded abstract types.
- Add `:signal` to the `sandbox` function to allow intercepting signals.
   2023-08-15 17:13:55 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.30.0

## 1.30.0 - 2023-08-05

- Change indexing of `array/remove` to start from -1 at the end instead of -2.
- Add new string escape sequences `\\a`, `\\b`, `\\?`, and `\\'`.
- Fix bug with marshalling channels
- Add `div` for floored division
- Make `div` and `mod` variadic
- Support `bnot` for integer types.
- Define `(mod x 0)` as `x`
- Add `ffi/pointer-cfunction` to convert pointers to cfunctions
   2023-06-21 08:37:06 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.29.1

Changes from 1.28.0:

## 1.29.1 - 2023-06-19

- Add support for passing booleans to PEGs for "always" and \ 
"never"
  matching.
- Allow dictionary types for `take` and `drop`
- Fix bug with closing channels while other fibers were waiting on them:
  `ev/take`, `ev/give`, and `ev/select`  will now return the correct
  (documented) value when another fiber closes the channel.
- Add `ffi/calling-conventions` to show all available calling conventions
  for FFI.
- Add `net/setsockopt`
- Add `signal` argument to `os/proc-kill` to send signals besides `SIGKILL`
  on Posix.
- Add `source` argument to `os/clock` to get different time sources.
- Various combinator functions now are variadic like `map`
- Add `file/lines` to iterate over lines in a file lazily.
- Reorganize test suite to be sorted by module rather than pseudo-randomly.
- Add `*task-id*`
- Add `env` argument to `fiber/new`.
- Add `JANET_NO_AMALG` flag to Makefile to properly incremental builds
- Optimize bytecode compiler to generate fewer instructions and improve
  loops.
- Fix bug with `ev/gather` and hung fibers.
- Add `os/isatty`
- Add `has-key?` and `has-value?`
- Make imperative arithmetic macros variadic
- `ev/connect` now yields to the event loop instead of blocking while
  waiting for an ACK.
   2023-05-27 08:29:51 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.28.0

## 1.28.0 - 2023-05-13
- Various bug fixes
- Make nested short-fn's behave a bit more predictably (it is still not
  recommended to nest short-fns).
- Add `os/strftime` for date formatting.
- Fix `ev/select` on threaded channels sometimes live-locking.
- Support the `NO_COLOR` environment variable to turn off VT100 color codes
  in repl (and in scripts).  See http://no-color.org/
- Disallow using `(splice x)` in contexts where it doesn't make sense rather
  than silently coercing to `x`.  Instead, raise a compiler error.
- 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-07 07:09:02 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.27.0

## 1.27.0 - 2023-03-05

- Change semantics around bracket tuples to no longer be equal to regular
  tuples.
- Add `index` argument to `ffi/write` for symmetry with `ffi/read`.
- Add `buffer/push-at`
- 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.
- 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-03-04 03:18:59 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.26.0

## 1.26.0 - 2023-01-07

- Add `ffi/malloc` and `ffi/free`. Useful as tools of last resort.
- Add `ffi/jitfn` to 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 `.length` function pointer on abstract types for lengths. Adding
  a `length` method will still work as well.
- Support byte views on abstract types with the `.bytes` function pointer.
- Add the `u` format specifier to printf family functions.
- Allow printing 64 integer types in `printf` and `string/format` family
  functions.
- 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)`.
- Fix error message bug in FFI library.