jemc changed the topic of #ponylang to: Welcome! Please check out our Code of Conduct => https://github.com/ponylang/ponyc/blob/master/CODE_OF_CONDUCT.md | Public IRC logs are available => http://irclog.whitequark.org/ponylang | Please consider participating in our mailing lists => https://pony.groups.io/g/pony
pzel has quit [Ping timeout: 276 seconds]
<jemc> tuples get "boxed" in cases where we need to check their type at runtime
<jemc> just like numeric primitives get "boxed" in cases where we need to check their type at runtime
<jemc> where "boxed" means they get an object header, including the allocation overhead
<jemc> for example, `let x: (U8 | U16) = 0` will be a boxed value at runtime, whereas `let x: U8 = 0` will be one-byte machine word at runtime
<jemc> tuples get boxed in a similar way
<jemc> for example, `let x: ((Bool, Bool) | None) = (true, false)` will be a boxed value at runtime, whereas `let x: (Bool, Bool) = (true, false)` will be a raw tuple value with no allocation
pzel has joined #ponylang
jemc has quit [Ping timeout: 268 seconds]
michael_ has joined #ponylang
michael_ is now known as kiwi_mec
kiwi_mec has quit [Remote host closed the connection]
michael_ has joined #ponylang
kiwimec has joined #ponylang
mathan has joined #ponylang
mathan has quit [Client Quit]
michael_ has quit []
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pzel has quit [Quit: leaving]
kiwimec has joined #ponylang
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kiwimec has joined #ponylang
endformationage has quit [Quit: WeeChat 1.9.1]
<kiwimec> I found this repository https://github.com/ponylang/reactive-streams which is interesting to me but it hasn't had any activity on it for a while and there doesn't seem to be any documentation. Has anyone used it or know its status?
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kiwimec has joined #ponylang
kiwimec has quit [Client Quit]
vaninwagen has joined #ponylang
Pp_ has joined #ponylang
<Pp_> Hi
Pp_ has quit [Client Quit]
kiwimec has joined #ponylang
<vaninwagen> Pp_ hi! (damn, too late)
<vaninwagen> kiwimec: the reactive-streams repo hasn't been touched for a while and needs some little changes to compile with current ponyc - i never used it myself tbh
<vaninwagen> kiwimec: but this is where the async architecture of pony fits in very very well
<kiwimec> cool, thanks, I've been experimenting with reactive systems and CQRS in other languages and was hoping to do something similar in Pony without having to write it from scratch
<kiwimec> I will think about reusing the approach in the reactive-streams project; if not actually use it
<vaninwagen> kiwimec: i opened a PR to make it compile again. If you want to use it right away, you can try the PR branch for the moment https://github.com/ponylang/reactive-streams/pull/2
<kiwimec> awesome thanks
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kiwimec has joined #ponylang
mikeb01 has joined #ponylang
mikeb01 has quit [Client Quit]
<SeanTAllen> Vaninwagen if you are updating that repo and bringing back from the dead, can you set it up for CI like pony-stable
<vaninwagen> SeanTAllen: just thought the same, will do it some time today
vaninwagen has quit [Ping timeout: 276 seconds]
SenasOzys has quit [Ping timeout: 264 seconds]
SenasOzys has joined #ponylang
SenasOzys has quit [Remote host closed the connection]
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zetashift has joined #ponylang
acarrico has quit [Ping timeout: 255 seconds]
acarrico has joined #ponylang
_andre has joined #ponylang
vaninwagen has joined #ponylang
_andre has quit [Read error: No route to host]
<dave24> Is there some way to read `val` fields from actor receivers? That seems like it should be safe.
<SeanTAllen> dave24: i dont understand. do you mean read the fields of one actor from another?
<dave24> Yeah.
<SeanTAllen> no, all actor to actor communication is asynchronous.
<SeanTAllen> actors only communicate via async messaging
<dave24> But why? Since the value is immutable it should be fine.
<SeanTAllen> allow you to read fields from one actor would make a distributed version of Pony impossible
<dave24> o, I see. Are there plans for that?
<SeanTAllen> eventually, yes
_andre has joined #ponylang
acarrico has quit [Ping timeout: 256 seconds]
<SeanTAllen> we already do this in wallaroo where actors can move from one machine to another and wallaroo doesn't care because all communication is via async message passing.
<SeanTAllen> difference is, we have to handle the routing and knowing if its local or remote within wallaroo
<dave24> Interesting, so you have a layer that ensures messages have guaranteed delivery and causal ordering?
<dave24> Or do you write your code that does not make assumptions about those guarantees.
<SeanTAllen> we have those guarantees yes
<SeanTAllen> but its not really a layer at this point
<SeanTAllen> its not something that could be easily removed and used elsewhere
<SeanTAllen> it was baked into all the various parts of wallaroo as we built it
<dave24> So, since I can never access actor fields from outside; the leading underscore actually has no effect at all in actor fields.
<SeanTAllen> that's not true
<SeanTAllen> so...
<SeanTAllen> _private is package private
<SeanTAllen> i could have an actor that takes a class as an extension
<SeanTAllen> like TCPConnectionNotify
<SeanTAllen> that in turn calls methods on that and gives a `this` reference to said class
<SeanTAllen> like TCPConnection does with TCPConnectionNotify
<SeanTAllen> that class, if it is part of a different package, can not access `conn._private` but could `conn.public`
<dave24> Right. Didn't think of that, the code defined in the actor is not the only code running in it.
<SeanTAllen> yup
<dave24> Cool, thanks!
<SeanTAllen> you're welcome
endformationage has joined #ponylang
<dave24> Can I remove an item from a `SetIs` with just a tag somehow? That seems like it should work but `unset` takes only a box.
SenasOzys has joined #ponylang
acarrico has joined #ponylang
<SeanTAllen> That depends dave24. I don't have full context on what you are trying to do, but as a basic example: https://playground.ponylang.org/?gist=510943f596b8d159e0d35f571b55b2c1
vaninwagen has quit [Ping timeout: 264 seconds]
<dave24> Hm so it does work, I just need to work out what I'm doing wrong with my generics.
imvj has joined #ponylang
imvj has quit [Client Quit]
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #ponylang
zetashift has quit [Ping timeout: 276 seconds]
pzel has joined #ponylang
pzel has quit [Client Quit]
pzel has joined #ponylang
SenasOzys has quit [Ping timeout: 264 seconds]
_rck has joined #ponylang
SenasOzys has joined #ponylang
jaro has joined #ponylang
khan_ has joined #ponylang
winksaville has joined #ponylang
<winksaville> @seantallen, do you want to fork llvm so I can change wip-lib-llvm-submodule https://github.com/ponylang/ponyc/pull/2748 ?
<_rck> SeanTAllen: can you share more on moving actors between machines?
_rck has quit [Ping timeout: 264 seconds]
endforma1 has joined #ponylang
endformationage has quit [Ping timeout: 260 seconds]
droman has joined #ponylang
btbytes has joined #ponylang
droman has quit [Quit: WeeChat 2.1]
aturley has quit [Ping timeout: 260 seconds]
aturley has joined #ponylang
<Bombe> Is there a gereric interface that accepts a value but doesn’t return anything, similar to Java’s Consumer?
khan_ has quit [Quit: khan_]
khan_ has joined #ponylang
khan_ has quit [Client Quit]
khan_ has joined #ponylang
<aturley> Bombe there's nothing like that.
<Bombe> Okay, thanks.
kiwimec has joined #ponylang
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pzel has quit [Ping timeout: 268 seconds]
winksaville_ has joined #ponylang
<winksaville_> I'm probably not going to make the sync call. If you'd like add questions to PR wip-lib-llvm-submodule.
acarrico has quit [Ping timeout: 260 seconds]
winksaville_ has quit [Ping timeout: 260 seconds]
khan_ has quit [Quit: khan_]
vaninwagen has joined #ponylang
pzel has joined #ponylang
_rck has joined #ponylang
_rck has quit [Quit: WeeChat 2.1]
acarrico has joined #ponylang
zetashift has joined #ponylang
acarrico has quit [Ping timeout: 264 seconds]
vaninwagen has quit [Quit: WeeChat 2.1]
btbytes has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<SeanTAllen> winksaville: we didn't get to that today. focused on a number of RFCs
kiwimec has joined #ponylang
SeanTAllen has quit [Read error: Connection reset by peer]
SeanTAllen has joined #ponylang
kiwimec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kiwimec has joined #ponylang
kiwimec has quit [Client Quit]
kiwimec has joined #ponylang
<winksaville> I saw all the work you guys have done today, great job!
<winksaville> :)
acarrico has joined #ponylang
pzel has quit [Ping timeout: 256 seconds]
bb010g has joined #ponylang
<bb010g> While trying to compile ponyc from source, I got the following error:
<bb010g> In file included from src/libponyrt/actor/actor.c:3:
<bb010g> ...
<bb010g> src/common/threads.h:45:33: error: unknown type name 'cpu_set_t'
<bb010g> It looks like the only place it's declared in is line 18 of src/libponyrt/common/threads.h , as typedef cpuset_t cpu_set_t
<bb010g> threads.c, sorry
<bb010g> Didn't see any issues or other reports about it.