<xcombelle>
I use to be unclear on my wording, so don't hesitate to ask me precision, they will be welcome
vaninwagen has joined #ponylang
<SeanTAllen>
I'm not sure I really follow xcombelle
<SeanTAllen>
The purpose is unclear to me
<SeanTAllen>
Are you aware of the RFC process? This is the sort of thing that you'd want to discuss as an RFC or open an issue on the RFC repo to discuss
<xcombelle>
what is unclear in my wording SeanTAllen ?
<xcombelle>
what is pony sync meeting
<xcombelle>
I will post to pony+dev SeanTAllen
<SeanTAllen>
the pony sync meeting is a weekly meeting of folks developing pony where we review issues, PRs
<SeanTAllen>
its open to the public and folks come and talk about issues they would like to raise
<SeanTAllen>
xcombelle: your wording is clear, i don't understand the problem you are trying to solve
<xcombelle>
maybe it is because I am not used to ponylang that I create a solution looking for a problem
<xcombelle>
What I understand about ponylang is that you push message to desitanation and after that it is up to the destination to process the message
<xcombelle>
typically in an xml processing it is a push model, such as sax
<xcombelle>
but from what I understood about sax, is that it is far more easier to use a pull model
<xcombelle>
that is when you need a node, you ask for it, and it is magically served
_andre has joined #ponylang
<SeanTAllen>
i dont think you need a change in semantics to do that
<SeanTAllen>
people have built that flow on top of actor languages while remaining async xcombelle
<xcombelle>
SeanTAllen can you point an example on how they did, because I don't see way to do such a thing with current Actor API
<SeanTAllen>
when an actor is ready for work, it sends a message to its upstream producers asking for more work
<SeanTAllen>
they respond back with a message with work to do
codec_ has joined #ponylang
<codec_>
Hi
<SeanTAllen>
Hi codec_
<codec_>
How are you?
<SeanTAllen>
A little tired. You?
<codec_>
fine thanks
<SeanTAllen>
xcombelle: In an actor paradigm that would be "Hey, friend I am ready for work (thats a message send) and then friend replies with 'here's some work" (also a message send)"
<codec_>
The issue is closed but do you think it would help If I share my vision on the subject?
<SeanTAllen>
also xcombelle: check out the producer/consumer example in the examples directory of the ponyc repo. That's another approach you can take.
<SeanTAllen>
codec_: if you have ideas for changing how string works, that would be a subject for an RFC.
<SeanTAllen>
either opening an issue on the RFC repo or better still opening an RFC if you have some concrete ideas would be the best approach.
<codec_>
Do you know if there is an already open RFC about string encoding/representation?
<SeanTAllen>
I'm not sure codec_
jemc has joined #ponylang
<codec_>
It does not seems that there is an RFC dealing with the string representation which was the subject of the issue
<jemc>
codec_: no, I don't think anyone has actually opened an RFC for this yet, though many have stated an intention to do so
<codec_>
ok thanks
<xcombelle>
SeanTAllen: Typically having future would allow to ask for doing an asynchrone map
aturley has joined #ponylang
<xcombelle>
SeanTAllen: I suspect that my uses cases are totally different, that the basics use case of pony as you envisonned it, but it would very well fit in the completness and simplicity of the philosophy article https://tutorial.ponylang.org/. I don't see why my proposition would break neither, correctness, performance or consistency.
<SeanTAllen>
Message passing in Pony is async. If your proposal is sync message passing xcombelle, that breaks a lot of things.
<SeanTAllen>
Pony has promises. If you would use a future in another language, you should look at promises. They use actors under the hood.
aturley_ has quit [Ping timeout: 258 seconds]
<xcombelle>
SeanTAllen: sorry, but promises don't fit the bill, promises are full async and callbacks hell. My idea is to use async when you need and sync when you can.
<xcombelle>
SeanTAllen: I totally consider that what I propose would be a major break in design of pony. But I'm quite confident it would worth it by doing a lot of simplification where async code is not needed
<SeanTAllen>
The performance implications are a nightmare xcombelle
<SeanTAllen>
You can do an RFC, you'll need to work hard to get my support.
<SeanTAllen>
What you are proposing is synchronous thread coordination
<SeanTAllen>
That's, in my mind, a new langauge
<SeanTAllen>
If you need sync, you can do it Pony but not between actors
<SeanTAllen>
You can do all the sync you want within a single actor
<SeanTAllen>
The actor model is built around the idea of async message passing
<jemc>
another way to put it is that the entire runtime scheduler is based on the concept that actors don't *wait around* for things - they respond to input, they don't *wait* for it
<jemc>
finding good patterns of work that work well within that assumption is preferable to removing it
aturley has quit [Ping timeout: 260 seconds]
aturley has joined #ponylang
endformationage has joined #ponylang
dipin has joined #ponylang
aturley_ has joined #ponylang
aturley has quit [Ping timeout: 246 seconds]
aturley_ has quit [Quit: aturley_]
<xcombelle>
SeanTAllen: jemc what is the difference between *wait* for an input, and having nothing to do because you are an actor which is is called only once and just calls other actors/classes (typically main actor)
<xcombelle>
SeanTAllen: I'm pretty agree, that will change the whole language and might not worth it
derka has joined #ponylang
vaninwagen has quit [Ping timeout: 248 seconds]
codec_ has quit [Ping timeout: 260 seconds]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
<jemc>
xcombelle: in the Pony runtime, an actor behaviour is the unit of schedulable work - so the distinction in this context between (1) *waiting* and (2) *having nothing to do currently* would be (1) interrupting an actor behaviour to wait for something external to happen (and thus halting the entire scheduler thread) and (2) having no behaviours to run (and thus not ever getting scheduled to a scheduler
<jemc>
thread)
martinium has quit [Client Quit]
<jemc>
while it is theoretically possible to interrupt an actor behaviour and yield back to the scheduler thread to schedule something else, this has also been discussed in the past and there are issues that make this undesirable
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
mollymorphic has joined #ponylang
<jemc>
one issue is that the continuation of that behaviour needs to be stored as state *somewhere*, and there's not really a good way to keep that state from piling up in a way that is unbounded and not visible to the programmer
<xcombelle>
jemc I envision (2) having no behaviours to run
martinium has quit [Client Quit]
<jemc>
it's that lack of visibility which is most concerning - pony as a language endeavours to make dangerous patterns be highly visible
martinium has joined #ponylang
martinium has quit [Client Quit]
martinium has joined #ponylang
martinium has quit [Client Quit]
<xcombelle>
when you are doing a sleep, you are doing exactly that, same when you are reading/writing to/from a file
<xcombelle>
such as stdout, stdin
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
<SeanTAllen>
there's a huge difference between those things and saying "i am waiting and sitting here til that other actor responds"
<SeanTAllen>
at work so dont really have time to elaborate right now
<SeanTAllen>
file writing actors can and should respond to "cant write right now" so they dont block
<SeanTAllen>
otherwise they spend their time writing
<SeanTAllen>
you should never use ffi to call sleep from pony code, that's a bad idea
<SeanTAllen>
waiting on some other actor to respond to a message, that's an unknown amount of time that you sit waiting
<SeanTAllen>
very different than "sorry, you cant write to disk or the network right now"
<SeanTAllen>
and actors that write to file or network can queue work and send when its available and defer otherwise
mollymorphic has quit []
aturley has joined #ponylang
mollymorphic has joined #ponylang
<xcombelle>
SeanTAllen: I quite understand, ping me if you have time to elaborate,
mollymorphic has quit [Ping timeout: 260 seconds]
jmiven has quit [Quit: co'o]
jmiven has joined #ponylang
derka has quit [Ping timeout: 240 seconds]
derka has joined #ponylang
nisanharamati has joined #ponylang
martinium has quit [Quit: Leaving]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
martinium has quit [Client Quit]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
martinium has quit [Client Quit]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
martinium has quit [Client Quit]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
martinium has quit [Remote host closed the connection]
martinium has joined #ponylang
martinium has quit [Changing host]
martinium has joined #ponylang
derka_ has joined #ponylang
derka has quit [Ping timeout: 255 seconds]
derka_ is now known as derka
kulibali has joined #ponylang
mollymorphic has joined #ponylang
jemc has quit [Ping timeout: 264 seconds]
derka has quit [Quit: derka]
user10032 has joined #ponylang
aturley has quit [Ping timeout: 246 seconds]
mollymorphic has quit [Ping timeout: 260 seconds]
mollymorphic has joined #ponylang
jemc has joined #ponylang
jemc has quit [Ping timeout: 248 seconds]
jemc has joined #ponylang
derka has joined #ponylang
derka has quit [Client Quit]
kulibali_ has joined #ponylang
kulibali has quit [Ping timeout: 255 seconds]
kulibali_ is now known as kulibali
mollymorphic has quit [Ping timeout: 260 seconds]
aturley has joined #ponylang
nisanharamati has quit [Quit: Connection closed for inactivity]
mollymorphic has joined #ponylang
vaninwagen has joined #ponylang
nisanharamati has joined #ponylang
vaninwagen has quit [Ping timeout: 264 seconds]
mollymorphic has quit [Ping timeout: 260 seconds]
user10032 has quit [Quit: Leaving]
jemc has quit [Ping timeout: 248 seconds]
derka has joined #ponylang
derka has quit [Client Quit]
derka has joined #ponylang
nisanharamati has quit []
dipin has quit [Quit: dipin]
dipin has joined #ponylang
derka has quit [Quit: derka]
atk has quit [Quit: Well this is unexpected.]
atk has joined #ponylang
kulibali has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<martinium>
how can I make the ponyc executable available from Windows CMD system-wide?
<SeanTAllen>
I'm not a windows user martinium. Sorry, I couldn't answer that for any windows related program.
<SeanTAllen>
Are you asking how one does that in general or specific to ponyc?
<martinium>
no worries I think I figured it out
<martinium>
I use linux primarily but sometimes have to boot into Windows NSA edition for some work
<martinium>
;)
<SeanTAllen>
windows nsa edition?
<martinium>
Windows 10
<martinium>
I consider it spyware
<martinium>
I added it
<martinium>
have to go to Control Panel> System> Advanced System Settings > Environment Variables
<martinium>
then you add directory to path variable
<martinium>
quite simple actually
<martinium>
once you open a new CMD shell it's available system-wide
<SeanTAllen>
my windows knowledge is practically-nil
<martinium>
if you aren't a gamer you aren't really missing anything
<martinium>
glad to see pony works on the major OS platforms so that is a win there
<SeanTAllen>
i'm not a gamer
<SeanTAllen>
i play civilization 6 on my mac. that's it.
<SeanTAllen>
i used windows me for a couple weeks
<SeanTAllen>
used windows 95 for 1 before i switched it to linux
<SeanTAllen>
i have an xp machine for digital audio recording but i don't ever use the windows bit
<SeanTAllen>
and i tried out windows 10 in a vm for about 2 hours and was very frustrated