<theodus>
SeanTAllen: shouldn't you be using push instead of append?
<SeanTAllen>
dur
<SeanTAllen>
thank you
<SeanTAllen>
i knew i was overlooking something obvious. thanks @theodus
<theodus>
No problem, I've overlooked many obvoius things in the past
<jemc>
SeanTAllen: awesome work with the perf cheat-sheat by the way!
<SeanTAllen>
thanks jemc
<SeanTAllen>
@theodus ya, i was 14 layers deep in a mess. another set of eyes == very helpful
<SeanTAllen>
the perf cheat sheet made it onto front page of HackerNews for quite a while. I avoided looking at the comments as I usually do with all things internet
plietar has quit [Remote host closed the connection]
plietar has joined #ponylang
plietar has quit [Ping timeout: 258 seconds]
<pnwamk>
anyone here familiar with the formalism in the "Deny Capabilities for Safe, Fast Actors" paper? I'm wondering if it's partially missing the `consume e` form in the grammar and some of the judgments
endformationage has quit [Read error: Connection reset by peer]
endformationage has joined #ponylang
<SeanTAllen>
pnwamk: i dont think anyone is around at the moment. plietar might but i dont see him around at the moment. sylvan is rarely in IRC.
<SeanTAllen>
are you in a timezone where joining the sync call is a reasonable option for you pnwamk? sylvan is usually part of thise.
<pnwamk>
SeanTAllen: Yah I can probably join the sync call (although I'm not sure I'd want to bother people on a live call with subtleties in understanding a formalism ;-) maybe I'll join the call anyway and just shoot questions about the math to Sylvan and/or plietar directly if they're the ones to talk to about that.
<SeanTAllen>
pnwamk: it would a good way to get them
<jemc>
> I'm not sure I'd want to bother people on a live call with subtleties in understanding a formalism
<jemc>
I don't think it would be the first time - it should be informative for all, so don't be shy
<jemc>
in it, he works up a slightly different/expanded formal model, then compare and contrasts it with the original model
<jemc>
we're in the process of trying to incorporate some of those changes/expansions back in to the implementation, particularly as they relate to viewpoint adaptation
littleli has left #ponylang [#ponylang]
<pnwamk>
jemc: I had not seen that yet -- thanks for the link! (I'm just starting to dig into Pony now that I'm back from a summer internship working w/ Sylvan on some completely unrelated things)
<jemc>
cool! definitely let me know if I can answer any questions not related to formalisms :D
ada[m] has quit [Ping timeout: 240 seconds]
mindB has quit [Ping timeout: 240 seconds]
M-hrjet has quit [Ping timeout: 240 seconds]
srenatus[m] has quit [Ping timeout: 264 seconds]
dtz has quit [Ping timeout: 255 seconds]
irx[m] has quit [Ping timeout: 240 seconds]
<SeanTAllen>
pnwamk: ah well then, did suggest pinging sylvan except well, you know how he is with email
srenatus[m] has joined #ponylang
irx[m] has joined #ponylang
M-hrjet has joined #ponylang
dtz has joined #ponylang
mindB has joined #ponylang
ada[m] has joined #ponylang
<theodus>
What would be the best way to poll events from a C lib so that it can be used asynchronously in Pony?
<jemc>
the ideal scenario would be the C lib giving you a file descriptor to be watched via Pony's asio system
<jemc>
many of the more conscientious C APIs will provide this feature, knowing that their users want to be able to plug them into custom event loops like libuv
<theodus>
I'm checking if that's an option
<jemc>
the nastier C libraries will spin up their own threads internally :yey:
<jemc>
now that we have bare lambdas, there may be some ways to work with a C library that calls you back from its own thread... but I'm not sure
<jemc>
I don't remember offhand without looking at it whether it's safe to send a message to an actor from a non-Pony-managed thread
<jemc>
but if that's safe, and if the C library at least gives you the option to pass an opaque "context"/"data" pointer (most of them will), you can do a solution with a bare lambda as a shim to forward a message to the actor, which gets passed to you as the value of the opaque "context"/"data" pointer
<doublec>
You can make a C thread 'become' a Pony actor IIRC which may be an option.
<theodus>
The one I'm using just exposes two functions that return an event (possibly empty). One has a timeout option.
<doublec>
It doesn't look like it integrates with select/epoll/etc
<theodus>
nope
<jemc>
theodus: I suspect you may be able to do something clever by using `tb_init_fd` to give it the terminal file descriptor
<jemc>
then you can also have pony polling on that file descriptor with its asio system
<jemc>
and then when you get data on the fd in your Pony handler, you delegate to the `tb_peek_event`, with a `timeout` of `0` so it doesn't block
<doublec>
theodus: have you seen the Pony 'term' package?
<doublec>
theodus: does termbox provide more than that provides?
<jemc>
I've done similar tricks with other FFI situations in the past (in other languages) - where I created the network socket for them, passed it in, and also kept it for polling myself
<theodus>
The term package doesn't do everything that termbox does, though it is good for keyboard events.
<theodus>
jemc: that may work
<jemc>
unfortunate that `termbox` uses global state instead of passing around a struct pointer to hold its state
<jemc>
*an opaque struct pointer
<theodus>
Yeah, it has a few problematic features that make me consider writing something similar from scratch.
<jemc>
would probably be nice to expand the `term` package with more feature if that's something you felt like doing
<jemc>
the Pony `term` package, that is
<theodus>
This may end up as something like that
samuell has quit [Quit: Leaving]
Matthias247 has quit [Read error: Connection reset by peer]