Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-10-07

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:54 tokuhirom joined #moarvm
02:27 tokuhirom joined #moarvm
06:00 domidumont joined #moarvm
06:06 domidumont joined #moarvm
06:12 domidumont joined #moarvm
06:17 ggoebel joined #moarvm
06:34 Ven joined #moarvm
06:50 FROGGS joined #moarvm
07:40 ShimmerFairy joined #moarvm
07:47 leont joined #moarvm
08:02 zakharyas joined #moarvm
08:33 zakharyas joined #moarvm
08:50 donaldh joined #moarvm
08:58 Ven joined #moarvm
09:16 lizmat joined #moarvm
09:34 brrt joined #moarvm
09:34 brrt \o #moarvm
09:34 FROGGS o/
09:35 jnthn o/ brrt
09:35 nwc10 \o/
09:37 brrt ohai jnthn nwc10
09:37 brrt i have news
09:37 brrt i've finally gotten around to looking at the dynvar bug under gdb
09:38 brrt turns out, sometimes the jit return label is zeroed
09:38 brrt even when it is in the call stack
09:38 brrt somehow, that never yields the segv that i expect
09:38 jnthn yowser
09:39 brrt at any rate, just one of the possible causes would be trying to load a label which didn't really exist
09:39 brrt that would give me a good excuse to redo that labelling properly
09:39 jnthn :)
09:39 jnthn brrt++ for hunting it down further
09:40 brrt on the other hand, i kind of suspect something like OSR, since this problem happens after a very specific number of iterations
09:40 brrt however, iirc, it wasn't actually sensitive to OSR
09:40 brrt so you may disregard that suggestion
09:44 dalek MoarVM: 6aecd2a | jnthn++ | / (8 files):
09:44 dalek MoarVM: Stub in fc (fold case) op.
09:44 dalek MoarVM:
09:44 dalek MoarVM: Just as an alias for lc at present.
09:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6aecd2a70e
09:44 * brrt supposes a watchpoint might help
09:47 brrt hmmm, or there are more creative solutions
09:48 nwc10 hangon - foldcase is something Perl 5 does better than Perl 6?
09:48 nwc10 the future is not evenly distributed yet
09:49 jnthn nwc10: Working on correcting that ;)
09:50 brrt what is foldcase, actually
09:52 ShimmerFairy jnthn: if/when you get to full case mapping, do you intend to make the simple variants readily available? (I thought of Stringy.suc, .slc, etc.) Or would one need to go through the appropriate unicode properties for that (which wouldn't be so terrible)?
09:54 jnthn brrt: http://www.w3.org/International/wiki/Case_folding
09:54 jnthn ShimmerFairy: No, wasn't going to make the simple ones so readily available
09:54 jnthn ShimmerFairy: If we find there's a pressing need for it we can in the future.
09:55 ShimmerFairy jnthn: in doing that draft of S32::Stringy a bit ago, the only place in core I recall possibly wanting it would be .samecase , if you didn't want .samecase to change string length.
09:57 brrt oh wow, that is... awefully complex
10:00 arnsholt brrt: Welcome to natural language =)
10:01 nwc10 Greek trailing sigma
10:01 ShimmerFairy brrt: that wiki page is a bit misleading. Actual case folding amounts to just using the list provided in the UCD, ignoring the stuff that's considered tailoring (e.g. the Turkish i thing should be just in Turkish contexts)
10:02 travis-ci joined #moarvm
10:02 travis-ci MoarVM build passed. jnthn 'Stub in fc (fold case) op.
10:02 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/84058955 https://github.com/MoarVM/MoarVM/compare/f09c7826a6ce...6aecd2a70ee6
10:02 travis-ci left #moarvm
10:02 * brrt wonders if it'd be sensible to have, above the 'String' abstraction, a 'Text' abstraction, which also has a language / locale tag attached to it
10:03 ShimmerFairy brrt: I imagine modules would probably subclass Str to add locale stuff. I think the CLDR is probably important in how that plays out, but (understandably) Perl 6 hasn't touched it so far :)
10:04 brrt i gues we shall see :-)
10:04 * brrt afk
10:04 brrt left #moarvm
10:08 Ven joined #moarvm
10:09 dalek MoarVM: 0026f25 | jnthn++ | src/strings/ops.c:
10:09 dalek MoarVM: Refactor to get rid of a macro.
10:09 dalek MoarVM:
10:09 dalek MoarVM: To make it easier to do further refactors to case changes.
10:09 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0026f25beb
10:18 _itz https://stackoverflow.com/questions/4456438/how-do-i-correctly-pass-the-string-null-an-employees-proper-surname-to-a-so
10:18 _itz (from another channel)
10:19 jnthn *lol*
10:20 jnthn _itz++
10:34 dalek MoarVM: e8c972f | jnthn++ | src/strings/ (4 files):
10:34 dalek MoarVM: Preparatory refactor for length-changing case ops.
10:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e8c972f352
10:58 dalek MoarVM: e1d59e6 | jnthn++ | src/strings/ (3 files):
10:58 dalek MoarVM: Get simple case folding using case fold data.
10:58 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e1d59e6f42
10:59 Ven joined #moarvm
11:00 jnthn Lunch, then I gotta work on some not-6 stuff for several hours this afternoon; bbl
11:08 Ven_ joined #moarvm
12:31 Ven_ joined #moarvm
12:46 brrt joined #moarvm
12:48 brrt speaking of HN topics, did anybody see the one about the demise of JITs?
12:48 arnsholt Yeah, that one was interesting
12:48 arnsholt Although given the title, I thought it was about jitter, not JITs =)
12:49 jnthn Didn't see that one...link?
12:49 brrt original topic: http://blog.metaobject.com/2015/10/jitterdammerung.html
12:49 brrt hn discussion: https://news.ycombinator.com/item?id=10344601
12:49 brrt needless to say i disagree
12:50 brrt 'when you need predictable performance, a JIT is not for you' - is the summary
12:51 brrt but you know, that's hardly the universe of possible programs
12:58 jnthn You could sorta say the same of GCs
12:59 jnthn Except giving time bounds on JITs doing their work and returning control to the program seems a lesser problem than doing it with GCs, and there's already been plenty of research into hard real-time GC
12:59 brrt you would say the same of gcs
12:59 brrt hmmm
12:59 brrt yeah
12:59 brrt that is actually very much possible
12:59 jnthn Well, that's my sorta. You can say it, but it only makes sense if you ignore recent developments :)
13:03 brrt what recent development would you be thinking of?
13:05 jnthn brrt: Well, if you said 20 years ago GC was incompatible with hard real time, then there probably wasn't so much research to point to that would refute the claim. Today, afaik, there is.
13:08 brrt oh, yes, in that way :-)
13:08 brrt gcs are still a minor hobby of mine
13:17 kjs_ joined #moarvm
13:32 TimToady joined #moarvm
13:39 zakharyas joined #moarvm
14:14 FROGGS joined #moarvm
14:44 Ven_ joined #moarvm
15:06 _itz I'm getting warnings with moar and VS2015 .. some docs refer to VS2010 .. should I be using that?
15:07 jnthn _itz: I get a handful of warnings at the moment on 2013
15:07 jnthn _itz: They're harmless afaict
15:08 jnthn (Though will still be nice to clear up)
15:09 _itz srcjitemit_x64.dasc(2103): warning C4293: '>>': shift count negative or too big, undefined behavior
15:09 _itz linking moar.dll
15:11 jnthn ooh, I ain't seen that one before
15:11 jnthn Very shifty
15:19 nbiiebbiih joined #moarvm
15:48 [Coke] camelia, Perl 5's shifty little sister. (alt: Perl 5's little shifter)
15:53 _itz )
15:53 _itz :)
15:53 tokuhirom joined #moarvm
15:54 * TimToady misread shifty :)
15:56 pyrimidine joined #moarvm
16:01 pyrimidine joined #moarvm
16:05 kjs_ joined #moarvm
16:07 donaldh joined #moarvm
16:24 donaldh joined #moarvm
17:14 dalek MoarVM: b7283d6 | brrt++ | src/core/frame.c:
17:14 dalek MoarVM: Spaces, no tabs
17:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b7283d691a
17:18 pyrimidine joined #moarvm
17:23 FROGGS joined #moarvm
17:50 timotimo a tremendous fix! :)
17:50 timotimo (yeah, yeah, i haven't had a proper commit in O(weeks) )
17:53 [Coke] tabs are evil and must be eradicated. I approve this commit.
17:55 tokuhirom joined #moarvm
18:24 Peter_R joined #moarvm
18:52 lizmat joined #moarvm
18:54 jnthn .oO( TabToady )
18:54 lizmat_ joined #moarvm
19:25 dalek joined #moarvm
19:46 FROGGS jnthn: btw, I'm ready when you are :o)
19:57 dalek MoarVM: 5affc05 | jnthn++ | src/strings/unicode_ops.c:
19:57 dalek MoarVM: Handle growing case of foldcase operation.
19:57 dalek MoarVM:
19:57 dalek MoarVM: Only for fc; uc/lc/tc still to come.
19:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5affc05e34
19:57 dalek MoarVM: 01bd7d9 | jnthn++ | src/strings/ops.c:
19:57 dalek MoarVM: Basic handling of strings growing on case change.
19:57 dalek MoarVM:
19:57 dalek MoarVM: Needs integrating properly with NFG yet, however; some of these are
19:57 dalek MoarVM: cases where a case change will need to produce a synthetic.
19:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/01bd7d9907
19:58 jnthn > say(nqp::fc('Scheiße!'))
19:58 jnthn scheisse
19:58 FROGGS that bang goes missing :o(
19:58 jnthn Yeah, wtf
19:58 FROGGS haha
19:58 FROGGS I thought that was intention :D
19:59 jnthn ohhh
19:59 jnthn I'ts not *intended* to go missing
20:00 FROGGS but "scheisse" hints on something going wrong :o)
20:00 jnthn Indeed
20:00 jnthn It's the first German word I could think of with a ß in it
20:00 jnthn But I thought of maß soon after
20:02 jnthn oh, duh
20:02 FROGGS Straße
20:03 jnthn It wasn't using the grapheme iterator properly
20:03 jnthn And got away with it before
20:03 FROGGS you have to think out of the bottle :P
20:03 jnthn scheisse!
20:03 jnthn Better.
20:04 dalek MoarVM: bf60b13 | jnthn++ | src/strings/ops.c:
20:04 dalek MoarVM: Fix a couple of growing case change thinkos.
20:04 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bf60b1331a
20:07 jnthn OK, enough Unicode crazy today. Let's look at the serialization thing.
20:08 FROGGS \o/
20:09 jnthn What do I need to do? Grab the repo you gave me a couple of days back?
20:09 FROGGS aye
20:09 FROGGS git clone git@github.com:FROGGS/p6-Ser.git
20:09 jnthn got it
20:09 FROGGS perl6 t\01-basic.t
20:10 jnthn 6 passes, 7th fails?
20:10 FROGGS aye
20:10 FROGGS when you look at the test, the failing test fails because $a does not get modified
20:11 FROGGS my first question: is this about lazy deserialization?
20:13 jnthn Lemme build a Moar without lazy deserialization and try it :)
20:13 FROGGS hmm, how?
20:13 FROGGS I tried to do that but did not find the right spot
20:14 jnthn #define MVM_SERIALIZATION_LAZY 0
20:14 FROGGS duh
20:14 jnthn Well, it's 1 normally
20:14 jnthn Top of src/6model/serialization
20:14 FROGGS I grepped for /:i lazy/ :o(
20:14 jnthn Anyway, the answer is no
20:14 jnthn It still fails with lazy deserialization turned on
20:15 jnthn oh
20:15 jnthn With it turned off
20:15 FROGGS :/
20:15 jnthn Which is kinda a relief 'cus that coulda been quite the debugging "fun"
20:15 travis-ci joined #moarvm
20:15 travis-ci MoarVM build errored. jnthn 'Basic handling of strings growing on case change.
20:15 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/84170844 https://github.com/MoarVM/MoarVM/compare/b7283d691a9e...01bd7d990783
20:15 travis-ci left #moarvm
20:15 FROGGS depends, it could just be that the scdisclaim op does not do enough
20:18 jnthn More likely, yeah
20:18 FROGGS but anyway, it seems (again), that hitting a write barrier helps...
20:18 FROGGS and I forgot why
20:18 FROGGS (you explained it months ago)
20:18 * jnthn wonders if this is one of those awkward dusty corners of serialization
20:20 FROGGS jnthn: because, if you change push to unshift, it fails too
20:21 FROGGS and that's because only the push_o op has a MVM_SC_WB_OBJ
20:22 * FROGGS gets another cuppa
20:26 jnthn But wait, what actually fails?
20:27 travis-ci joined #moarvm
20:27 travis-ci MoarVM build errored. jnthn 'Fix a couple of growing case change thinkos.'
20:27 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/84172055 https://github.com/MoarVM/MoarVM/compare/01bd7d990783...bf60b1331a4b
20:27 travis-ci left #moarvm
20:27 jnthn omg, you won't believe this
20:27 [Coke] YOU WON'T BELIEVE WHAT HAPPENED NEXT
20:28 jnthn FROGGS: So, the constant 42
20:28 jnthn FROGGS: It's in the SC of the program (thus -e)
20:28 jnthn The serialization context ID is computed by the source
20:28 FROGGS when we deserialize, do nothing, and serialize, the string heap seems broken
20:29 jnthn No no
20:29 jnthn Try this
20:29 jnthn Take any of the tests
20:29 jnthn Say, the third
20:29 jnthn Add a single space before the closing quote
20:29 jnthn So instead of
20:29 jnthn serialize($a)'
20:29 jnthn It's
20:29 jnthn serialize($a) '
20:29 jnthn Note that it now fails at *that* point
20:30 jnthn The 42 is in the SC of the program (-e)
20:30 jnthn And when you have identical programs then they get the same SC hash
20:30 jnthn And so it finds the program it was linked against with the 42 and resolves it
20:31 jnthn But as soon as you have a different program, it can't find that constant 42 any more
20:31 jnthn *That's* why it fails
20:31 jnthn Nothing to do with the push
20:31 FROGGS ahh!
20:31 FROGGS damn it
20:31 FROGGS bloody hell
20:31 jnthn :/
20:31 jnthn But yeah, can see how you got yourself chasing dwon the wrong rabbit hole
20:32 FROGGS but what can I do?
20:32 FROGGS I *want* to able to change my script
20:32 FROGGS without invalidating the serialized thing
20:34 FROGGS I thought I "chown" that 42 when serializing it?
20:34 jnthn It's bounded serialization, so it works up to the point you encounter an already owned object
20:34 jnthn The 42 is never unowned though; it's owned as a result of being in the program's constants table.
20:35 FROGGS so Ser.pm:8 does not do what I think it does?
20:35 FROGGS hmmm
20:35 jnthn It sets the SC of $obj - which is actually (due to is copy) a Scalar container, I guess
20:36 jnthn But yeah, it's not a deep operation
20:36 colomon joined #moarvm
20:36 jnthn It means "this exact object"
20:36 jnthn Nothing recursive.
20:36 FROGGS yeah
20:36 jnthn [A::Class::From::Another::CompUnit, And::From::A::Second] # this array needs to be linked against the objects owned by the two other comp units, for example
20:38 jnthn FROGGS: I need to go rest now, but can you write me up your actual use case for this, so I can ponder a solution?
20:38 jnthn I wonder if we can "re-bound" or some such...
20:38 FROGGS jnthn: will do
20:38 FROGGS jnthn: gnight :o)
20:38 jnthn 'night
20:48 tokuhirom joined #moarvm
21:03 kjs_ joined #moarvm
21:06 japhb joined #moarvm
21:09 masak 'night, jnthn
21:37 colomon joined #moarvm
21:41 donaldh joined #moarvm
22:34 dalek MoarVM: 656358f | (Tokuhiro Matsuno)++ | src/io/syncsocket.c:
22:34 dalek MoarVM: Check return value of uv_listen().
22:34 dalek MoarVM: Throw AdHoc exception if it's failed.
22:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/656358f45f
22:34 dalek MoarVM: 08ded20 | lizmat++ | src/io/syncsocket.c:
22:34 dalek MoarVM: Merge pull request #279 from tokuhirom/check-uv_listen-retval
22:34 dalek MoarVM:
22:34 dalek MoarVM: Check return value of uv_listen(). Throw AdHoc exception if it's failed.
22:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/08ded20f4c
22:36 dalek MoarVM: bf2f733 | cygx++ | src/core/interp.c:
22:36 dalek MoarVM: Add missing const
22:36 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bf2f7332e9
22:36 dalek MoarVM: 1cbbb2b | lizmat++ | src/core/interp.c:
22:36 dalek MoarVM: Merge pull request #280 from cygx/patch-1
22:36 dalek MoarVM:
22:36 dalek MoarVM: Add missing const
22:36 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1cbbb2b693
22:37 lizmat jnthn: hope this will save you some work
22:54 tokuhirom joined #moarvm
23:05 travis-ci joined #moarvm
23:05 travis-ci MoarVM build passed. lizmat 'Merge pull request #280 from cygx/patch-1
23:05 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/84199423 https://github.com/MoarVM/MoarVM/compare/08ded20f4cb5...1cbbb2b693ab
23:05 travis-ci left #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary