Skip to content

Commit 821ce25

Browse files
committed
Add basic layout and jekyll config. Added build page.
1 parent b5e8143 commit 821ce25

File tree

6 files changed

+177
-89
lines changed

6 files changed

+177
-89
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
_site
2+
.DS_Store
3+
*~

_config.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
auto: true
2+
server: true

_layouts/default.html

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset='utf-8'>
5+
<title>MagLev/maglev @ GitHub</title>
6+
<link rel="stylesheet" href="/css/maglev.css" type="text/css" media="screen" />
7+
</head>
8+
9+
<body>
10+
<div id="container">
11+
{{ content }}
12+
</div>
13+
</body>
14+
</html>

build.markdown

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: MagLev Build
3+
layout: default
4+
---
5+
Build Quickstart
6+
================
7+
8+
You need there to run MagLev:
9+
10+
1. GemStone/S VM (install via <tt>install.sh</tt>)
11+
2. MagLev image (what we will build here)
12+
3. [MagLev source](https://github.com/maglev/maglev)
13+
14+
## Step 1: Install the MagLev source:
15+
16+
$ git clone git://github.com/MagLev/maglev.git
17+
$ export MAGLEV_HOME=$PWD/maglev
18+
19+
## Step 2: Install VM
20+
21+
See the detailed instructions at <https://github.com/maglev/maglev> for the
22+
value of "NNN":
23+
24+
$ cd $MAGLEV_HOME
25+
$ ./install.sh NNN
26+
27+
## Step 3: Build MagLev image and start it
28+
29+
The following command will turn the smalltalk image
30+
(<tt>$MAGLEV_HOME/gemstone/bin/extent0.dbf</tt>) into a Ruby image and put
31+
it in <tt>$MAGLEV_HOME/bin/extent0.ruby.dbf</tt>:
32+
33+
$ rake build:image
34+
$ rake stone:create[maglev]
35+
$ rake maglev:start
36+
37+
Now you should be able to run ruby on MagLev:
38+
39+
40+
$ mruby -e 'puts "Hello from #{RUBY_ENGINE}"'
41+
Hello from maglev
42+
43+
You can run the tests:
44+
45+
$ rake tests
46+
47+
# How it all fits together
48+
49+
MagLev is layered on top of the GemStone/S Smalltalk Virtual Machine. To
50+
build MagLev, we start with s pure Smalltalk system, and then add layers of
51+
Ruby features on top of it. To do this, we use the Smalltalk tools and
52+
methods to introduce the core ruby extensions needed, and then run the pure
53+
Ruby definitions after that.
54+
55+
## VM versus image
56+
57+
The GemStone/S VM is just a C++ program that runs and manages an object
58+
memory. The VM has an Object Manager that knows how to create, delete and
59+
otherwise manage objects. The objects live in a large chunk of memory known
60+
as "object memory". When the VM starts up, it allocates space for object
61+
memory, and then loads objects from the image (stored in the stone), puts
62+
them into object memory and activates them.
63+
64+
The base Smalltalk objects and classes (Object, Class, Array, etc.) are
65+
pre-loaded in the Smalltalk image that comes with the VM
66+
(<tt>$MAGLEV_HOME/gemstone/bin/extent0.dbf</tt>).
67+
68+
The build steps described above add the base Ruby classes and objects on
69+
top of the Smalltalk image to create the base MagLev image
70+
(<tt>$MAGLEV_HOME/bin/extent0.ruby.dbf</tt>). <tt>extent0.ruby.dbf</tt> is
71+
then copied as the initial extent when you create a new MagLev stone
72+
(<tt>rake stone:create[maglev]</tt>).
73+
74+
The same GemStone/S VM will run objects served out of either the Smalltalk
75+
or MagLev extents (they are just plain old objects, as far as the VM and
76+
Object Manager are concerned).
77+
78+
Once you start persisting your own objects, they too will be stored in the
79+
stone alongside the base Smalltalk and Ruby objects.
80+
81+
The scripts that load the ruby objects into the image are a combination of
82+
rakefiles (<tt>rakelib/build.rake</tt>) and topaz scripts. Topaz is a C
83+
program that runs a GemStone VM, and provides a command line interface to
84+
that VM; see
85+
http://community.gemstone.com/download/attachments/6816350/GS64-Topaz-3.0.pdf?version=1
86+
.
87+

css/maglev.css

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
body {
2+
margin-top: 1.0em;
3+
font-family: Helvetica, Arial, FreeSans, san-serif;
4+
color: #555;
5+
}
6+
7+
#container {
8+
margin: 0 auto;
9+
width: 700px;
10+
}
11+
h1 { font-size: 3.8em; color: #444; margin-bottom: 3px; }
12+
h1 .small { font-size: 0.4em; }
13+
h1 a { text-decoration: none }
14+
h2 { font-size: 1.5em; color: #444; }
15+
h3 { text-align: center; color: #444; }
16+
a { color: #444; }
17+
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
18+
.download { float: right; }
19+
pre { background: #000; color: #fff; padding: 15px;}
20+
hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
21+
.footer { text-align:center; padding-top:30px; font-style: italic; }

index.html

+50-89
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,50 @@
1-
<!DOCTYPE html>
2-
<html>
3-
<head>
4-
<meta charset='utf-8'>
5-
6-
<title>MagLev/maglev @ GitHub</title>
7-
8-
<style type="text/css">
9-
body {
10-
margin-top: 1.0em;
11-
font-family: Helvetica, Arial, FreeSans, san-serif;
12-
color: #555;
13-
}
14-
#container {
15-
margin: 0 auto;
16-
width: 700px;
17-
}
18-
h1 { font-size: 3.8em; color: #444; margin-bottom: 3px; }
19-
h1 .small { font-size: 0.4em; }
20-
h1 a { text-decoration: none }
21-
h2 { font-size: 1.5em; color: #444; }
22-
h3 { text-align: center; color: #444; }
23-
a { color: #444; }
24-
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
25-
.download { float: right; }
26-
pre { background: #000; color: #fff; padding: 15px;}
27-
hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
28-
.footer { text-align:center; padding-top:30px; font-style: italic; }
29-
</style>
30-
</head>
31-
32-
<body>
33-
<a href="http://github.com/MagLev/maglev"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
34-
35-
<div id="container">
36-
37-
<div class="download">
38-
<a href="http://github.com/MagLev/maglev/zipball/master">
39-
<img border="0" width="90" src="http://github.com/images/modules/download/zip.png"></a>
40-
<a href="http://github.com/MagLev/maglev/tarball/master">
41-
<img border="0" width="90" src="http://github.com/images/modules/download/tar.png"></a>
42-
</div>
43-
44-
<h1><a href="http://github.com/MagLev/maglev">maglev</a>
45-
<span class="small">by <a href="http://github.com/MagLev">MagLev</a></span></h1>
46-
47-
<p>
48-
MagLev is a fast, stable, Ruby implementation with integrated
49-
object persistence and distributed shared cache.
50-
</p>
51-
<p>
52-
MagLev is currently in public Alpha and we expect to release
53-
version 1.0 October, 2011. If you are interested in persistent
54-
distributed Ruby objects, give it a
55-
try. <a href="http://github.com/MagLev/maglev/blob/master/README.rdoc">Download
56-
instructions</a> are available
57-
on <a href="http://github.com/MagLev">GitHub</a>.
58-
</p>
59-
60-
<h2>Contact</h2>
61-
<p>MagLev Engineering Team ([email protected])</p>
62-
<p>
63-
Follow <a href="http://twitter.com/maglev">MagLev developers on
64-
Twitter</a>, join
65-
the <a href="http://groups.google.com/group/maglev-discussion">MagLev
66-
Discussion Google Group</a>, hang out on
67-
<a href="http://webchat.freenode.net/?channels=maglev-ruby">irc.freenode.net#maglev-ruby</a>
68-
69-
70-
<h2>Download</h2>
71-
<p>
72-
You can download this project in either
73-
<a href="http://github.com/MagLev/maglev/zipball/master">zip</a> or
74-
<a href="http://github.com/MagLev/maglev/tarball/master">tar</a> formats.
75-
</p>
76-
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
77-
by running:
78-
<pre>$ git clone git://github.com/MagLev/maglev</pre>
79-
</p>
80-
81-
<div class="footer">
82-
get the source code on GitHub : <a href="http://github.com/MagLev/maglev">MagLev/maglev</a>
83-
</div>
84-
85-
</div>
86-
87-
88-
</body>
89-
</html>
1+
---
2+
layout: default
3+
title: MagLev
4+
---
5+
<a href="http://github.com/MagLev/maglev">
6+
<img style="position: absolute; top: 0; right: 0; border: 0;"
7+
src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"
8+
alt="Fork me on GitHub" />
9+
</a>
10+
11+
<h1><a href="http://github.com/MagLev/maglev">maglev</a>
12+
<span class="small">by <a href="http://github.com/MagLev">MagLev</a></span></h1>
13+
14+
<p>
15+
MagLev is a fast, stable, Ruby implementation with integrated
16+
object persistence and distributed shared cache.
17+
</p>
18+
<p>
19+
MagLev is currently in public Alpha and we expect to release
20+
version 1.0 October, 2011. If you are interested in persistent
21+
distributed Ruby objects, give it a
22+
try. <a href="http://github.com/MagLev/maglev/blob/master/README.rdoc">Download
23+
instructions</a> are available
24+
on <a href="http://github.com/MagLev">GitHub</a>.
25+
</p>
26+
27+
<h2>Contact</h2>
28+
<p>MagLev Engineering Team ([email protected])</p>
29+
<p>
30+
Follow <a href="http://twitter.com/maglev">MagLev developers on
31+
Twitter</a>, join
32+
the <a href="http://groups.google.com/group/maglev-discussion">MagLev
33+
Discussion Google Group</a>, hang out on
34+
<a href="http://webchat.freenode.net/?channels=maglev-ruby">irc.freenode.net#maglev-ruby</a>
35+
36+
37+
<h2>Download</h2>
38+
<p>
39+
You can download this project in either
40+
<a href="http://github.com/MagLev/maglev/zipball/master">zip</a> or
41+
<a href="http://github.com/MagLev/maglev/tarball/master">tar</a> formats.
42+
</p>
43+
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
44+
by running:
45+
<pre>$ git clone git://github.com/MagLev/maglev</pre>
46+
</p>
47+
48+
<div class="footer">
49+
get the source code on GitHub : <a href="http://github.com/MagLev/maglev">MagLev/maglev</a>
50+
</div>

0 commit comments

Comments
 (0)