How do you update Dolphin to a new version?

59 views
Skip to first unread message

Joe Betz

unread,
Apr 12, 2022, 10:50:38 PMApr 12
to
I tried running the Dolphin7Setup executable attached to the new release (7.1.22), but Dolphin Smalltalk Launcher still seems to be opening images with the previous version (7.1.20). I assume this means I need to use new image files as well, but I wasn't able to find one in my Dolphin installation directory (C:\Program Files (x86)\Dolphin Smalltalk 7) nor in any of the folders attached to the release page (https://github.com/dolphinsmalltalk/Dolphin/releases/tag/7.1.22).

Where can I find an updated image file? And is there a better way to do minor version updates such as this?

Joe Betz

unread,
Apr 13, 2022, 9:57:43 PMApr 13
to
Okay, found the new image in C:\Documents\Dolphin Smalltalk 7\DPRO.img7. I'd moved my image files around enough to not remember where they were initially created.

I'm still curious though if upgrading an existing image is possible or if that would require Klein* level reprogrammability, at least for VM changes.



*http://kitakitsune.org/ltas/resources/Constructing_a_Metacircular_Virtual_Machine_in_an_Exploratory_Programming_Environment.pdf

vin...@gmail.com

unread,
Apr 13, 2022, 11:44:39 PMApr 13
to
Hi

I usually update the image by rebuilding it with the BootDPRO.cmd script or BootAndTestDPRO.cmd if there have been changes after a git pull. Remember to save down your changes before you do otherwise they are lost.

I don't use the launcher though - I just cd to the local clone dir and call Dolphin7.exe directly.

Vince

Joe Betz

unread,
Apr 21, 2022, 11:39:05 AMApr 21
to
Good to know, thanks!

danie...@gmail.com

unread,
Apr 22, 2022, 4:32:04 PMApr 22
to
It's worth pointing out *all* updates *do* involve upgrading an existing image, albeit a much simpler one: the boot image. So in fact Dolphin *does* exhibit sufficient reprogrammability to accommodate this, at least for the sorts of changes made in the VM so far. If you're curious, looking at the history of PreBoot.st in the root of the Dolphin repository will give you an idea of some of the sorts of gyrations that have taken place in the past. Upgrading a fully-built image in-place past some of these same milestones would be significantly more *difficult*, but not in principle impossible.

In Dolphin's case, the VM is still built separately, using non-Smalltalk tooling. Pharo does take a step in the direction of Klein by writing the VM in a Smalltalk subset they call Slang, such that it is actually possible to run a VM as Smalltalk code within a Pharo image, rather than compiling it to C and then machine code. This is still not properly metacircular in that the "parent" image is running on a compiled VM which cannot be modified, and the "child" image also cannot modify *its own* VM, but the parent image can modify the child image's VM just like any other application code.

On a more practical note: You certainly can apply minor Dolphin updates by updating your Git repository and manually filing in changed classes. There is no support for this in the UI, though—you'd have to do it by manually examining the Git log and executing `ClassName fileIn` statements appropriately. Handling loose methods, packaged globals and scripts, etc. is even more difficult and would require significant infrastructure work to accommodate. It's certainly possible to automate in theory—Pharo has Iceberg, which is a UI somewhat like the old Dolphin Source Tracking System, but built on top of Git. The image is essentially treated as equivalent to the Git work tree (though changes are only actually saved to disk when committing—effectively the work tree is not used except to immediately stage and commit), with in-image pull, merge, etc. operations that change live code in addition to the files on disk. Having something like Iceberg for Dolphin would be *amazing*, but, it's also the work of a team of devs over many years and *still* sometimes buggy.

On Thursday, April 21, 2022 at 11:39:05 AM UTC-4, joeb...@gmail.com wrote:
> Good to know, thanks!
Reply all
Reply to author
Forward
0 new messages