Very interesting. I didn't know this. What do you mean by caching compilation?
On Friday, February 9, 2018 at 10:53:19 PM UTC-5, Julian Fondren wrote: > > Scripts are typically invoked directly, as "tool" where tool is in your > PATH, or "./tool" > > In Unix, the kernel itself finds the scripting binary to run an executable > file beginning with #! > So languages intended for scripting use typically accept #! or # as a line > comment. > > ATS doesn't accept it as a comment, but you can make do with some overhead: > > $ cat hello.dats > //usr/bin/env myatscc "$0"; exit > (* > ##myatsccdef=\ > patsopt --constraint-ignore --dynamic $1 | \ > tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - > $arglst(2) > *) > > implement main0() = println!("Hello, world!") > $ ./hello.dats > Hello, world! > > The next step would be to cache the compilation entirely, as with > https://github.com/mjambon/ocamlscript > > On Tuesday, April 25, 2017 at 7:24:19 PM UTC-5, gmhwxi wrote: >> >> >> Often a file of ATS source code has to be compiled with the use of a >> Makefile. >> This can be quite inconvenient in practice. >> >> When teaching, I have to answer countless questions regarding the need of >> certain >> flags for compiling ATS code through the use of patscc/patsopt directly. >> >> I recently wrote a command 'myatscc' (which should be available to you if >> you build >> the latest version of ATS (that is, ATS2-0.3.5). The simple idea behind >> of 'myatscc' is >> like this: >> >> Given a file, say, foo.dats, one should be able to compile it by issuing >> the following >> command: >> >> myatscc foo.dats >> >> Whatever needed for compiling foo.dats should be written as some form of >> comment >> inside foo.dats. For instance, the following comment is assumed to be the >> default (if >> nothing is given explicitly): >> >> (* >> ##myatsccdef=\ >> patscc -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $fname($1) $1 >> *) >> >> $1: the first non-flag argument passed to myatscc >> $fname: a built-in function for myatscc that returns the proper part of a >> filename >> >> If you just want to see what myatscc generates (but not to execute what >> is generated), >> please do: >> >> myatscc --dryrun foo.dats >> >> I am pretty sure that 'myatscc' will save a great deal of my own time :) >> >> 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 ats-lang-users+unsubscr...@googlegroups.com. To post to this group, send email to ats-lang-users@googlegroups.com. 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/a3a4c9f0-2c3b-4a3c-8890-2e5f073cca3d%40googlegroups.com.