<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
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.