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
squeak: 4.10.2.2614 -> 5.3-19459 #133310
squeak: 4.10.2.2614 -> 5.3-19459 #133310
Conversation
, squeakImageVersion ? null, squeakImageHash ? null | ||
, squeakSourcesHash ? null, squeakSourcesVersion ? null, squeakVersion ? null | ||
, squeakVmVersion ? null, squeakVmVersionRelease ? null | ||
, squeakVmCommitHash ? null, squeakVmCommitHashHash ? null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need this mess?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the sanest way I could think of to not make version overrides require copying & pasting this source into a new expression.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the sanest way I could think of to not make version overrides require copying & pasting this source into a new expression.
you could put the "builder" in a separate nix file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you could put the "builder" in a separate nix file
How does this allow overrides, though? If I have a ./generic.nix
with an attrset parameter taking these values, returning a { lib, stdenv, ... }: stdenv.mkDerivation { ... }
expression, that's most likely not going to be exported at top-level. It would probably be paired with a ./default.nix
that is import ./generic.nix { squeakVersion = "5.3-19459"; ... }
, and this doesn't address the concerns of overriding the version without having to paste the whole expression source. nixpkgs/lib's module system addresses this sort of customization. callPackage
doesn't.
I considered doing something with makeScope
, but that seemed like more of an annoyance than using a few more named arguments.
EDIT: I removed a few of the arguments where you'd probably already be copying & pasting the expression when changing anyways.
ff6650b
to
da2eec8
Compare
Credit to @BenBals for starting work on this patch in <NixOS#86741>.
da2eec8
to
03515d4
Compare
dc822e3
to
cd73800
Compare
Everything is broken, I'm not sure if that's just the state of Smalltalk or a problem with the VM. |
@ehmry What sorts of broken? My tests worked fine back around the time I opened the PR. |
Excerpts from bb010g's message of March 29, 2022 2:04 pm:
@ehmry What sorts of broken? This all worked fine during my tests before opening the PR.
I don't understand Smalltalk yet so I'm getting version mismatches from the VM being too new or too old.
For now I'm running a patched binary from the alpha release: https://git.syndicate-lang.org/ehmry/syndicate-flake/src/commit/cecebbc118547c13faaab197b062adf83eb85c1f/squeak/default.nix
|
Credit to @BenBals for starting work on this patch in #86741. This package probably still needs more testing, but basic
inisqueak
execution works out of the box.This patch doesn't use a newer release of the OpenSmalltalk VM because current Squeak doesn't use one. I don't know enough about Squeak to feel comfortable bumping the VM version.
Motivation for this change
inisqueak
works in a fresh directory. I like that.This patch tries to replicate the recommended sorta-bootstrapping arrangement for Squeak, as best as I can tell. It's not super well documented. https://github.com/squeak-smalltalk/squeak-app was a helpful reference.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)