From 22bfa9616e5c5fa37b1144764831474e27d06035 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau Date: Tue, 5 Dec 2023 17:17:20 +0000 Subject: [PATCH] Release v0.18.1, NimzoLarsen --- CHANGELOG.md | 51 ++++++++++++++++++++-- MANIFEST | 4 ++ doc/guide/README.md | 6 +-- doc/guide/docker.md | 2 +- src/bootstrap/gerbil/runtime/system__0.scm | 2 +- 5 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 MANIFEST diff --git a/CHANGELOG.md b/CHANGELOG.md index 1898b5fd68..b62786821f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 @@ -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 diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000000..91e2bbaa37 --- /dev/null +++ b/MANIFEST @@ -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 diff --git a/doc/guide/README.md b/doc/guide/README.md index 6e9d5107dc..b68a94684b 100644 --- a/doc/guide/README.md +++ b/doc/guide/README.md @@ -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 @@ -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 diff --git a/doc/guide/docker.md b/doc/guide/docker.md index 9b87ea78bb..07893ab6cd 100644 --- a/doc/guide/docker.md +++ b/doc/guide/docker.md @@ -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. diff --git a/src/bootstrap/gerbil/runtime/system__0.scm b/src/bootstrap/gerbil/runtime/system__0.scm index 5772bed5ff..f860b634f0 100644 --- a/src/bootstrap/gerbil/runtime/system__0.scm +++ b/src/bootstrap/gerbil/runtime/system__0.scm @@ -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