Remix.run Logo
cess11 14 hours ago

Contemporary Smalltalks support git.

rbanffy 12 hours ago | parent [-]

And, more importantly, source code files.

igouy 11 hours ago | parent | next [-]

For decades —

"When you use a browser to access a method, the system has to retrieve the source code for that method. Initially all the source code is found in the file we refer to as the sources file. … As you are evaluating expressions or making changes to class descriptions, your actions are logged onto an external file that we refer to as the changes file. If you change a method, the new source code is stored on the changes file, not back into the sources file. Thus the sources file is treated as shared and immutable; a private changes file must exist for each user."

1984 "Smalltalk-80 The Interactive Programming Environment" page 458

layer8 10 hours ago | parent | prev [-]

But the image isn’t just the code, or classes, it’s also the network of objects (instances). And that’s more difficult to version, or to merge branches of.

igouy 8 hours ago | parent [-]

Given that the instantiation of those objects has been triggered by Smalltalk commands; those Smalltalk commands can be recorded and versioned and replayed to instantiate those objects.

layer8 7 hours ago | parent [-]

It means that versioning operations, even just displaying the history, effectively have to run the full image from the beginning of the history, or take intermediate snapshots of the image. In addition, there is interaction between the source code changes and the recorded command history. It also doesn't address how merging would be practical. You would have to compare the state of two images side-by-side, or rather three, for three-way merges.

cess11 2 hours ago | parent [-]

This isn't more of a nuisance than things like web testing where you automate login and navigation.