./lang/janet, Functional and imperative programming language

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


Branch: CURRENT, Version: 1.35.2, Package name: janet-1.35.2, 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: 557.181 KB

Version history: (Expand)


CVS history: (Expand)


   2024-06-20 22:31:41 by Charlotte Koch | Files touched by this commit (3)
Log message:
lang/janet: Update to 1.35.2

New changes:

## 1.35.2 - 2024-06-16

- Fix some documentation typos.
- Allow using `:only` in import without quoting.

## 1.35.0 - 2024-06-15

- Add `:only` argument to `import` to allow for easier control over imported
  bindings.
- Add extra optional `env` argument to `eval` and `eval-string`.
- Allow naming function literals with a keyword. This allows better stacktraces
  for macros without accidentally adding new bindings.
- Add `bundle/` module for managing packages within Janet. This should replace
  the jpm packaging format eventually and is much simpler and amenable to more
  complicated builds.
- Add macros `ev/with-lock`, `ev/with-rlock`, and `ev/with-wlock` for using
  mutexes and rwlocks.
- Add `with-env`
- Add *module-make-env* dynamic binding
- Add buffer/format-at
- Add long form command line options for readable CLI usage
- Fix bug with `net/accept-loop` that would sometimes miss connections.

## 1.34.0 - 2024-03-22

- Add a new (split) PEG special by @ianthehenry
- Add buffer/push-* sized int and float by @pnelson
- Documentation improvements: @amano-kenji, @llmII, @MaxGyver83, @pepe,
  @sogaiu.
- Expose _exit to skip certain cleanup with os/exit.
- Swap set / body order for each by @sogaiu.
- Abort on assert failure instead of exit.
- Fix: os/proc-wait by @llmII.
- Fix macex1 to keep syntax location for all tuples.
- Restore if-let tail calls.
- Don't try and resume fibers that can't be resumed.
- Register stream on unmarshal.
- Fix asm roundtrip issue.
   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).