Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
03:32
vrurg left
03:44
vrurg joined
08:35
mandrillone joined
|
|||
mandrillone | In my opinion, libuv, a part for being an obvious semi-unmantained security hole, solves the problem of portability the wrong way | 08:36 | |
it made up an arbitrary (and often unsafe) api loosely inspired on posix | 08:37 | ||
but worse | |||
while the solutions working historically has been two: 1. stick to posix, with a lesser experience on GNU and worse in Windows | 08:38 | ||
2. make it optimal on GNU, letting the windows people implement their own backend if they care so much | 08:39 | ||
there is no magical libuv recipe | 08:40 | ||
A part of this rant, async io exists for two reasons | 08:42 | ||
1. to save memory by using cheaper kernel side structures then threads when they were used for asynchronous io | 08:43 | ||
2. more subtle, to improve on page faults when doing zero copy cow memory transfers from user to kernel by making sure that user side buffers aren’t reused for writing | 08:45 | ||
things like ring buffers and shared memory | 08:46 | ||
This applies to very low level languages. I don’t see how any of this applies to raku, that clearly has stronger overheads | 08:47 | ||
There are things in raku that will make it forever unsuitable for things like web services. For instance paying for Unicode in every single string. Very slow dynamic scoping | 08:49 | ||
08:49
mandrillone left
10:54
mandrillone joined
|
|||
mandrillone | Personally, if I have to populate an hash with keys, it is faster to pipe them to Perl and make a hash over there then to just doing it in Raku. The reasons for this are still totally a mistery to me, I suspect Unicode but brutally even the hashing algorithm (that is something nobody should ever care about ) could be the culprit | 10:56 | |
10:57
mandrillone left
|
|||
lizmat | I wonder whether mandrillone can rant all they will, but unless they start actually making PRs, I think they can better be continue to use Perl, as that's "clearly" a better language | 11:30 | |
jdv | it is faster on the whole | 12:58 | |
lizmat | yeah, getting kinda tired of people telling us all the things wrong with Rakudo, especially if they're coming from Perl | 13:07 | |
if someone would really care, they would help fixing it, rather than just telling what's wrong in their opinion | 13:08 | ||
jdv | ideally, yeah | 13:11 | |
but the people that use a thing arent always able to make/improve it | 13:12 | ||
lizmat | true, but this person clearly is not the average non-technical user | 13:41 | |
ugexe | you have to expect some people are going to complain about any given language. ive never used a language which lacked people complaining about aspects of it. it is also true most of that complaining provides no value to anyone | 14:04 | |
jdv | trends arent valuable? if a bunch of peeps complain about something it might be a thing:) | 14:33 | |
but yeah, complainers gonna complain:) | 14:34 | ||
ugexe | it depends on the complaint. trade-offs inherently mean something is less-than-ideal, and most complaints with little to no value do not recognize that and come from a mindset that there is one True solution and that it is practical | 14:37 | |
jdv | too many :), sorry | ||
ugexe | for instance commenting on libuvs shortcomings likely isn't enlightening to anyone here when it was used primarily because it made it practical to accomplish things that otherwise there was not bandwidth for | 14:39 | |
nine | Well at least it serves as a reminder that the decision that may have been correct back then might no longer be the right one now. | 14:47 | |
ugexe | it is probably more correct now than ever if we are talking about bus factor | 14:49 | |
nine | There's that. On the other hand we have a quite mature base and no pressure to do huge changes, so an enterprising individual may give ripping out libuv a try at their leisure | 14:50 | |
ugexe | potentially. that assumes there is appropriate bus factor for reviewing such changes (I'd argue there is not) | 14:51 | |
15:09
nine left
15:10
nine joined
|
|||
timo | i think there's a lot of untapped potential in spesh if someone smart enough™ can revive jn's more-pea work from years ago | 18:14 | |
i don't think the cost to NFG in every string is prohibitively high for real world usage, but I don't exactly have a benchmark to look at for the given suggestion | 18:16 | ||
how do we feel about making a TTY a first-class citizen in Raku? libuv has a "make raw" function that also does whatever is necessary on windows i seem to recall | 18:17 | ||
and if we "makeraw" down in moar land, we can also properly atexit the corresponding makecooked so even in case a segfault or other kind of catastrophic error happens we leave the terminal in a sane state | 18:18 | ||
like when we hit MVM_oops or MVM_panic | |||
lizmat | feels like a plan to me! | ||
timo | then we have to decide how it should look in the language when $*IN is a tty or isn't one. currently we have $*IN.t for "is a tty?". it could be a different type, or simply a subtype kind of like CatHandle, or just an IO::Handle that is able to .Supply properly asynchronously | 18:20 | |
but that latter thing can easily become confusing | |||
also, of course you can have not just $*IN be a TTY, you can also open files from the file system, like /dev/pty*, that can be opened as a tty | 18:21 | ||
and for creating a tty that can be passed to another program, we have the initial work from patrickb | 18:22 | ||
learn.microsoft.com/en-us/windows-...ne-utility - whoa. | 19:38 | ||
[Coke] | nifty | 19:40 | |
timo | does anybody remember if i had anything very specific that i was looking into when trying to find what about rakudo on arm debian was not working? | 19:47 | |
looks like it was particularly segfaults in the nqp package on arm buildds | 19:50 | ||
I think I might have missed that the buildd's that got segmentation faults for nqp were still using moarvm packages without the fix and therefore it was very unsurprising that they crashed, and when I tried my best to reproduce the crashes on arm porter boxes I was already getting the fixed moarvm versions and that's why i could absolutely not get the crash reproduced | 20:01 | ||
so maybe i'll go crawl into a little hole in the dirt and never ever come out again? | 20:02 | ||
lizmat | nooo! | 22:23 | |
tellable6 | 2025-04-24T19:21:09Z #raku <melezhik.> lizmat: thanks 🙏 for all your help |