Skip to content

Commit

Permalink
Release v0.18.1, NimzoLarsen
Browse files Browse the repository at this point in the history
  • Loading branch information
fare committed Dec 6, 2023
1 parent e3284b8 commit 22bfa96
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 9 deletions.
51 changes: 47 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,47 @@
# Gerbil Release Notes

## Gerbil v0.18.1, NimzoLarsen

- Gerbil v0.18.1; December 4, 2023

**TL;DR** Gerbil v0.18.1 is a patch release,
that consolidates the foundations laid out by v0.18 and fixes minor bugs,
paving the way for Gerbil v1.0 in the near future.
Since this is a patch for the v0.18 **Nimzowitsch** release, we call it
Nimzowitsch-Larsen after the most famous Chess opening popularized by
Nimzowitsch.

As notable new features:
- `:std/net/s3` is a S3 client (for remote data storage on e.g. AWS)
- `:std/net/smtp` is an SMTP client (for sending email), and
- `:std/db/postgresql` now supports SSL (notably enabling Gerbil on Heroku).

Also, the library `:std/getopt` was moved to `:std/cli/getopt`
(old name available as an alias), next to new CLI modules:
`:std/cli/multicall` (multicall programs),
`:std/cli/print-exit` (display Scheme results to CLI),
`:std/cli/shell` (escape strings for Unix shells).

A lot of standard library modules, many of them added just before v0.18,
were tested, documented, fixed, tweaked and/or extended with new functionality:
`:std/error`, `:std/debug/DBG` (great for "print-debugging"), `:std/io`,
`:std/misc/bytes`, `:std/misc/evector` (extensible vectors), `:std/misc/list`,
`:std/misc/number`, `:std/misc/ports`, `:std/misc/prime`, `:std/misc/process`,
`:std/misc/string`, `:std/misc/vector`, `:std/net/json-rpc`, `:std/os/error`,
`:std/parser/ll1` (LL(1) parser combinators, née `:std/text/basic-parsers`),
`:std/pregexp`, `:std/sugar`, `:std/text/char-set`.

The runtime exports a few more functions (`vector-ref-set!`, `fx>=0` and such),
and a few bugs were fixed (#1048, #1064).

Last but not least, upgrading the Gambit embedded in Gerbil (#1030) fixed
a long-standing issue with [`letrec*`](https://github.com/gambit/gambit/issues/659),
also affected Gerbil's `def` (that expands to it), causing evaluation to be
reordered in sometimes incorrect way wrt the order of expressions in the source.
Un-reordering of code evaluations may also surprisingly affect correct code:
e.g. unit-tests in Glow depended on a given evaluation order in the compiler,
and broke when the reordering of some evaluations didn't happen anymore.

## Gerbil v0.18, Nimzowitsch

- Gerbil v0.18; October 12, 2023
Expand All @@ -19,11 +62,11 @@ install it.

The build system has been reworked from the ground up. We start from
the precompiled bootstrap sources, which we compile with a build
script using gsi. The bootstrap compiler then compiles the runtime,
script using `gsi`. The bootstrap compiler then compiles the runtime,
the expander and the prelude, and after that we build the universal
`gerbil` binary to build the rest of the system. All this is described
in detail in [The Gerbil
Bootstrap](https://cons.io/reference/dev/bootstrap.html).
`gerbil` binary to build the rest of the system.
All this is described in detail in
[The Gerbil Bootstrap](https://cons.io/reference/dev/bootstrap.html).

The executable compilation model has been also reworked from the
ground up. Gone are the dynamic executable stubs, we don't need them
Expand Down
4 changes: 4 additions & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
gerbil_stamp_version=v0.18.1
gambit_stamp_version=v4.9.5-78-g8b18ab69
gambit_stamp_ymd=20231029
gambit_stamp_hms=163035
6 changes: 3 additions & 3 deletions doc/guide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ features are available.

## Installation using Binary Release Packages

If you want to install the latest release (v0.18), you can also use
If you want to install the latest release (v0.18.1), you can also use
the precompiled binary packages for Ubuntu, Debian, Fedora, and CentOS.
They are available in the [v0.18 release](https://github.com/mighty-gerbils/gerbil/releases/tag/v0.18) page.
They are available in the [v0.18.1 release](https://github.com/mighty-gerbils/gerbil/releases/tag/v0.18.1) page.

## Installation on MacOS

Expand All @@ -95,7 +95,7 @@ $ brew install --formula -vd gerbil-scheme.rb
Feel free to check out the [MacOS Details](./macos.md) if needed.

**Note** Currently, this is not yet upstreamed. The brew recipe will
be updated for v0.18 once the release is ready and available by
be updated for v0.18.1 once the release is ready and available by
default for all homebrew users.

## Skip the Install, Get Started on Docker
Expand Down
2 changes: 1 addition & 1 deletion doc/guide/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ We offer two official docker images based on Alpine Linux:
It also includes all the foreign dependencies required by the officially supported
external packages.
- Supported architectures are `aarch64` and `x86_64`.
- `:latest` always points at the last release, e.g. `v0.18`
- `:latest` always points at the last release, e.g. `v0.18.1`
- `:master` points to the latest merge into the `master` branch.

Alpine was chosen due to the static compilation environment and capabilities it provides.
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/gerbil/runtime/system__0.scm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
(begin
(define gerbil/runtime/system::timestamp 1701718632)
(begin
(define gerbil-version-string (lambda () '"v0.18-43-g9dc17ae7"))
(define gerbil-version-string (lambda () '"v0.18.1"))
(define gerbil-system-version-string
(lambda ()
(string-append
Expand Down

0 comments on commit 22bfa96

Please sign in to comment.