Camelia, the Perl 6 bug

IRC log for #perl6, 2014-02-26

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:04 Guest23735 joined #perl6
00:11 pippo left #perl6
00:13 [Coke] daily runs dead until further notice.
00:17 lue [Coke]: aw, why?
00:18 BenGoldberg joined #perl6
00:22 [Coke] diakopter shut them down, trying to get setup on a different machine.
00:24 erkan joined #perl6
00:24 [Coke] stuck until moritz comes back online to set me up
00:27 clsn And now, rants about Unicode.
00:27 clsn Rant #1: Bracketing characters again.  According to S02, bracketing depends on the sequence of Ps/Pe/Pi/Pf codepoints and on Bidi mirroring glyphs, with the former taking precedence.
00:29 clsn It would be nice to auto-generate the pairings and all, but unfortunately the unicode data APIs that I've seen don't seem to give you access to the bidi mirroring glyph, though they will tell you mirrored Y/N (which is not helpful, since there are many mirrored characters lacking pair-mates).  That sucks.
00:30 lue clsn: http://www.unicode.org/Public/U​CD/latest/ucd/BidiMirroring.txt
00:31 clsn Also, what gives with U+2018, U+201A, and U+201B pairing up with U+2019?  While I fully agree it makes sense, it doesn't pass muster wrt the spec, which quite clearly states that the _next_ Pe/Pf after a Ps/Pi is the closer.  U+2019 is *before* two of the glyphs it's supposed to close for.  And bidi mirroring doesn't help, because Ps/Pi stuff takes precedence.
00:32 clsn lue: I know; what I said was that most unicode data APIs don't give you that information.  Things like import unicodedata on python or use Unicode::UCD (or does it?)
00:32 lue clsn: actually, the spec just says "lowest-numbered closer", not "next closer"
00:33 clsn Then shouldn't everything be closed by )?
00:33 clsn "For any given Ps character, the next Pe codepoint (in numerical order) is assumed to be its matching character"
00:33 clsn It doesn't specifically say about Pi/Pf, but it seems to treat them the same.
00:34 lue clsn: for bidi brackets, see if the Bidi_Mirroring_Glyph and/or the Bidi_Paired_Bracket properties help out
00:35 clsn Now, it makes plenty of sense that „ and " and “ should all be closed by ” (and the same for the single-apostrophe versions), but that probably needs to be spelled out as an explicit exception to the spec.
00:35 [Coke] clsn: have you looked at the moar unicode setup code?
00:35 clsn Can you get the bidi_mirroring_glyph from Unicode::UCD?  That's the property that is exactly what we're looking for, but like I said, I have not seen how to get access to it in most of the APIs.
00:36 clsn No, though I did look some at the NQP stuff, etc.  It's hardcoded there atm.  What is moar doing?
00:36 lue clsn: is there no property lookup function in what you're using?
00:37 [Coke] clsn: bunch of scripts to scrape information out of unicode so it's available to moar.
00:38 laidback_01 joined #perl6
00:38 clsn Look at http://search.cpan.org/~rjbs/p​erl-5.18.2/lib/Unicode/UCD.pm; is there a way to get the value of a random property there?  I didn't see it, but I might have missed it.
00:38 clsn [Coke] Yeah, the information is certainly online; just that things like unicode data libraries seem to miss out supplying the bidi mirroring glyph information.
00:39 [Coke] right, I was just wondering if moar had already done this lifting for you
00:39 clsn It's certainly *possible* to get the information from the UCD, just that usually you aren;t working directly from the UCD files.
00:39 clsn Ah, OK; I haven't looked at what moar does.
00:39 clsn (and even so, it's still shame on all the other unicodedata libraries for not doing it.  Maybe I should find out how to add the feature to some of them.)
00:40 clsn So anyway, bidi mirroring glyphs and apostrophes as exceptions to the spec: the latter, at least, probably needs to be spelled out.
00:41 tgt joined #perl6
00:41 clsn Rant #2: Identifiers.  This is maybe a little early in development to work on this, and you'll probably tell me a lot of it is waiting on developments in the regexp engine, but it's worth looking at anyway.
00:41 lue clsn: bidi is not exception, though the quotation marks seem to be.
00:41 clsn (yeah, bidi isn't exception, just a whine)
00:42 trump joined #perl6
00:43 trump Juerd: I saw you in some irclogs mentioning that you had a mosh_away.pl for irssi that you grabbed (before it sadly went 404 from the initial tweet) -- do you still happen to have that?
00:43 trump I can't seem to find that anywhere, and I'd rather not rewrite it.
00:43 clsn Python3 has done a nice job of carefully spelling out what its identifiers look like in Unicode, *including* combining characters and everything.  http://docs.python.org/3.1/re​ference/lexical_analysis.html section 2.3.  It also normalizes identifiers in NFKC form, so á (precomposed) is the same as á (letter plus accent)
00:44 [Coke] .ask masak if https://rt.perl.org/Ticket/Display.html?id=80694 is still a question that needs an answer. (if so, perhaps TimToady or jnthn has one?)
00:44 yoleaux [Coke]: I'll pass your message to masak.
00:44 clsn The choice of NFKC (and not NFC) might be a little strange, in that ª and a and 𝖆 are all the same variable, but ᴀ is different from A.  But hey, at least it's consistent.  I'm not sure NFKC is a bad idea in the end, though.
00:45 [Coke] r: / abc | | def /
00:45 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
00:45 camelia ..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Null regex not allowedâ�¤at /tmp/tmpfile:1â�¤------> [32m/ abc | [33mâ��[31m| def /[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or term…»
00:46 [Coke] m: $_ = 'foo'; s:g/ /a/; say 'alive'
00:46 camelia rakudo-moar 974d00: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/LZQwMHpP5hâ�¤Null regex not allowedâ�¤at /tmp/LZQwMHpP5h:1â�¤------> [32m$_ = 'foo'; s:g/ [33mâ��[31m/a/; say 'alive'[0mâ�¤    expecting any of:â�¤        colon pair (restricted)â�¤Â»
00:47 clsn Rakudo, at least, still has all kinds of issues.  $á is a valid identifier, but $á is not (◌́ is not a valid identifier character).  You probably can't do any variables or functions in Hindi because the vowels are probably not allowed.
00:47 clsn I know this is supposed to be an issue with regexps being able to handle Unicode better and this "NFG" normalization that's bandied about, but I'm not sure there isn't something to be done about it in advance.
00:48 [Coke] m: my $á = 3;
00:48 camelia rakudo-moar 974d00: ( no output )
00:48 [Coke] I cut and pasted your second variable there.
00:49 lue [Coke]: your client composed it
00:49 clsn I also have to see what "NFG" is really supposed to be; one hopes if we're introducing Yet Another normalization form it's adding some value.  NFKC probably isn't a bad idea, for variable normalization anyway.
00:49 clsn Yeah, didn't work for me on local rakudo-moar.
00:49 lue m: my $ä = 42;
00:49 camelia rakudo-moar 974d00: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/kAgi_XkFyjâ�¤Two terms in a rowâ�¤at /tmp/kAgi_XkFyj:1â�¤------> [32mmy $a[33mâ��[31m̈ = 42;[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤        constraintâ�¤        postfixâ�¤    â€¦Â»
00:50 lue heh, the error message put a combining circle in its output :)
00:50 clsn So, yeah, in sum: unicode identifiers==cool, wish we supported 'em right.
00:51 clsn Rant #3.  OK, not really a rant.  Just a confession that I find myself wishing to do all sorts of stupid things with Unicode and perl6 syntax.
00:51 lue clsn: we can't enforce a particular composition on the coder; the rakudo parser has to do the normalization within.
00:52 clsn lue: yes, exactly.  Whatever it is in the source code, the language has to normalize it when internalizing the variable.
00:52 [Coke] .ask timtoady if we can get a ruling on https://rt.perl.org/Ticket/Display.html?id=83280
00:52 yoleaux [Coke]: I'll pass your message to timtoady.
00:52 lue As it's written in S15 so far, regexes would do matching in NFG form by default.
00:53 clsn Things like using ⁇ and ‼ and ∷ for ?? and !! and ::.  Maybe … for ..., even ⏨ for the "e" in floating-point numbers...
00:54 lue p: say "⏨".ord.base(16)
00:54 camelia rakudo-parrot 974d00: OUTPUT«23E8␤»
00:54 clsn lue: that's matching; it's more a matter of what you said: the normalizing when it's allocated and stored.
00:54 tgt joined #perl6
00:54 lue well, it implies the text being matched against is transformed to NFG within the regex engine :)
00:55 lue clsn: why would you use a TURNED DAGGER for e ? Never seen that before.
00:55 [Coke] std: my @a = 1, 2, 3, given 42;
00:55 camelia std 09dda5b: OUTPUT«ok 00:01 125m␤»
00:55 [Coke] m: my @a = 1, 2, 3, given 42;
00:55 camelia rakudo-moar 974d00: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/HEBAcRoKPyâ�¤Undeclared routine:â�¤    given used at line 1â�¤â�¤Â»
00:55 clsn Yeah, but is it transformed when you put it into the hash table or whatever that's storing your variables?  I mean, maybe it is, but it isn't clear...
00:56 clsn lue: U+23E8 is "DECIMAL EXPONENT SYMBOL".  Basically looks like a subscript "10", so the exponent is raising it to a power.
00:56 lue ah, I mistyped the codepoint number in the search thingy :P
00:57 clsn Where's TURNED DAGGER?  I think my unicode table here is out of date.
00:57 lue clsn: depends on what string variable you're storing the string into / what string literal you're using.
00:57 [Coke] .u turned
00:57 yoleaux U+018D LATIN SMALL LETTER TURNED DELTA [Ll] (ƍ)
00:57 yoleaux U+018E LATIN CAPITAL LETTER REVERSED E [Lu] (Ǝ)
00:57 yoleaux U+019C LATIN CAPITAL LETTER TURNED M [Lu] (Ɯ)
00:57 [Coke] .u turned dagger
00:57 yoleaux U+2E38 TURNED DAGGER [Po] (⸸)
00:58 clsn Ah there.  2E38.  Yeah, the file I grep from is old.
00:58 clsn lue: I guess.  It is something that has to be taken into consideration when this stuff is coded.  I doubt it's happening automatically just because you're matching.
00:59 lue NFD ~~ // might want to start as though it were m:nfd// , instead of m:nfg//, though there's no guarantee the regex was coded by the stringmaker :)
01:00 clsn Hm, what other Unicode fun toys are there waiting to be made into syntax?  I have my "pretty-mode.el" script that displays various language constructs as Unicode chars in stupid ways.  Some of those are ideas.
01:01 lue I'm all for Moar Unicode™, but I suspect most people would like that stuffed into Ofun::UniOps  or similar :) .
01:01 clsn Yeah, I recognize a lot of this is dumb stuff I just like toying with, and at best should be optional, if it's there at all.
01:02 ashleydev then theres all the math symbols as var names
01:02 clsn I could whine and say "but if it isn't being used there's no harm in having it," but come on, we all know it's silly.
01:02 clsn Well, depends on the math symbols.
01:03 [Coke] weird. I have a test that is failing when run in t/spec/.... but works if you lift it out and run it directly.
01:04 lue Now that I think about, we might benefit from a $*UNICODE/$?UNICODE , and/or a use unicode :v(7.0) pragma...
01:04 clsn Things like the Mathematical alphabetical characters like 𝕬 𝕭 𝕮 of course are possible (python3 normalizes them to A B C, possibly a good move, not necessarily)  But not ≝ or ⓧ.  Though as infix/prefix/postfix forms, okay.
01:04 lue If someone went through the trouble to type 𝕬, then chances are they *didn't* mean A :)
01:04 clsn lue: fair point.
01:05 [Coke] r: use Test; { my @a = 1,2,3; my @b; my $rt80614 = @b[0] = @a[1]; is $rt80614, 2, 'assignment to scalar via array item from array item'; is @b[0], 2, 'assignment to array item from array item to scalar'; }
01:05 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:05 camelia ..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«ok 1 - assignment to scalar via array item from array item␤ok 2 - assignment to array item from array item to scalar␤»
01:05 colomon joined #perl6
01:05 clsn I'm a little surprised that ≤ ≥ aren't there already, though.  Those probably do deserve to be there by default.
01:05 lue clsn: yeah, we could stand to make ≤ and ≥ standard I think :)
01:06 [Coke] ^^ that is failing as RT#80614 in t/spec/S03-operators/assign.t
01:06 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=80614
01:07 clsn See https://github.com/clsn/pretty-mo​de.el/blob/master/pretty-mode.el for dumb ideas from my pretty-mode.el.  Some might be worth considering, but I'm afraid to start suggesting some, because I think there's a slippery slope there for me. :)
01:08 lue Once I (or someone else 😉) actually get to writing all the S15 tests, someone may finally start implementing S15 (which would likely end up being me too, at least in part :P)
01:09 xinming joined #perl6
01:09 Juerd trump: Yes but it doesn't work very well.
01:09 rurban joined #perl6
01:11 [Coke] rakudo: $_ = "aaaa"; .++.say while 1
01:11 camelia rakudo-parrot 974d00: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaa​g␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aa​aq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤a​aba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤…»
01:11 camelia ..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:11 camelia ..rakudo-moar 974d00: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaa​g␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aa​aq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤a​aba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤aa…»
01:11 lue clsn: cool list, though, for a Perl 6 thing, in some cases (particularly ж), I'd strongly recommend not confusing the appearance of a glyph for its meaning :)
01:12 clsn Anyway, done ranting.  Let that sit and stew in people's backscrolls and see what comes of it.  Thank you, ladies and gentlemen.
01:12 clsn lue: yeah, with the way perl6 can change meanings around in ways other languages can't necessarily.  ж is... at best, creative.  It doesn't really make "sense."
01:13 lue :)
01:15 lue Well, this conversation reminded me of a previous one on Unicode (particularly, how things change between versions); I think the best solution is to /not/ lock Perl 6 to a specific Unicode version, and instead have that $*UNICODE/use unicode thing I mentioned earlier
01:15 clsn Not all relevant ones are in the list, either; I didn't know much perl6 when I looked at this last.  So maybe now I might add ≡ for =:=, make ∙ work for perl too, etc.
01:15 clsn It looks like I changed my mind in my local version and am using ≅ for ~=.
01:15 lue ($*UNICODE/$?UNICODE would tell you what Unicode version Perl 6 is using, to be clear)
01:16 [Coke] m: enum E <a b c>; say c.succ
01:16 camelia rakudo-moar 974d00: OUTPUT«3␤»
01:16 clsn Locking it to a particular version would be Bad.  Unicode *does* have some stability guarantees to keep the changes from being too horrific, but still it might be good to have access to that like you say.
01:17 lue I'd much rather trust the user to know what version of Unicode is best for their code :)
01:19 [Coke] https://github.com/perl6/specs/commit/6​b021ee247dcda4496e1e04b74ad0fa1025499b6 -> RT #102276 - it would be great if someone could tease out tests from that dense spec chunk.
01:19 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=102276
01:20 [Coke] m: rakudo: enum somenum <a b c d e>; my somenum $temp = 3; say $temp.key;
01:20 camelia rakudo-moar 974d00: OUTPUT«Type check failed in assignment to '$temp'; expected 'somenum' but got 'Int'␤  in block  at /tmp/7yvxPOsVDI:1␤␤»
01:20 [Coke] m: rakudo: enum somenum <a b c d e>; my somenum $temp = d; say $temp.key;
01:20 camelia rakudo-moar 974d00: OUTPUT«d␤»
01:21 [Coke] m: given 42 { when SomeUndeclaredType { say "OH HAI" }; default { say "OH NOES" } }
01:21 camelia rakudo-moar 974d00: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ikyyU9kWp7â�¤Missing blockâ�¤at /tmp/ikyyU9kWp7:1â�¤------> [32mwhen SomeUndeclaredType { say "OH HAI" }[33mâ��[31m; default { say "OH NOES" } }[0mâ�¤    expecting any of:â�¤        postfixâ�¤  â€¦Â»
01:23 [Coke] m: my $x = "lol"; say ($x ~~ s/o/0/).WHAT;
01:23 camelia rakudo-moar 974d00: OUTPUT«(Bool)␤»
01:25 dalek specs: b30fdaf | lue++ | S15-unicode.pod:
01:25 dalek specs: [S15] Add $*UNICODE and Unicode version pragma.
01:25 dalek specs:
01:25 dalek specs: This allows the user to gain some stability in the cases where Unicode's
01:25 dalek specs: stability policy isn't sufficient.
01:25 dalek specs: review: https://github.com/perl6/specs/commit/b30fdaf8a7
01:25 [Coke] r:  EVAL 'TestA::b(3, :foo)'
01:25 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:25 camelia ..rakudo-parrot 974d00: OUTPUT«Could not find symbol '&b'␤  in method <anon> at gen/parrot/CORE.setting:12274␤  in any  at gen/parrot/Metamodel.nqp:2694␤  in any find_method_fallback at gen/parrot/Metamodel.nqp:2682␤  in any find_method at gen/parrot/Metamodel.nqp:949␤  in a…»
01:25 camelia ..rakudo-moar 974d00: OUTPUT«===SORRY!===␤Could not find symbol '&b'␤»
01:26 BenGoldberg On a related subject... it seems to me that if someone uses two distinct unicode identifyers of the same type (both hashes, or both subs, or whatever), which could potientially normalize to the same string, a warning should probably be emitted.
01:28 benabik joined #perl6
01:28 lue BenGoldberg: if, as I suspect, the internal parser of Perl 6 operates in NFG mode, you'd probably get an error anyway :) [though a warning/more descriptive error explaining the normalization trickery that causes the error would definitely be nice.]
01:29 bjz joined #perl6
01:30 BenGoldberg I was thinking more of: my $foo = 1; my $string_which_normalizes_to_foo = 2; # the second declaration should produce a warning
01:31 TimToady we aren't going to be using NFKG anywhere if I can help it
01:31 yoleaux 00:52Z <[Coke]> TimToady: if we can get a ruling on https://rt.perl.org/Ticket/Display.html?id=83280
01:31 lue TimToady: NFKC you mean? I agree with that NF not happening :)
01:32 lue BenGoldberg: depends on your definition of "normalization" there; would  my $s = 1; my $ſ = 2;  produce a warning?
01:32 TimToady I said G and I meant G.  people can use the K forms if they like, but I feel no great urge to canonicalize anyone's chars
01:32 BenGoldberg Maybe :)
01:32 [Coke] we have a test that does a dies_ok and then tries to check the value of $!, which is Nil at that point - is there a way to use dies_ok -and- retain the exception?
01:32 lue TimToady: OK then, hadn't heard "NFKG" come up before is all.
01:33 TimToady I just made it up, in order to denigrate it. :)
01:33 BenGoldberg In particular, if they're likely to look the same as each other in someone's editor, perl should give a warning.
01:33 BenGoldberg After all, code needs to be read by humans :)
01:33 TimToady if we coddle the users, they'll get stupid :)
01:34 TimToady and the initial image will be 5 gigs or so
01:34 Guest23735 joined #perl6
01:34 lue well, s and ſ don't look the same, but NFKC and NFKD would see it as that way. Both are valid normalizations, along with NFC, NFD, NFG, and this NFKG thing I can't figure out what it's supposed to be yet :)
01:35 clsn You can't catch all things-that-look-alike.  A and Α, and half the cyrillic alphabet, etc.
01:35 [Coke] eh, I'll jsut run it twice.
01:36 clsn There needs to be SOME normalization, I think, since you're not supposed to treat things differently that are canonically equivalent.  NFC or NFD or NFG whatever that is, if not NFK*.
01:36 BenGoldberg Hmm....
01:36 BenGoldberg How about we let the user specify, via pragma, which kind of normalization they want?
01:36 lue It all depends on how NFG transforms the sequences in the end — "my $ä ; my $ä" would be a redeclaration, but "my $s; my $ſ" wouldn't.
01:37 skids .u IMAGE OF
01:37 TimToady to the first approximation, NFG is NFC
01:37 clsn That would be consistent with NFC or NFD too, so far.
01:37 yoleaux U+2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF [Sm] (≒)
01:37 yoleaux U+2253 IMAGE OF OR APPROXIMATELY EQUAL TO [Sm] (≓)
01:37 yoleaux U+228F SQUARE IMAGE OF [Sm] (⊏)
01:37 clsn OK.
01:37 skids hrm.
01:37 dalek roast: ca05eae | coke++ | S02-names-vars/names.t:
01:37 dalek roast: eliminate a "nom regression"
01:37 dalek roast:
01:37 dalek roast: dies_ok doesn't leave a $! around for testing, and the error message
01:37 dalek roast: includes the function name, but not the class.
01:37 dalek roast:
01:37 dalek roast: Eliminate unneeded EVAL
01:37 dalek roast: review: https://github.com/perl6/roast/commit/ca05eaeb9e
01:38 * lue *still* has no clue what SQUARE IMAGE OF is supposed to do, stupid 7/8-bit mentality search engines...
01:38 * TimToady blames canonicalization
01:38 BenGoldberg :)
01:39 skids .u ORIGINAL OF
01:39 yoleaux U+2290 SQUARE ORIGINAL OF [Sm] (⊐)
01:39 yoleaux U+2292 SQUARE ORIGINAL OF OR EQUAL TO [Sm] (⊒)
01:39 yoleaux U+22B6 ORIGINAL OF [Sm] (⊶)
01:39 lue clsn: NFG is NFC plus extra "fake" codepoints for graphemes without their own singular Unicode codepoint.
01:40 skids Ah there it is.  clsn:  ⊶ and the ones like it, for ^.. .. and ..^.  Not that that follows meaning.
01:40 TimToady the characters that woulda got their own precomposed codepoint if codepoints weren't in short supply :)
01:40 [Coke] TimToady: is this test cromulent? https://github.com/perl6/roast/blob/maste​r/S02-types/multi_dimensional_array.t#L87
01:40 TimToady [Coke]: still trying to wake up from my map, so thinking is hard :)
01:40 [Coke] (rakudo is currently claiming that's a Parcel, not a list)
01:40 TimToady *nap
01:41 TimToady typing is hard too
01:41 colomon mapping is hard, too.
01:41 xinming joined #perl6
01:41 [Coke] TimToady: no pressure.
01:42 TimToady I'd think it'd be a parcel
01:42 [Coke] TimToady++
01:42 lue r: say 0x1_0000 * 11 + 0xFFFF_FFFF - 0x10_FFFF;
01:42 camelia rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«4294574080␤»
01:42 camelia ..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:43 lue TimToady: I dunno, that's an awful lot of unused codepoints :P
01:43 TimToady r: sub foo () { 1,2,3 }; say foo.WHAT
01:43 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:43 camelia ..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«(Parcel)␤»
01:43 * lue afk
01:43 TimToady Parcel is the normal way to return multiple values from a function
01:43 TimToady and .[0] is really a function acting as a method
01:44 dalek roast: 41aae23 | coke++ | S02-types/multi_dimensional_array.t:
01:44 dalek roast: Update to avoid "nom regression"
01:44 dalek roast:
01:44 dalek roast: http://irclog.perlgeek.de/​perl6/2014-02-26#i_8346323
01:44 dalek roast: review: https://github.com/perl6/roast/commit/41aae23547
01:47 skids Isn't a "nom regression" what happens when you catch the norovirus?
01:48 TimToady well, that's the short term problem.  Longer term, I had to get my front teeth rebuilt when I fainted and landed on a bathtub with my face
01:49 [Coke] (straight answer) It's what we (i) did at one point to avoid having to open tickets for lots of things that now need tickets.
01:49 [Coke] TimToady: Yikes.
01:49 skids Ouch.  It didn't hit me quite THAT hard.  Then it wasn't certain we actually had real noro around here.
01:49 TimToady well, we were at altitude, so oxygen was a bit short
01:50 dalek roast: 4c480e8 | coke++ | S03-operators/comparison.t:
01:50 dalek roast: convert "nom regression" to RT
01:50 dalek roast: review: https://github.com/perl6/roast/commit/4c480e8cb1
01:50 TimToady but it was almost certainly noro in our case; about half of us got sick at roughtly the same time
01:50 colomon :(
01:50 TimToady and it was the sort of bug that you really start to wonder if you're gonna die
01:51 [Coke] m: my $a = Mu; say defined($a++);
01:51 camelia rakudo-moar 974d00: OUTPUT«True␤»
01:51 TimToady (we were on our way back from graduating Aron from St Johns, and started coming down with it at the Grand Canyon)
01:51 [Coke] m: my $a = Mu; say defined($a++); say $a;
01:51 camelia rakudo-moar 974d00: OUTPUT«True␤1␤»
01:51 [Coke] m: my $a = Mu; say defined($a--); say $a;
01:51 camelia rakudo-moar 974d00: OUTPUT«True␤-1␤»
01:51 [Coke] ^^ there's a test that thinks that should be False.
01:51 * skids tends to wonder that daily just out of habit, so would not have noticed that.
01:51 TimToady I believe there's a spec that says it should be true
01:51 TimToady lemme look
01:52 TimToady S03:562
01:52 synopsebot Link: http://perlcabal.org/syn/S03.html#line_562
01:53 [Coke] ah, so the bug is that it's 1, not 0?
01:53 TimToady no, postincr
01:53 [Coke] (honestly, having it be 0 seems weird to me, I'd expect 1 based on fiveish behavior)
01:53 TimToady it leaves the original as 0
01:54 [Coke] "Hence a postincrement returns 0 the first time"
01:54 TimToady without the defined it should say 0 1 or 0 -1
01:54 TimToady it does return 0
01:54 [Coke] I did only do it once.
01:54 TimToady you're confusing preincr with postincr
01:54 [Coke] oh, my code isn't quite doing what I think it is.
01:55 [Coke] r: my $a = Mu; say $a++; say $a;
01:55 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
01:55 camelia ..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«0␤1␤»
01:55 TimToady that is specced behavior
01:55 tgt joined #perl6
01:55 [Coke] returns 0 vs changing the value. Danke.
01:55 TimToady yeah, postincr returns the *old* value
01:58 dalek roast: 0fd86f6 | coke++ | S03-operators/increment.t:
01:58 dalek roast: "nom regression" is really spec'd behavior
01:58 dalek roast:
01:58 dalek roast: http://irclog.perlgeek.de/​perl6/2014-02-26#i_8346386
01:58 dalek roast: review: https://github.com/perl6/roast/commit/0fd86f6b37
01:58 [Coke] I wonder how many more of these regressions are now just spec updates.
01:58 * [Coke] heads out. TimToady++ for all the spec clearups.
01:59 TimToady btw, hypers aren't duckmap anymore
01:59 [Coke] I just saw a 2 year old+ ticket about that...
02:00 TimToady https://rt.perl.org/Public/​Bug/Display.html?id=102276 is what I was commenting on
02:00 [Coke] if I can reject an old ticket, awesome. :)
02:00 TimToady mind, hypers are still deepmap, and not supposed to be :)
02:00 [Coke] let me know if it can be closed.
02:00 [Coke] (or have masak open up a corrected ticket)
02:00 TimToady dunno, nice to at least have a placeholder
02:00 [Coke] really heading out.
02:00 TimToady o/
02:01 TimToady or I could just, like, fix hypers :)
02:05 FROGGS_ joined #perl6
02:09 clsn Is NFG going to have a "fake" codepoint for *every* possible basechar+combining-marks* string?  Like LATIN LETTER CAPITAL A plus ARABIC DAMMA plus COMBINING ANNUITY SYMBOL?  That's going to be an awful lot of codepoints.
02:09 rurban joined #perl6
02:10 klapperl_ joined #perl6
02:13 geekosaur allocated when needed, presumably. it's not the sort of thing that has meaning outside the current perl6 instance
02:14 geekosaur if your program creates a million of them (a) there's space (b) "doctor, it hurts when I do this"
02:35 TimToady we'll probably end up with a shared table plus a per-string table
02:37 TimToady assuming most programs are processing a particular script, the script's graphemes tend to go into the shared table, and when that fills up, per-string table can handle weird stuff outside the original script
02:37 TimToady even if a program is multi-script, the first ones in tend to be indicative of the common cases
02:39 TimToady but a good initial first cut is just per-string, and safer from a DoS attack
02:46 skids How does a per-string NFG table help -- isn't the point for compare operations between strings to be efficient?
02:52 TimToady a global table would allow you to compare negatives, yes, but is very difficult to GC
02:53 TimToady most chars will be positives, so that comparison is always a fastpath
02:53 TimToady if either is negative, then we have to think a bit more
02:53 stevan_ joined #perl6
02:54 TimToady if there's a known cutoff small negatives for the global table, then it's just a matter of comparing to that instead of 0 to see if the negatives are comparable
02:55 alc joined #perl6
02:56 tgt joined #perl6
03:22 hoverboard joined #perl6
03:23 japhb j: class Foo { has $.bar; method baz { say $.bar; { bar => eager < 1 >.map: { say $.bar } } } }; Foo.new(:bar("a")).baz; Foo.new(:bar("b")).baz;
03:23 camelia rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
03:23 japhb m: class Foo { has $.bar; method baz { say $.bar; { bar => eager < 1 >.map: { say $.bar } } } }; Foo.new(:bar("a")).baz; Foo.new(:bar("b")).baz;
03:23 camelia rakudo-moar 974d00: OUTPUT«a␤a␤b␤a␤»
03:23 japhb m: class Foo { has $.bar; method baz { say $.bar; [ bar => eager < 1 >.map: { say $.bar } ] } }; Foo.new(:bar("a")).baz; Foo.new(:bar("b")).baz;
03:23 camelia rakudo-moar 974d00: OUTPUT«a␤a␤b␤b␤»
03:24 japhb Note the difference in output ^^
03:24 japhb Only difference in code is changing { bar => ... } to [ bar => ... ]
03:25 japhb p: class Foo { has $.bar; method baz { say $.bar; { bar => eager < 1 >.map: { say $.bar } } } }; Foo.new(:bar("a")).baz; Foo.new(:bar("b")).baz;
03:26 camelia rakudo-parrot 974d00: OUTPUT«a␤a␤b␤b␤»
03:26 japhb Note that it's correct on parrot, but not on moar (and locally, broken also on jvm)
03:27 erkan joined #perl6
03:27 erkan joined #perl6
03:27 japhb This bug was causing "impossible" bleading between fresh objects in a loop.
03:27 japhb *bleeding
03:31 japhb .tell jnthn This bug may be at a level that needs your eyes: http://irclog.perlgeek.de/​perl6/2014-02-26#i_8346638
03:31 yoleaux japhb: I'll pass your message to jnthn.
03:45 ph1ur3_ joined #perl6
03:46 xinming joined #perl6
03:50 skids joined #perl6
04:40 xfix joined #perl6
04:44 laidback_01 joined #perl6
04:59 tgt joined #perl6
05:43 dalek roast: 7daa89c | moritz++ | S03-operators/comparison.t:
05:43 dalek roast: RT #121326: correct and unfudge tests
05:43 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=121326
05:43 dalek roast: review: https://github.com/perl6/roast/commit/7daa89cd6e
05:44 ingy joined #perl6
05:45 [Coke] moritz++
05:46 [Coke] I have a makefile that rakudo generated that has "j-all" at the top, but no definition of it.
05:49 darutoko joined #perl6
06:00 tgt joined #perl6
06:24 moritz [Coke]: did Configure.pl abort with an error?
06:46 masak morning, #perl6
06:46 yoleaux 00:44Z <[Coke]> masak: if https://rt.perl.org/Ticket/Display.html?id=80694 is still a question that needs an answer. (if so, perhaps TimToady or jnthn has one?)
06:47 * grondilu notices that http://rosettacode.org/wiki/SHA-256#Perl_6 now works with MoarVM
06:49 masak [Coke]: I'd like to know, too.
06:57 SamuraiJack__ joined #perl6
07:01 tgt joined #perl6
07:04 SamuraiJack__ joined #perl6
07:09 kaleem joined #perl6
07:16 SamuraiJack__ joined #perl6
07:26 dalek rakudo/nom: 881f828 | larry++ | src/core/LoL.pm:
07:26 dalek rakudo/nom: ensure 1st arg to X is lazy
07:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/881f8283be
07:26 dalek rakudo/nom: a836ab7 | larry++ | src/core/ (2 files):
07:26 dalek rakudo/nom: add deepmap, make unary hypers shallow as specced
07:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a836ab7466
07:26 TimToady note that this will kill a few wrong unary hyper tests till we change them to .deepmap
07:27 grondilu rn: for ^2 { my @b = (^256).roll(64); say :256[@b.shift xx 4] xx @b/4; }
07:27 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: :16[...] syntax NYI␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3815 (unbase @ 8) ␤  at /tmp/tmpfile line 1 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.se…»
07:27 camelia ..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
07:27 camelia ..rakudo-moar 974d00: OUTPUT«1579205690 1355821393 4232504958 2412195070 1054437615 566464174 2486826669 1595923990 991953772 3480634857 424925589 1958990192 3384319984 1422756466 3635660521 4253976283␤===SORRY!===␤Element shifted from empty list␤»
07:27 camelia ..rakudo-parrot 974d00: OUTPUT«3795212420 3158342417 256165518 1657595798 1786761498 312951935 78079993 1942245667 645834118 4081510027 2310301881 1916196990 4244084058 2864670074 2128534466 370168813␤2347852200 3952915263 1159181934 3552185973 2361045754 3404705198 1276420302 26816…»
07:28 grondilu « ===SORRY!===␤Element shifted from empty list » was very much unexpected here.
07:28 _daniel-s__ joined #perl6
07:28 pdcawley joined #perl6
07:29 masak m: for ^2 { my @b = (^256).roll(64); say :256[@b.shift xx 4] xx @b/4 }
07:29 camelia rakudo-moar 974d00: OUTPUT«1951020929 1685171118 589371551 1707360859 2554443185 173561171 3367773544 1963678829 214200794 2553362789 4175592615 2007505351 3303408050 4102449199 209607801 3634771479␤===SORRY!===␤Element shifted from empty list␤»
07:30 grondilu r: for ^2 { my @b = (^256).roll(4); say [@b.shift xx 2] xx @b/2; }
07:30 camelia rakudo-parrot 974d00: OUTPUT«43 226 6 78␤10 104 120 200␤»
07:30 camelia ..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
07:30 camelia ..rakudo-moar 974d00: OUTPUT«46 85 79 64␤===SORRY!===␤Element shifted from empty list␤»
07:30 masak m: for ^2 { my @b = 1 xx 64; say (@b.shift xx 4) xx @b/4 }
07:30 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:30 masak m: for ^2 { my @b = 1 xx 64; say (1 xx 4) xx @b/4 }
07:30 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1␤1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …»
07:30 dmol joined #perl6
07:30 masak m: for ^2 { my @b = 1 xx 64; say @b.shift xx @b }
07:30 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1␤1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …»
07:30 masak m: for ^2 { my @b = 1 xx 64; say (@b.shift xx 4) xx @b/4 }
07:30 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:31 masak m: for ^2 { my @b = 1 xx 64; say (@b.shift xx 4) xx 16 }
07:31 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:31 masak m: for ^2 { my @b = 1 xx 4; say (@b.shift xx 2) xx 2 }
07:31 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:31 [Sno] joined #perl6
07:31 masak that sort of highlights that something is wrong, don't it?
07:31 grondilu inded
07:31 grondilu deed*
07:31 masak m: my @b = 1 xx 4; say (@b.shift xx 2) xx 2
07:32 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤»
07:32 masak huh!
07:32 labster joined #perl6
07:32 grondilu it works in the first iteration, but not in the second.  Go figure.
07:32 * masak submits rakudobug
07:32 masak grondilu: oh yes, that's it.
07:33 masak m: for ^2 { my @b = 1 xx 4; say @b.shift xx 4 }
07:33 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤1 1 1 1␤»
07:34 TimToady m: for ^2 { my @b = 1 xx 4; say @b.elems; say (@b.shift xx 2) xx 2 }
07:34 camelia rakudo-moar 974d00: OUTPUT«4␤1 1 1 1␤4␤===SORRY!===␤Element shifted from empty list␤»
07:34 TimToady m: for ^2 { my @b = 1 xx 4; say (@b.shift; @b.shift) xx 2 }
07:34 camelia rakudo-moar 974d00: OUTPUT«1 1␤1 1␤»
07:34 TimToady m: for ^2 { my @b = 1 xx 4; say (@b.shift xx 2) for 1..2 }
07:34 camelia rakudo-moar 974d00: OUTPUT«1 1␤1 1␤===SORRY!===␤Element shifted from empty list␤»
07:35 TimToady m: for ^2 { my @b = 1 xx 4; (say "X" xx 2) for 1..2 }
07:35 camelia rakudo-moar 974d00: OUTPUT«X X␤X X␤X X␤X X␤»
07:36 TimToady that seems okay
07:37 masak yes, it's only shifting that somehow gets an old @b or something.
07:37 masak this seems very much like a lexical bug to me.
07:37 * masak shudders
07:39 grondilu it's weird though, since as TimToady shown, @b is correctly 4 long at the beginning of the second iteration.
07:39 grondilu m: for ^2 { say my @b = 1 xx 4; (@b.shift xx 2) xx 2 }
07:39 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤1 1 1 1␤»
07:39 grondilu ??
07:40 grondilu m: for ^2 { say my @b = 1 xx 4; say (@b.shift xx 2) xx 2 }
07:40 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤1 1 1 1␤1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:40 grondilu oh, it's only when we say it that it gets wrong
07:40 grondilu m: for ^2 { my @b = 1 xx 4; my @c = (@b.shift xx 2) xx 2; say @c }
07:40 camelia rakudo-moar 974d00: OUTPUT«1 1 1 1␤===SORRY!===␤Element shifted from empty list␤»
07:40 grondilu m: for ^2 { my @b = 1 xx 4; my @c = (@b.shift xx 2) xx 2; }
07:40 camelia rakudo-moar 974d00: OUTPUT«===SORRY!===␤Element shifted from empty list␤»
07:41 grondilu or affects it.
07:41 masak interesting.
07:43 masak my bet: something gets the wrong OUTER somewhere when two nested infix:<xx> are used like that.
07:43 masak the wrong OUTER points back to the @b from the first iteration, and so tries to shift an empty array.
07:44 masak that doesn't explain why we need to observe it for it to happen, but it explains everything else.
07:44 grondilu is an OUTER scope in a loop supposed to refer to the scope of the previous iteration?
07:44 SamuraiJack__ joined #perl6
07:44 masak no, not at all.
07:44 masak I'm saying something is OUTER'd wrong.
07:45 dalek roast: eb7b2df | larry++ | S03-metaops/hyper.t:
07:45 dalek roast: change some unary hypers to deepmaps
07:45 dalek roast: review: https://github.com/perl6/roast/commit/eb7b2df91c
07:45 masak OUTER scopes always follow the block nesting of the code itself. unless you start fiddling with macros and quasis.
07:45 berekuk joined #perl6
07:47 molaf joined #perl6
07:53 klapperl joined #perl6
07:56 masak [Coke]: no need to say "sorry" about http://rt.perl.org/rt3/Tic​ket/Display.html?id=77340 !
07:57 masak [Coke]: I just read through the whole discussion, and pmichaud++ is indeed very right. he correctly averted a lot of WAT by looking ahead and seeing it early.
08:01 tgt joined #perl6
08:08 zakharyas joined #perl6
08:12 TimToady crum broke X on <a b>, didn't notice the test blowup (too many Unicode blowups...)
08:16 TimToady I see what I did
08:22 dalek rakudo/nom: d7da964 | larry++ | src/core/LoL.pm:
08:22 dalek rakudo/nom: fix botched laziness patch on X
08:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7da9647f6
08:24 dalek roast: fb9afbd | moritz++ | S32-exceptions/misc.t:
08:24 dalek roast: Test for RT #82142
08:24 dalek roast: review: https://github.com/perl6/roast/commit/fb9afbd6a4
08:24 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=82142
08:26 moritz I haven't used typed exceptions much in normal p6 code, but for testing they are just wonderful
08:37 SHODAN joined #perl6
08:39 salv0 joined #perl6
08:40 masak agreed.
08:41 masak they're pretty sweet for larger-ish applications, too. I've really taken to sending pertinent information as cargo with an exception. or even methods.
08:54 kaare_ joined #perl6
08:57 dalek roast: 0a52ae3 | larry++ | S03-metaops/hyper.t:
08:57 dalek roast: more unary hypers to deepmaps
08:57 dalek roast: review: https://github.com/perl6/roast/commit/0a52ae37cb
08:59 dalek rakudo/nom: aa5c6bb | larry++ | src/core/metaops.pm:
08:59 dalek rakudo/nom: further detangling of deepmap from hyper
08:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aa5c6bbf4e
09:03 masak deepmap++ detangling++
09:03 moritz does that mean I can write @arry>>[0] again to get the first elements of each array ref?
09:05 * masak .oO( @arry Potter?? )
09:05 FROGGS_ >.<
09:07 klapperl_ joined #perl6
09:09 TimToady moritz: hopefully
09:09 timotimo oh, hyperops are now always shallow?
09:09 timotimo so no more "is nodal"?
09:11 TimToady we can still have is nodal, but it'll just pick between the hyper and the deepmap
09:12 timotimo ah, good
09:12 TimToady so maybe I don't have to fix all the unaries in the hyper test, once that works
09:20 spider-mario joined #perl6
09:20 rindolf joined #perl6
09:23 virtualsue joined #perl6
09:23 fhelmberger joined #perl6
09:29 denisboyun joined #perl6
09:30 tgt joined #perl6
09:30 PZt joined #perl6
09:31 dalek rakudo/nom: 453e51a | larry++ | src/core/LoL.pm:
09:31 dalek rakudo/nom: better fix for lazy X
09:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/453e51a8cd
09:32 TimToady zzz &
09:36 masak good night TimToady++
09:42 tgt joined #perl6
09:42 dakkar joined #perl6
09:55 SamuraiJack__ joined #perl6
09:59 jnthn o/ #perl6
09:59 yoleaux 03:31Z <japhb> jnthn: This bug may be at a level that needs your eyes: http://irclog.perlgeek.de/​perl6/2014-02-26#i_8346638
10:00 moritz \o *
10:00 jnthn Probably, but it won't be getting them for another couple of days... :(
10:04 masak */ \*
10:20 xinming_ joined #perl6
10:32 _daniel-s__ joined #perl6
10:32 SamuraiJack__ joined #perl6
10:56 donaldh joined #perl6
11:00 kivutar joined #perl6
11:03 kshannon joined #perl6
11:13 kaleem joined #perl6
11:16 kaleem joined #perl6
11:20 xinming joined #perl6
11:26 zakharyas joined #perl6
11:35 zakharyas joined #perl6
11:41 mavcunha joined #perl6
11:53 * timotimo is now bound to twiddling thumbs at $dayjob and could sneak in a perl6 tuit or two
11:54 timotimo nnnnoooooo, i can't login to my desktop at home :o
11:54 masak they bind you at work? that's cruel.
11:54 masak and to thumbs, no less. :P
11:54 timotimo hah :)
11:54 denisboyun joined #perl6
11:54 timotimo phew, false alert
11:55 * masak .oO( alert(false) )
11:55 timotimo turns out you can't ssh -A if you have control masters turned on and a non--A connection already exists
11:55 jnthn .oO( NaN )
11:56 timotimo jnthn: i'll spectest my flatten_fastpath and compare it against master-moarvm. should i merge if there are no new failures?
11:57 jnthn timotimo: +1
11:57 timotimo yay
11:59 timotimo jnthn: also, how do you feel about triggering a GC run if we get a null pointer back from malloc in MVM_string_flatten?
12:00 jnthn timotimo: Very bad.
12:00 jnthn timotimo: You can't just introduce GC runs in a function that hadn't used to make them.
12:00 timotimo the thought was that things that call MVM_string_flatten indirectly will already assume that there may be allocation
12:01 jnthn No, they don't
12:01 timotimo ah
12:01 jnthn MVM_string_flatten doesn't allocate GC-able memory.
12:01 timotimo right
12:01 timotimo if you have a better idea, shoot :)
12:01 jnthn "Fix ropes"
12:01 jnthn "Implement escape analysis"
12:01 jnthn :P
12:01 Ven joined #perl6
12:01 timotimo hah
12:01 timotimo i was thinking more short term ;)
12:01 timotimo maybe it should throw an adequate exception, though. instead of crashing.
12:02 jnthn Do you have an example of real (not benchmark) code actually running into this?
12:02 timotimo no :)
12:02 jnthn OK, then I think we can live with it short term. :)
12:03 jnthn A more viable solution would be to track how much string memory we allocated since the last GC run, and set the "run GC at the next safe point" flag.
12:03 timotimo mhm
12:04 timotimo do we have an op where checking that flag seems like a sane thing that wouldn't penalize every single op there is?
12:05 jnthn It checks it on branches, iirc.
12:05 _daniel-s__ joined #perl6
12:05 jnthn So that if one thread is sat in a tight loop and another triggers GC, the looping thread will come and join in, rather than deadlocking the VM.
12:06 timotimo oh, there already is such a flag!
12:06 jnthn Look for GC_SYNC_POINT or so
12:06 jnthn Oh yes, it's been in there since the private development days :)
12:06 timotimo should there be an MVM_gc_string_memory_allocated(size_t amount) or something like that?
12:07 jnthn Could do. Can store the value on the ->tc
12:07 jnthn uh tc
12:07 timotimo if i have enough time, i'll implement that then.
12:08 timotimo what's a sane amount to try for the limit?
12:08 timotimo maybe just take the nursery size as an orientation value?
12:09 jnthn No, that'll do it way too often.
12:09 jnthn This is more a "don't eat gigabytes" safetly valve...
12:09 timotimo OK
12:09 jnthn So it can be fairly high by default (128MB or so)
12:10 jnthn See that you don't slow down setting compilation, I guess is one way to analyze it...
12:11 timotimo wtf.
12:11 timotimo filestat.t failed three tests on master, passed all tests on flatten_fastpath
12:11 timotimo other than that, no new failures at all
12:11 timotimo i'm counting that as a +1 to merge
12:20 SamuraiJack__ joined #perl6
12:27 beastd joined #perl6
12:32 xinming_ joined #perl6
12:36 zakharyas joined #perl6
12:39 SamuraiJack__ joined #perl6
12:40 bluescreen10 joined #perl6
12:42 timotimo perl6-m -e 'my $s = ""; for (1 .. 1000000) { $s ~= "x" }; 1' - this does run out of memory on a vanilla moarvm, does it not?
12:43 timotimo ah
12:43 timotimo hehe.
12:44 timotimo yes, enter from interrupt is infinilooping on while ((curr = MVM_load(&tc->instance->gc_start)) < 2 || !MVM_trycas(&tc->instance->gc_start, curr, curr - 1))
12:45 timotimo so we should introduce a new gc state flag that says "i used the interrupt mechanism to tell myself to gc"
12:45 timotimo (or at least i think that's a good solution)
12:46 timotimo ah, #moarvm is a better place for this discussion
13:13 Adriaaan joined #perl6
13:14 PZt joined #perl6
13:17 SamuraiJack__ joined #perl6
13:21 masak for those interested in such things, http://www.cl.cam.ac.uk/~mr10/backtrk.pdf contains a clever algorithm using bitmasks to quickly find solutions to the 8-queens problem. might be a nice addition to http://rosettacode.org/wik​i/N-queens_problem#Perl_6
13:27 jnthn Hm, that guy was my algorithms lecturer... :)
13:27 masak ooh
13:27 * masak .oO( your algo lecturer was named Mr. 10? ) :P
13:30 Ven r: sub a($a, $b = 0) { say "$a.perl - $b.perl"; }; a(1, 2); a 1, 2; a (1, 2);
13:30 camelia rakudo-parrot 453e51, rakudo-moar 453e51: OUTPUT«1.perl - 2.perl␤1.perl - 2.perl␤1 2.perl - 0.perl␤»
13:30 camelia ..rakudo-jvm 453e51: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
13:31 Ven r: sub a($a, $b = 0) { say "{$a.perl} - {$b.perl}"; }; a(1, 2); a 1, 2; a (1, 2);
13:31 camelia rakudo-jvm 453e51: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
13:31 camelia ..rakudo-parrot 453e51, rakudo-moar 453e51: OUTPUT«1 - 2␤1 - 2␤$(1, 2) - 0␤»
13:31 Ven calm down jvm
13:33 moritz j: say 42
13:33 camelia rakudo-jvm 453e51: OUTPUT«42␤»
13:33 Ven r: .perl.say given 5;
13:33 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«5␤»
13:35 xinming joined #perl6
13:36 Ven r: sub a($n) { return $_ if $_ given $n == 1; } say a(0).perl; say a(1).perl;
13:36 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Two terms in a rowâ�¤at /tmp/tmpfile:1â�¤------> [32m($n) { return $_ if $_ given $n == 1; } [33mâ��[31msay a(0).perl; say a(1).perl;[0mâ�¤    â€¦Â»
13:37 SamuraiJack__ joined #perl6
13:40 masak j: my $a = 1; say "$a.perl() is how you call methods inside of a string interpolation"
13:40 camelia rakudo-jvm 453e51: OUTPUT«1 is how you call methods inside of a string interpolation␤»
13:40 masak Ven: ^
13:40 Ven yep
13:41 Ven I'd rather use {} though, I don't have to think about where it ends
13:41 FROGGS_ it is always a matter of taste, yes
13:43 slavik joined #perl6
13:43 * colomon wants .WHAT for C++
13:46 hoelzro more like .WAT =P
13:46 hoelzro (good morning #perl6!)
13:48 FROGGS_ hi
13:48 Ven r: class A {  has $!var handles <Str gist FETCH Numeric>; }
13:48 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: ( no output )
13:48 ajr joined #perl6
13:48 colomon hoelzro: I want .WAY for my entire life
13:48 colomon .WAT, sigh
13:48 Ven not sure which syn is `handles` in. Shouldn't it be `is handles()` ?
13:53 spider-mario joined #perl6
13:55 masak Ven: S12.
13:56 timotimo how would you expect perl6 to behave if you're asking it to concatenate one x per iteration to a string for 1000000 iterations and you only have a few gigs of ram?
13:56 masak r: class C { has @.items handles 'push' }; given C.new { .push(1, 2, 3); say .items }
13:56 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«1 2 3␤»
13:57 masak Ven: that's how you use it, and no, it shouldn't be 'is handles()' -- what makes you think it should?
13:57 moritz timotimo: It should just do it
13:57 timotimo moritz: well, it would result in a 10gb string. would you accept it to get very unperformant?
13:58 Ven well, it seems like behaviors is determined usually through `is`. Like `is export` etc
13:58 moritz timotimo: why would adding 1mio characters result in a 10gb string?
13:58 moritz Ven: 'is' isn't the only trait verb
13:58 timotimo oh, that's only 4gb
13:58 timotimo duh, yeah, it's only 4gb
13:59 timotimo well, my question is unhelpful anyway
13:59 timotimo i've built a "pressure valve" into moarvm such that if there was more than 3gb worth of string allocations since the last minor collection, it'll trigger a collection the next time it's safe to do so
13:59 timotimo this causes a whole lot of collections once your single string is bigger than 3gb
14:00 Ven moritz: Well, 3 syns unless I'm on s12 anyway
14:00 moritz Ven: sorry, I can't parse that statement
14:00 timotimo Ven: it seems to me you've done something significant last week and i forgot to put you in the p6weekly post :|
14:00 Ven moritz: I finished s09, so I'm gonna get the informations I need soon
14:01 timotimo as in ... it feels like
14:01 Ven timotimo: err, I think I made somebody fix the docs about .bless not using whatever anymore
14:01 timotimo hm, is that all of it?
14:01 Ven that's not "significant" by any means
14:01 timotimo phew :P
14:01 timotimo now i have a way to gently push people to contribute stuff :D
14:01 Ven well, I don't code on perl6-related stuff, so ... That's all I can think about ._.
14:02 Ven timotimo: unless I actually wake up at night to work on moarvm, you tell me :p.
14:02 Ven (you see that new tree-based constant folding in there ? Magic !)
14:02 timotimo ... i don't understand what you mean by that :(
14:02 Ven timotimo: forget about my failed jokes, then ! No, that's all I know I did.
14:03 kaleem joined #perl6
14:04 timotimo the comment about waking up at night was an allusion to your lack of non-$dayjob tuits?
14:04 telex joined #perl6
14:05 kbaker_ joined #perl6
14:05 Ven timotimo: I'm afraid I don't know what "tuit" means. (the comment about waking up at night was about somnambulism)
14:07 nwc10 Ven: it's a pun: http://en.wiktionary.org/wiki/round_tuit
14:07 nwc10 and then see http://twitpic.com/11o14i
14:07 Ven nwc10: then I guess I'm just too bad at english to get it
14:08 nwc10 yes, I don't think that it's even obvious to all native speakers
14:08 FROGGS_ Ven: it is about "getting aroung to it" (to do something)
14:08 FROGGS_ to it => tuit
14:09 FROGGS_ and then this wooden thing is a round tuit
14:09 FROGGS_ s/aroung/around/
14:09 Ven yeah, I got that part of the pun, I just don't get the "lack of non-$dayjob tuits"
14:10 FROGGS_ that means that you are lacking spare time for hacking, basically
14:11 Ven oh, no, I'm at school, so I supposedly have all my day to do it. But if I code something while I'm here, it's their code, so I don't do it
14:11 FROGGS_ ahh
14:12 xragnar_ joined #perl6
14:12 Ven I really hate this kind of legal **** because I basically spend my days doing nothing :/
14:12 nwc10 Ven: how "school" is school? ie is GSoC something you are eligable for? and potentially interseted in?
14:13 masak Ven: what is your native language?
14:13 Ven masak: I'm french
14:13 masak oh!
14:13 Ven nwc10: I plan to ask my resps today to know if instead of an internship, I could do GSoC :p
14:14 nwc10 cool. As I understand it, GSoC is intended to be structured and behave as an internship. Just not an on-site internship
14:15 nwc10 but I infer that what's important is what your resps think, not what Google thinks.
14:15 Ven nwc10: also what businesses will think of it later
14:15 Ven i.e. will they consider it as more valuable than a real internship or not
14:16 nwc10 most places seem think that Google is fairly awesome. But I seem to remember that reading the French courts don't think this, so I'm not sure what the rest of France thinks. :-)
14:16 nwc10 yes. do what is right for you.
14:16 Ven nwc10: french courts like privacy to be respected :p
14:16 nwc10 this is a good thing.
14:16 Ven (I'd really like to do GSoC, it looks awesome ! Else I'd probably get an internship with my school partners which do for 99% php)
14:17 nwc10 mmm, PHP :-(
14:17 [Coke] Ok, I have access to a new server to run the daily stuff on. Will likely take me a day or two to get it running since I'm starting from scratch and have DAYJOB.
14:17 nwc10 even hacking NQP for Java or porting it to .NET sounds more fun that that. And it has industry standard buzzwords in it too.
14:17 FROGGS_ [Coke]: :o(
14:17 Ven nwc10: yep =(.
14:18 nwc10 good luck with sweet talking people
14:18 Ven Working to port it to the CLR would also be very fun
14:19 nwc10 that would be a fantastic project, if your can your school to think that it's a good idea (too)
14:19 Ven oh yeah , they'll probably try to get me thinking 10hrs a day doing php copy-pasta for 400e/mo is an awesome experience, but I got to try !
14:19 nwc10 I'm afraid I can't help mentor it
14:19 nwc10 but I can buy the mentors beer. :-)
14:20 Ven nwc10: I'm not picky on the projects, I looked at some ideas suggested by foundations(erlang community, scala of ofc perl) and they all look awesome. They do look like big challenges to do, though, but that's the point I guess :)
14:21 kivutar joined #perl6
14:21 nwc10 it's one of the good and bad points of GSoC - quite a lot of the projects are very ambitious
14:22 nwc10 this often means that they don't get completed
14:23 Ven if I can start the projects at GSoC, I might be able to work it in my school time (when I've finished my school projects, of course, so around 2 hours after they're assigned to us) without legal issues. This needs a lot more thinking, though.
14:27 tadzik Ven: what would you like to work on?
14:36 treehug88 joined #perl6
14:37 SamuraiJack__ joined #perl6
14:38 Ven tadzik: allomorphic types, moarvm optimizations, perl 6 modules (rock solid http server, for example), I guess
14:38 Ven though call :-)
14:38 tadzik nice :)
14:40 FROGGS_ no, very nice :o)
14:40 FROGGS_ we need http servers, really
14:40 FROGGS_ (at least I do)
14:40 Ven yeah, I've seen that line a lot, and that looks like a reall fun thing to do
14:41 Ven But I also think you need a fast enough VM to get the juicy fruits
14:42 FROGGS_ we have that I think
14:42 tadzik well, fast is one thing
14:42 tadzik having a webserver that doesn't crash when you portscan it is the other good thing :)
14:42 FROGGS_ tadzik: one step after the other :o)
14:43 tadzik :)
14:43 jnthn We really need HTTP client/server libraires that make good use of async stuff too.
14:43 Ven tadzik: true enough ! VM optimizations is what interest me most, though. Inlining and small things such as constant folding, ssaf, licm, etc
14:43 xinming joined #perl6
14:44 jnthn When does the GSoC work start?
14:45 salv0 joined #perl6
14:46 FROGGS_ late april I think
14:50 btyler joined #perl6
14:50 FROGGS_ async hypers would be lovely btw :o)
14:51 TimToady GPU'd hypers
14:51 moritz hyped hypers!
14:51 FROGGS_ yeah
14:52 skids joined #perl6
14:52 moritz hypervised hypers!
14:52 FROGGS_ 500 cuda threads or so...
14:52 FROGGS_ does somebody outside of germany/europe know about Scooter?
14:54 FROGGS_ Hyper Hyper (1995) - http://www.youtube.com/watch?v=RHVSshgPlQs
14:55 Ven FROGGS_: erm, `say [await] @tbd;` ?
14:55 timotimo er, no
14:55 timotimo await isn't an infix op :)
14:55 Ven await<<@tbd
14:56 * rjbs scrunches face, rebuilds latest moar.
14:56 Ven r: say (-<<(1,2,3)).perl;
14:56 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«(-1, -2, -3)␤»
14:56 nwc10 rjbs: you won't have to hold the face for very long
14:56 Ven seems to be it :-)
14:57 nwc10 rjbs: IIRC MoarVM build is faster than Perl 5's makedepend step
14:57 nwc10 OK, cheating by using more that one core
14:57 jnthn With hypers, you're typically intrested in parallel execution, not asynchrony.
14:58 rindolf joined #perl6
14:59 Ven jnthn: hypers don't assume any evaluation order, right ?
14:59 rjbs r-m: 1 !+ 2
14:59 camelia rakudo-moar 453e51: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/hEdMIqYQpO�Cannot negate + because it is not iffy enough�at /tmp/hEdMIqYQpO:1�------> [32m1 !+[33m�[31m 2[0m�»
14:59 rjbs When run in the REPL, that error just keeps coming and coming and coming.
15:00 nwc10 r: 1 !+ 2
15:00 camelia rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Cannot negate + because it is not iffy enough�at /tmp/tmpfile:1�------> [32m1 !+[33m�[31m 2[0m�»
15:00 Ven "iffy" ha!
15:00 nwc10 rjbs: presumably it would come up on the legacy VMs too
15:00 rjbs would it come up as an infinite stream?
15:00 nwc10 ie looks like it's an NQP bug, not a MoarVM bug
15:01 moritz also loops on perl6-j
15:01 nwc10 not tried it, so don't know.
15:01 rjbs Okay!
15:01 rjbs Well, consider it mentioned. :)
15:01 nwc10 hateful. but portably hateful
15:01 * moritz doesn't have a perl6-p built atm
15:01 nwc10 n: 1 !+ 2
15:01 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0m��Cannot negate + because additive operators are not iffy enough at /tmp/HmP0L05euh line 1:�------> [32m1 !+[33m�[31m 2[0m��Parse failed��»
15:01 nwc10 oh, wow, very portable
15:01 nwc10 pugs: 1 !+ 2
15:01 camelia pugs: OUTPUT«*** ␤    Unexpected "!+"␤    expecting operator␤    at /tmp/D7Muzr8FCQ line 1, column 3␤»
15:01 rjbs nwc10: No, the error is expected.
15:01 nwc10 std: 1 !+ 2
15:01 camelia std 09dda5b: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot negate + because additive operators are not iffy enough at /tmp/4_IB4uuUMC line 1:�------> [32m1 !+[33m�[31m 2[0m�Parse failed�FAILED 00:00 122m�»
15:01 rjbs of course you can't metanegate "plus"
15:01 moritz rjbs: I'll submit a bugreport
15:01 nwc10 the error is that something is trying?
15:01 rjbs nwc10: so you're testing for the wrong thing
15:01 nwc10 what should I have been testing for?
15:02 rjbs when run in the REPL, it prints that error /as an infinite stream of itself/
15:02 nwc10 (how do I move the problem away from between keyboard and chair?)
15:02 rjbs terminal fills up with "cannot negate..."
15:02 nwc10 ah.
15:02 nwc10 so REPL is shagged?
15:02 rjbs Seems like.
15:02 rjbs moritz: thanks!
15:03 moritz nwc10: aye
15:08 Ven hehehe "eager" vs "hyper" vs "race"
15:09 hoelzro interesting...URI on JVM gets a null pointer excpetion
15:09 hoelzro *exception
15:09 * hoelzro sees if it's where Mokudo does too
15:09 hoelzro yup
15:09 _thou joined #perl6
15:10 timotimo hey hoelzro :)
15:10 hoelzro ahoy timotimo!
15:10 timotimo if you're stuck, there's always the kate syntax highlighting file you could work on :P
15:10 timotimo it ought to be blocker-free
15:10 hoelzro =)
15:10 hoelzro it's on my list
15:10 hoelzro my very long, very daunting list =/
15:10 timotimo :P
15:10 timotimo no pressure ;)
15:11 hoelzro bam!
15:11 hoelzro my "fails on moar" golf'd test fails on Jakudo too!
15:11 * hoelzro builds pakudo
15:11 hoelzro shower &
15:15 timotimo \o/
15:17 daniel-s_ joined #perl6
15:19 tadzik .oO( Hooray, shower! )
15:20 Ven nwc10: err, can't really find informations on that one : is GSoC remote ?
15:21 tadzik yes
15:21 btyler Ven: for almost all mentoring organizations, yes
15:21 tadzik are there exceptions?
15:21 Ven Oh ! that's a good news :)
15:21 btyler some of the Linux foundation ones aren't remote, I think
15:21 nwc10 Ven: effectively it has to be remote, because there is no need to be in the same place (or even timezone) as your mentor(s). As long as it works
15:21 tadzik cool
15:22 * tadzik remembers staying up until 3-4AM because jnthn++ was in China :P
15:22 Ven I'm not really afraid of that :p
15:22 Ven that just seems too cool to happen
15:22 jnthn tadzik: Only for a week of it :P
15:22 tadzik fortunately :P
15:23 Ven I guess that can be a problem when you have a family to take care of
15:25 TimToady looks like I might finally get to China end of March
15:26 moritz \o/
15:27 jnthn .oO( Great Wall )
15:27 colomon Great Wall visits the Great Wall?
15:27 tadzik :D
15:27 colomon better yet, Great Walls visit
15:33 araujo joined #perl6
15:33 xinming_ joined #perl6
15:33 * masak .oO( Larry 长城 )
15:33 * [Coke] creates https://github.com/coke/mojo6 and hopes to get started in the next week.
15:34 tadzik :O \o/
15:34 [Coke] (/me tries the opposite approach to moar. declare waaaaay too early)
15:34 tadzik :)
15:34 TimToady heh, so really more like Long Wall
15:34 [Coke] I am sick of coding in coldfusion.
15:34 masak TimToady: yeah.
15:35 masak [Coke]: I am sick of coding in hot dispersal.
15:35 [Coke] perhaps our needs coincide.
15:40 hoelzro hmm...Pakudo passes
15:40 hoelzro errands &
15:40 tadzik Pakudo rasses
15:40 masak Passudo rakes
15:46 JimmyZ jnthn: when will you be in china?
15:47 JimmyZ TimToady: Where are you going to?
15:47 TimToady Beijing
15:48 TimToady 北京, I should say :)
15:48 jnthn JimmyZ: No idea when I'll be the next time. Last time was a couple of years ago...
15:49 jnthn JimmyZ: Hopefully the next time will not be in summer, as that was rather too hot for me ;)
15:50 JimmyZ jnthn: :P
15:51 klapperl joined #perl6
15:53 Gothmog_ joined #perl6
15:59 kshannon joined #perl6
16:06 virtualsue joined #perl6
16:10 Adriaaan joined #perl6
16:11 timotimo $dayjob is over \o/
16:14 dalek roast: e527ad0 | larry++ | S03-operators/increment.t:
16:14 dalek roast: fix faulty ok/is confusion
16:14 dalek roast: review: https://github.com/perl6/roast/commit/e527ad0ba8
16:15 bluescreen10 joined #perl6
16:18 treehug88 joined #perl6
16:19 treehug88 joined #perl6
16:25 rurban_ joined #perl6
16:29 dmol joined #perl6
16:31 timotimo Ven: if you could get your school to accept GSoC as an internship, that would be awesome
16:32 btyler joined #perl6
16:34 xinming joined #perl6
16:36 molaf_ joined #perl6
16:44 masak Angular's bindings in isolate scopes reminds me of macros and lexical scoping.
16:44 masak there are basically three types of binding:
16:44 masak '@' -- rvalue binding
16:44 masak '=' -- lvalue binding
16:45 masak '&' -- OUTER scope binding
16:45 nwc10 too slow - I was going to say "those who understand binary and those who do not"? :-)
16:45 masak :P
17:03 * [Coke] is happy to find lots of tests for individual mojo modules, and things he'll start with Mojo::Template
17:03 [Coke] *thinks
17:04 _sri aside from the command line interface, test coverage should be very good
17:04 hoverboard joined #perl6
17:04 moritz [Coke]: you know that there's a (subset of) Mojo::Template already on modules.perl6.org?
17:05 [Coke] Ayup. Should make things easier, I hope. :)
17:05 vendethiel joined #perl6
17:06 [Coke] tadzik: https://github.com/tadzik/Template-Mojo/ doesn't have a license.
17:06 * [Coke] suggests Artistic 2.0 to match mojo5
17:09 * _sri guesses that Mojo::Util will end up being your real starting point
17:10 _sri in case some helper functions end up not being perl6 built-ins
17:10 [Coke] fair enough.
17:11 _sri Mojo::Template is a nice starting point though, Mojo::DOM is similarly isolated
17:12 [Coke] I'm trying to avoid morbo to start with. :)
17:12 _sri user agent and servers will require a little more planning
17:12 _sri haha, yea
17:16 moritz [Coke]: Mojo::JSON is nicely isolated too
17:16 moritz [Coke]: as well as many of the utils (base64, for example=
17:16 moritz )
17:16 PerlJam I've thought about doing Mojo::DOM before.   That one would be nice to have in P6
17:17 [Coke] PerlJam: welcome aboard. ;)
17:17 masak mojo6++
17:17 * _sri suspects Mojo::DOM could be a nice benchmark for perl6
17:17 kst joined #perl6
17:18 hoelzro does anyone know of a version of JVM rakudo that URI passed all its tests on?
17:24 bluescreen10 joined #perl6
17:25 tadzik [Coke]: oh. Is MIT fine?
17:26 [Coke] tadzik: probably?
17:26 tadzik ok
17:27 tadzik it's the only license I ever read, so I prefer to use it whenever possible :)
17:28 tadzik [Coke]: added
17:28 masak the only pertinent concern is whether the MIT license allows [Coke]++ to do whatever he wants, I think.
17:28 masak if it allows him to incorporate tadzik++'s module into his own code, then it "works".
17:29 denis_boyun joined #perl6
17:29 tadzik MIT allows almost everything, as far I was ever concerned
17:29 tadzik tl;dr use it however you want, just don't pretend it's yours
17:29 tadzik that's what I got from it :)
17:30 kurahaupo_mobile joined #perl6
17:30 vendethiel still not sure about `||` vs `|` (in regexp context, not `,` vs `;` interp), isn't it just for precedence ?
17:31 masak vendethiel: no, certainly not.
17:31 masak vendethiel: `||` is procedural, `|` is declarative.
17:31 vendethiel Then I definitly didn't understand that part of the synopsis
17:31 SamuraiJack__ joined #perl6
17:31 vendethiel masak: what does that mean ?
17:31 dalek roast: f293ea0 | larry++ | S02-types/lazy-lists.t:
17:32 dalek roast: X is lazy, make sure X+ is lazy too
17:32 dalek roast:
17:32 dalek roast: (since it's a different codepath)
17:32 dalek roast: review: https://github.com/perl6/roast/commit/f293ea0220
17:32 masak tadzik: the biggest dichotomy between GNU and MIT/BSD is where the focus is. GNU focuses on the freedom of the *code*, MIT/BSD focuses on the freedom of programmers.
17:32 masak vendethiel: `||` gives you a left-to-right order of evaluation.
17:32 masak vendethiel: `|` gives you Longest-Token Matching.
17:32 masak vendethiel: let me put together an example.
17:32 masak m: say "food" ~~ / foo || food /
17:32 camelia rakudo-moar 453e51: OUTPUT«「foo」␤␤»
17:33 masak m: say "food" ~~ / foo | food /
17:33 camelia rakudo-moar 453e51: OUTPUT«「food」␤␤»
17:33 masak vendethiel: see the difference?
17:33 masak m: say "food" ~~ / foo || f || food /
17:33 camelia rakudo-moar 453e51: OUTPUT«「foo」␤␤»
17:33 masak m: say "food" ~~ / foo | f | food /
17:33 camelia rakudo-moar 453e51: OUTPUT«「food」␤␤»
17:33 masak m: say "food" ~~ / foo | food | f /
17:33 camelia rakudo-moar 453e51: OUTPUT«「food」␤␤»
17:33 DarkWolf84 joined #perl6
17:33 DarkWolf84 hello #perl6
17:33 masak in the `|` case, no matter where I put 'food', the LTM finds it, because it's the longest matching alternative.
17:34 masak DarkWolf84! \o/
17:34 DarkWolf84 hi, masak
17:34 DarkWolf84 I found rakudo bug
17:35 DarkWolf84 prompt don't accept backspace
17:35 masak spill it.
17:35 masak huh.
17:35 * masak tests
17:35 DarkWolf84 it thinks that it's mailformed utf8
17:35 masak DarkWolf84: works here.
17:35 masak (on Rakudo Moar)
17:35 DarkWolf84 yes
17:36 DarkWolf84 hm
17:36 DarkWolf84 then it's something else
17:36 DarkWolf84 ok
17:37 dalek roast: 7e2dde6 | larry++ | S03-metaops/cross.t:
17:37 dalek roast: unfudge passing tests of X=:= and X!=:=
17:37 dalek roast: review: https://github.com/perl6/roast/commit/7e2dde6882
17:38 [Coke] anyone else creeped out by larry committing code instead of specs? ;)
17:38 PerlJam heh!  I was jsut commenting to my wife about that last night ;)
17:39 DarkWolf84 I found it
17:39 dalek rakudo/nom: e8a0326 | larry++ | src/core/metaops.pm:
17:39 dalek rakudo/nom: speed up Xop by more than 2x
17:39 dalek rakudo/nom:
17:39 dalek rakudo/nom: 'X,' is now only slightly slower than 'X'
17:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e8a03263fc
17:39 masak [Coke]: I think it's awesome!
17:40 [Coke] masak: Oh, I agree.
17:40 DarkWolf84 It doesn't work when non english characters are used
17:40 masak DarkWolf84: oh!
17:40 masak DarkWolf84: trying again.
17:40 vendethiel masak++ # thanks
17:40 * TimToady is only good for programming when he's sick :)
17:40 DarkWolf84 It works with askii symbols only
17:41 masak DarkWolf84: no, I tried with Swedish and Chinese characters. both work here.
17:41 TimToady well, actually, it speeds up forest by more than 2x, so the actual speedup is much more than that
17:41 masak DarkWolf84: again, I'm on Moar. YMMV on other VMs.
17:42 DarkWolf84 I'm using moar on 64 bit linux
17:42 masak me too.
17:42 DarkWolf84 with cyrillic it fails
17:42 * masak tries with cyrillic
17:43 DarkWolf84 my native language use cyrillic alphabet
17:43 masak DarkWolf84: still works here.
17:43 DarkWolf84 ok
17:43 masak how old is your rakudo build?
17:43 [Sno] joined #perl6
17:44 DarkWolf84 I pulled the git repository 3,4 minutes ago
17:45 rurban joined #perl6
17:46 masak can someone else confirm DarkWolf84's bug report?
17:46 masak prompt, cyrillic, backspace
17:46 DarkWolf84 I'll try to build it again from fresh clone
17:47 araujo joined #perl6
17:47 [Coke] masak: which backend?
17:48 DarkWolf84 moar
17:48 [Coke] ah, moar.
17:49 [Coke] шоркс чере.
17:49 DarkWolf84 :)
17:49 [Coke] er, works here.
17:49 DarkWolf84 sorry then
17:50 colomon [Coke]: I know what you mean about TimToady++ committing code.  Awesome and weird at the same time.
17:50 [Coke] TimToady++ # let's not scare him off. ;)
17:50 DarkWolf84 maybe my build is corupted somehow
17:50 moritz it's awesome to see that the list code has a bus number > 0 :-)
17:50 mtk joined #perl6
17:50 colomon +1
17:50 jnthn DarkWolf84: I dunno if it could be something to do with having some kind of locale, and your terminal feeding Moar something not UTF-8?
17:51 TimToady actually, I make X, about 4 times faster, and it's now within a facctor of two of X
17:51 jnthn TimToady++ # nice speedup :)
17:51 DarkWolf84 my terminal is all utf8
17:52 btyler DarkWolf84: latest Moar on OSX, tried with cyrillic, backspace was ok
17:52 [Coke] (osx here also)
17:52 DarkWolf84 I'll try in another terminal
17:53 DarkWolf84 maybe it's the terminology's problem
17:54 masak TimToady: what prevents us from compiling X, down to X -- making them equal in speed?
17:54 TimToady just a SMOP
17:55 masak oki
17:55 TimToady but I figure anyone who write 'X,' really means it :)
17:55 TimToady *writes
17:56 TimToady however, we should do the optimization anyway, just because someone might compose a crossop that way by accident
17:58 TimToady trying the stupid trick first
18:00 masak [Coke]: you have no idea how much 'шоркс чере.' screwed with my head. apparently I know just enough Cyrillic/Russian to be a danger to myself. :P
18:00 [Coke] masak: :)
18:00 masak as it clicked, it was very funny, of course. like a joke one gets.
18:01 masak but for a few seconds, it was terribly head-scratching.
18:01 jnthn Unpexpected Cyrillic шоркс me too :P
18:01 dalek rakudo/nom: 1ec91c7 | larry++ | src/core/metaops.pm:
18:01 dalek rakudo/nom: optimize 'X,' to 'X'
18:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1ec91c7ba7
18:01 TimToady the stupid trick worked :)
18:01 masak TimToady++
18:02 TimToady HOP in action
18:02 masak that's my best sort of stupid trick!
18:03 btyler_ joined #perl6
18:05 treehug88 joined #perl6
18:09 klapperl_ joined #perl6
18:11 DarkWolf84 terminology (e18's terminal) is corrupting the data
18:11 DarkWolf84 rakudo-m works
18:14 hoverboard joined #perl6
18:22 Adriaaan joined #perl6
18:24 thou joined #perl6
18:24 vendethiel TimToady: what's X, ?
18:41 tgt joined #perl6
18:43 TimToady the X metaoperator applied to infix:<,>
18:43 TimToady has identical semantics to the ordinary X operator
18:49 timotimo and what is X11?
18:50 pmichaud joined #perl6
18:51 timotimo seems like i've got quite a bit of backlog to catch up with
18:54 kivutar joined #perl6
18:55 timotimo ooh
18:56 timotimo the cool thing about 1ec91c7ba7, which is the one TimToady++ just committed, is that you can override &infix:<,> locally and it won't stumble!
18:56 timotimo TimToady: i'm very glad you could speed Xop up again :)
18:59 scottp joined #perl6
19:07 masak DarkWolf84: oh, that's a relief. thank you for confirming it's on your end.
19:08 timotimo DarkWolf84: terminology is so pretty, though! :(
19:10 Rotwang joined #perl6
19:12 [Coke] wow, haven't seen gittip mentioned here since 2013 for parrot here. Some perl5 folks are trying to increase the perl group's presence there. if you might ever want to get tipped or give tips, consider registering at gittip.com
19:12 [Coke] there is also a perl6 group, but that's muuuch smaller. ;)
19:18 FROGGS_ can somebody upload the nqp-2014.02 tarball to http://rakudo.org/downloads/nqp/ ?
19:23 btyler_ [Coke]: do you have a repo going for the mojo6 idea yet?
19:23 trump left #perl6
19:23 [Coke] github/coke/mojo6 - it's a shell until this weekend.
19:23 [Coke] just wanted to make sure I had something to get back to.
19:25 FROGGS_ yay, I finally have some time for Perl 6 this evening
19:27 nwc10 Right now, on https://www.gittip.com/for/ Perl has 442 members and jQuery has 441
19:27 nwc10 so Perl is just in 8th place
19:27 FROGGS rong, Perl has 443 now :o)
19:28 Sqirrel joined #perl6
19:28 nwc10 oh yes
19:38 fhelmberger_ joined #perl6
19:38 lizmat_ joined #perl6
19:40 denis_boyun__ joined #perl6
19:40 Adriaaaan joined #perl6
19:40 Rotwang1 joined #perl6
19:41 Gothmog__ joined #perl6
19:41 _thou joined #perl6
19:42 dwolf_ joined #perl6
19:44 berekuk joined #perl6
19:44 __rnddim__ joined #perl6
19:48 ggoebel joined #perl6
19:48 synopsebot joined #perl6
19:52 klapperl joined #perl6
19:53 Vlavv joined #perl6
19:53 yakudza joined #perl6
19:57 bjz_ joined #perl6
19:58 dmol joined #perl6
19:58 _sri joined #perl6
19:58 Guest23735 joined #perl6
19:58 mcglk joined #perl6
20:00 lue joined #perl6
20:01 daniel-s__ joined #perl6
20:01 kshannon joined #perl6
20:01 japhb joined #perl6
20:01 rindolf joined #perl6
20:01 timotimo FROGGS: \o/
20:01 xragnar joined #perl6
20:01 FROGGS yeah :o)
20:02 timotimo s11 tonight?
20:03 timotimo today is sauna evening for little timo :3
20:03 masak sauna evening! \o/
20:04 vendethiel joined #perl6
20:05 araujo joined #perl6
20:05 mcglk joined #perl6
20:05 dmol joined #perl6
20:05 _sri joined #perl6
20:05 vendethiel r: (1, 2) X, (3, 4)
20:05 vendethiel r: say (1, 2) X, (3, 4)
20:05 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: ( no output )
20:05 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«1 3 1 4 2 3 2 4␤»
20:05 salv0 joined #perl6
20:06 vendethiel r: say ((1, 2) X, (3, 4)).perl
20:06 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«((1, 3), (1, 4), (2, 3), (2, 4)).list␤»
20:06 hoverboard joined #perl6
20:06 vendethiel r: (1, 2) Z, (3, 4) ==> .perl ==> say
20:06 hoverboard joined #perl6
20:06 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Sorry, do not know how to handle this case of a feed operator yet.�at /tmp/tmpfile:1�------> [32m(1, 2) Z, (3, 4) ==> .perl ==> say[33m�[3…»
20:07 PerlJam vendethiel: ==> doesn't give you a free map.
20:08 timotimo you and your feeds :)
20:08 timotimo hm. would ==> **.perl ==> be sensible?
20:08 timotimo i know ** is NYI and a only very lightly specced ...
20:08 [particle] joined #perl6
20:10 timotimo yay or nay for a spreadsheet module that can handle odf spreadsheets and xls + xlsx?
20:10 FROGGS timotimo: S11, yes
20:10 gfldex_ joined #perl6
20:10 timotimo looking forward to it :)
20:10 xragnar_ joined #perl6
20:11 dwolf__ joined #perl6
20:12 stevan__ joined #perl6
20:13 japhb__ joined #perl6
20:13 salv01 joined #perl6
20:13 colomon_ joined #perl6
20:17 kshannon_ joined #perl6
20:19 vendethiel joined #perl6
20:19 vendethiel r: say ((1, 2) Z, (3, 4)).perl
20:19 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«((1, 3), (2, 4)).list␤»
20:20 vendethiel sorry freenode, this is your lose
20:22 [Coke] timotimo: I do xlsx manipulation for work, but end up doing it in raw xml because reasons.
20:22 kurahaupo_mobile joined #perl6
20:22 [Coke] having a perl6 module that worked for my needs and ran on the JVM would be nifty.
20:22 Mouq joined #perl6
20:22 [Coke] (my needs are bonkers)
20:26 tgt joined #perl6
20:32 LLamaRider joined #perl6
20:35 * grondilu thinks of all the cool rewriting of RC entries once concurrency is available on MoarVM
20:36 denisboyun joined #perl6
20:36 * grondilu is looking at http://rosettacode.org/wiki/Mandelbrot_set#Perl_6 for instance
20:36 * TimToady thinks of all the matrix ops that will look prettier after we have shapes
20:36 * masak <3 S09
20:36 masak grondilu: better keep the originals too, thought :)
20:36 masak show things from two angles.
20:36 TimToady as I'm rewriting *map, I'm thinking, gee, we'll need to clone the shape here...
20:37 kaare_ joined #perl6
20:40 rjbs shapes?
20:40 [Coke] rewriting map?
20:40 [Coke] rjbs: multi-d arrays, I think?
20:41 silug___ joined #perl6
20:42 Alina-malina joined #perl6
20:46 PerlJam [Coke]: well, not just that ... being able to say:  my int @stuff[42]; # is quite useful
20:46 PerlJam I tend to think of "shape" as "sized dimensions" and "user-defined indexing"
20:47 [Coke] are you suggested we can type individual cells of containers?
20:47 [Coke] *suggesting
20:47 [Coke] (as opposed to typing -all- the cells)
20:47 PerlJam Um ... no.   :)
20:48 PerlJam (though being able to type along a single dimension would be interesting :)
20:48 PerlJam I was just saying that "shape" isn't only about multi-dimensionality
20:50 PerlJam (and that I also tend to think of user-defined indexes when I think of "shape".  e.g., see S09:483
20:50 synopsebot Link: http://perlcabal.org/syn/S09.html#line_483
20:52 [Coke] I don't understand what your "int" there means, then.
20:52 [Coke] it looks like you're saying that element 43 of @stuff must be an int.
20:53 TimToady in a declaration, [42] defines the size of that dimension (only one dimension in this case)
20:54 benabik joined #perl6
20:54 TimToady my Num @matrix[3;3];
20:55 [Coke] whoops.
20:55 [Coke] TimToady++ PerlJam++
20:59 dalek doc: 27231d7 | moritz++ | lib/regexes.pod:
20:59 dalek doc: [regexes] start to talk about quantifiers
20:59 dalek doc: review: https://github.com/perl6/doc/commit/27231d7cca
21:01 FROGGS Type check failed in assignment to '$!cver'; expected 'Str' but got 'Str' >.<
21:01 Mouq n: my $r = rx/a**{say "called"}/; "aaaa" ~~ $r; "aa" ~~ $r
21:01 camelia niecza v24-109-g48a8de3: OUTPUT«called␤called␤»
21:01 masak FROGGS: yeah, I really don't like those errors.
21:02 jnthn They almost always mean a screw-up involving containers.
21:02 Mouq Has anyone who knows what they're doing look at/fix the S05-capture/caps.t failures?
21:02 * Mouq needs to backlog
21:03 FROGGS jnthn: I am doing something like that:
21:03 FROGGS class CompUnitRepo::Local::Installation {
21:03 FROGGS has Str $!cver = nqp::atkey(nqp::gethllsym('perl6', '$COMPILER_CONFIG'), 'version');
21:03 * moritz doesn't know what he's doing, so doesn't qualifiy
21:03 moritz also, tonight my brain is mushrooms all the way down
21:04 FROGGS moritz: mine is fine today, finally :o)
21:04 jnthn FROGGS: Oh...haha
21:04 jnthn FROGGS: I guess that isn't a Perl 6 string, but an NQP one
21:04 jnthn FROGGS: Wrap it in an nqp::hllize
21:05 FROGGS jnthn: I almost wanted to ask for hllize :o)
21:05 jnthn FROGGS: I bet it assigns it without checking, then somewhre in the error reporting it does the HLL conversion :)
21:05 FROGGS jnthn: yes, and it was a nice error, complaining about parameter $expected :P
21:06 jnthn How...expected
21:11 * masak .oO( this takes me completely by anticipation! )
21:11 FROGGS cool, rakudo/eleven seems to build for jvm again
21:11 Mouq FROGGS++
21:12 FROGGS when it builds for parrot I'll go ahead and merge
21:12 FROGGS :P
21:12 FROGGS MUHAAHAHAAHA
21:12 timotimo what, merge it into nom?
21:12 FROGGS just a joke
21:12 timotimo aaw
21:12 FROGGS to see who is still awake *g*
21:13 timotimo you woke everybody up by MUHAHAHAHAing into the channel
21:14 Mouq r: say [1,2,3]>>.succ
21:14 camelia rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«2 3 4␤»
21:14 TimToady how does one trap exceptoins in nqp?
21:16 * Mouq thinks its still CATCH
21:17 timotimo there is catch, aye
21:17 timotimo but be careful
21:17 timotimo throwing inside a catch will cause the very same catch to trigger again, unfortunately
21:17 TimToady well, maybe I can make try {} work at this point of the setting
21:18 timotimo so all over the code we have my $success := 1; try { ...; CATCH { ... } } if $success { ... }
21:18 jnthn timotimo: I don't think that's true any more, *or* at least I think it's not true of JVM and Moar...
21:18 timotimo oh!
21:18 salv0 joined #perl6
21:18 timotimo i like the sound of that :)
21:18 jnthn nqp: try { nqp::die('oops 1'); CATCH { nqp::die('oops 2') } }
21:18 segomos_ joined #perl6
21:19 camelia nqp-parrot: OUTPUT«(timeout)»
21:19 camelia ..nqp-jvm: ( no output )
21:19 camelia ..nqp-moarvm: OUTPUT«oops 2␤   at /tmp/tmpfile:1  (<ephemeral file>::8)␤ from <unknown>:1  (<ephemeral file>::23)␤ from <unknown>:1  (<ephemeral file>::4294967295)␤ from gen/moar/stage2/NQPHLL.nqp:1090  (/home/p6eval/rakudo-inst-1/langu​ages/nqp/lib/NQPHLL.moarvm::94)␤ from g…»
21:19 FROGGS hehe
21:19 FROGGS moar++
21:19 jnthn nqp-jvm: say('alive?')
21:20 camelia nqp-jvm: OUTPUT«alive?␤»
21:20 jnthn Hmm.
21:20 ggherdov_ joined #perl6
21:20 genehack joined #perl6
21:20 FROGGS nqp-jvm: nqp::die("rly?")
21:20 camelia nqp-jvm: OUTPUT«rly?␤  in  (/tmp/5gF6hBKteP:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1099)␤  in eval (gen/jvm/stage2/NQPHLL.nqp:1085)␤  in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1291)␤  in command_eval (gen/jvm/stage2/NQPHLL.nqp:1195)␤  in command_line (gen/jvm/stage2/NQPHLL.nq…»
21:21 grondilu joined #perl6
21:22 timotimo why do we ++ moar if it dies on moar, but not on jvm?
21:22 TimToady > ./perl6 -e 'say ([[1,2,3],[4,5,6],[7,8,9]].duckmap(*.succ)).perl'
21:22 TimToady ((2, 3, 4), (5, 6, 7), (8, 9, 10))
21:22 TimToady \o/
21:22 timotimo the second die is inside a try
21:23 lizmat joined #perl6
21:23 timotimo TimToady: the [ turned to ( !
21:23 jnthn timotimo: Yes, and you're inside teh CATCH at that point.
21:24 bjz joined #perl6
21:24 timotimo jnthn: for a moment i forgot that the CATCH belongs *inside* the try
21:24 nebuchad` joined #perl6
21:24 dalek rakudo/nom: bfec6cd | larry++ | src/core/ (2 files):
21:24 dalek rakudo/nom: add duckmap, more nodality infrastructure
21:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bfec6cdb5b
21:24 erkan joined #perl6
21:24 erkan joined #perl6
21:24 ggoebel1118 joined #perl6
21:24 TimToady yes, the deep mappers do not preserve type correctly yet
21:25 TimToady but it's a start
21:25 timotimo mhm
21:25 timotimo yeah, good start i'd say
21:25 denis_boyun_ joined #perl6
21:26 TimToady at the moment, prefixes just default to deep, and postfixes to flat (those that work)
21:26 TimToady haven't really got the subscripts working yet
21:27 xinming_ joined #perl6
21:32 colomon_ joined #perl6
21:33 mathw joined #perl6
21:34 timotimo the subscripts are trés interesting
21:35 SubTerra joined #perl6
21:35 vendethiel joined #perl6
21:36 dalek doc: 6d5efce | moritz++ | lib/regexes.pod:
21:36 dalek doc: [regexes] general quantifier
21:36 dalek doc: review: https://github.com/perl6/doc/commit/6d5efcea3b
21:48 timotimo [Coke]: can you tell me a bit about what kinds of transformations you'd rather do in xml rather than in excel or csv?
21:48 TimToady yeah, the args to METAOP_HYPER_POSTFIX come in as \obj, \subscript, \op
21:48 TimToady which I wouldn't have expected
21:49 TimToady I'd've expected op to stay at position 2
21:49 TimToady > ./perl6 -e 'say ([[1,2,3],[4,5,6],[7,8,9]]»[1]).perl'
21:49 TimToady (2, 5, 8)
21:49 TimToady \o/
21:49 timotimo mister wall
21:49 timotimo you are doing good work
21:50 timotimo #perl6 is hiring, btw
21:50 TimToady course it blows up on any kind of slice... :/
21:50 TimToady still
21:50 [Coke] timotimo: I mean I am generating raw xml to create xlsx files.
21:50 timotimo bah. for a programmer of your caliber, it'll be but a slice of cake!
21:50 [Coke] slice of coke?
21:50 timotimo [Coke]: oh, what kind of program reads xml files and turns them into xlsx?
21:50 timotimo [Coke]: nah, coke usually comes in bottles, glasses or lines
21:51 [Coke] timotimo: xlsx -is- xml.
21:51 dalek rakudo/nom: da53ec1 | larry++ | src/core/metaops.pm:
21:51 dalek rakudo/nom: handle hyper subscripts (1 arg only so far)
21:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da53ec1a5d
21:51 timotimo (quick! somebody write *snort* to make the joke complete!)
21:51 [Coke] (well, a zip file containing lots of xml)
21:51 TimToady *fnort*
21:51 [Coke] *eyeroll*
21:51 timotimo ah. i thought you had a simpler representation of tables
21:51 timotimo so ... is that format actually handleable?
21:51 timotimo i heard docx and friends are terrible abominations
21:52 [Coke] timotimo: it's pretty easy to handle if you use a library. which we can't. :)
21:52 [Coke] however, to do what we need, it's doable in a few hundred lines of java.
21:52 timotimo well, i'm asking from the vantage point of a library implementor, so ...
21:52 [Coke] "given an .xlsx template with some markers, replace those markers with the result of a SQL query".
21:52 timotimo do you need a hundred lines of java to write "hello" in one cell and "world" in the cell next to that?
21:52 timotimo oh, that kind
21:52 timotimo Okay.jpg
21:52 [Coke] if we used a real library, we'd open the doc, delete those cells, and then insert lots more.
21:53 [Coke] but since that would kill our memory for queries that are enormous but still representable in xlsx, we cheat.
21:53 timotimo yikes.
21:54 timotimo so a kind of "streaming API" would be a great thing, too.
21:54 [Coke] Yes. except the one thing that does a streaming API today only works with new documents, not mods to existing ones.
21:54 timotimo (especially given how memory hungry rakudo is, even on moarvm)
21:54 [Coke] yah, we're already fighting memory as it is. (streaming everything out to disk as soon as possible, etc.)
21:55 timotimo ah. not a perl6 niche, then.
21:55 [Coke] not yet, but damn would the code look nicer.
21:55 timotimo what does such an xlsx xml file look like anyway? does it resemble a soup of cells with coordinates and contents?
21:55 [Coke] I'm already stuck working inside a j2ee container, how much worse can rakudo be on top of that. ;)
21:56 timotimo or is it more like a register machine that gets translated into x86 assembler by Excel to generate memory that fits the internal data structures perfectly?
21:56 [Coke] do you have an .xlsx or .xlsm file? rename to .zip and poke around.
21:56 timotimo i might actually have one.
21:56 [Coke] it's a giant <row><c>value</c></row><row>....
21:56 timotimo really?
21:56 timotimo how do they make it sparse?
21:57 [Coke] where value might be a lookup into some other xml, yes.
21:57 [Coke] only report rows, cells, and distinct values.
21:57 [Coke] er, *extant* rows, cells,
21:57 timotimo okay, so there's something like <emptyRows count="100">
21:58 timotimo or is it more like <row number="A"><col number="10">...</col></row>?
21:58 [Coke] one sec.
21:59 timotimo and how punishing is excel's parser? does it explode if you have a whitespace before a >, for example?
21:59 timotimo does it barf if you have a <tag />?
21:59 [Coke] <row r="1"><c r="A1" t="n"><v>1.0</v>
21:59 timotimo oh
21:59 timotimo well, that's surprisingly pleasant.
21:59 timotimo but the whole stuff around it would be less pleasant, aye?
22:00 [Coke] it's forgiving on input, but if you open and save it tends to reformat (and compact orphaned things) (which makes cheating easier)
22:00 timotimo and formatting rules and pivot tables and fixed header sections and ...
22:00 [Coke] right. the stuff around we try to touch as little as possible. ;)
22:00 timotimo :(
22:00 timotimo i should probably have a look at the python library that does excel worksheets and seems to give a decent interface
22:00 [Coke] timotimo: our trick is we let you edit that in excel and only insert cells. we just have to deal with places that refer to ranges and fix them up as appropriate.
22:00 timotimo how are formulas represented? are they actually an xml tree of the operators and nodes?
22:00 [Coke] timotimo: the perl one is pretty good.
22:01 timotimo i can't read perl.
22:01 [Coke] no, I think it's just a string.
22:01 dalek Heuristic branch merge: pushed 22 commits to rakudo/eleven by FROGGS
22:01 [Coke] timotimo: you are in an odd channel.
22:01 timotimo i can only stand perl6 :)
22:01 timotimo also: are excel formulas localized in any other countries than germany?
22:01 [Coke] timotimo: but if you create an .xlsx and put in strings, numbers, formulas, and formatting, you can suss out the basics pretty quick.
22:02 timotimo ah, libreoffice should be able to write that format, too
22:02 TimToady running a full spectest while I nap &
22:02 timotimo good nqp, TimToady
22:04 LLamaRider I am itching to try my P6 module on MoarVM, do we have a panda that speaks that backend? :)
22:04 timotimo perl6-m bootstrap.pl it and see :)
22:04 timotimo (there's a moar-support branch i believe)
22:05 FROGGS perhaps use the moar-support branch of panda
22:05 timotimo http://wwwhome.ewi.utwente.n​l/~trieschn/excel/excel.html - this weirds me out a little bit
22:05 timotimo AUFGELZINSF
22:05 LLamaRider perl6-m ! *secret knowledge unlocked*
22:05 LLamaRider getting a weird error though - "Cannot call 'postcircumfix:<{ }>'; none of these signatures match:"
22:06 timotimo also, "you can also download it as an excel file"
22:06 timotimo which is a bit funny, but definitely helpful
22:07 FROGGS LLamaRider: I've seen that one... maybe this was fixed in the moar-support branch, I can't remember
22:08 LLamaRider I think I will wait for the official merge to master :) Thanks though
22:08 virtualsue joined #perl6
22:08 FROGGS tadzik: ping
22:08 timotimo FROGGS: will moar-support in panda land before eleven? the race is on! :)
22:08 FROGGS tadzik: let's merge panda/moar-support into master! :P
22:09 FROGGS timotimo: ohh yes, moar-support there does not any harm I think
22:10 timotimo glad to hear that :)
22:10 FROGGS https://github.com/tadzik/​panda/compare/moar-support
22:10 FROGGS just a few tweaks
22:12 timotimo comptarget and compsuffix really ought to be cached for performancoe!
22:13 FROGGS tadzik: there, I PR'd you! https://github.com/tadzik/panda/pull/70
22:14 FROGGS timotimo: ohh, I thought our optimomizer does that automagially :o)
22:15 timotimo :D
22:15 timotimo it *could* in theory
22:15 timotimo but i don't think we have "dead code elimination" of any sort yet
22:15 timotimo not even evaluating ifs with compile-time-constant conditions into their result (or even just their inner block)
22:17 timotimo hm. how to pretty-print xml easily?
22:17 _thou joined #perl6
22:18 BenGoldberg joined #perl6
22:21 FROGGS timotimo: https://gist.github.com/FR​OGGS/6a75572af1ce8f66d8c0
22:21 timotimo huh? that's not perl6!
22:21 FROGGS :o)
22:22 FROGGS I use something like that to pretty print soap stuff, that is why it aligns xml namespace declarations
22:22 kivutar joined #perl6
22:22 timotimo oh
22:24 timotimo hrm. i need to set up cpanm first
22:25 timotimo we totally need a single-line-installer for rakudo that begins with "curl"
22:29 [Coke] yes'm.
22:30 timotimo in what (and how many) places do i have to change something for my local perl5 modules to land in ~/.perl5 instead of ~/perl5?
22:31 FROGGS I dunno
22:31 timotimo there's apparently cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
22:31 timotimo hm. maybe that's exactly how.
22:31 hoelzro I used PERL_CPANM_OPT to append a -l option for cpanm to pick up
22:32 hoelzro and you can eval $(perl -Mlocal::lib=$HOME/.perl5) to set it up as well
22:35 timotimo can i has a fish-compatible local::lib? :)
22:37 timotimo FROGGS: what will "per-project local installations of packages from panda" look like btw?
22:37 dalek rakudo/eleven: 84e2b32 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm:
22:37 dalek rakudo/eleven: let CompUnitRepo stringify to absolute path
22:37 dalek rakudo/eleven: review: https://github.com/rakudo/rakudo/commit/84e2b3209f
22:37 timotimo is there a concrete plan or mockup yet?
22:38 FROGGS you can register your own repository just like you would do -Isomething
22:39 FROGGS -ICompUnitRepo::Local::Inst​allation=path/to/somewhere would work, and PERL6LIB=... also
22:39 timotimo that's pretty wordy
22:40 FROGGS use lib ... should support this too, but I've not tested it yet
22:40 timotimo that's not as useful for "develop my stuff in isolation", though
22:40 FROGGS well, you don't have to specify which repository type you want... you would get the default then (the current)
22:41 timotimo of course
22:41 FROGGS timotimo: but somehow you have to tell it about that other repository for you in-dev stuff, no?
22:42 FROGGS btw, you can also just put something in %*CUSTOM_LIB
22:42 FROGGS (at begin time, perhaps)
22:43 timotimo well, PERL6LIB= seems pretty reasonable
22:43 timotimo and a tool to make setting up and "entering" that environment a la "virtualenv" would be nice, too.
22:45 timotimo jnthn: should i make sure that every collection also resets the "how much string buffer memory have we been exhausting since the last time we reset this counter?"?
22:45 jnthn timotimo: ja
22:45 timotimo danke
22:46 * timotimo is glad to see that tmux will allow independent scrolling in different splits
22:46 * timotimo would like to have a "scrollbind" next
22:46 nwc10 is that like http://xkcd.com/363/ ? :-)
22:46 timotimo a little bit, ja
22:46 FROGGS hehe
22:50 pippo joined #perl6
22:52 timotimo i'll test my string pressure changes on the moar-conch branches and then perhaps merge. then i'll go to bed
22:53 timotimo conc*
22:57 dmol joined #perl6
23:01 virtualsue joined #perl6
23:12 * timotimo had to un-#jvm the concurrency tests first >_>
23:16 timotimo sadly, my branch seems to cause a big crash
23:17 timotimo (double free)
23:17 * timotimo goes to sleep, as promised :P
23:24 masak 'night, #perl6
23:29 tgt joined #perl6
23:30 skids joined #perl6
23:41 xenoterracide joined #perl6
23:45 grondilu Stephen Wolfram's Introduction to the Wolfram Language:  http://www.youtube.com/watch?v=_P9HqHVPeik
23:45 grondilu ^ kind of impressive
23:47 kivutar joined #perl6
23:50 grondilu or just plainly impressive, to be honnest
23:57 Alina-malina joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs