Skip to content

AmkG/snap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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


About

Shared Nothing Arc Processes implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published