Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-10-08

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

All times shown according to UTC.

Time Nick Message
00:01 * TimToady is guessing that overuse of Unicode will ensue upon the ability to edit programs by voice, and then back down again, much as digital typography went through an awkward period when fonts and styles were overused
00:02 TimToady s/then/then settle/
00:04 TimToady I guess someone just needs to teach Siri how to edit Perl 6 :)
00:06 jnthn OK, I think all is ready for tomorrow's trip...time to catch a little sleep.
00:06 jnthn 'night o/
01:24 benabik joined #moarvm
01:46 _ilbot joined #moarvm
01:46 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
01:57 woosley joined #moarvm
03:03 ssutch joined #moarvm
03:17 colomon joined #moarvm
06:27 ssutch joined #moarvm
07:08 lizmat_ joined #moarvm
07:11 __sri joined #moarvm
07:48 woolfy left #moarvm
07:50 woolfy joined #moarvm
07:50 woolfy left #moarvm
08:06 woolfy joined #moarvm
08:06 woolfy left #moarvm
08:23 donaldh joined #moarvm
08:26 FROGGS joined #moarvm
10:15 wsri joined #moarvm
11:12 grondilu joined #moarvm
12:28 FROGGS ridiculous, if I add a say(42) before $qastcomp.as_mast(...), the "undeclared '$qastomp'" error goes away
12:30 timotimo m(
12:30 timotimo so the generated bytecode has bugs?
12:31 JimmyZ well. looks like this error only occuers when the momery is not enough
12:32 FROGGS ha, same goes for the qregex tests
12:33 FROGGS the tests pass if I say($expect_substr)
12:33 FROGGS I certainly have enough
12:33 FROGGS maybe the nursery size is too small?
12:35 FROGGS ok 226 - three "a" characters (explicit greed)
12:35 FROGGS x @ 0
12:35 FROGGS Frame has unresolved labels
12:35 FROGGS at src/stage2/gen/QAST.nqp:4248  (./QAST.moarvm:assemble_and_load:15)
12:47 timotimo o_O
12:47 timotimo are things being trashed that should have survived?
12:51 timotimo is there a flag to turn the gc into super-aggressive mode? that runs a full collection every two opcodes or something?
12:52 FROGGS not that I know
12:55 tadzik I think GC only considers running on allocations, no?
12:55 timotimo that makes sense
12:55 timotimo so ... wtf is going on here?
13:04 FROGGS tadzik: it runs when triggered by allocations, yes
13:04 FROGGS and a full run is every 10 allocs or so? something along these lines
13:05 diakopter no
13:05 diakopter every 10 gc runs
13:05 * FROGGS listens
13:05 FROGGS ahh, k
13:05 diakopter the gc runs when one of the threads' nuurseries is full
13:06 FROGGS diakopter: so, can you imagine what is going on here?
13:07 diakopter not yet
13:08 FROGGS when I run the test unmodified, it fails like:
13:08 FROGGS install/bin/moar nqp.moarvm t/qregex/01-qregex.t
13:08 FROGGS Use of undeclared variable '$expect_substr' at line 55, near ") >= 0;\n  "
13:08 diakopter I probably should backlog
13:08 FROGGS if I add a newline before the said line, it passes most of the test
13:08 timotimo .. a newline?!
13:09 FROGGS yes, tested right now
13:09 timotimo that's really not right
13:09 FROGGS that trick didn't work for the QAST.nqp not though
13:09 diakopter your cow is over the moon.
13:09 FROGGS holy moon
13:09 diakopter testing the speech recognition recognition.
13:09 diakopter ha
13:09 diakopter speech to IRC I love it.
13:09 FROGGS *g*
13:10 diakopter what we got that acronym.
13:10 timotimo what could possibly go wrong
13:10 FROGGS "bring me a beer b***h"
13:10 diakopter now I can I or see while driving even more.
13:10 FROGGS diakopter: please stop that while driving
13:10 FROGGS timotimo: no idea
13:11 diakopter yah
13:11 FROGGS I doubt that the regex engine is to blame for some reason
13:11 diakopter no; it's a gc buglet
13:11 diakopter but it feels small
13:11 timotimo a really weird one at that
13:11 FROGGS but that can't be, I don't want to have a GC bug :/
13:12 FROGGS timotimo: there are no sane GC bugs
13:12 timotimo ... that's true
13:13 FROGGS timotimo: if you wanna try it, I added a newline after "try {" at line 48
13:14 * timotimo rebuilds nqp.moar
13:14 timotimo (on host07)
13:16 FROGGS timotimo: you might have to apply my patches (gist)
13:16 FROGGS https://gist.github.com/FR​OGGS/db53df3844dc98dd6b58
13:16 FROGGS timotimo: I can push to new branches if you want
13:17 FROGGS this would include my stage0 then
13:19 diakopter okay, I need someone to backlog for me
13:20 timotimo that would be helpful, FROGGS
13:20 FROGGS k, stay tuned
13:21 diakopter so, how should I reproduce this?
13:21 diakopter is nqp/moarboot merged?
13:22 timotimo not yet
13:23 dalek MoarVM/buglet: 2ddf94e | (Tobias Leich)++ | / (8 files):
13:23 dalek MoarVM/buglet: buglet
13:23 dalek MoarVM/buglet: review: https://github.com/MoarVM/MoarVM/commit/2ddf94e332
13:24 FROGGS timotimo: both on buglet branch now
13:24 timotimo good
13:24 tadzik digglet http://pokemonmadness.trip​od.com/images/diglett.jpg
13:25 timotimo what exactly is going on in your dyncall checkout?
13:25 timotimo ah, probably just all the makefile/configure output that's not being git ignored?
13:25 FROGGS timotimo: I have no idea
13:26 diakopter Perl is the #2 most hated programming language (according to this article). Its recommendation for how to avoid it: How to avoid it: Don’t become a programmer.
13:26 diakopter http://www.itworld.com/slideshow/120​222/10-programming-languages-most-li​kely-drive-developers-insane-373774
13:26 timotimo haha
13:27 timotimo is php the #1? or is that cobol?
13:28 diakopter VB
13:29 diakopter Perl ranked near the bottom of "WTF-y" programming languages, though.  http://www.itworld.com/big-data/3746​64/most-wtf-y-programming-languages
13:29 diakopter Perl, which was the #2 most hated language and takes a regular beating from developers, was #19 in the WTF measure. Maybe developers who hate it are successfully avoiding it - or they’re so baffled by the zillion ways you can do things that they’re too beaten down to even write “WTF?”
13:30 diakopter - See more at: http://www.itworld.com/big-data/374664/​most-wtf-y-programming-languages#sthash.1ivWfF3F.dpuf
13:30 timotimo hehe
13:30 diakopter gee, I really love javascript appending urls to my clipboard
13:31 timotimo har har
13:31 timotimo 42 42 42 42 42 42 42 42 42 42 :)
13:31 diakopter how should I reproduce this
13:31 diakopter gc bug
13:31 diakopter halp.
13:32 timotimo well, first build moarvm and nqp on the "buglet" branch
13:32 diakopter bah
13:32 diakopter building nqp takes too long
13:33 diakopter wait
13:33 diakopter is buglet a branch of moarboot?
13:33 timotimo you can use my nqp in ~timotimo/nqp on host07, it's almost finished
13:33 timotimo it's a derivative of moarboot, yes
13:33 diakopter well since I've never used the moarboot branch...
13:34 diakopter so are we using the cross-compiler anymore?
13:34 timotimo FROGGS: the say(42) helps all of nqp compile?
13:34 FROGGS timotimo: the 42 is there to workaround the QAST.nqp build issues
13:35 timotimo no cross compiling, diakopter
13:35 timotimo froggs checked in his stage0
13:35 FROGGS the 42 is only for QAST.nqp, the newline in the test is for qregex.t
13:38 diakopter nqp repo has gotten bigga
13:38 timotimo not ok 214 - two "a" characters - interesting; what may that be?
13:39 FROGGS timotimo: not checked yet, but this seems to be an interesting one
13:40 FROGGS have no time yet though to check that :/
13:40 timotimo it's a**2 on baabaa
13:40 timotimo nqp-m: "baabaa" ~~ /a**2/
13:40 camelia nqp-moarvm: ( no output )
13:40 timotimo nqp-m: say("baabaa" ~~ /a**2/)
13:40 camelia nqp-moarvm: OUTPUT«aa␤»
13:40 timotimo seems to be some b0rked state
13:43 FROGGS nqp-m: "baabaa" ~~ /a**0..2/
13:43 camelia nqp-moarvm: ( no output )
13:43 FROGGS nqp-m: say("baabaa" ~~ /a**0..2/)
13:43 camelia nqp-moarvm: OUTPUT«␤»
13:43 FROGGS nqp-m: say("baabaa" ~~ /a**1..2/)
13:44 camelia nqp-moarvm: OUTPUT«aa␤»
13:44 FROGGS nqp-m: say("baabaa" ~~ /a**1..3/)
13:44 camelia nqp-moarvm: OUTPUT«aa␤»
13:44 FROGGS nqp-m: say("baabaa" ~~ /a**1/)
13:44 timotimo that's ... not quite right ...
13:44 camelia nqp-moarvm: OUTPUT«a␤»
13:44 FROGGS hmm
13:44 FROGGS weird
13:44 FROGGS nqp-m: say("baabaa" ~~ /a**0..1/)
13:44 camelia nqp-moarvm: OUTPUT«Rebuild in progress␤»
13:46 FROGGS nqp: say("baabaa" ~~ /a**2/)
13:46 camelia nqp: OUTPUT«aa␤»
13:46 diakopter nqp repo finally finished
13:46 diakopter checkoiut
13:46 diakopter clone
13:53 diakopter erm why all the 42
13:54 FROGGS diakopter: read backlog
13:55 diakopter from where? :)
13:55 FROGGS diakopter: these say(42) stmts help QAST.nqp to build and not to blow up
13:56 FROGGS diakopter: it is the same bug as the add-newline-to-pass-qregex one
13:56 diakopter whaa
13:57 FROGGS and in both cases it would blow up like '$xyz undeclared'
13:58 diakopter what about the say(42) is causing this
13:58 diakopter surely not the fact it's using stdout?
13:58 timotimo no, they help at compile time
13:58 timotimo remember, that $xyz is undeclared is a compile-time error
13:59 diakopter how does add-newline-to-pass-qregex fix it? where does it add a newline?
13:59 FROGGS right, either it tricks the grammar from now complaining or something else
14:00 FROGGS diakopter: https://github.com/perl6/nqp/commit/900​50fd47401572de640ef8d7de5330e3f667d93#d​iff-3a7dbc32b9763ffaf57c37747d0482fbR49
14:01 FROGGS s/from now/from not/
14:07 diakopter todo for someone: make a fakecuteable for nqp.exe
14:08 not_gerd joined #moarvm
14:08 not_gerd o/
14:08 diakopter not_gerd: aloha
14:08 dalek MoarVM/ext-stage: 77b029b | (Gerhard R)++ | src/moar.h:
14:08 dalek MoarVM/ext-stage: Add macros for extension op definition.
14:08 dalek MoarVM/ext-stage:
14:08 dalek MoarVM/ext-stage: These are ncomplete and just here to get the
14:08 dalek MoarVM/ext-stage: general idea accross.
14:08 dalek MoarVM/ext-stage: review: https://github.com/MoarVM/MoarVM/commit/77b029b9be
14:08 dalek MoarVM/ext-stage: 0f8e14d | (Gerhard R)++ | src/core/ (2 files):
14:08 dalek MoarVM/ext-stage: Stage extension op operands instead of letting
14:08 dalek MoarVM/ext-stage: the extensio code inspect the bytecode stream.
14:08 dalek MoarVM/ext-stage: review: https://github.com/MoarVM/MoarVM/commit/0f8e14df57
14:08 dalek MoarVM/ext-stage: 2f6f23e | (Gerhard R)++ | src/core/ (2 files):
14:08 dalek MoarVM/ext-stage: Disallow ins and callsite operands for extension ops
14:09 dalek MoarVM/ext: 8f8e17d | (Gerhard R)++ | src/core/ (2 files):
14:09 dalek MoarVM/ext: Disallow ins and callsite operands for extension ops
14:09 dalek MoarVM/ext: and fix operand_bytes for lexicals
14:09 dalek MoarVM/ext: review: https://github.com/MoarVM/MoarVM/commit/8f8e17d49a
14:09 not_gerd see 0f8e14df57 for how staging operands for extension ops would look
14:10 diakopter not_gerd: operands[i].i64  shouldn't that be operands[i]->i64
14:10 diakopter [isn't it a table of pointers to registers]?
14:10 not_gerd no - the whole point of the stage is that everything gets passed by value
14:10 diakopter but it needs to update registers
14:11 not_gerd the interpreter does that via UNSTAGE()
14:11 not_gerd the idea is that the extension op shouldn't poke that far into internals
14:13 diakopter meh. we're passing it tc, so it can anyway
14:13 diakopter so why not have autogenerated code do it safely
14:13 not_gerd because the JIT then has to fake interpreter access patterns
14:14 not_gerd if we pass everything by value, the JIT is free to pull the data from $wherever
14:15 diakopter I s'pose, okay
14:17 diakopter can someone kill this horror  if nqp::substr($op.name, 0, 8) eq '&__MVM__' {
14:18 diakopter by adding an attribute to $op
14:18 timotimo is there a way to speed up substr(str, 0, *) eq '*'?
14:18 timotimo like an op that does the comparison without creating a new string?
14:19 timotimo that's an optimization that the optimizer could totally do in nqp
14:19 diakopter there is an op like that
14:19 diakopter in moarvm
14:19 diakopter but not in nqp
14:19 timotimo is there a simple way to check for the existence of an op from within nqp? i don't think there is
14:20 timotimo probably needs one of these #?if moarvm or something lines
14:20 diakopter nqp-m: nqp::COWWWWWW
14:20 camelia nqp-moarvm: OUTPUT«No registered operation handler for 'COWWWWWW'␤compile_op»
14:20 diakopter that's moarvm-only code, so it can go in there as nqp::  just map it in operations
14:20 diakopter *no one cares  lololol
14:21 timotimo oh, you mean provide a nqp::substr(...) eq ... implementation on the other platforms?
14:22 timotimo would you think there's a win to doing it that way, though? at least on moarvm?
14:24 timotimo i must admit i don't really know how strings and encodings are handled interally for parrot and java at the moment. just utf8 everywhere?
14:25 FROGGS utf16 for java
14:25 FROGGS or so
14:25 diakopter timotimo: no
14:25 diakopter I mean just making it work on moarvm
14:25 timotimo if i provide the same op on all backends, will that help?
14:26 timotimo nqp::startswith_s perhaps?
14:26 diakopter no
14:26 FROGGS timotimo: no, I think he wants and $op.is_moar instead of if nqp::substr($op.name, 0, 8) eq '&__MVM__' {
14:26 diakopter just map nqp::eqat_s to moarvm op eqat_s
14:26 diakopter in qast operations
14:26 timotimo yes, but i want an op to statically optimize all checks that look like that
14:27 timotimo i'll quickly grep the nqp and rakudo source to see if that pattern happens often
14:27 diakopter ok.. so implement eqat on jvm and parrot :P
14:27 diakopter eqat_s              w(int64) r(str) r(str) r(int64)
14:28 diakopter takes two strings and a starting index for ... one of them, can't remember, returns int
14:28 diakopter there's actually also a more general one that compares two substrings
14:29 diakopter haveat_s            w(int64) r(str) r(int64) r(int64) r(str) r(int64)
14:29 timotimo have at you!
14:29 diakopter but ... don't port that one.. :D
14:30 diakopter since... I don't think it's used anywhere anyway
14:30 timotimo i would very strongly think that eqat would have an offset into the haystack, rather than into the needle
14:30 diakopter right, my point was which one was the haystack and needle :P
14:30 timotimo ah, yes
14:30 timotimo i will just have to look at teh source
14:33 diakopter FROGGS: so, I don't understand this buglet branch
14:33 diakopter you're saying it's just the indexnat that's causing the problem?
14:33 diakopter [or why is that part of this branch]
14:33 timotimo without indexnat, we can't even begin to try qregex/01-*.t
14:34 diakopter but this is a compile-time problem?
14:34 FROGGS diakopter: indexnat is inluded because otherwise qregex would hang
14:34 diakopter okay, but I thought you said it was a compile time problem
14:34 FROGGS so, I'd say indexnat can go into master after a bit of cleanup
14:35 FROGGS diakopter: yes, the current problem happens at compile time
14:36 FROGGS indexnat gets us just further to this new problem
14:37 rjbs joined #moarvm
14:37 diakopter o/
14:37 rjbs diakopter said that I should join because there's a riot going on
14:37 rjbs What can I loot?
14:37 diakopter you're needed to help quell it
14:37 * rjbs *has* been playing Prison Architect...
14:39 diakopter #moarvm: meet the p5 "Pumpkin G"
14:39 FROGGS the what?
14:39 diakopter I dunno what it means either
14:40 diakopter speaking of cultic special knowledge..
14:40 rjbs "G" is a suffix for respect, from India
14:41 diakopter FROGGSG: so to reproduce this, I just have to remove the say(42); ?
14:43 FROGGS diakopter: yes, to break it remove the say(42) and the newline in qregex.t after "try {"
14:43 donaldh joined #moarvm
14:43 diakopter *facedesk*
14:44 diakopter rjbs: gc bugs are fun.
14:44 rjbs Hey, we're adding this in p5, when do we get it in 6? https://gist.github.com/rjbs/9cbd2f1841bb8f26faf6
14:44 rjbs (speaking of {)
14:44 tadzik :o
14:45 tadzik what sorcery is this
14:45 rjbs <warning>Some messages may be lies.</warning>
14:45 diakopter ^ except that one
14:45 timotimo okay, i have an implementation of eqat_s for java, now one for parrot ...
14:45 diakopter (sometimes)
14:46 diakopter timotimo: take off the _s plz
14:46 timotimo will do
14:46 diakopter really it should be removed from the moarvm one, too
14:46 diakopter ill-conceived by moi
14:46 timotimo i'll call the method "string_equal_at" in the java ops to make it the same as in MVM
14:47 timotimo but i called the arguments "haystack" and "needle" instead of a and b on java
14:47 timotimo because at first i thought they were switched
14:47 diakopter heh.
14:48 FROGGS rjbs: don't show it to larry++ or it will be specced within minutes :o)
14:48 diakopter it's hard to find a piece of hay in a 10 foot stack of needles
14:48 FROGGS that is as crazy as heredocs
14:48 timotimo :D
14:49 rjbs FROGGS: It came up because I'd like to see qw«xyz abc» happen.
14:49 donaldh wow, that's both hard to type and hard to implement :-)
14:49 FROGGS rjbs: it should be possible in rakudo with a slightly modified heredocs parser fwiw
14:49 timotimo slightly?
14:49 FROGGS I think so
14:49 timotimo it would have to work backwards
14:50 colomon joined #moarvm
14:50 FROGGS no, I'd say ⎧ is the opener
14:50 diakopter nah just add something special for the opening one
14:50 diakopter right
14:50 timotimo well, if the upper left corner of such a bracket would not be available anywhere else, like as a custom operator ...
14:50 FROGGS then you parse the ident in between
14:50 diakopter DOING IT
14:50 diakopter rjbs: now look what you've done
14:51 rjbs You invited me, dude.
14:51 diakopter life imitating ... something....
14:51 diakopter something tells me I won't solve this gc bug before needing to commute to work
14:52 not_gerd while we're at it, why not implement a reversed polish notation variant of perl6 triggered by a unicode right-to-left mark
14:52 * not_gerd hides
14:53 diakopter rjbs: not_gerd is our new "actual C programmer" since we realized we didn't have one
14:53 diakopter so he's been fixing all the things in moarvm that novices like me screwed up
14:54 not_gerd on that note, there are still some () function signatures that should read (void)
14:54 not_gerd these are only the same in C++
14:54 not_gerd ;)
14:55 diakopter Digital-Immorto-Criminalise Your Face
14:55 diakopter for the low low price of $250
14:55 diakopter ... I really hope I don't download this game.
14:56 benabik joined #moarvm
14:56 rjbs diakopter: It's a bunch of fun, if you like that kind of game.  Also, kinda buggy, still in alpha.
14:56 rjbs diakopter: You may be used to that, though... :)
14:57 diakopter I've stopped noticing bugginess. All I see are the green vertical lines
14:58 * rjbs stares at the lines: "bug, bug, feature, coredump"
14:59 diakopter pre-feature, you mean
15:01 timotimo what does :base_core mean in the nqp.ops?
15:01 * diakopter throws a 10-foot stack of needles at timotimo
15:01 diakopter timotimo: I have no earthly idea; not_gerd is perhaps the only one who would know
15:01 diakopter erm.
15:02 diakopter I thought you said oplist.
15:02 diakopter :base_core  sounds .pmc ish
15:03 timotimo hehe.
15:03 diakopter rjbs: so I've decided to use the exploit I found in p5 .pmc parsing to load moarvm without dynaloader
15:03 timotimo yes, i'm building a C implementation for string_equal_at
15:04 rjbs diakopter: ? O_o
15:04 diakopter wouldn't you like to know....
15:06 timotimo when i use Parrot_string_to_cstr, will that stop after the first nullbyte?
15:07 timotimo Parrot_str_to_cstring*
15:07 timotimo i should be asking in #rakudo, no?
15:07 diakopter timotimo: does it matter? :D
15:07 colomon there's a #rakudo/
15:07 colomon ?
15:07 timotimo uh
15:07 timotimo #perl6, duh
15:08 not_gerd history rewrite incoming - yes, I'm evil like that ;)
15:09 dalek MoarVM/ext-stage: a41bd79 | (Gerhard R)++ | src/core/ (2 files):
15:09 dalek MoarVM/ext-stage: Disallow ins and callsite operands for extension ops
15:09 dalek MoarVM/ext-stage: and fix operand_bytes for lexicals
15:09 dalek MoarVM/ext-stage: review: https://github.com/MoarVM/MoarVM/commit/a41bd79e1c
15:09 dalek MoarVM/ext-stage: d2183c7 | (Gerhard R)++ | src/moar.h:
15:09 dalek MoarVM/ext-stage: Add macros for extension op definition.
15:09 dalek MoarVM/ext-stage:
15:09 dalek MoarVM/ext-stage: These are incomplete and just here to get the
15:09 dalek MoarVM/ext-stage: general idea accross.
15:09 dalek MoarVM/ext-stage: review: https://github.com/MoarVM/MoarVM/commit/d2183c7f45
15:09 dalek MoarVM/ext-stage: 4bfe069 | (Gerhard R)++ | src/core/ (2 files):
15:09 dalek MoarVM/ext-stage: Stage extension op operands instead of letting
15:10 jnap joined #moarvm
15:12 odc joined #moarvm
15:16 cognominal joined #moarvm
15:21 diakopter 15:21 < diakopter> TimToady: are macro-methods spec'd?
15:40 benabik joined #moarvm
15:42 jnap joined #moarvm
15:44 not_gerd afk
15:44 not_gerd left #moarvm
15:50 timotimo it seems like i can get the STR register's ->strstart and compare stuff from there, but that'll break if different encodings are involved
15:52 timotimo no, it seems i need to use an iterator for that
15:58 * timotimo rewrote the thing with string iterators
16:12 jnap1 joined #moarvm
16:18 grondilu joined #moarvm
16:30 FROGGS joined #moarvm
16:31 * TimToady notes that he proposed using multi-line brackets some months ago :)
16:31 * timotimo remembers
16:33 TimToady http://irclog.perlgeek.de/​perl6/2013-07-30#i_7388901
16:33 TimToady rjbs: ^^ beat you to it
16:34 FROGGS the good thing about this https://gist.github.com/rjbs/9cbd2f1841bb8f26faf6 is that you can indent it nicely within your code without adding whitespace to the content
16:34 FROGGS and there is no stopper at ^^
16:34 FROGGS which is ugly
16:35 rjbs TimToady: o/
16:35 FROGGS so, I'd say +1, because it might look silly the first time but it really is not
16:36 TimToady again, this is something that is more reader-centric than writer-centric, but that's a good thing, right?
16:36 FROGGS I like it when my code looks beautiful
16:36 FROGGS even when that means that I spent the same time cleaning it up like I need to write it down initially
16:36 TimToady and the characters for it are Just Sitting There looking at us hopefully
16:37 FROGGS right
16:37 FROGGS easier to type characters would be nice but...
16:37 TimToady and there really is very little ambiguity
16:37 TimToady it's so unambigous that we could also allow unclosed froms
16:37 FROGGS they would clash with already existing stuff I guess
16:37 TimToady *forms
16:37 FROGGS how so?
16:37 FROGGS just the opener?
16:38 TimToady the unclosed form would close the statement just like a final }
16:38 FROGGS or just the left hand sides?
16:38 TimToady just the left side
16:38 TimToady you know when you hit the end of the first line
16:39 TimToady would 2x2s be customarily written above the line?
16:39 TimToady (rather than below?)
16:39 FROGGS so, we would just need an opener, (optionally with the variable preceded), followed by additional lines (again optional variable), that is it
16:40 TimToady or just accumulate the text on the left to put in front, and accumulate the text on the right to put in back
16:41 TimToady which degenerates to dwim when only one line is used
16:42 TimToady mind you, people should be shot if they abuse the privilege of multiple lines front or back, but that doesn't mean we should stop people from doing clever things
16:42 TimToady now suppose there is more than one on the same "line"
16:42 TimToady now suppose they aren't all the same vertical size...
16:42 FROGGS more than one opener?
16:43 * TimToady has a minor masak++ /o brane melt moment
16:43 TimToady it's a good thing we're not talking about anything interesting...
16:43 FROGGS I would only allow rvalue per line
16:43 FROGGS one*
16:43 TimToady oh, wait, that was the other channel
16:44 TimToady in fact, this whole conversation is on the wrong channel
16:44 FROGGS :o)
16:45 * TimToady blames rjbs :)
16:48 * ingy *always* blames rjbs
16:50 ingy or maybe it's TimToady I blame. I can't keep up with myself anymore…
17:08 * TimToady always blames TimToady in addition to everyone else
17:08 FROGGS nqp: say("baa" ~~ /a**0..2/)
17:08 camelia nqp: OUTPUT«␤»
17:08 FROGGS timotimo: so it is not a bug
17:09 FROGGS because it is fine to match zero a's at index 0
17:09 TimToady use 1..2 to mean the other thing
17:09 timotimo ah, ok
17:09 TimToady leftmost trumps longest
17:09 timotimo of course, that makes sense now
17:10 FROGGS leftmost elephant trumps longest?
17:11 FROGGS nqp: say("baabbbb" ~~ /a**2..4/)
17:11 camelia nqp: OUTPUT«aa␤»
17:11 FROGGS nqp-m: say("baabbbb" ~~ /a**2..4/)
17:11 camelia nqp-moarvm: OUTPUT«Substring length (-10) cannot be negative␤   at nqp-src/QRegex.nqp:1062  (./QRegexMoar.moarvm:Str:4294967295)␤ from nqp-src/NQPCORE.setting:668  (./NQPCOREMoar.setting.moarvm:frame_name_8:6)␤ from nqp-src/NQPCORE.setting:667  (./NQPCOREMoar.setting.moarvm:pr…»
17:11 FROGGS there we go
17:12 FROGGS this comes back as an empty string loally
17:12 FROGGS locally*
17:12 FROGGS I'll do that this night, unless someone else likes to do it :o)
17:15 FROGGS nqp-m: say("baabbbb" ~~ /a**1..4/)
17:15 camelia nqp-moarvm: OUTPUT«aa␤»
17:15 FROGGS why??
17:15 FROGGS is "2" a magic constant or what?
17:16 FROGGS nqp-m: say("baabbbb" ~~ /b**3..4/)
17:16 camelia nqp-moarvm: OUTPUT«bbbb␤»
17:16 FROGGS nqp-m: say("baaabbbb" ~~ /a**3..4/)
17:16 camelia nqp-moarvm: OUTPUT«aaa␤»
17:16 FROGGS I am puzzled
17:36 not_gerd joined #moarvm
17:37 not_gerd ENOFROGGS?
18:47 camelia joined #moarvm
18:48 jnap joined #moarvm
18:49 camelia joined #moarvm
18:53 camelia joined #moarvm
18:56 camelia joined #moarvm
19:09 camelia joined #moarvm
19:09 moritz rakudo-jvm: say 42
19:09 camelia rakudo-jvm: OUTPUT«42␤»
19:09 moritz \o/
19:12 timotimo not_gerd: froggs left 4 minutes before you came :(
19:12 timotimo but he said he'd fix something!
19:15 not_gerd timotimo: I figured
19:15 not_gerd all I wanted to do was offer my help
19:15 not_gerd after all, I'm the one who re-implemented sustring on moarvm
19:18 timotimo substring?
19:18 timotimo it would seem like the caller of substring is wrong, rather than substring itself
19:19 not_gerd sure
19:19 not_gerd I wanted to know how to reproduce the problem
19:20 not_gerd and add a reminder that moar expects a non-negative length parameter or -1 to indicate Inf
19:25 timotimo ah
19:25 timotimo there was that "buglet" branch, but it may very well already be out of date by now
19:43 cognominal__ joined #moarvm
19:53 camelia joined #moarvm
20:08 diakopter timotimo: out of date? but there's been no commits
20:09 timotimo there may have been commits and/or changes on froggs local machine
20:36 lizmat joined #moarvm
20:45 not_gerd bye, #moarvm
20:45 not_gerd left #moarvm
20:59 donaldh joined #moarvm
21:12 FROGGS joined #moarvm
21:13 FROGGS o/
21:59 diakopter jnthn: ping
22:27 diakopter .tell not_gerd I saw this, which led me to notice that TCC is almost done switching its license from lgpl to mit-style...! easy assembler! http://blogs.perl.org/users/david_m​ertens/2013/08/ctinycompiler-a-just​-in-time-c-compiler-for-perl.html
22:27 yoleaux diakopter: I'll pass your message to not_gerd.
22:27 diakopter .tell jnthn I saw this, which led me to notice that TCC is almost done switching its license from lgpl to mit-style...! easy assembler! http://blogs.perl.org/users/david_m​ertens/2013/08/ctinycompiler-a-just​-in-time-c-compiler-for-perl.html
22:27 yoleaux diakopter: I'll pass your message to jnthn.
22:38 woolfy joined #moarvm
22:39 lizmat joined #moarvm
22:45 jnthn the &__MVM__ thing si a temporary hack. Don't waste time on killing it, it's just to get us bootstrapped.
22:45 jnthn I see everyone completely missed the point of it :/
22:46 TimToady you should have put a comment on it that read: "You will completely miss the point of this."  :)
22:46 jnap joined #moarvm
22:52 jnthn ;)
22:53 * jnthn had a fun night giving talks and drinking stout in Stockholm :)
22:53 jnthn Oddly, I get to spend tomorrow eating curry in Stockholm. :)
22:58 * TimToady doesn't remember whether he had curry in Stockholm...
22:58 jnthn There are some good places.
22:58 jnthn And some bad ones :)
23:16 grondilu joined #moarvm
23:25 woolfy left #moarvm
23:34 colomon joined #moarvm
23:55 diakopter jnthn: sry
23:56 jnthn diakopter: np
23:57 jnthn I see we have a GC-looking bug with symbol tables...
23:57 diakopter yeah; as usual I thought I'd hae time to look at it
23:58 jnthn :)
23:58 jnthn I probably won't until thu evening, or Friday

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