Re: The myatscc utility

2017-04-26 Thread gmhwxi
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/4c3fd51e-7e01-4b5b-84af-9e51fbbdfb06%40googlegroups.com.


Re: The myatscc utility

2017-04-26 Thread Artyom Shalkhakov
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/afd17d79-6adf-4eb0-ba87-25ab466c7c6d%40googlegroups.com.