- GsDevKit_home & tODE provides a complete Smalltalk development environment for GemStone/S 64
-
easy GsDevKit installation:
git clone https://github.com/GsDevKit/GsDevKit_home.git cd GsDevKit_home export GS_HOME=`pwd` export PATH=$GS_HOME/bin:$PATH $GS_HOME/bin/installServerClient devKit_329 tode1 3.2.9
-
GemStone/S stone named
devKit_329
created -
tODE client named
tode1
created -
to create another stone:
$GS_HOME/bin/createStone new_329 3.2.9
-
to start a tode client:
startClient tode1
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/dalehenrich/tode/master/docs/screenShot_2015-11-02.png" width="25%" height="25%"/>
-
-
Documentation available at: https://github.com/GsDevKit/GsDevKit_home#open-source-development-kit-for-gemstones-64-bit-
-
easy project loading using tODE commands:
project entry --url=http://gsdevkit.github.io/GsDevKit_home/Seaside3.ston /sys/local/server/projects project install Seaside3 project load Seaside3
-
Seaside3.ston
- a git/github project^ TDProjectSpecEntryDefinition new comment: ''; projectUrl: 'https://github.com/GsDevKit/Seaside31'; baseline: 'Seaside3' repository: 'github://GsDevKit/Seaside31:3.1.?/repository' loads: #('Development' 'Zinc' 'Examples'); installScript: ' project clone --https --local Seaside3 mount $GS_HOME/shared/repos/Seaside3/tode /home seaside project install --local --url=http://gsdevkit.github.io/GsDevKit_home/ZincHTTPComponents.ston project install --local --url=http://gsdevkit.github.io/GsDevKit_home/GsApplicationTools.ston'; gitCheckout: 'gs_master'; status: #(#'inactive'); locked: false; yourself
-
Magritte3.ston
- a Smalltalk Hub project:^ TDProjectSpecEntryDefinition new comment: ''; projectUrl: 'https://github.com/magritte-metamodel/magritte'; configuration: 'Magritte3' version: #'release3.2' repository: 'http://smalltalkhub.com/mc/Magritte/Magritte3/main' loads: #('Seaside'); status: #(#'inactive'); locked: false; yourself
-
list of available GsDevKit projects @ http://gsdevkit.github.io/GsDevKit_home/
-
-
Easy customization for personal project:
-
Example scripts
script function seasideCreateStone Create a new stone using $GS_HOME/bin/createStone, download the project entry from GsDevKit_home.io, run the project entry install script, load Seaside3 seasideInstall run the install script for the Seaside3 project entry seasideLoad load the Seaside3 project sdeasideTest run the Seaside3 tests seasideUpdate Download and load the latest Seaside3 code available from GitHub seasideUpgrade Upgrade an existing Seaside3 stone to a new version of GemStone seasideWebServer Register/Start/Stop/Restart Seaside web server gems - with the exception of
seasideCreateStone
andseasideUpgrade
, all of the scripts can be run from either a bash shell or a tODE shell - so yes they are all implemented in Smalltalk.
- with the exception of
-
-
Easy use of git from within smalltalk:
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/dev/docs/images/todeProjectListGitMenu.png" width="25%" height="25%"/> <img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/master/docs/images/gitMethodHistory.png" width="25%" height="25%"/>
-
Easy sharing of scripts between images????
-
GsDevKit_home
-
Bash scripts
- createStone
- deleteStone
- startStone
- stopStone
- upgradeStone
-
standard directory structure
path location $GS_HOME installation root $GS_HOME/bin GsDevKit_home bash scripts $GS_HOME/shared/repos git repository root $GS_HOME/server/stones GemStone stone directory $GS_HOME/sys/default default tODE shared directories $GS_HOME/sys/local local tODE shared directories $GS_HOME/sys/stones/ tODE stone directories
-
-
tODE
-
Standard smalltalk GUI environment
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/dalehenrich/tode/master/docs/screenShot_2015-11-02.png" width="25%" height="25%"/>
-
in-image support for managing git repositories
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/dev/docs/images/todeProjectListGitMenu.png" width="25%" height="25%"/>
-
tODE shell console
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/dev/docs/images/todeShellConsole.png" width="25%" height="25%"/>
-
tODE shell commands (~160 commands ... and counting)
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/master/docs/images/fullManAll.png" width="25%" height="25%"/>
-
tODE shell commands implemented in Smalltalk
- registered commands
browse class --hier Dictionary$
:: list classes in the hierarchy for the that match the class name patternDictionary$ (class names that end with
Dictionary`)-
browse
maps to an instance of a class -browseTool
-
class
maps to a specific method inbrowseTool
-
the #browseclass method parses the command line and extracts the option
--hier
and the regex expressionDictionary$
, then calls TDShellTool>>findClassHierarchy: to generate list of classes matching the pattern<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/master/docs/images/browseClassHierDictionary.png" width="25%" height="25%"/>
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/master/docs/images/browseFullClassKeyValueDictionary.png" width="25%" height="25%"/>
-
- Smalltalk programs, invoked in the tODE shell console using the path to the program:
-
/home/example -h
-
implemented in Smalltalk:
<img style="border: 2px solid #000000;"src="https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/master/docs/images/exampleScript.png" width="25%" height="25%"/>
-
- virtual directory structure within tODE
-
mount points for disk locations
path location /_home@/ $GS_HOME /sys/default $GS_HOME/sys/default /sys/local $GS_HOME/sys/local /sys/stone/home $GS_HOME/sys/stones//home /sys/stone/projects $GS_HOME/sys/stones//projects -
mount points for Smalltalk nodes
path location /home@/ /sys/stone/homeComposition /projects@/ /sys/stone/projectComposition -
/sys/stone/homeComposition
(TDComposedDirectoryNode pathComposedDirectoryNodeNamed: 'home' topez: self topez) addPathNode: '/sys/stone/home'; addPathNode: '/sys/local/server/home'; addPathNode: '/sys/default/server/home' includes: #('tode' 'utils'); yourself
-
/sys/stone/projectComposition
(TDComposedDirectoryNode pathComposedDirectoryNodeNamed: 'projects' topez: self topez) addPathNode: '/sys/stone/projects'; addPathNode: '/sys/local/server/projects'; addPathNode: '/sys/default/server/projects'; yourself
-
-
- registered commands
-
-
Last active
November 6, 2015 06:42
-
-
Save dalehenrich/1899e40e25d158a52fd6 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment