Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.18.1, NimzoLarsen #1077

Merged
merged 1 commit into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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