summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois-René Rideau <fare@tunes.org>2023-12-05 21:02:13 -0500
committerGitHub <noreply@github.com>2023-12-06 02:02:13 +0000
commit23c30a6062cd7e63f9d85300ce01585bb9035d2d (patch)
tree7f6349ab5fefcc2891c6490351c5d8307e4b4a5c
parent3ee5c7215a8ed030c431f92669f57f358da2e24d (diff)
Release v0.18.1, NimzoLarsen (#1077)v0.18.1
-rw-r--r--CHANGELOG.md51
-rw-r--r--MANIFEST4
-rw-r--r--doc/guide/README.md6
-rw-r--r--doc/guide/docker.md2
-rw-r--r--src/bootstrap/gerbil/runtime/system__0.scm2
5 files changed, 56 insertions, 9 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1898b5fd..b6278682 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 00000000..91e2bbaa
--- /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 6e9d5107..b68a9468 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 9b87ea78..07893ab6 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 5772bed5..f860b634 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