Re: libatscc: packaging

2019-05-27 Thread gmhwxi

This is a great idea!

I would suggest that we follow the library
support for Temptory to build this libatscc, making extensive
use of templates (instead of higher order functions).

On Monday, April 1, 2019 at 6:46:44 AM UTC-4, Artyom Shalkhakov wrote:
>
> Hi all,
>
> I've started work on improving atscc2js yesterday and found that we have 
> three similar projects:
>
>1. https://github.com/steinwaywhw/ATS-Python3
>2. https://github.com/bakpakin/ats-lua
>3. https://github.com/sazl/ats-go
>4. and the in-progress atscc2js
>
> Every target programming language comes with its own "prelude" (e.g. 
> libatscc2js for JS), but such preludes essentially implement the interfaces 
> defined in libatscc.
>
> Now I'm thinking that we need to package up the interface and keep it as 
> uniform as possible across the different targets, so that programmers may 
> hopefully share more code between platforms with little issues (or no issue 
> at all).
>
> With the above in mind, I propose to:
>
>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>this, it will require only minimal changes to the existing code)
>2. come up with some process to maintain this 'specification' (maybe 
>create a github organization and put this library into a repository; let 
>people use issues and PRs to propose changes)
>
> Is anybody interested? If not I'll just go with the first point, and the 
> specification will live on in the ATS-Postiats repository (for now).
>

-- 
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/4485e149-7cc3-4ce6-ab01-e6c7fdddb1f1%40googlegroups.com.


Re: libatscc: packaging

2019-05-07 Thread M88
Hi Artyom,

It's in a rather primitive state and not thoroughly tested, but feel free 
to have a look:
https://github.com/mephistopheles-8/ATS-Postiats/commit/61404adc68ffb5e1b5925cbd735bfe5ac8b5cdb9

All it really does is dump stored functions into an object. There are more 
entities that should probably be exported (eg, variables). The format of 
the object depends on the specified module.
It turns out I never got around to doing UMD, but I did IIFE, CommonJS and 
ES6.



On Tuesday, May 7, 2019 at 3:40:41 AM UTC-4, artyom.s...@gmail.com wrote:
>
> On Tuesday, May 7, 2019 at 5:58:44 AM UTC+3, M88 wrote:
>>
>>
>> Somewhat related:  maybe it would be good to have some character-sequence 
>> that represents a module accessor in the host language?
>>
>>
> Yes, it makes sense to support some form of qualified identifiers in the 
> source language. As it stands now, the ATS compiler will escape all "." and 
> other symbols, so they would have to be unmangled.
>  
>
>> For example, something like "mac#Math**sqrt" could be translated to 
>> "Math.sqrt" by atscc2[x], depending on what the module system uses for 
>> namespaces.
>>
>> From an implementation standpoint, the accessor notatiion might be a 
>> rather* bad* idea ( we'd be converting functions named 
>> "Math_052__052_sqrt" to "Math.sqrt" ).  Still, maybe there
>> are ways to make it better.
>>
>> Beyond making FFI easier, we'd also be able to package the prelude as a 
>> module in the host language, which may have benefits (integration, 
>> bundling, tree-shaking, etc) over
>> methods like concatenation.  
>>
>>
> Yes, this is precisely what I was aiming at, and note that the existing 
> translators do this (except for atscc2js, which I planned to enhance with 
> some support for ES modules). Not only do we want to package the prelude, 
> but also the code that we get via the source-to-source compilers.
>  
>
>> Just a thought
>>
>> A while ago, I had attempted to add [es6, commonjs, IIFE, UMD] module 
>> support to atscc2js.  Though it worked with a single file, I decided it had 
>> little benefit over inline code blocks if there is no [easy] way to access 
>> functions from the generated modules. 
>>
>>
> Could you post this work somewhere? I'd like to have a look.
>  
>
>>
>> On Monday, April 1, 2019 at 6:46:44 AM UTC-4, Artyom Shalkhakov wrote:
>>>
>>> Hi all,
>>>
>>> I've started work on improving atscc2js yesterday and found that we have 
>>> three similar projects:
>>>
>>>1. https://github.com/steinwaywhw/ATS-Python3
>>>2. https://github.com/bakpakin/ats-lua
>>>3. https://github.com/sazl/ats-go
>>>4. and the in-progress atscc2js
>>>
>>> Every target programming language comes with its own "prelude" (e.g. 
>>> libatscc2js for JS), but such preludes essentially implement the interfaces 
>>> defined in libatscc.
>>>
>>> Now I'm thinking that we need to package up the interface and keep it as 
>>> uniform as possible across the different targets, so that programmers may 
>>> hopefully share more code between platforms with little issues (or no issue 
>>> at all).
>>>
>>> With the above in mind, I propose to:
>>>
>>>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>>>this, it will require only minimal changes to the existing code)
>>>2. come up with some process to maintain this 'specification' (maybe 
>>>create a github organization and put this library into a repository; let 
>>>people use issues and PRs to propose changes)
>>>
>>> Is anybody interested? If not I'll just go with the first point, and the 
>>> specification will live on in the ATS-Postiats repository (for now).
>>>
>>

