This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit c7b33a732d378115978424e4f243be61e1089b32
tree 35f80b70efdd4598b2e80134e3a8fe15ca630966
parent 157ee22f68c5dfaf9b0775eda992eff7fad671a5
tree 35f80b70efdd4598b2e80134e3a8fe15ca630966
parent 157ee22f68c5dfaf9b0775eda992eff7fad671a5
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Fri Feb 20 21:16:31 -0800 2009 | |
| |
COPYING | Sat Jan 17 18:21:26 -0800 2009 | |
| |
COPYING.LESSER | Sat Jan 17 18:21:26 -0800 2009 | |
| |
LICENSE.TEMPLATE | Sun Jan 18 11:52:39 -0800 2009 | |
| |
README | Thu Feb 05 07:28:15 -0800 2009 | |
| |
bootstrap.pl | Mon Feb 02 07:49:39 -0800 2009 | |
| |
build.gant | Fri Feb 20 21:17:03 -0800 2009 | |
| |
examples/ | Fri Feb 27 18:50:19 -0800 2009 | |
| |
ivySettings.xml | Sun Jan 18 17:03:15 -0800 2009 | |
| |
old-tests/ | Wed Jan 21 18:42:48 -0800 2009 | |
| |
old/ | Fri Feb 13 19:30:24 -0800 2009 | |
| |
resources/ | Wed Jan 21 18:42:48 -0800 2009 | |
| |
src/ | Fri Feb 20 21:17:20 -0800 2009 | |
| |
test/ | Fri Feb 20 21:17:20 -0800 2009 |
README
The Cornerstone language provides an aggressively statically typed language with a Groovy/Ruby style scripting syntax.
To build it:
0) If you have Perl installed, but not Gant, run "boostrap.pl" the first time.
1) Run "gant" in the root directory.
Here are some notes:
* JVM-based concurrent-by-default functional language with Groovy/Ruby style syntax
* Rational as default numerical type. Explicit trailing suffixes for others.
* Push implied static typing as hard as possible
* multiple dispatch (multimethods) with syntatic methods and syntatic exceptions
* let x = ... (impiled block) and let x = ... in {} (explicit block)
* Types are first-level objects (match on types)
* Method calls are microthreads unless explicitly specified
* Unify tuples and argument lists
* _ as missing arguments
* type? as "type option"
* ', and "
* int -> !! for "never returns"
* Properties / methods / functions 1st class objects. Can do .name(), .caller(), etc.
* classes start with capital leters
* compile-time checked named arguments
* interpolated variables into Strings
Future extensions:
* :foo => :foo() => { x -> x.foo() } (Note :foo(3) is {x->x.foo(3)}, not 3.foo())
* mmap files to Strings
* compile-time checked named arguments
* reference methods through : (e.g. :foo[it] --> it.foo )
* easy compile-time augmentation through closures or AST modifications:
@Generates(/findBy(\w+)/, { nameMatch, varargs -> ... }
* LaTeX based documentation and literate programming
* Regex as value type
* GMP mpq as rational impl
* Other-lang blocks beyond Java (esp. Groovy, Scala, JRuby)
let myVar = @@Java:MyVarType(arg1,arg2) { /* Java code using "arg1" and "arg2", returning MyVarType */ }
* Point-and-shoot concurrency over the network transparently leveraging RMI
* open classes: "extend String { ... }"
* "open" to open categories ("open com.smokejumperit.Category in { }")







