Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-03-24

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

All times shown according to UTC.

Time Nick Message
00:27 MasterDuke dogbert17: do you get a segv in t/spec/S17-supply/supplier-preserving.t if you run it with valgrind?
00:28 MasterDuke oh, not segv, `Process terminating with default action of signal 6 (SIGABRT): dumping core`
00:33 Zoffix $ perl6 -e 'run(:out, "bash").out.t.say'
00:33 Zoffix Segmentation fault
00:33 Zoffix :)
00:38 MasterDuke nice, and it got it in valgrind. want me to create a moarvm issue?
00:38 MasterDuke *i got
00:43 Zoffix Go for it.
00:43 Zoffix MasterDuke++
00:44 MasterDuke https://github.com/MoarVM/MoarVM/issues/561
01:28 MasterDuke .ask dogbert17 do you get a SIGABRT in t/spec/S17-supply/supplier-preserving.t if you run it with valgrind?
01:28 yoleaux2 MasterDuke: I'll pass your message to dogbert17.
01:35 bloatable6 joined #moarvm
01:53 samcv hello all
01:53 yoleaux2 00:05Z <AlexDaniel> samcv: if I'm getting “should eventually be unreachable” thingy in my code, what does it mean?
01:53 samcv AlexDaniel, it means you need to update
01:54 samcv unless you are already updated. in which case. please let me know. but it shouldn't happen anymore
01:54 AlexDaniel This is Rakudo version 2017.03-28-ga01d6794d built on MoarVM version 2017.03-22-ga00278e6
01:54 samcv also it means "something in MVM tried to get a property value for a codepoint less than 0"
01:54 samcv but whoever wrote the error wrote some generic thing
01:55 AlexDaniel samcv: is that updated enough? ↑
01:55 samcv it should be. uhm
01:55 AlexDaniel yea, that's what I thought too
01:55 samcv hold on AlexDaniel
01:56 samcv AlexDaniel, run this, and tell me if it passes or not https://gist.github.com/samcv/0df9fcc0c119f5ada443aefbee6f24d7
01:57 AlexDaniel samcv: it does
01:57 samcv if that passes and you still get that error. show me the code that makes it happen, would be great
01:58 AlexDaniel samcv: mmmhmm it's this: https://github.com/perl6/whateverable/blob/master/t/unicodable.t#L127-L131
01:58 AlexDaniel I wonder if just adding Xͫ⃝ to file you gave me is going to make it fail
01:58 samcv so if i dl it and run the test then it will show that error?
01:58 samcv great :)
01:58 samcv adding what?
01:59 AlexDaniel … no, that's not going to run that simply
01:59 samcv oh
01:59 samcv can you golf it into something i can test myself?
02:00 samcv or is that infeasable
02:00 AlexDaniel well, it's something about Xͫ⃝
02:00 AlexDaniel I can do that
02:00 samcv yay
02:01 samcv also AlexDaniel are you on windows
02:01 AlexDaniel no, that test fails on the server (linux)
02:01 samcv kk
02:01 samcv ok so no \r\n line  endings, probably
02:04 AlexDaniel oooh…
02:07 AlexDaniel GOT IT
02:07 AlexDaniel ha
02:07 AlexDaniel m: say ‘Xͫ⃝’ ~~ /:i x /
02:07 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
02:08 AlexDaniel samcv: for a little moment it felt hopeless… but there you go!
02:08 AlexDaniel m: say ‘Xͫ’ ~~ /:i x /
02:08 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
02:08 samcv woo
02:08 AlexDaniel m: say ‘Xͫ’ ~~ /:i X /
02:08 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
02:08 samcv crazy
02:08 AlexDaniel something about :i
02:08 samcv bisectable6, say ‘Xͫ⃝’ ~~ /:i x /
02:08 bisectable6 samcv, Bisecting by exit code (old=2015.12 new=a01d679). Old exit code: 0
02:09 bisectable6 samcv, bisect log: https://gist.github.com/4f31e1270108a6049b1522b4a0ab00e9
02:09 bisectable6 samcv, (2017-03-10) https://github.com/rakudo/rakudo/commit/22f00cd72deaaaafbaeb1ad83187309854e33739
02:09 samcv ah ok
02:09 AlexDaniel “case insensitive string compare fix” :)
02:09 samcv well it did fix a way worse bug
02:09 samcv which could affect every character
02:09 samcv not matching if there were things that got longer on casefolding it'd be off
02:10 AlexDaniel well, I'm happy that I have a bunch of whateverable tests :)
02:10 samcv hmm i wonder if anything changes length on lowercasing
02:10 samcv and nobody ever noticed that bug so far, cause it's always been there
02:10 AlexDaniel what do you mean?
02:11 samcv unicodable6, { my $char = .chr; $char.lc.chars != $char.chars }
02:11 AlexDaniel commit: 22f00cd7^ say ‘Xͫ⃝’ ~~ /:i x /
02:11 committable6 AlexDaniel, ¦22f00cd7^: «Nil»
02:11 samcv like that
02:11 unicodable6 samcv, Found nothing!
02:11 AlexDaniel commit: 22f00cd7^ say ‘Xͫ⃝’ ~~ /:i X /
02:11 committable6 AlexDaniel, ¦22f00cd7^: «Nil»
02:11 AlexDaniel hm
02:11 samcv unicodable6, { my $char = .chr; $char.fc.chars != $char.chars }
02:11 unicodable6 samcv, U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
02:11 unicodable6 samcv, U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE [Ll] (ʼn)
02:11 AlexDaniel commit: 22f00cd7^ say ‘Xͫ⃝’ ~~ /:i ‘xͫ⃝’ /
02:11 committable6 AlexDaniel, ¦22f00cd7^: «「Xͫ⃝」»
02:11 unicodable6 samcv, 80 characters in total: https://gist.github.com/77540a7d5181b62dcdaf853c78deaf20
02:12 samcv there's things that change length on uppercasing or tc for sure at least. so i guess that's why was never visible cause nothing so far at least expands under lc.
02:12 AlexDaniel oh
02:12 AlexDaniel samcv: want me to file a ticket for that?
02:12 samcv oh no, that is fixed.
02:12 samcv well it doesn't do that anymore
02:13 AlexDaniel commit: 22f00cd7^,22f00cd7 say ‘Xͫ⃝’ ~~ /:i x /
02:13 committable6 AlexDaniel, ¦22f00cd7^: «Nil» ¦22f00cd: «should eventually be unreachable␤  in block <unit> at /tmp/IJ3U5MEMuW line 1␤ «exit code = 1»»
02:13 samcv now the problem is that we need to use the new nqp::indexic function to search instead of nqp::index
02:13 AlexDaniel for this thingy I mean ↑
02:13 samcv oh
02:13 samcv nah
02:13 samcv not yet
02:13 AlexDaniel :)
02:14 bloatable6 joined #moarvm
02:16 bloatable6 joined #moarvm
02:19 samcv good thing for gdb. also lol MVM_string_equal_at_ignore_case (tc=<optimized out>,
02:19 samcv haystack=<optimized out>, needle=<optimized out>, h_offset=<optimized out>)
02:19 samcv well that's good
02:19 samcv but need to remove optimize to debug this
02:21 samcv someday in the far future everything will be optimized out. including humans maybe. you never know
02:21 AlexDaniel .tell timotimo d=… thingy is done. See https://github.com/perl6/whateverable/wiki/Bloatable
02:21 yoleaux2 AlexDaniel: I'll pass your message to timotimo.
02:22 samcv yeah trying to get the property value of -2
02:23 samcv for the case folding property. ah. ok makes way more sense
02:32 samcv ok i think i've almost fixed it
02:32 samcv yeah i fixed it. just gotta run spectest
02:34 samcv good find AlexDaniel++
02:34 samcv very happy you found that
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:48 AlexDaniel whateverable++ :)
03:06 samcv ok yeah it's all good i think
03:11 samcv passing 'MVMCodepoint **' (aka 'int **') to parameter of type
03:11 samcv 'const MVMCodepoint **' (aka 'const int **') discards qualifiers in nested pointer types
03:11 samcv [-Wincompatible-pointer-types-discards-qualifiers]
03:11 samcv ...= MVM_unicode_get_case_change(tc, h_g, MVM_unicode_case_change_type_fold, &h_result_cps);
03:12 samcv well it works. this error is mostly harmless but maybe it was giving that warning before
03:12 samcv at least on clang
03:13 samcv oh it's new, but because the new function i have to use for synthetics doesn't have const. so that's fine
03:17 samcv copying and pasting it is messing up this thing. AlexDaniel if i send you a patch can you reinstall mvm and test?
03:18 AlexDaniel m: say ‘Xͫ⃝’.ords
03:18 camelia rakudo-moar a01d67: OUTPUT: «(88 875 8413)␤»
03:18 samcv ok thanks
03:18 AlexDaniel m: say (88.chr ~ 875.chr ~ 8413.chr) ~~ /:i x /
03:18 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
03:19 AlexDaniel m: say (88.chr ~ 875.chr) ~~ /:i x /
03:19 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
03:19 samcv m: say so (88.chr ~ 875.chr ~ 8413.chr) ~~ /:i /
03:19 camelia rakudo-moar a01d67: OUTPUT: «True␤»
03:19 samcv wat
03:20 samcv is there invisible things i'm not seeing or... is thaht a bug
03:20 samcv also really weird
03:20 AlexDaniel hmmmm a null regex
03:20 AlexDaniel no, no symbols
03:21 samcv bisectable6, say 'blah' ~~ /:i /
03:21 bisectable6 samcv, On both starting points (old=2015.12 new=a01d679) the exit code is 0 and the output is identical as well
03:21 bisectable6 samcv, Output on both points: «「」»
03:21 samcv well at least it's not wrong
03:21 samcv even if it's incorrect
03:21 AlexDaniel m: say 'blah' ~~ / /
03:21 camelia rakudo-moar a01d67: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Null regex not allowed␤at <tmp>:1␤------> say 'blah' ~~ / /⏏<EOL>␤»
03:21 samcv should show a warning but still work i *think*
03:21 samcv oh compile error
03:22 samcv well an empty string is inside any string
03:22 AlexDaniel m: say 'blah' ~~ /:r /
03:22 camelia rakudo-moar a01d67: OUTPUT: «「」␤»
03:22 samcv so it's not really wrong
03:22 AlexDaniel m: say 'blah' ~~ / ‘’ /
03:22 camelia rakudo-moar a01d67: OUTPUT: «「」␤»
03:22 samcv just not proper
03:22 samcv well at least it's not a new bug
03:22 samcv or maybe that's bad. but at least it means it's not my fault ;)
03:22 geekosaur null regex rejected is avoiding another perl5 trap
03:23 samcv yes
03:24 samcv ok well this works AlexDaniel. can you compile mvm if i commit and test. idk how your selver is setup
03:24 AlexDaniel I'm using rakudobrew
03:24 samcv but it totally works and passes all spectests
03:24 samcv k
03:28 Geth ¦ MoarVM: 498a21d8f3 | (Samantha McVey)++ | src/strings/ops.c
03:28 Geth ¦ MoarVM: Fix case insensitive string compare bug when synthetics in haystack
03:28 Geth ¦ MoarVM:
03:28 Geth ¦ MoarVM: If we have a synthetic in the haystack, we have to do more work and
03:28 Geth ¦ MoarVM: use the MVM_nfg_get_case_change function which will properly work with
03:28 Geth ¦ MoarVM: synthetics.
03:28 Geth ¦ MoarVM:
03:28 Geth ¦ MoarVM: This fixes a bug that would cause error "should eventually be unreachable"
03:28 Geth ¦ MoarVM: on doing case insensitive regex or other case insensitive ops.
03:28 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/498a21d8f3
03:36 AlexDaniel bisect: old=Xͫ⃝ say 42
03:36 AlexDaniel ah…
03:37 AlexDaniel right…
03:37 AlexDaniel I always forget that this happens
03:53 samcv what happens?
03:53 samcv oh. it messed it all up
03:53 AlexDaniel samcv: all unicodable tests are OK
03:53 AlexDaniel that's all I can say :)
03:53 samcv yey
03:54 samcv would you be able to add some tests to roast for me
03:54 samcv or should i do it. idk maybe you have a good assortion of random unicode junk to use
03:54 AlexDaniel samcv: I'm trying to go to bed for the last 2 hours… :)
03:54 AlexDaniel so would be nice if you did it
03:54 samcv ok :)
03:55 samcv i can do it later then
03:55 AlexDaniel and no, I don't have unicode junk :(
03:55 samcv i will have to aquire some random unicode text
03:55 AlexDaniel but now I wonder… there are some crazy unicode files on the internet built exactly for this purpose
03:55 samcv idk i need some like text files that are all in different languages
03:55 samcv tbh
03:55 samcv but project gutenburg is only in english and other noncrazy languages
03:56 samcv yeah there are AlexDaniel.
03:56 samcv they are hard to copy and paste though :P
03:57 samcv more just complicated real world things. i have sources of weird unicode that is horrible and looks crazy. but want things in multitude of scripts and such
03:57 samcv maybe use wikipedia and copy some common pages that have articles in all languages ever
03:58 AlexDaniel or maybe some random testing can help?
03:58 samcv well yeah. but i need a bunch of sources first
03:59 samcv so ideally i'll get text files of every script and can run the same tests on each one
03:59 samcv similar to https://gist.github.com/samcv/0df9fcc0c119f5ada443aefbee6f24d7
03:59 samcv but also for things like regex and other things
03:59 AlexDaniel oh right
03:59 samcv also i think most of those hangul are already in NFC form
04:00 samcv so ideally would want to make it in NFC/NFD inconsistently and there's many things
04:00 samcv bbs
04:05 unicodable6 joined #moarvm
04:05 bisectable6 joined #moarvm
04:05 benchable6 joined #moarvm
04:05 committable6 joined #moarvm
04:05 evalable6 joined #moarvm
04:05 bloatable6 joined #moarvm
04:05 statisfiable6 joined #moarvm
04:44 Geth ¦ MoarVM: a8448142d8 | (Samantha McVey)++ | 2 files
04:44 Geth ¦ MoarVM: Improve description for "should eventually be unreachable" error
04:44 Geth ¦ MoarVM:
04:44 Geth ¦ MoarVM: Change the error to: Error, MoarVM cannot get Unicode codepoint property
04:44 Geth ¦ MoarVM: for synthetic codepoint %i
04:44 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/a8448142d8
04:44 samcv very good. no more "should eventually be unreachable" errors. and if it does happen it'll at least tell the user wtf happened
05:48 samcv jnthn, we're getting compile errer https://msdn.microsoft.com/en-us/library/1kay26wa.aspx C2036
05:48 samcv on appveyor builds https://ci.appveyor.com/project/moritz/rakudo/build/1.0.2666/job/snxf2s5jr6fcrvin#L387
06:38 brrt joined #moarvm
07:10 domidumont joined #moarvm
07:17 domidumont joined #moarvm
07:41 brrt joined #moarvm
09:02 zakharyas joined #moarvm
09:09 Ven joined #moarvm
09:15 brrt joined #moarvm
09:15 brrt good * #moarvm
09:17 timotimo hey brrt
09:17 yoleaux2 02:21Z <AlexDaniel> timotimo: d=… thingy is done. See https://github.com/perl6/whateverable/wiki/Bloatable
09:18 timotimo so what do i do to check out exprjit stuff with c calls? :3
09:20 brrt you check out even-moar-jit, compile and run the following gist
09:21 samcv hey brrt
09:21 brrt https://gist.github.com/bdw/bcbe317c1f4753b13fa2baac8e56b68f
09:21 brrt hey samcv, timotimo
09:21 brrt that will compile a call to 'say'
09:22 brrt it won't use the value, though
09:22 brrt there's a bunch of things i haven't done to get to 'production quality'
09:23 brrt but, it will compile, spill, order arguments, invoke and reload
09:23 brrt and i think that's pretty neat, tbh
09:23 timotimo "use the value"?
09:23 brrt i can't guarantee any of the topological sort stuff works well either, because, well, it hasn't been used yet
09:23 brrt return value of any C function, i mean
09:23 timotimo ah, ok
09:24 timotimo that shouldn't be terribly bad?
09:24 brrt to do? no, but, %rax is now my spare register, so i need to insert a move to an allocated register
09:24 brrt that wants some additional logic
09:27 timotimo do we still have an env var to turn exprjit on?
09:27 brrt no, it's on by default
09:27 brrt you have to turn it off
09:28 timotimo when it encounters stuff that requires c call return values, will it just refuse to jit that part, or will it get a bogus result?
09:29 timotimo hm
09:29 timotimo but if i can compile that gist, that means it gets through the compiler
09:39 brrt there are no templates defined that have c call return values, yet
09:39 brrt i need to update the plan.org file to take that into account
09:40 timotimo cool
09:40 timotimo "Can't locate Test.pm in @INC" - wow, wat?
09:40 timotimo src/jit/linear_scan.c:379:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
09:40 timotimo you have been naughty! :D
09:41 brrt wait, what
09:41 brrt haha
09:41 brrt you're on fedora I presume
09:41 timotimo i get the missing Test.pm from the tiler generator
09:42 brrt fedora is sometimes a huge pain with Test.pm
09:42 timotimo is fedora known for shipping a perl that has absolutely nothing?
09:42 brrt yes
09:42 timotimo wtf :)
09:42 brrt i have the same problem
09:42 brrt but i'm using perlbrew so i'm not feeling it so badly
09:43 brrt anyway.. i'll fix it
09:44 timotimo i'll install perl-Test now
09:44 timotimo jesus christ
09:45 timotimo a whole lot of "use of uninitialized value" from the tiler table generator
09:45 brrt so that shouldn't happen
09:45 brrt can you send me a log?
09:45 timotimo https://gist.github.com/timo/1c6380cff07f1f3573d4ddbe8f20b81f
09:47 timotimo can't wait 'til the package delivery comes here, it'll have my new mouse, which will mean i can make selections first try again
09:48 timotimo this is a perl 5.24.1, that's not old, right?
09:56 brrt no… not at all
09:56 timotimo do you have an "open" somewhere that doesn't have an "or die"?
09:56 timotimo and you're getting undefined results from slurping stuff up?
09:56 timotimo like, any untracked files on your checkout?
10:01 dogbert17_ .tell MasterDuke I'm not getting any SIGABORTS in t/spec/S17-supply/supplier-preserving.t. You haven't forgotten to turn off --full-cleanup by any chance?
10:01 yoleaux2 dogbert17_: I'll pass your message to MasterDuke.
10:03 dogbert17_ .tell jnthn the intermittent test failure in t/spec/S17-supply/supplier-preserving.t can be removed by placing a short 'sleep' before the closing of the channel. Dunno if that's the right way to fix it though.
10:03 yoleaux2 dogbert17_: I'll pass your message to jnthn.
10:03 brrt no, there's something wrong with a template
10:04 dogbert17_ .tell jnthn the bug found yesterday, invalid reads, was promptly fixed by timotimo++. I believe it only affected 32 bit systems.
10:04 yoleaux2 dogbert17_: I'll pass your message to jnthn.
10:16 brrt timotimo: thanks for that, somehow i missed it
10:16 brrt what's the scary bit is that that didn't cause a parsing error
10:17 brrt btw, you did do a full make reconfig, right
10:17 brrt otherwise you're going to have the broken dynasm :-)
10:20 Geth ¦ MoarVM/even-moar-jit: db1daa9116 | (Bart Wiegmans)++ | 4 files
10:20 Geth ¦ MoarVM/even-moar-jit: Fix build warnings and errors, timotimo++
10:20 Geth ¦ MoarVM/even-moar-jit:
10:20 Geth ¦ MoarVM/even-moar-jit: perl5 Test is not available (and it is Test::More that we need, anyway;
10:20 Geth ¦ MoarVM/even-moar-jit: and *only* if testing). Fix a typo in the tile list, which should have
10:20 Geth ¦ MoarVM/even-moar-jit: been a parse error, not sure why it wasn't. Use FindBin to get the right
10:20 Geth ¦ MoarVM/even-moar-jit: libs.
10:20 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/db1daa9116
10:21 brrt timotimo: pls try again
10:28 jnthn Bah, MSVC is picky
10:28 yoleaux2 10:03Z <dogbert17_> jnthn: the intermittent test failure in t/spec/S17-supply/supplier-preserving.t can be removed by placing a short 'sleep' before the closing of the channel. Dunno if that's the right way to fix it though.
10:28 yoleaux2 10:04Z <dogbert17_> jnthn: the bug found yesterday, invalid reads, was promptly fixed by timotimo++. I believe it only affected 32 bit systems.
10:32 timotimo brrt: k
10:33 timotimo brrt: was just changing some hardware stuff around in my desktop, so was afk
10:33 brrt no worries
10:34 timotimo oh, huh. i was convinced i had ordered this stuff to be delivered to my home, but it seems i ordered it to a pick-up station instead
10:35 timotimo no more warnings
10:35 timotimo and also no compiler error
10:37 timotimo oh?
10:37 timotimo general_purpose_register_specnot yet implemented
10:37 timotimo is that expected?
10:39 timotimo Build tree out of: [const_i64_16, const_i64_16, add_i, const_s, say, add_i, ]
10:39 timotimo <3
10:39 timotimo but after that it only outputs "starting compilation", "emit throwish control guard" and that's the end of the jitlog
10:40 timotimo so maybe it didn't end up compiling that after all?
10:46 dogbert17_ jnthn: if you've had your morning coffee there's a gist that might possibly be of interest: https://gist.github.com/dogbert17/ea5855ab29c74b1b518a9f86c2f24f62
10:46 timotimo that's the one where gumbo frees something but the author of the gumbo library didn't consider that?
10:47 timotimo hm. maybe not.
10:48 dogbert17_ timotimo: could be just noticed in the RT that jnthn was interested in the gdb output
10:48 timotimo ah, ok
10:50 dogbert17_ timotimo: thx for helping out with the small bigints yesterday
10:50 timotimo sure, easy as pie :)
10:50 dogbert17_ :)
10:51 timotimo (yes, easy as a position-independent executable)
11:05 domidumont joined #moarvm
11:42 Ven joined #moarvm
11:49 brrt no, not expected
11:49 brrt where do you see that?
11:49 brrt oh, i know…
11:50 brrt i know, maybe
11:50 brrt i hadn't tested the bit where i had a register spec implemented
12:21 timotimo oh?
12:21 timotimo so a few commits back it would have worked?
12:24 timotimo yay, i have a mouse again
12:24 timotimo a working mouse, that is
12:28 Zoffix Can anyone tell me what this code does? https://github.com/MoarVM/MoarVM/blob/master/src/io/io.c#L352-L373
12:33 timotimo https://github.com/MoarVM/MoarVM/blob/master/src/io/syncfile.c#L304-L398
12:33 timotimo that's what it does ^
12:34 Zoffix Thanks.
12:34 brrt timotimo: i'm checking it now :-)
12:34 timotimo cool
12:47 brrt oh, yeah, that's a twofold problem
12:47 brrt a): tiling doesn't distinguish properly between void and nonvoid calls
12:47 brrt (the resolution for that is to split these)
12:48 brrt b): the %rax register is not a nonvolatitle register and therefore not special-cased
12:48 brrt thus we can't compile it
14:00 Ven joined #moarvm
14:29 zakharyas joined #moarvm
14:37 AlexDaniel joined #moarvm
15:13 Ven joined #moarvm
15:44 brrt joined #moarvm
18:31 domidumont joined #moarvm
19:36 AlexDaniel joined #moarvm
20:16 lizmat .tell jnthn re https://gist.github.com/jnthn/6a80a9712fb38b32537f9f0e46fca6d7 , it occurred to me by adding a maximum size option to ConcBlockingQueue (so it will block when trying to push when it's full) would also automatically give Channels backpressure
20:16 yoleaux2 lizmat: I'll pass your message to jnthn.
20:47 * lizmat left a comment at https://gist.github.com/jnthn/6a80a9712fb38b32537f9f0e46fca6d7
21:40 jnthn There's already a bounded conc queue in the ecosystem, but yeah, we could introduce a bound there too
21:40 yoleaux2 16:32Z <Zoffix> jnthn: SmokeMachine's CLA has been received by TPF, and per [Coke] ( https://irclog.perlgeek.de/perl6-dev/2017-03-24#i_14318800 ) a commit bit can be given. The github username's "FCO" https://github.com/FCO
21:40 yoleaux2 20:16Z <lizmat> jnthn: re https://gist.github.com/jnthn/6a80a9712fb38b32537f9f0e46fca6d7 , it occurred to me by adding a maximum size option to ConcBlockingQueue (so it will block when trying to push when it's full) would also automatically give Channels backpressure
21:40 samcv good *
21:41 Zoffix \o
21:41 jnthn That would make sense for ==> and friends, which we're defining (I think :)) in terms of a set of blocking producer/consumer
21:41 jnthn But not so much for .hyper/.race where there's no point having blocked threads (aside from the one working sequentially) around, when we can instead just not schedule stuff to be done until we're ready
21:41 jnthn lizmat: ^^
21:41 jnthn o/ samcv
21:41 samcv good morning
21:42 * samcv yawns
21:42 lizmat jnthn: I guess my point was that nqp::push on a ConcBlockingQueue should to the scheduling bits
21:42 lizmat so it wouldn't block the thread, just like sleep doesn't anymore in 6.d
21:43 jnthn Ah
21:43 jnthn No, I don't think that's a good way to do it
21:44 jnthn sleep *does* block the thread in 6.d
21:44 jnthn It's await that is non-blocking
21:44 jnthn (await Promise.in(5) or so)
21:45 lizmat well, we could have sleep do: $*THREAD > 1 ?? await !! nqp::sleep   :-)
21:47 jnthn Grr, the naming of those Internal classes is using Hyper to mean "this whole framework of things" in a bunch of places
21:47 jnthn That are applicable to hyper and race
21:48 lizmat yeah, stuff is hard  :-)
21:49 jnthn Aye
21:49 jnthn Details aside, does the general idea of desugaring to a fork/join graph make sense to you?
21:50 jnthn So far as I can see, it's a general enough model for all the things we'd need
21:52 MasterDuke jnthn: any further thoughts/comments on https://github.com/MoarVM/MoarVM/pull/557 (native overflow detection)?
21:52 yoleaux2 10:01Z <dogbert17_> MasterDuke: I'm not getting any SIGABORTS in t/spec/S17-supply/supplier-preserving.t. You haven't forgotten to turn off --full-cleanup by any chance?
21:52 lizmat jnthn: yeah it does
21:52 lizmat for a moment I thought the HyperBatcher would need rotor semantics
21:53 lizmat but that should probably be done serially before HyperBatching
21:53 jnthn Yeah, I'd kinda concluded that all but the simplest cases of rotor would need to do that
21:54 jnthn That's probably fine, since a rotor feels like someting you're more likely to do at the start or end of an operation, not in the middle, most of the time
21:55 jnthn At the end of the day, part of effective use of .hyper and .race will be understanding that you need to write pipelines that cooperate with them :)
21:58 lizmat indeed
21:58 lizmat and wrt to unique passing the seen hashes, just passing the necessary meta information as the first element in the HyperWorkBatch would work fine more generally as well I would think
21:59 jnthn I'd prefer to pass it out-of-band in the .extra slot
22:00 jnthn Just feels a bit cleaner
22:00 jnthn We'll need to be really careful on thread safely of that thing
22:01 lizmat well, the processor is done with the seen hash at that point, so there would be no harm having another thread having a go at it, would it ?
22:01 lizmat as long as it is a single one ?
22:02 jnthn Yeah, going from the many-batches one to to the joined one is pretty safe
22:05 jnthn MasterDuke: Left comments
22:05 MasterDuke cool, thanks
22:06 jnthn If you'd rather to the split as a follow-up PR I can go with that
22:06 jnthn It feels like the right thing to do.
22:07 jnthn (splitting them, that is...I've a slight preference for doing it as part of this PR)
22:10 MasterDuke i replied, i think the split requires a lot of other work done also, it's not just changing the calls to mp_get_int64 in P6bigint.c
22:11 MasterDuke the attempt to split them in fact it what led me down the path of trying to add *_u ops
22:17 jnthn I just meant splitting that one function, rather than passing is_signed and doing conditionals
22:18 MasterDuke yeah, that's what i tried
22:18 jnthn Sure, but everything that's calling it now is either passing 1 or 0 for is_signed?
22:19 jnthn I'm not saying all the callers have to call the one they ultimately should
22:20 MasterDuke let me try splitting it again, it's a quick change, maybe i got mixed up while also doing that other PR
22:23 jnthn MasterDuke++
22:33 MasterDuke arg (and yay)!! that worked
22:37 jnthn One less arg ;)
22:39 lizmat good night, #moarvm!
22:39 jnthn 'night, lizmat
22:48 MasterDuke hm, is my PR going to get messed up because i just rebased to master?
22:55 MasterDuke jnthn: PR updated
23:03 jnthn Looks good
23:06 MasterDuke great
23:06 MasterDuke m: my uint64 $a = 2**63; say $a
23:06 camelia rakudo-moar 1bacc6: OUTPUT: «-9223372036854775808␤»
23:07 MasterDuke in a related branch i have that ^^^ working, but it broke some other stuff
23:11 MasterDuke heh, travis is so much faster when it's only doing moar and nqp
23:14 Geth ¦ MoarVM/master: 4 commits pushed by (Daniel Green)++, (Jonathan Worthington)++
23:14 Geth ¦ MoarVM/master: 84a730fd41 | Correctly detect+handle overflow in mp_get_int64
23:14 Geth ¦ MoarVM/master: 65f35b2356 | Rename `sign` to `is_signed`
23:14 Geth ¦ MoarVM/master: c5eb7d5bb4 | Split into mp_get_int64 and mp_get_uint64
23:14 Geth ¦ MoarVM/master: ad44958a4c | Merge pull request #557 from MasterDuke17/fix_overflow_to_negative_boundary_detection_in_mp_get_int64
23:14 Geth ¦ MoarVM/master: review: https://github.com/MoarVM/MoarVM/compare/a8448142d8...ad44958a4c
23:16 vendethiel joined #moarvm

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