AmkG/snap
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
+-------+
| .-. | +-------+
| / \ | | .-. | SNAP Shared Nothing Arc Processes
+-------+ | / \ |
+-------+ +-------+
| .-. | +-------+
| / \ | | .-. | > Share nothing. Arc everything.
+-------+ | / \ |
+-------+
Goal: Create a virtual machine focused on two major things: list
processing and actor concurrency.
A subgoal is that within a process, anything goes: use functional
style, or imperative, or whatnot - you can mutate structures within
a process. Communication between processes is always copying (from
the Arc-side, at least), so each process is encapsulated from one
another.
Another subgoal is to define a "symbolcode", basically a symbolic
and possibly portable (across architectures, possibly even across
different Arc implementations) form of bytecode.
Other goals: fast message passing, fast execution, generational
GC for long-lived processes, trap-exit and process linking
Requirements for compiling:
a C++ compiler (tested on g++ 4.2.3)
Boost (tested on 1.34.1)
http://www.boost.org/users/download/
Tested on Ubuntu 8.04, 64-bit
(should probably work on Windows, if your C++ compiler is compliant
unless I accidentally used something GNU-specific, which would be a
bug.)
To test:
Go to the test/ directory. Choose any .cpp file. Assuming you have
a GNU C++ compiler and the bourne shell on your system:
./compile_test <testfile>.cpp
This should compile the desired test. Then run:
./a.out