Skip to content

Announcements

Bob Burger edited this page Oct 11, 2022 · 3 revisions

Announcements

This page contains announcements from the Chez Scheme maintainers. These announcements may be of interest to end users of Chez Scheme, developers of Chez Scheme, or both. Announcements are in reverse chronological order.

2022-10-08: Intent to merge the Racket fork and rewrite git history

The maintainers have agreed in principle (but with no promises as to timeline) to the following inter-related major changes:

  • Increment the major version number to version 10
  • Incorporate the changes currently in the Racket fork of Chez Scheme
  • Remove the boot files from the repository (rewriting history)

Each of these changes is described in (slightly) more detail below.

Version 10

Since these changes include not only major new functionality, but also some backwards-incompatible changes, it seems appropriate to increment the major version number and make the next release Chez Scheme 10.0. We will have one more release on the 9.x series with any accumulated changes since the last release.

Merge with the Racket fork

The Racket fork of Chez Scheme has several highly desirable new features. Of particular general interest are the native Apple Silicon support and the "portable bytecode" back-end. The version 10 release notes will, of course, have a full accounting of the new features. Now that it has worked through the "growing pains" of getting Racket-on-chez up and running, it's time to accept those changes upstream.

This is complicated by the fact that the repo for Racket for does not include the boot files (to keep the repository size down), and has rewritten its history to remove boot files that were committed. That means that, as far as git is concerned, the repositories do not share any commits with the Chez Scheme repository except for the initial commit. This leads to the next major change...

Rewriting history to remove boot files

The current practice in the Chez Scheme repository is to commit boot files when they change, so that a checkout at any point in history can be built. While this is convenient should one need to build something other than the latest version, it makes for a very large repository. The inclusion of the portable bytecode machine type from the Racket fork means that in the future we will need only one boot file (the pb boot file) rather than one for each machine type, but that does not solve the problem of the existing repository already being a significant fraction of a gigabyte. There are only two ways to solve that: either abandon the repository and start a new one, or rewrite the repository history to remove the boot files. Each of these has its own drawbacks, but the current plan (still subject to change) is to rewrite the history of the Chez Scheme repository.

The Racket fork has moved the boot files into a subrepository. It remains to be seen whether the Chez Scheme repository will follow suit (for non-technical reasons).

Clone this wiki locally