-- 
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/abc2e98e-67f4-4f1a-915c-0bd57f842247%40googlegroups.com.


Re: libatscc: packaging

2019-05-07 Thread artyom . shalkhakov
On Tuesday, May 7, 2019 at 5:58:44 AM UTC+3, M88 wrote:
>
>
> Somewhat related:  maybe it would be good to have some character-sequence 
> that represents a module accessor in the host language?
>
>
Yes, it makes sense to support some form of qualified identifiers in the 
source language. As it stands now, the ATS compiler will escape all "." and 
other symbols, so they would have to be unmangled.
 

> For example, something like "mac#Math**sqrt" could be translated to 
> "Math.sqrt" by atscc2[x], depending on what the module system uses for 
> namespaces.
>
> From an implementation standpoint, the accessor notatiion might be a rather* 
> bad* idea ( we'd be converting functions named "Math_052__052_sqrt" to 
> "Math.sqrt" ).  Still, maybe there
> are ways to make it better.
>
> Beyond making FFI easier, we'd also be able to package the prelude as a 
> module in the host language, which may have benefits (integration, 
> bundling, tree-shaking, etc) over
> methods like concatenation.  
>
>
Yes, this is precisely what I was aiming at, and note that the existing 
translators do this (except for atscc2js, which I planned to enhance with 
some support for ES modules). Not only do we want to package the prelude, 
but also the code that we get via the source-to-source compilers.
 

> Just a thought
>
> A while ago, I had attempted to add [es6, commonjs, IIFE, UMD] module 
> support to atscc2js.  Though it worked with a single file, I decided it had 
> little benefit over inline code blocks if there is no [easy] way to access 
> functions from the generated modules. 
>
>
Could you post this work somewhere? I'd like to have a look.
 

>
> On Monday, April 1, 2019 at 6:46:44 AM UTC-4, Artyom Shalkhakov wrote:
>>
>> Hi all,
>>
>> I've started work on improving atscc2js yesterday and found that we have 
>> three similar projects:
>>
>>1. https://github.com/steinwaywhw/ATS-Python3
>>2. https://github.com/bakpakin/ats-lua
>>3. https://github.com/sazl/ats-go
>>4. and the in-progress atscc2js
>>
>> Every target programming language comes with its own "prelude" (e.g. 
>> libatscc2js for JS), but such preludes essentially implement the interfaces 
>> defined in libatscc.
>>
>> Now I'm thinking that we need to package up the interface and keep it as 
>> uniform as possible across the different targets, so that programmers may 
>> hopefully share more code between platforms with little issues (or no issue 
>> at all).
>>
>> With the above in mind, I propose to:
>>
>>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>>this, it will require only minimal changes to the existing code)
>>2. come up with some process to maintain this 'specification' (maybe 
>>create a github organization and put this library into a repository; let 
>>people use issues and PRs to propose changes)
>>
>> Is anybody interested? If not I'll just go with the first point, and the 
>> specification will live on in the ATS-Postiats repository (for now).
>>
>

-- 
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/794604f3-e731-4080-bb54-e00bc5e16362%40googlegroups.com.


Re: libatscc: packaging

2019-05-06 Thread M88

Somewhat related:  maybe it would be good to have some character-sequence 
that represents a module accessor in the host language?

For example, something like "mac#Math**sqrt" could be translated to 
"Math.sqrt" by atscc2[x], depending on what the module system uses for 
namespaces.

>From an implementation standpoint, the accessor notatiion might be a rather* 
bad* idea ( we'd be converting functions named "Math_052__052_sqrt" to 
"Math.sqrt" ).  Still, maybe there
are ways to make it better.

Beyond making FFI easier, we'd also be able to package the prelude as a 
module in the host language, which may have benefits (integration, 
bundling, tree-shaking, etc) over
methods like concatenation.  

Just a thought

A while ago, I had attempted to add [es6, commonjs, IIFE, UMD] module 
support to atscc2js.  Though it worked with a single file, I decided it had 
little benefit over inline code blocks if there is no [easy] way to access 
functions from the generated modules. 


