NewsΒΆ

Agora - a new page for creating and supporting Shen projects is established March 2014

The Book of Shen - second edition is published January 2014

Shen under Python is developed - twice! May 2013

Ramil and Matthieu Lagacherie have both independently developed versions of Shen running under Python.

Shen under the JVM is developed April 2013

Hakan Raberg has developed a version of Shen running under the JVM.

Shen under Ruby is developed December 2012

Greg Spurrier has developed a version of Shen running under Ruby and is the tenth member of the 2011 committee.

ShenJ - Shen under Java is developed November 2012

Joel Shellman has developed a version of Shen running under Java and is the newest member of the 2011 committee.

The Book of Shen is published October 10th 2012

The Book of Shen is the official guide to the Shen programming language. Listing over 400 pages, TBoS includes a complete exposition of Shen, covering recursion, list, string and vector handling, macros, packages, streams, higher-order functions and the use of sequent calculus to define types. A thorough examination of the syntax, formal semantics, compiler and type theory underlying the language is incorporated.

Maths Library developed March 26th 2012

Willi Riha successfuly developed a standard maths library for Shen which is now available from the library section of the Shen website.

Shen ports to Clojure March 12th 2012

Hakan Raberg successfuly ported Shen to Clojure. The latest version, shen.clj-0.1.2 is now available from the download section of Shen.

Vector library founded March 10th 2012

The first release of the standard vector library was produced by Mark Tarver.

String library founded February 24th 2012

Dr Willi Riha released the standard string library.

Shen 3.0 ported to Javascript. January 2012

Ramil Farkhshatov successfuly ported Shen to Javascript. The latest version for 3.1 is now available from the download section of Shen. Ramil is now a member of the 2011 committee.

Shen’s website is revamped January 2012

Thanks to work by Bruno Defarri incorporating Malcolm Still’s great logo, the Shen website has a new clean look. Bruno has become a member of the 2011 committee.

Shen acquires character codes December 2011

Shen acquired character codes with a new primitive n->string which receives a decimal number and returns a character (unit string). The platforms support ASCII, but it is consistent with spec to support any number range. The notation “c#N;” allows the corresponding unit string to be printed out.

Shen acquires E notation November 2011

Shen acquired e-notation with a recommendation that platforms employ double precision when possible.

SBCL Port Appears November 2011

Shen 1.9 has been be ported to Steel Bank Common Lisp this month. From experience, we should have a Shen that is about 4x faster than the CLisp platform we now have.

This port is part of a big migration that will see Shen move from Common Lisp to Scheme and then to Javascript. In 2012 the migration will continue to other platforms.

Shen Opens Up on Github October 2011

Developers who want to share applications written for Shen can now work from a public repo on Github run by Vasil Diadov. This repo is purely for applications to run under Shen and is disjoint from the license controlled porting that is done on the repo run by Kian Wilcox. People interested can find the repo here: https://github.com/vasil-sd/shen-libs

Shen Gets its own Website October 2011

Shen has got a new website and you?re reading from it right now. The old Lambda Associates website was confusingly mixing material relating to Qi and to Shen. The chances of confusion would only grow as Shen developed and diverged from Qi. Hence we decided to liberate Shen to live in its own space and leave Lambda Associates for Qi.

Fast Information Delivery October 2011

We live in age of fast food and fast information; people eat on the move and acquire information on the move. The new living space for Shen lays out teaching materials for fast information delivery. There is a 15 minute tutorial in Shen for experienced functional programmers and a fast reference in tabular form with HTML for all system functions. With each fast reference, there are detailed online references for those who want to dig deeper. This will make Shen much easier to learn.

Work on a Port to Javascript; LLVM to follow October 2011

Kian Wilcox is directing the port of Shen to Javascript and runs the private development repo for porting Shen. Shen is written in a low level Lisp called Klambda, which compiles all of Shen into a language with 45 primitive functions. It is this reduced instruction set that makes Shen so portable.

However the spec for Kl calls for tail call optimisation and Lisp-like symbols which poses a challenge for platforms which do not support these features. Here Kian explains online what he is doing in his Javascript port.

Much of the work necessary for converting to Clojure or Python (or any other non-TCO language) is being done as a pass over Kl right now in my JS port. Once this is finalized, it should be relatively easy to port the transformed Kl code to any architecture that supports exceptions or labels. In addition to translating the 40 something primitives [of Kl], you [normally] need to implement lisp-like symbols in a dual namespace and tail call optimization. After I?ve finished my work porting to JavaScript, and then next to the LLVM, you will hopefully not need to do either of the latter - there should exist Kl->Kl source translations that handle this in the Shen layer for you.