uses operator precedence grammars.)
Here is the temporary link. Let me know what I need to do to get this
upstream.
https://github.com/ajknapp/ats-mode-indent
Best,
Andrew Knapp
--
You received this message because you are subscribed to the Google Groups
"ats-lang-users" group.
To u
gt; to manually add indentation. With the current ats-mode, you get two spaces
> if you hit the
> tab key. So you are pretty much in control of indentation. As far as I
> know, a lot of programmers
> want this kind of control :)
>
>
> On Wed, Oct 11, 2017 at 3:43 PM, Andrew Knapp
gt; implement main0 () =
> let
> ...
> in
> ...
> end
>
>
> On Thursday, October 12, 2017 at 12:47:24 PM UTC-5, Andrew Knapp wrote:
>>
>> Taking a closer look, there are definitely cases I didn't use that
Hello,
Chapter 3 of "A Tutorial on Programming Features in ATS" mentions that file
inclusion can be used to emulate SML or OCaml style functors in a limited
manner.
Is there an example of this technique somewhere? I would use the
record-based functor method, as described in the make_ratmod_in
.
>
> Could you post a video on youtube to show potential users
> how to set up and then use the mode?
>
> I will be happy to recommend it to my class.
>
> Thanks!
>
> On Friday, October 13, 2017 at 3:24:17 PM UTC-4, Andrew Knapp wrote:
>>
>> Both of those test
say more.
>
> On Wednesday, October 18, 2017 at 3:53:34 PM UTC-4, Andrew Knapp wrote:
>>
>>
>> Hello,
>>
>> Chapter 3 of "A Tutorial on Programming Features in ATS" mentions that
>> file inclusion can be used to emulate SML or OCaml style funct
installing the mode (e.g., a few lines that are
> needed
> in the .emacs file).
>
> In the video, you could go through the cycle of editing/compiling/fixing a
> short
> ATS program.
>
> Thanks!
>
> On Wednesday, October 18, 2017 at 3:56:01 PM UTC-4, Andrew Knapp wro
I'd like to write something like the following code:
#include "share/atspre_staload.hats"
#include "share/atspre_define.hats"
typedef test = () -> int(* better type later *)
typedef suite(data:t0ype,n:int) = @{
name = string,
setup = (data -> void),
teardown = (data -> void),
tes
Hello,
I'd like to be able to send dataviewtypes as messages in a low-latency ipc
library I've written.
In this scenario, any use of malloc is unacceptable. Everything must be
allocated from a memory pool or the stack, but datavtype constructors
always allocate on the heap.
What is the best w
After writing several thousand lines of ATS, I'd say there isn't terribly
much I'd change, honestly. A lot less than when I got started, for sure.
What I would like to see changed:
1. Real module system. MixML might not be a bad source of inspiration, as
it would essentially be a better version
That works nicely! At least on glot.io...
https://glot.io/snippets/ezdur9ik70
When I run the exact same code on my machine, I get the following error
exit(ATS): unmatched value at run-time:
/home/andy/tmp/tmp.dats: 713(line=30, offs=9) -- 725(line=30, offs=21)
i.e. the line
val Bar(x,y) =
The code on glot also fails if you change Bar to Baz in all the appropriate
places.
--
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...
Yes, that works well. Thank you!
--
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
I'll put it on github sometime this week. It's an ATS port of this c++
library
https://github.com/rigtorp/nanomq
--
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
I can't figure out why this code loops forever. Is it a bug in the compiler?
#include "share/atspre_staload.hats"
#include "share/atspre_define.hats"
staload UN = "prelude/SATS/unsafe.sats"
abst0ype foo(a:t0ype) = lint
abst0ype twice(a:t0ype) = int
extern fun{a:t@ype} myprint (x: string): void
Hi all,
I've extracted some ipc code from a larger codebase.
https://github.com/ajknapp/ats-nanomq
It's basically a bunch of SPSC ring buffers in shared memory, and is ported
from a C++ library
https://github.com/rigtorp/nanomq
Fair warning: there aren't many scenarios where this design is a
Is it possible to write (proof) functions from datasorts to datasorts? For
example, if we have
datasort tlist =
| tnil
| tcons(t0ype, tlist)
it would be nice to write something equivalent to
tlist_append : (tlist, tlist) -> tlist
tlist_filter: (tlist, (tlist) -> bool) -> tlist
that could b
Nanomq is as bare-bones as you can possibly get. Unlike zeromq, it only
works for a small number of local processes, and makes every possible
tradeoff for low latency.
Nanomq (in the ATS port and original C++) only offers blocking reads in the
public interface (I'll probably change this), which
My one example, serialization of nested records from a tlist of
@(string,t0ype), turned out to not need append. Anyhow, that's blocked for
now, since I don't think you can reflect a template-argument string literal
to the value level.
But more generally, a convenient way to write functions betw
Another idea/request: replace the use of
ATS_MEMALLOC_USER/ATS_MEMALLOC_LIBC and friends with embeddable templates.
In this example
let
implement allocate() = pool_allocate(the_message_pool)
implement free(p) = pool_free(the_message_pool, p)
in
latency_critical_loop<>()
end
templatizing t
Just some miscellaneous thoughts and questions.
- Here's a paper ("Beyond Type Classes") that I found interesting. It's a
generalization of Haskell's type class system that does type-directed
overloading via user-defined Constraint Handling Rules (CHRs). It fits
nicely with the logic metaprogra
21 matches
Mail list logo