Difference between revisions of "Silmaril"

From Predictive Chemistry
Jump to: navigation, search
Line 7: Line 7:
 
** types
 
** types
 
** modules (aka. tables / record types / directories / structs / ML "Functors")
 
** modules (aka. tables / record types / directories / structs / ML "Functors")
** parsing constructs (for extensible case analysis)
 
 
* Extensible primitive operations (JIT C-compilation)
 
* Extensible primitive operations (JIT C-compilation)
 
* Extensible binary object types (i.e. opaque pointers)
 
* Extensible binary object types (i.e. opaque pointers)
Line 13: Line 12:
 
This documentation explains how to get up and running with the latest distribution.
 
This documentation explains how to get up and running with the latest distribution.
   
To interact with the server, you'll need a gpg key. The process for creating one is easy:
+
To interact with the server, you'll need an rsa key. The process for creating one is easy:
 
<source lang="bash">
 
<source lang="bash">
gpg --gen-key # just create an RSA signing key with 2048 bits
 
  +
mkdir ~/.sil
gpg --export --armor your.email@org.edu >pubkey.asc
 
  +
chmod 0700 ~/.sil
gpg --export-secret-keys --armor your.email@org.edu >privkey.asc
 
  +
sil generate "Your Name" "email@example.com" >~/.sil/config
 
</source>
 
</source>
More details on the client/server code are [[HowTo:PGP|here]]. Send your public key to me via email, so that I can sign your key to allow access. Once this is done, you can run the sil client using:
 
  +
This will set up your sil environment with a new identity and server.
  +
Next, send your name and public key (from that file) to me by email.
   
sil -a tcp\!rcslurm.usf.edu\!5050 -p pubkey.asc privkey.asc
 
  +
Now, you are ready to create a new sil project!
  +
From a new directory, run
   
(the backslashes are for bash's benefit) where pubkey and privkey are the ascii-armored, exported keys you created above. You can now read all saved objects and create your own commits.
 
  +
git init
  +
git remote add --track master origin git@github.com:<username>/<project name>.git
  +
echo '"Hello world!"' >hello.sil
   
You can get started by loading the standard library ([[Stdlib]]) and following along with the [http://predictivestatmech.org/sil/tour.html tutorial].
 
  +
This has created a new project with a simple hello world file. Next, you will need to compile
  +
the project using:
  +
  +
sil compile
  +
  +
This will parse the entire commit into sil object code, and sent it to the server.
  +
Compilation writes the sil.sha1 file as a side-effect. This file contains the id of the
  +
project source, and is used for communicating with the server.
  +
  +
With setup out of the way, it's time to write some sil code!
  +
You can get started by reading the docs and examples: ([http://predictivestatmech.org/sil/docs/html/]).
 
<!-- and following along with the [http://predictivestatmech.org/sil/tour.html tutorial].-->

Revision as of 01:10, 4 January 2017

The Silmaril programming language is built from the ground up for bleeding edge HPC. It has the following, fully automatic, killer features:

  • Git-like source code versioning
  • Cryptographically secure, distributed filesystem storage
  • First-class objects
    • functions
    • types
    • modules (aka. tables / record types / directories / structs / ML "Functors")
  • Extensible primitive operations (JIT C-compilation)
  • Extensible binary object types (i.e. opaque pointers)

This documentation explains how to get up and running with the latest distribution.

To interact with the server, you'll need an rsa key. The process for creating one is easy: <source lang="bash"> mkdir ~/.sil chmod 0700 ~/.sil sil generate "Your Name" "email@example.com" >~/.sil/config </source> This will set up your sil environment with a new identity and server. Next, send your name and public key (from that file) to me by email.

Now, you are ready to create a new sil project! From a new directory, run

git init
git remote add --track master origin git@github.com:<username>/<project name>.git
echo '"Hello world!"' >hello.sil

This has created a new project with a simple hello world file. Next, you will need to compile the project using:

 sil compile

This will parse the entire commit into sil object code, and sent it to the server. Compilation writes the sil.sha1 file as a side-effect. This file contains the id of the project source, and is used for communicating with the server.

With setup out of the way, it's time to write some sil code! You can get started by reading the docs and examples: ([1]).