02:18 vendethiel joined 02:49 flaviusb joined 06:29 flaviusb joined 06:38 brrt joined 06:44 FROGGS joined 07:23 brrt joined
brrt \o 07:24
07:24 Ven joined 07:42 zakharyas joined 08:05 lizmat joined 08:12 lizmat joined 08:50 Ven joined
dalek arVM: c4c7ebd | brrt++ | src/ (2 files):
Revert "Eliminate 100% core use for async things."

This reverts commit 58226af4aad0d36517dfb8c250770b8438fdc6d0. Unfortunately, this caused a bit more fallout than downstream was prepared to deal with. This patch will be reapplied to branch
  'async_wakeups' so development can continue.
arVM/async_wakeups: 357e65a | jnthn++ | src/ (2 files):
Eliminate 100% core use for async things.

Use async wake-ups instead of an idle handler. For this to work out we also need a semaphore to avoid a race in sending the first task to the event loop. GC is also far better handled, using prepare/check handles so another thread can work-steal the event loop thread for GC purposes when it is sleeping awaiting an I/O notification etc.
10:08 Ven joined
timotimo i'm glad we're allowed to put our newest work under the noses of our fellow perl6ians with this ^ 11:37
13:12 FROGGS joined 14:33 zakharyas joined 14:35 vendethiel joined 15:29 vendethiel joined 16:49 brrt joined 17:56 vendethiel joined 18:50 brrt joined 19:02 Peter_R joined
brrt hmmpf 19:08
i want to do something like MVMIODescriptable which has a single method descriptor()
nwc10 good hmmpf?
or hmmpf morning?
brrt good evening :-) 19:09
jnthn brrt: That seems reasonable 19:10
brrt but i find that a): in all cases uv_file is just an int
jnthn just successfully used new appartmnet's kitchen to make noms o/
brrt which means that i should be able to put it into a MVMint64 field, i'd think 19:11
nwc10 yay
is the beer fridge fully operational too?
brrt good busy jnthn :-)
jnthn nwc10: Not yet fully stocked
nwc10: But yes, my refrigerator is running :)
brrt shouldn't be so hard to stock a beer fridge in .cz
jnthn Yesterday I discovered the train to .cz actually had beer on tap. 19:12
Draught beer. On a train! 19:13
(It was morning, so I didn't test it out.)
nwc10 yay. that's better than the train to Dresden, which merely had .cz beer.
(at Hungarian prices. I wasn't complaining) 19:14
brrt unbelievable :-o
jnthn wonders if a Gulaschprogrammiernacht is a night where you eat gulash and hack, 'cus that sounds awesome... 19:23
FROGGS jnthn: I think so 19:24
gulash+hack+talks IIRC 19:25
jnthn wow :)
FROGGS ohh, it starts tomorrow 19:26
nwc10 I'd just worked this out 19:27
brrt to make matters considerably more confusing, libuv has uv_file and uv_os_fd_t, and as near as I can tell these are exactly equivalent 19:28
i'm wrong; uv_file is always an int; uv_os_fd_t is an int on unix and a HANDLE on windows 19:31
japhb jnthn: So what made you pick Prague for your next home base?
FROGGS jnthn: is there a way for an op to return more than one thing?
jnthn: or write to an obj attribute it became? 19:32
brrt FROGGS - what do you want to do
FROGGS brrt: get the stdout and stderr filehandle back from nqp::openpipe 19:33
the filehandles from the child process
brrt i don't see a reason why you couldn't do an op that had two write registers 19:34
timotimo jnthn: there's only actual gulasch on one of the days 19:35
brrt bbiab
timotimo but there's con-carne and vegan gulasch to choose from
FROGGS what is vegan gulash? 19:36
that does not sounds sane to me
timotimo it contains "saitan"
we're expecting about 500 people to show up 19:37
jnthn japhb: I like central/east Europe and wanted to come back to the region, and Prague is a very nice mix of well connected, beautiful, and appealing to wife. :) Plus language is close to others I know some of.
timotimo last year there were more than 500 pre-registrations ... and those are voluntary
FROGGS hmpf 19:38
japhb Slovene and Russian, I'm guessing? (the similar languages that you know some of) 19:39
jnthn Slovak, not Slovene. :)
FROGGS somebody should port tools/update_ops.p6 to nqp
japhb Duh, yes, sorry
nwc10 same word for beer? 19:40
jnthn Yes, though the word for "draught" is slightly different from in Slovak :)
timotimo so far i thought "draught" was "a period of very dry weather"
jnthn That's a drought :)
timotimo oh! 19:41
of course
jnthn A beer drought would be indeed highly unfortunate...
nwc10 or a measure of a successul evening
japhb Which, by the way, shows yet again why 'gh' in English basically sounds like 'whatever the heck you want'
jnthn FROGGS: Why do we need to port it to NQP? It's already in Perl 6... 19:43
FROGGS jnthn: because I rebuild nqp after changing moar, and now my perl6-m is outdated and cant regenerate the oplist :o)
japhb On actual topic: I thought I remembered some reason that multiple write registers in an op was not fully supported -- optimizer or specializer didn't recognize the extra write register or some such, and so lost track of the register during analysis.
FROGGS it at least seems that a write register at the end does not work 19:45
my variable in nqp stays NQPMu
the alternative is to return a list... 19:46
if there is a nicer option... dont hesitate to write it in the clogs :o) 19:48
japhb o/
timotimo hmm. what exactly do we need that for? 19:55
jnthn .tell FROGGS I think quite a few things rely on you only having writes to one register, and it being the first one.
I'm not especially inclined to change that... 19:56
20:05 brrt joined
lizmat jnthn: gist.github.com/lizmat/5ae61833fe735865f1fa # trying to implement $=finish 20:23
the approach is setting the lines in $*FINISH in the compunit
and when $=finish is seen, create access to it
of course, we have a timing / serialization issue
as the ops for $=finish are made well before $*FINISH is set 20:24
jnthn: suggestions?
jnthn lizmat: I'd create a $=finish variable in UNIT right from the start and install a Mu there 20:27
lizmat: With install_lexical_symbol or so
lizmat: And if we really get a finish, then update it again with the value
lizmat: And then $=finish is just a normal variable lookup
lizmat ok, I think I can work with that
jnthn lizmat: I think on a previous patch we worked on together we noted that you can call install_lexical_symbol twice for the same symbol and it just updates it 20:28
Anyway, you'll emit a QAST::Var for the lookup
You get rid of the $*FINISH this way too :)
lizmat yup
jnthn (And you already have $*UNIT available to find the scope to pass to the symbol installer) 20:29
20:30 brrt joined
brrt huh, i couldn't connect to #moarvm for some time 20:30
jnthn odd
brrt rather 20:31
20:34 colomon joined 20:43 zakharyas joined 21:04 colomon joined
brrt ok, as i've just informed over at #libuv, turns out that only a syncfile exposes an uv_file, all the others exponse a uv_handle 21:27
an uv_handle *can* be converted to an int on unix, but only to a HANDLE in windows
i'm not sure exactly how large a HANDLE is?
or even what it is in the first place 21:28
a handle is basically a pointer 21:31
(windows handle)
jnthn brrt: msdn.microsoft.com/en-us/library/a...S.85).aspx 21:32
brrt damnit to hell
ok, that can't be helped, then
jnthn Amd typedef void *PVOID;
Well, but it's opaque 21:33
So you can treat it as an integer if you like
brrt actually, i cannot
or rather, i'm unsure i can treat it as a fd
which is what i really need for isatty() 21:34
jnthn ah
lizmat jnthn: if I want to catch usage of __END__ or __DATA__ , which method in Actions should I look at ?
defterm doesn't seem to be it, nor identifier
jnthn m: __END__
camelia rakudo-moar c2a57e: OUTPUT«===SORRY!=== Error while compiling /tmp/gTO0MJ_WAV␤Undeclared name:␤ __END__ used at line 1␤␤»
brrt anyway, that means only syncfile can use isatty 21:35
(i'm wondering. can sockets be tty-ish?)
jnthn lizmat: In Perl 5, do they have to be followed by a semi?
lizmat brrt: afaik, no
brrt hmmm
lizmat jnthn: they're usually the whole line
so no semi 21:36
brrt but i suppose one can redirect a tty to a socket
21:36 colomon joined
jnthn lizmat: Hmm. Trouble is that we probably wind up in syntax error land 'cus we'll try to parse what's after them 21:36
lizmat: You could maybe add them as terms in the grammar and call <.obs: ...>
lizmat well, I want to panic as soon as __END__ or __DATA__ are seen
that would be taking it too far, no? 21:37
I mean, I know how you feel about adding terms to the grammar :-)
jnthn token term:sym<p5end> { ^^ __END__ $$ <.obs: ...> }
lizmat ok, I'll try that
jnthn lizmat: Yeah, I'm not entirely thrilled with this solution 21:38
lizmat: but I can't think of one that won't be tripped up otherwise
TimToady++ is worth consulting for better ideas.
I pondered vws for a moment but...that's worse :)
At least this way the LTM-er can rule it out early 21:39
I suspect it may be worth doing if only 'cus it's not entirely obvious what the replacement is...
timotimo i experimented with making moar.h a "precompiled header"; that didn't seem to change build performance a single bit 22:20
hm, actually
i should make doubly sure i didn't do it worng
also, i should turn off ccache :) 22:22
yeah, seems like 0 change in performance 22:25
so maybe gcc does it automatically anyway ... or it refuses to use my .h.gch file
23:58 flaviusb joined