racket / ChezScheme

Chez Scheme
Apache License 2.0
110 stars 8 forks source link

Tags corresponding to Racket releases #42

Closed dpk closed 2 years ago

dpk commented 2 years ago

Up until Racket 7.8 last year this repo was regularly tagged giving stable Racket-Chez versions corresponding to stable Racket versions.

Could this practice be restored, so those of us interested in using Racket’s improvements to Chez separately from Racket itself can do so with moderate guarantees of stability?

jbclements commented 2 years ago

On July 27, 2020 (just before the release of Racket 7.8!) we made the decision to move the chez scheme sources into the Racket repository racket/racket. Since then, Racket builds use the version of Chez Scheme that lives in the Racket sources, not the version in racket/ChezScheme.

Matthew Flatt @mflatt discusses this in his email to the [racket-dev] mailing list:

https://groups.google.com/g/racket-dev/c/IR3dOLlyCD4

As you can see from the commit history, we have continued to contribute commits to the racket/ChezScheme tree, though it a quick look at the merge point suggests that there might be a substantial distance between racket/ChezScheme and cisco/ChezScheme.

So... can you get a copy of Chez with the racket edits? I just spent two minutes searching through my build directory, and it does look like a "scheme" executable gets built. Trying to start it fails, because it can't find an appropriate "scheme.boot", but I do see files with that name in the build tree, so it might just be a question of setting your LD_LIBRARY_PATH or something similar. This seems like a good question for the discourse group. In fact, I'm going to go ahead and pose it, and close this issue. Please feel free to re-open it if I've misunderstood your request!

samth commented 2 years ago

@jbclements I think you misunderstood the request and the current situation in this repository.

This repository is kept up to date using git subtree. So it serves perfectly for the goal of building Chez Scheme with our changes. Furthermore, effectively all of the upstream changes are merged in to this repository and to racket/racket.

The request here is just to add a v8.4 tag during the release process next time, which should be an easy addition to the process.

jbclements commented 2 years ago

Well, color me surprised. I want to make sure I tag the right version though, what triggers the git subtree operation?

Related: this page

https://www.atlassian.com/git/tutorials/git-subtree

...suggests that git subtree is built-in to most recent versions of git, but I don't see it in my version of git:

pajaro2:/tmp clements> git --version   
git version 2.30.1 (Apple Git-130)
pajaro2:/tmp clements> git help subtree
No manual entry for git-subtree
pajaro2:/tmp clements> 
samth commented 2 years ago

I believe that @mflatt runs it manually to keep the subtree in sync, with the definitive copy being the subdirectory in racket/racket. Maybe there should be a checklist item to ensure that.

mflatt commented 2 years ago

I agree that this is a good idea, and I've added tags racket-v7.9 through racket-v8.3.

Just to confirm the repo and distribution situation:

amirouche commented 2 years ago

If I understand correctly, the best way to contribute to this repository is with pull-requests to racket/racket?

Another useful information will be at glance view of differences with cisco/ChezScheme. Maybe it is somewhere, and missed it. I am willing to go through the git history to gather the changes, and put that small description together. Let me know.

mflatt commented 2 years ago

There's a list of the main changes at the end of README.md. There could be a bigger list, but I don't know whether that would be worth maintaining.

Examples of things not in the current list: makefile and configure-script reorganization, assert-unreachable and its interaction with optimization, more cross-library inlining, split cpnanopass into cpnanopass plus cpprim to reduce peak memory when compiling Chez Scheme itself, revised representation of record-type inheritance for constant-time predicates, more general varargs support in the FFI, thread-join, vfasl for faster startup. (My best guess is that a complete list of things at that level would be around 3 or 4 times as long.)

jbclements commented 2 years ago

Before this one gets away entirely, shall I add a release checklist item for this? I can either remind you to take action, or you can send me a short script or sequence of instructions.

John

On Dec 11, 2021, at 11:26, Matthew Flatt @.***> wrote:

There's a list of the main changes at the end of README.md. There could be a bigger list, but I don't know whether that would be worth maintaining.

Examples of things not in the current list: makefile and configure-script reorganization, assert-unreachable and its interaction with optimization, more cross-library inlining, split cpnanopass into cpnanopass plus cpprim to reduce peak memory when compiling Chez Scheme itself, revised representation of record-type inheritance for constant-time predicates, more general varargs support in the FFI, thread-join, vfasl for faster startup. (My best guess is that a complete list of things at that level would be around 3 or 4 times as long.)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

mflatt commented 2 years ago

We have a checklist item, so adding the tag is now part of our release process.