FYI. In case one wants to use ATS as a scripting language, please include the following comment in the file containing scripting code written in ATS:
(* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - $arglst(2) *) 'tcc' is for Tiny C Compiler, which can compile about 1M lines of C per second. On Thursday, April 27, 2017 at 1:56:01 AM UTC-4, gmhwxi wrote: > > Thanks! > > These days I have been thinking about (and working on) a tutorial system > for ATS. And myatscc is an attempt to provide an option that avoids the > need > to make directly use of patscc/patsopt. > > Yes, you can use myatscc to compile multiple files. I will be happy to show > it to you. > > First, I suggest that you make an npm-package for ats3d, which, by the way, > is beautifully written. > > If you are not familiar with the process of npm-packaging, I will be happy > to do it. > It does not take much time at all. Afterwards, let use myatscc to compile > all the > test files inside ats3d/TEST. > > >>The way I see it, it should be possible for the compiler (or some other > tool) to infer module dependencies automatically? > > I have not thought about it carefully. > > Incidentally, we discussed the ways of automating programmer's workflow >> here: >> https://github.com/RyanTKing/wombats/issues/1 >> I'm going to try to adapt the existing xmake project to tailor it to the >> needs of ATS programming. I don't have much time for this, at the moment, >> though. >> > > Sounds great! I will talk to Ryan. > > On Thursday, April 27, 2017 at 12:23:30 AM UTC-4, Artyom Shalkhakov wrote: >> >> Hi Hongwei, >> >> On Wednesday, April 26, 2017 at 6:24:19 AM UTC+6, 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 :) >>> >>> >> This is awesome! >> >> Can it compile multi-module programs too? I currently have a very clumsy >> Makefile setup here: >> >> https://github.com/ashalkhakov/ats3d/tree/master/src/TEST >> >> (see specifically the Makefile) >> >> The way I see it, it should be possible for the compiler (or some other >> tool) to infer module dependencies automatically? >> >> Incidentally, we discussed the ways of automating programmer's workflow >> here: >> >> https://github.com/RyanTKing/wombats/issues/1 >> >> I'm going to try to adapt the existing xmake project to tailor it to the >> needs of ATS programming. I don't have much time for this, at the moment, >> though. >> >> >>> 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/4227ee6e-c03f-430f-ae6f-966521293e5e%40googlegroups.com.