NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.05k stars 14.04k forks source link

Pharo VM is old #24616

Closed lukego closed 10 months ago

lukego commented 7 years ago

Issue description

(This issue is intended to be self-assigned i.e. something that I will do when unblocked by dependencies.)

The stable Pharo VM in NixOS is an old version that is not compatible with the latest Pharo release (5.0). We should upgrade to a newer VM. The problem is that no newer official release is available yet: the Pharo community all seem to be running unofficial releases directly from CI.

One potential workaround would be to build a more recent version directly from Git but this is complicated. The version available in Git requires more bootstrapping than the official releases. In particular it requires you to already have another version of Pharo available for bootstrapping (and, circularly, the Pharo community usually use the latest version from CI for the build.) To reproduce this bootstrapping step in Nix seems both complex and also error prone if we would use an older Pharo to bootstrap from.

The best solution seems to be for upstream to make a new stable release. I am hoping that this will happen soon and when it does I will update nixpkgs. See mailing list thread for status.

lukego commented 7 years ago

Slow progress.

Pharo upstream are telling me that they don't have the time to make a new source release of the VM. I suspect that everybody else is running binaries produced by their Jenkins CI (probably on Ubuntu.) I also don't know which commit from their master branch would be appropriate to build a NixOS package from because there are no tags and none of the individual commits look like obvious candidates to me.

Have to think about a new approach, possibly to replicate whatever their Jenkins CI is doing both in terms of build steps and also deciding which commits from their master branch are shippable.

Have to also think about whether that is an adequate solution. The reason I want to use Pharo via nixpkgs in the first place is that I have had a lot of problems with using the binaries provided by upstream. I want the nixpkgs version to be stable and dependable and this may require taking a different approach to upstream if they are just shipping their nightly builds all the time.

7c6f434c commented 7 years ago

Have to think about a new approach, possibly to replicate whatever their Jenkins CI is doing both in terms of build steps and also deciding which commits from their master branch are shippable.

Maybe just implement our own nightly-beta-stable loop on top of their nightly picks, with promotion being based of complaints not being applicable to the good candidate?

lukego commented 7 years ago

I nagged a little bit more (sigh, I don't like being that guy) and it sounds like they are going to make a new VM release but don't have the time at the moment due to an upcoming image release and conference (mailing list post).

I am tempted to wait for a while and see what happens upstream. Browsing the archive it looks like they usually make a VM release every few months and it's an exceptional situation now.

In the background I need to do a little more digging to understand the VM development work that is ongoing, specifically the status of transitioning to the new Spur VM and from 32-bit to 64-bit mode. I have the impression there is a lot going on in that space at the moment. It would be nice to shield nixpkgs users from having to worry about this if possible.

das-g commented 5 years ago

It looks like Pharo has replaced the pharo VM (or at least the GitHub repo?) with https://github.com/opensmalltalk/opensmalltalk-vm.

According to its README.md of the latter, the opensmalltalk/opensmalltalk-vm repo has C exports of the VMs' source code (which are being developed within such VMs in SmallTalk), so that the VMs can be built without needing the VMs first. (Thus solving the bootstrap problem you mentioned, I hope?)

Strangely, there seem to be two tags for the Pharo 7.0 VM:

Maybe you can find out which one of these (if any) is the "official" one and/or corresponds to the "PharoVM 7.0 for Linux" binary download available on https://pharo.org/download?

stale[bot] commented 4 years ago

Thank you for your contributions.

This has been automatically marked as stale because it has had no activity for 180 days.

If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.

Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse.
  3. Ask on the #nixos channel on irc.freenode.net.
iNode commented 4 years ago

Thanks for working on this. Are there any further news?

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info

ehmry commented 2 years ago

Squeak is also using an old VM and should be updated to use OpenSmalltalk.

patka-123 commented 11 months ago

Hello @lukego 👋

If I see rhings correctly then I think the Pharo VM has been updated by now. Would you mind closing this issue if it has been resolved for you?

(I'm going through issues marked as stale to see what can be triaged)