For the record, here is the directory for Atscc2clj:

https://github.com/githwxi/ATS-Postiats-contrib/tree/master/projects/MEDIUM/CATS-atsccomp/CATS-atscc2clj

There is a Makefile for generating atscc2clj. Also, some of the running 
examples can be found at:

https://github.com/githwxi/ATS-Postiats-contrib/tree/master/projects/MEDIUM/CATS-atsccomp/CATS-atscc2clj/TEST

Clojure uses a rather peculiar way to support optimization of recursive 
tail-calls. So far, ATS can only properly handle tail-call
optimization if the call is located not inside the body of a pattern 
matching clause. Hopefully, this restriction can be removed
later...

On Thursday, July 14, 2016 at 5:15:35 PM UTC-4, gmhwxi wrote:
>
>
> I am pleased to announce that
> ATS code can now be compiled to Clojure (and then to JVM).
>
> I include an example as follows.
>
> Obviously, the generated Clojure code is not so-called idiomatic Clojure 
> code.
> But it is really a lot safer than manually written Clojure code because 
> the source
> of the code passes type-checking in ATS.
>
> ;;fun
> (defn
>  fact[arg0]
> (
> with-local-vars
> [
> ;;knd = 0
>   tmpret0 nil
>   tmp1 nil
>   tmp2 nil
>   tmp3 nil
> ;;var tmplab, tmplab_clj
> ] ;; with-local-vars
>   ;; __patsflab_fact
>   (var-set tmp1 (ats2cljpre_gt_int0_int0 arg0 0))
>   (if @tmp1
>     (do
>      (var-set tmp3 (ats2cljpre_sub_int0_int0 arg0 1))
>      (var-set tmp2 (fact @tmp3))
>      (ats2cljpre_mul_int0_int0 arg0 @tmp2)
>     ) ;; if-then
>     (do
>      1
>     ) ;; if-else
>   )
> ) ;; end-of-with-local-vars
> ) ;; end-of-fun
>
> Now I need to figure out how to write apps in Clojure :) After that, we 
> should be able to write apps in ATS (via Clojure).
>
> Cheers!
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/0f96a381-dc36-40a7-8b01-a990819a8872%40googlegroups.com.

Reply via email to