Thanks for the reply! :) On Tuesday, November 24, 2020 at 1:36:31 AM UTC-5 gmhwxi wrote:
> > >> *will this change affect the execution speed of ATS3 code compared to > ATS2?* > > The short answer is no. If anything, I would bet that ATS3 code should run > faster :) > I will strive to structure the compiler in a way that should be easy for > others to contribute. > > On Monday, November 23, 2020 at 11:20:59 PM UTC-5 d4v3y_5c0n3s wrote: > >> Thanks for the update, Hongwei. It's really awesome to hear about the >> progress being made on ATS3! I have a question I'd like to ask about >> ATS3's compilation. You mentioned that rather than compiling ATS code >> straight into a C file, that ATS3 first compiles it into XATSCML, and in >> the future into XATSCL0. You said this was to make it easier to compile >> ATS into languages other than C, which is awesome and I can definitely >> appreciate that. My question is, *will this change affect the execution >> speed of ATS3 code compared to ATS2?* I ask because I am currently >> working on building a game engine in ATS, and so performance is very >> important to my use case. If ATS3 could potentially be slower than ATS2 >> was, please let me know, I'd be willing to try and contribute to the >> project to improve this aspect. >> Thanks, and good luck with ATS3. >> >> On Sunday, November 22, 2020 at 9:31:16 AM UTC-5 gmhwxi wrote: >> >>> >>> >>> Hi, there, >>> >>> HX-2020-11-22: >>> >>> (* >>> HX-2018-04-07: Let us get started!!! >>> *) >>> >>> As of today, I am pleased to announce that ATS3 has reached a stage >>> where it can be realistically used in software construction. This is >>> achieved after slightly more than two and one-half years of continual >>> development by yours truly :) >>> >>> ###### >>> # >>> # The current status >>> # >>> ###### >>> >>> XATSOPT: >>> >>> Xatsopt is a functioning compiler implemented in ATS2 for translating >>> ATS3 into a typed intermediate language of the name XATSCML, which is >>> both C-like and ML-like. It is planned for xatsopt to further >>> translate XATSCML into XATSCL0, a low-level C-like language. I now >>> primarily see xatsopt as a library (libxatsopt) for implementing tools >>> to support programming with ATS3. >>> >>> XATS2JS: >>> >>> Xats2js is a functioning compiler implemented in ATS2 for translating >>> XATSCML into JavaScript (or JS for short). It should be noted that >>> xats2js can compile tail-recursive calls into local jumps, effectively >>> supporting the common practice in functional programming of writing >>> loops as tail-recursive functions. >>> >>> I will give detailed explanation elsewhere on using xats2js. Generally >>> speaking, one can now practice a form of co-programming with ATS3 and >>> JS. The JS code generated by xats2js from compiling ATS3 source can be >>> directly combined with other JS code (as if the generated code were >>> manually written in JS) >>> >>> ###### >>> # >>> # Future Development >>> # >>> ###### >>> >>> Documenting Xatsopt: >>> >>> This has been assigned a high priority. It is hoped that other >>> people interested in ATS3 can start developing tools for ATS3 after >>> a minimal amount of documentation on xatsopt is made available. >>> >>> Advanced Type-Checking: >>> >>> While one can specify with linear types and dependent types in ATS3, >>> there is no type-checking for such advanced types in xatsopt. I plan >>> to concentrate on implementing support for such type-checking in the >>> next phase of ATS3 development. >>> >>> ###### >>> # >>> # A little history of ATS3 >>> # >>> ###### >>> >>> Essentially, ATS3 refers to the third edition of ATS, and ATS/Xanadu >>> is currently the only implementation of ATS3. Note that the names ATS3 >>> and ATS/Xanadu are often used interchangeably. >>> >>> In the ATS family of languages, the first implementation is named >>> ATS/Proto (2004) and the language it implements is referred to as >>> ATS0. Please note that the implementation of ATS/Proto is written in >>> OCaml. The next implementation is ATS/Geizella (2007), which is also >>> written in OCaml. And the language implemented by ATS/Geizella is >>> referred to as ATS1. ATS/Anairiats (2008) is an implementation of ATS1 >>> in itself; the implementation is first compiled by ATS/Geizella and >>> then by itself, succeeding in so-called bootstrapping. The next >>> edition of ATS is ATS2, which is given an implementation of the name >>> ATS/Postiats (2013) written in ATS1. >>> >>> ATS/Xanadu implements ATS3 and the implementation is written in ATS2. >>> While there is currently no plan to bootstrap ATS3 by implementing it >>> in itself, it is perceivable that ATS/Xanadu can be readily translated >>> (manually) into such an implementation since the difference between >>> ATS2 and ATS3 in terms of both syntax and semantics is fairly minor >>> (for the part being used in compiler implementation). >>> >>> ################################################################## >>> >>> Cheers! >>> >>> --Hongwei >>> >>> ################################################################## >>> >>> For previously post messages: >>> >>> https://github.com/githwxi/ATS-Xanadu/tree/master/docgen/NOTES >>> ################################################################## >>> >>> >>> -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/f3834a44-1556-4ea2-aed8-3cd1efa065e9n%40googlegroups.com.