If you are familiar with Clojure or willing to get familiar with it, then using atscc2clj allows you to write ATS code that can be compiled to JVM.
Caveat: Clojure is big and slow (based on my own experience). Otherwise, using Scala is probably the right idea. Some students in my class really like Intellij; it is an easy sale. Also, the way to package ATS code (to be distributed via npm) is fairly mature now. This can be readily integrated into the Intellij plug-in for ATS. ###### Never got time to say "Welcome back!". Hopefully, you will find a lot more fun in ATS this time :) Cheers! --Hongwei On Wed, Mar 7, 2018 at 7:48 PM, Brandon Barker <[email protected]> wrote: > Is there an example of how to use JVM libraries from ATS? > > I might try to rewrite the IntelliJ plugin in ATS if so, but I get the > sense that getting ATS up to speed in JVM tooling might be a bit of a task > (though perhaps a worthwhile one). Otherwise I can stick to Scala, which > has the advantage I can write as quickly in it as I can in anything at the > moment ;-). > > On Saturday, July 16, 2016 at 9:37:15 PM UTC-4, gmhwxi wrote: >> >> >> Ported some old code for testing atscc2cli: >> >> https://github.com/githwxi/ATS-Postiats-contrib/tree/master/ >> projects/SMALL/GameOf24/Clojure >> >> On Friday, July 15, 2016 at 10:59:26 AM UTC-4, gmhwxi wrote: >>> >>> 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/bb307c2e-cbef-4fb6-a785-5f5c2057ff4c% > 40googlegroups.com > <https://groups.google.com/d/msgid/ats-lang-users/bb307c2e-cbef-4fb6-a785-5f5c2057ff4c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CAPPSPLrDJ3PwGYhO35kMHVhXYQAO5j%3DQzP_5dhg_Jzi2k_nrOA%40mail.gmail.com.