On Monday, April 1, 2019 at 6:46:44 AM UTC-4, Artyom Shalkhakov wrote:
>
> Hi all,
>
> I've started work on improving atscc2js yesterday and found that we have 
> three similar projects:
>
>1. https://github.com/steinwaywhw/ATS-Python3
>2. https://github.com/bakpakin/ats-lua
>3. https://github.com/sazl/ats-go
>4. and the in-progress atscc2js
>
> Every target programming language comes with its own "prelude" (e.g. 
> libatscc2js for JS), but such preludes essentially implement the interfaces 
> defined in libatscc.
>
> Now I'm thinking that we need to package up the interface and keep it as 
> uniform as possible across the different targets, so that programmers may 
> hopefully share more code between platforms with little issues (or no issue 
> at all).
>
> With the above in mind, I propose to:
>
>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>this, it will require only minimal changes to the existing code)
>2. come up with some process to maintain this 'specification' (maybe 
>create a github organization and put this library into a repository; let 
>people use issues and PRs to propose changes)
>
> Is anybody interested? If not I'll just go with the first point, and the 
> specification will live on in the ATS-Postiats repository (for now).
>

-- 
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/2efe4f1e-9558-4176-a538-f5fb6d475a83%40googlegroups.com.


Re: libatscc: packaging

2019-05-06 Thread Richard
Sounds like a good idea to me!

On Monday, April 1, 2019 at 6:46:44 AM UTC-4, Artyom Shalkhakov wrote:
>
> Hi all,
>
> I've started work on improving atscc2js yesterday and found that we have 
> three similar projects:
>
>1. https://github.com/steinwaywhw/ATS-Python3
>2. https://github.com/bakpakin/ats-lua
>3. https://github.com/sazl/ats-go
>4. and the in-progress atscc2js
>
> Every target programming language comes with its own "prelude" (e.g. 
> libatscc2js for JS), but such preludes essentially implement the interfaces 
> defined in libatscc.
>
> Now I'm thinking that we need to package up the interface and keep it as 
> uniform as possible across the different targets, so that programmers may 
> hopefully share more code between platforms with little issues (or no issue 
> at all).
>
> With the above in mind, I propose to:
>
>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>this, it will require only minimal changes to the existing code)
>2. come up with some process to maintain this 'specification' (maybe 
>create a github organization and put this library into a repository; let 
>people use issues and PRs to propose changes)
>
> Is anybody interested? If not I'll just go with the first point, and the 
> specification will live on in the ATS-Postiats repository (for now).
>

-- 
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/7e30cb96-4956-4ca7-af48-f0ad49726b3c%40googlegroups.com.


Re: libatscc: packaging

2019-04-22 Thread Sami Zeinelabdin
Hi Artyom,

I would be very interested :)
A packaged and uniform interface would be a great help!


On Monday, April 1, 2019 at 2:46:44 PM UTC+4, Artyom Shalkhakov wrote:
>
> Hi all,
>
> I've started work on improving atscc2js yesterday and found that we have 
> three similar projects:
>
>1. https://github.com/steinwaywhw/ATS-Python3
>2. https://github.com/bakpakin/ats-lua
>3. https://github.com/sazl/ats-go
>4. and the in-progress atscc2js
>
> Every target programming language comes with its own "prelude" (e.g. 
> libatscc2js for JS), but such preludes essentially implement the interfaces 
> defined in libatscc.
>
> Now I'm thinking that we need to package up the interface and keep it as 
> uniform as possible across the different targets, so that programmers may 
> hopefully share more code between platforms with little issues (or no issue 
> at all).
>
> With the above in mind, I propose to:
>
>1. package up libatscc somehow, e.g. put it on NPM (I'm working on 
>this, it will require only minimal changes to the existing code)
>2. come up with some process to maintain this 'specification' (maybe 
>create a github organization and put this library into a repository; let 
>people use issues and PRs to propose changes)
>
> Is anybody interested? If not I'll just go with the first point, and the 
> specification will live on in the ATS-Postiats repository (for now).
>

-- 
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/dc19f324-d772-4838-b8d5-1c3c4af23598%40googlegroups.com.


libatscc: packaging

2019-04-01 Thread Artyom Shalkhakov
Hi all,

I've started work on improving atscc2js yesterday and found that we have 
three similar projects:

   1. https://github.com/steinwaywhw/ATS-Python3
   2. https://github.com/bakpakin/ats-lua
   3. https://github.com/sazl/ats-go
   4. and the in-progress atscc2js
   
Every target programming language comes with its own "prelude" (e.g. 
libatscc2js for JS), but such preludes essentially implement the interfaces 
defined in libatscc.

Now I'm thinking that we need to package up the interface and keep it as 
uniform as possible across the different targets, so that programmers may 
hopefully share more code between platforms with little issues (or no issue 
at all).

With the above in mind, I propose to:

   1. package up libatscc somehow, e.g. put it on NPM (I'm working on this, 
   it will require only minimal changes to the existing code)
   2. come up with some process to maintain this 'specification' (maybe 
   create a github organization and put this library into a repository; let 
   people use issues and PRs to propose changes)
   
Is anybody interested? If not I'll just go with the first point, and the 
specification will live on in the ATS-Postiats repository (for now).

-- 
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/969970ce-8851-425f-84fb-93cd6414de34%40googlegroups.com.