This project emerged from a bachelor's project at the HPI Software Architechture Group in the year 2017/18. It was named "Programmieren direkt in der Datenbank - ..." .
Part of the project was to modify Squeak/Smalltalk to be able to import it into the GemStone/Smalltalk ecosystem. The core modifications are necessary to use the GemStone VM instead of the Squeak VM.
The project is based on ideas first developed in Ruby MagLev. GemStone was extended by an environment concept to separate method dictionaries of classes. That way multiple different implementations of methods and even different languages could be integrated into GemStone without changing the programming environment or VM. Another project similar to this one was started, called PharoGS, where Pharo was modified the same way we did with Squeak. The project is discontinued though.
BP2017RH1
├── bug-fixes
- Temporary bug fixes for GemStone/S
├── deprecated
├── docs
├── graffics
- Graphics Library for SDL
├── GsDevKit_home
- GsDevKit_home installation
├── misc
- helper scripts and WIP tODE integration
├── monticello-environment-switch
- Monticello Extension to load packages to environments
├── squeak-environments
- SmalltalkImage and Environment classes from Squeak for Namespacing
├── squeak-modifications
- Squeak bootstrap files
├── squeak-parser
- Modified Squeak Parser for GemStone/S
├── tools
- GemStone/S tools for Squeak
└── install.sh
Installation (Video Guide)
-
Execute and follow
install.sh
-
Download Squeak 6.0alpha17822
-
Install VMMaker using
MCMcmUpdater updateFromRepository: 'http://source.squeak.org/VMMaker'
-
Install GemStoneGUI and GsSqueakImport (see here)
-
Start a new GemStone session with
GSGRepositoryManager open.
and login -
Click
Load GsSqueak
. This starts the bootstrapping process from Squeak into the specified stone -
Execute
gsSqueak.sh
to open GsSqueak
Just as you would use Squeak :)