from Hacker News

Shen Programming Language for Android

by doall on 12/27/17, 1:05 AM with 16 comments

  • by eggy on 12/27/17, 12:56 PM

    Chris Double ported Shen to Wasp Lisp, which is a very interesting combination. Wasp and MOSREF (a secure remote injection framework) are something I have been playing with over the years, and having Shen in there makes for an interesting combination [1]. He also ported Wasp Lisp to Android [2].

      [1]  https://github.com/doublec/shen-wasp
      [2]  https://bluishcoder.co.nz/2013/05/09/building-wasp-lisp-and-mosref-for-android.html
  • by Wildgoose on 12/27/17, 11:01 AM

    Shen is a genuinely interesting Lisp that is implemented using around 46 primitive functions - porting Shen then just requires the implementation of this 46 function substrate in whatever programming language you are using.

    In addition to a built-in Prolog and also optional type checker it also uses pattern-matching like other modern functional programming languages. This is unlike Clojure which to my mind wrongly downgrades pattern-matching to simply an optional library. (Apparently Rich Hickey isn't keen on pattern-matching).

    Shen is certainly worth investigating if you have an interest in Lisp.

  • by mcguire on 12/27/17, 9:09 PM

    Just tried building shen-c[1]; it seems my gcc (5.4.0) doesn't like the code with -std=c99 and prefers the -lgc at the end of the line.

    [1] https://github.com/otabat/shen-c

        diff --git a/Makefile b/Makefile
        index 3ae5a55..458200d 100644
        --- a/Makefile
        +++ b/Makefile
        @@ -26,5 +26,6 @@ ${TARGET}: ${SRC_OBJS}
         #	cc -g -O3 -std=c99 -lgc -lprofiler -Wl,-no_pie -o $@ $^
        -	cc -O3 -std=c99 -lgc -o $@ $^
        +#	cc -O3 -std=c99 -lgc -o $@ $^
         #	gcc-6 -g -O3 -std=c99 -L /usr/local/lib -lgc -lprofiler -Wl,-no_pie -o $@ $^
         #	gcc-6 -O3 -std=c99 -L /usr/local/lib -lgc -o $@ $^
        +	gcc -O3 -o $@ $^ -lgc
         
        @@ -34,5 +35,6 @@ ${OBJ_ROOT}/%.o: $(SRC_ROOT)/%.c
         #	cc -O2 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
        -	cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
        +#	cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
         #	gcc-6 -g -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $<
         #	gcc-6 -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $<
        +	gcc -O3 -fno-optimize-sibling-calls -c -o $@ $<
  • by pagnol on 12/27/17, 8:07 PM

    Presumably some readers bought the book when Shen appeared on the frontpage because its price on Amazon has risen from 40 usd to 230 usd: https://www.amazon.com/dp/B01K3JCGGI
  • by nerdponx on 12/27/17, 11:21 PM

    Every time I hear about Shen I think about this talk: https://www.youtube.com/watch?v=lMcRBdSdO_U
  • by msl09 on 12/27/17, 5:50 PM

    Pretty cool language but there's no way to save your work in the app.