newspeaklanguage / newspeak

Newspeak is a live object-capability language in the Smalltalk tradition
https://newspeaklanguage.org/
Other
131 stars 11 forks source link

Implement MemoryHole in Web IDE #72

Open gbracha opened 3 years ago

gbracha commented 3 years ago

We need a way to access git, and a reactive UI for it.

Miciurash commented 2 years ago

@gbracha I'd like to know more on this.

gbracha commented 2 years ago

MemoryHole is the system that provided (Newspeak-language aware) support for source-control within the Newspeak IDE. It was in use from the Squeak Smalltalk based Newspeak system. It communicated with the local git (and hg, if so desired) command line tools and provided a GUI that showed structured diffs between the running IDE's code and git (or hg, but never mind) repos. The diffs were structured, so they would list specific classes and methods that had been added/removed/modified, with textual diffs only within methods.

You can see a description of how that was used at: https://newspeaklanguage.org/ns101/ns101.html#sec-how-does-source-control-work

None of this is available in the web based IDE, because of the difficulty communicating with git. There are various web-based git clients, but it's not clear how well they work and how to integrate them etc.

I'll mention one more major benefit of having access to git: we once had a feature where every accepted change was committed to a special local repo; this allowed for infinite undo.

Hopefully this clarifies what this issue is about.