»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:04
Guest23735 joined
00:05
erkan left
00:08
virtualsue left
00:11
pippo left
|
|||
[Coke] | daily runs dead until further notice. | 00:13 | |
lue | [Coke]: aw, why? | 00:17 | |
00:18
BenGoldberg joined
|
|||
[Coke] | diakopter shut them down, trying to get setup on a different machine. | 00:22 | |
00:24
erkan joined
|
|||
[Coke] | stuck until moritz comes back online to set me up | 00:24 | |
00:25
Guest23735 left
|
|||
clsn | And now, rants about Unicode. | 00:27 | |
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. | |||
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:29 | ||
lue | clsn: www.unicode.org/Public/UCD/latest/u...roring.txt | 00:30 | |
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:31 | |
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" | ||
clsn | Then shouldn't everything be closed by )? | 00:33 | |
"For any given Ps character, the next Pe codepoint (in numerical order) is assumed to be its matching character" | |||
It doesn't specifically say about Pi/Pf, but it seems to treat them the same. | |||
lue | clsn: for bidi brackets, see if the Bidi_Mirroring_Glyph and/or the Bidi_Paired_Bracket properties help out | 00:34 | |
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? | ||
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. | ||
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? | ||
[Coke] | clsn: bunch of scripts to scrape information out of unicode so it's available to moar. | 00:37 | |
00:38
laidback_01 joined
|
|||
clsn | Look at search.cpan.org/~rjbs/perl-5.18.2/l...de/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 | |
[Coke] Yeah, the information is certainly online; just that things like unicode data libraries seem to miss out supplying the bidi mirroring glyph information. | |||
[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. | ||
Ah, OK; I haven't looked at what moar does. | |||
(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.) | |||
So anyway, bidi mirroring glyphs and apostrophes as exceptions to the spec: the latter, at least, probably needs to be spelled out. | 00:40 | ||
00:41
tgt joined
|
|||
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. | ||
clsn | (yeah, bidi isn't exception, just a whine) | ||
00:41
colomon left
00:42
trump joined
|
|||
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 | |
I can't seem to find that anywhere, and I'd rather not rewrite it. | |||
clsn | Python3 has done a nice job of carefully spelling out what its identifiers look like in Unicode, *including* combining characters and everything. docs.python.org/3.1/reference/lexic...lysis.html section 2.3. It also normalizes identifiers in NFKC form, so á (precomposed) is the same as axCCx81 (letter plus accent) | ||
[Coke] | .ask masak if 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. | ||
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 / | ||
camelia | rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileNull regex not allowedat /tmp/tmpfile:1------> / abc | ⏏| def / expecting any of: statement list prefix or term…» | |||
[Coke] | m: $_ = 'foo'; s:g/ /a/; say 'alive' | 00:46 | |
camelia | rakudo-moar 974d00: OUTPUT«===SORRY!=== Error while compiling /tmp/LZQwMHpP5hNull regex not allowedat /tmp/LZQwMHpP5h:1------> $_ = 'foo'; s:g/ ⏏/a/; say 'alive' expecting any of: colon pair (restricted)» | ||
00:46
tgt left
|
|||
clsn | Rakudo, at least, still has all kinds of issues. $á is a valid identifier, but $axCCx81 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 | |
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. | |||
[Coke] | m: my $á = 3; | 00:48 | |
camelia | ( no output ) | ||
[Coke] | I cut and pasted your second variable there. | ||
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. | ||
Yeah, didn't work for me on local rakudo-moar. | |||
lue | m: my $axCCx88 = 42; | ||
camelia | rakudo-moar 974d00: OUTPUT«===SORRY!=== Error while compiling /tmp/kAgi_XkFyjTwo terms in a rowat /tmp/kAgi_XkFyj:1------> my $a⏏[31m̈ = 42; expecting any of: scoped declarator constraint postfix …» | ||
00:50
spider-mario left
|
|||
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. | ||
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. | ||
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 rt.perl.org/Ticket/Display.html?id=83280 | ||
yoleaux | [Coke]: I'll pass your message to timtoady. | ||
lue | As it's written in S15 so far, regexes would do matching in NFG form by default. | ||
clsn | Things like using ⁇ and ‼ and ∷ for ?? and !! and ::. Maybe … for ..., even ⏨ for the "e" in floating-point numbers... | 00:53 | |
lue | p: say "⏨".ord.base(16) | 00:54 | |
camelia | rakudo-parrot 974d00: OUTPUT«23E8» | ||
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
|
|||
lue | well, it implies the text being matched against is transformed to NFG within the regex engine :) | 00:54 | |
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; | ||
camelia | std 09dda5b: OUTPUT«ok 00:01 125m» | ||
[Coke] | m: my @a = 1, 2, 3, given 42; | ||
camelia | rakudo-moar 974d00: OUTPUT«===SORRY!=== Error while compiling /tmp/HEBAcRoKPyUndeclared routine: given used at line 1» | ||
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... | ||
lue: U+23E8 is "DECIMAL EXPONENT SYMBOL". Basically looks like a subscript "10", so the exponent is raising it to a power. | 00:56 | ||
00:56
_thou left
|
|||
lue | ah, I mistyped the codepoint number in the search thingy :P | 00:56 | |
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. | ||
[Coke] | .u turned | ||
yoleaux | U+018D LATIN SMALL LETTER TURNED DELTA [Ll] (ƍ) | ||
U+018E LATIN CAPITAL LETTER REVERSED E [Lu] (Ǝ) | |||
U+019C LATIN CAPITAL LETTER TURNED M [Lu] (Ɯ) | |||
[Coke] | .u turned dagger | ||
yoleaux | U+2E38 TURNED DAGGER [Po] (⸸) | ||
clsn | Ah there. 2E38. Yeah, the file I grep from is old. | 00:58 | |
00:58
benabik left
|
|||
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:58 | |
00:59
tgt left
|
|||
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 :) | 00:59 | |
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:00 | |
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. | ||
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. | ||
Well, depends on the math symbols. | |||
[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:03 | |
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. | ||
lue | If someone went through the trouble to type 𝕬, then chances are they *didn't* mean A :) | ||
clsn | lue: fair point. | ||
[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.» | ||
..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«ok 1 - assignment to scalar via array item from array itemok 2 - assignment to array item from array item to scalar» | |||
01:05
colomon joined
|
|||
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 :) | ||
[Coke] | ^^ that is failing as RT#80614 in t/spec/S03-operators/assign.t | 01:06 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=80614 | ||
01:06
bjz left
|
|||
clsn | See github.com/clsn/pretty-mode.el/blo...ty-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:07 | |
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:08 | |
01:08
xinming_ left
01:09
xinming joined
|
|||
Juerd | trump: Yes but it doesn't work very well. | 01:09 | |
01:09
rurban joined
|
|||
[Coke] | rakudo: $_ = "aaaa"; .++.say while 1 | 01:11 | |
camelia | rakudo-parrot 974d00: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabi…» | ||
..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-moar 974d00: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabiaa…» | |||
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 :) | ||
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 | |
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." | |||
lue | :) | 01:13 | |
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. | ||
It looks like I changed my mind in my local version and am using ≅ for ~=. | |||
lue | ($*UNICODE/$?UNICODE would tell you what Unicode version Perl 6 is using, to be clear) | ||
[Coke] | m: enum E <a b c>; say c.succ | 01:16 | |
camelia | rakudo-moar 974d00: OUTPUT«3» | ||
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. | ||
lue | I'd much rather trust the user to know what version of Unicode is best for their code :) | 01:17 | |
[Coke] | github.com/perl6/specs/commit/6b02...a1025499b6 -> RT #102276 - it would be great if someone could tease out tests from that dense spec chunk. | 01:19 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=102276 | ||
[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» | ||
[Coke] | m: rakudo: enum somenum <a b c d e>; my somenum $temp = d; say $temp.key; | ||
camelia | rakudo-moar 974d00: OUTPUT«d» | ||
[Coke] | m: given 42 { when SomeUndeclaredType { say "OH HAI" }; default { say "OH NOES" } } | 01:21 | |
camelia | rakudo-moar 974d00: OUTPUT«===SORRY!=== Error while compiling /tmp/ikyyU9kWp7Missing blockat /tmp/ikyyU9kWp7:1------> when SomeUndeclaredType { say "OH HAI" }⏏; default { say "OH NOES" } } expecting any of: postfix …» | ||
[Coke] | m: my $x = "lol"; say ($x ~~ s/o/0/).WHAT; | 01:23 | |
camelia | rakudo-moar 974d00: OUTPUT«(Bool)» | ||
dalek | ecs: b30fdaf | lue++ | S15-unicode.pod: [S15] Add $*UNICODE and Unicode version pragma. This allows the user to gain some stability in the cases where Unicode's stability policy isn't sufficient. |
01:25 | |
[Coke] | r: EVAL 'TestA::b(3, :foo)' | ||
camelia | rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..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…» | |||
..rakudo-moar 974d00: OUTPUT«===SORRY!===Could not find symbol '&b'» | |||
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:26 | |
01:28
benabik joined
|
|||
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:28 | |
01:29
bjz joined
|
|||
BenGoldberg | I was thinking more of: my $foo = 1; my $string_which_normalizes_to_foo = 2; # the second declaration should produce a warning | 01:30 | |
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 rt.perl.org/Ticket/Display.html?id=83280 | ||
lue | TimToady: NFKC you mean? I agree with that NF not happening :) | ||
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 | ||
BenGoldberg | Maybe :) | ||
[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? | ||
lue | TimToady: OK then, hadn't heard "NFKG" come up before is all. | ||
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. | ||
After all, code needs to be read by humans :) | |||
TimToady | if we coddle the users, they'll get stupid :) | ||
and the initial image will be 5 gigs or so | 01:34 | ||
01:34
Guest23735 joined
|
|||
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:34 | |
01:34
erkan left
|
|||
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. | ||
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.... | ||
How about we let the user specify, via pragma, which kind of normalization they want? | |||
lue | It all depends on how NFG transforms the sequences in the end — "my $axCCx88 ; my $ä" would be a redeclaration, but "my $s; my $ſ" wouldn't. | ||
skids | .u IMAGE OF | 01:37 | |
TimToady | to the first approximation, NFG is NFC | ||
clsn | That would be consistent with NFC or NFD too, so far. | ||
yoleaux | U+2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF [Sm] (≒) | ||
U+2253 IMAGE OF OR APPROXIMATELY EQUAL TO [Sm] (≓) | |||
U+228F SQUARE IMAGE OF [Sm] (⊏) | |||
clsn | OK. | ||
skids | hrm. | ||
dalek | ast: ca05eae | coke++ | S02-names-vars/names.t: eliminate a "nom regression" dies_ok doesn't leave a $! around for testing, and the error message includes the function name, but not the class. Eliminate unneeded EVAL |
||
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 | |||
BenGoldberg | :) | ||
skids | .u ORIGINAL OF | 01:39 | |
yoleaux | U+2290 SQUARE ORIGINAL OF [Sm] (⊐) | ||
U+2292 SQUARE ORIGINAL OF OR EQUAL TO [Sm] (⊒) | |||
U+22B6 ORIGINAL OF [Sm] (⊶) | |||
lue | clsn: NFG is NFC plus extra "fake" codepoints for graphemes without their own singular Unicode codepoint. | ||
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 :) | ||
[Coke] | TimToady: is this test cromulent? github.com/perl6/roast/blob/master...rray.t#L87 | ||
01:40
xinming left
|
|||
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) | ||
TimToady | *nap | ||
typing is hard too | 01:41 | ||
colomon | mapping is hard, too. | ||
01:41
xinming joined
|
|||
[Coke] | TimToady: no pressure. | 01:41 | |
TimToady | I'd think it'd be a parcel | 01:42 | |
[Coke] | TimToady++ | ||
lue | r: say 0x1_0000 * 11 + 0xFFFF_FFFF - 0x10_FFFF; | ||
camelia | rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«4294574080» | ||
..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
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 | ||
camelia | rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«(Parcel)» | |||
lue afk | |||
TimToady | Parcel is the normal way to return multiple values from a function | ||
and .[0] is really a function acting as a method | |||
dalek | ast: 41aae23 | coke++ | S02-types/multi_dimensional_array.t: Update to avoid "nom regression" irclog.perlgeek.de/perl6/2014-02-26#i_8346323 |
01:44 | |
skids | Isn't a "nom regression" what happens when you catch the norovirus? | 01:47 | |
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:48 | |
[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 | |
TimToady: Yikes. | |||
skids | Ouch. It didn't hit me quite THAT hard. Then it wasn't certain we actually had real noro around here. | ||
TimToady | well, we were at altitude, so oxygen was a bit short | ||
dalek | ast: 4c480e8 | coke++ | S03-operators/comparison.t: convert "nom regression" to RT |
01:50 | |
TimToady | but it was almost certainly noro in our case; about half of us got sick at roughtly the same time | ||
colomon | :( | ||
TimToady | and it was the sort of bug that you really start to wonder if you're gonna die | ||
[Coke] | m: my $a = Mu; say defined($a++); | 01:51 | |
camelia | rakudo-moar 974d00: OUTPUT«True» | ||
TimToady | (we were on our way back from graduating Aron from St Johns, and started coming down with it at the Grand Canyon) | ||
[Coke] | m: my $a = Mu; say defined($a++); say $a; | ||
camelia | rakudo-moar 974d00: OUTPUT«True1» | ||
[Coke] | m: my $a = Mu; say defined($a--); say $a; | ||
camelia | rakudo-moar 974d00: OUTPUT«True-1» | ||
[Coke] | ^^ there's a test that thinks that should be False. | ||
skids tends to wonder that daily just out of habit, so would not have noticed that. | |||
TimToady | I believe there's a spec that says it should be true | ||
lemme look | |||
S03:562 | 01:52 | ||
synopsebot | Link: perlcabal.org/syn/S03.html#line_562 | ||
[Coke] | ah, so the bug is that it's 1, not 0? | 01:53 | |
TimToady | no, postincr | ||
[Coke] | (honestly, having it be 0 seems weird to me, I'd expect 1 based on fiveish behavior) | ||
TimToady | it leaves the original as 0 | ||
[Coke] | "Hence a postincrement returns 0 the first time" | 01:54 | |
TimToady | without the defined it should say 0 1 or 0 -1 | ||
it does return 0 | |||
[Coke] | I did only do it once. | ||
TimToady | you're confusing preincr with postincr | ||
[Coke] | oh, my code isn't quite doing what I think it is. | ||
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.» | ||
..rakudo-parrot 974d00, rakudo-moar 974d00: OUTPUT«01» | |||
TimToady | that is specced behavior | ||
01:55
tgt joined
|
|||
[Coke] | returns 0 vs changing the value. Danke. | 01:55 | |
TimToady | yeah, postincr returns the *old* value | ||
dalek | ast: 0fd86f6 | coke++ | S03-operators/increment.t: "nom regression" is really spec'd behavior irclog.perlgeek.de/perl6/2014-02-26#i_8346386 |
01:58 | |
[Coke] | I wonder how many more of these regressions are now just spec updates. | ||
[Coke] heads out. TimToady++ for all the spec clearups. | |||
TimToady | btw, hypers aren't duckmap anymore | 01:59 | |
01:59
tgt left
|
|||
[Coke] | I just saw a 2 year old+ ticket about that... | 01:59 | |
TimToady | 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. :) | ||
TimToady | mind, hypers are still deepmap, and not supposed to be :) | ||
[Coke] | let me know if it can be closed. | ||
(or have masak open up a corrected ticket) | |||
TimToady | dunno, nice to at least have a placeholder | ||
[Coke] | really heading out. | ||
TimToady | o/ | ||
or I could just, like, fix hypers :) | 02:01 | ||
02:05
FROGGS_ joined
02:08
rurban left
02:09
FROGGS left
|
|||
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 | |
02:09
rurban joined
02:10
klapperl_ joined
02:12
klapperl left
|
|||
geekosaur | allocated when needed, presumably. it's not the sort of thing that has meaning outside the current perl6 instance | 02:13 | |
if your program creates a million of them (a) there's space (b) "doctor, it hurts when I do this" | 02:14 | ||
TimToady | we'll probably end up with a shared table plus a per-string table | 02:35 | |
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 | ||
even if a program is multi-script, the first ones in tend to be indicative of the common cases | |||
but a good initial first cut is just per-string, and safer from a DoS attack | 02:39 | ||
skids | How does a per-string NFG table help -- isn't the point for compare operations between strings to be efficient? | 02:46 | |
TimToady | a global table would allow you to compare negatives, yes, but is very difficult to GC | 02:52 | |
most chars will be positives, so that comparison is always a fastpath | 02:53 | ||
if either is negative, then we have to think a bit more | |||
02:53
stevan_ left,
stevan_ joined
02:54
skids left
|
|||
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:54 | |
02:55
alc joined
02:56
tgt joined,
hoverboard left
03:00
tgt left
03:04
rurban left
03:15
xinming left
03:22
hoverboard joined
|
|||
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.» | ||
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; | ||
camelia | rakudo-moar 974d00: OUTPUT«aaba» | ||
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; | ||
camelia | rakudo-moar 974d00: OUTPUT«aabb» | ||
japhb | Note the difference in output ^^ | 03:24 | |
Only difference in code is changing { bar => ... } to [ bar => ... ] | |||
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«aabb» | ||
japhb | Note that it's correct on parrot, but not on moar (and locally, broken also on jvm) | ||
03:26
Guest23735 left
03:27
erkan joined,
erkan left,
erkan joined
|
|||
japhb | This bug was causing "impossible" bleading between fresh objects in a loop. | 03:27 | |
*bleeding | |||
.tell jnthn This bug may be at a level that needs your eyes: irclog.perlgeek.de/perl6/2014-02-26#i_8346638 | 03:31 | ||
yoleaux | japhb: I'll pass your message to jnthn. | ||
03:45
ph1ur3_ joined
03:46
xinming joined
03:50
skids joined
03:51
ph1ur3_ is now known as ph1ur3
04:34
araujo left
04:35
xfix left
04:40
xfix joined
04:44
laidback_01 left,
laidback_01 joined
04:49
mavcunha left
04:59
tgt joined
05:04
tgt left
05:22
hoverboard left
|
|||
dalek | ast: 7daa89c | moritz++ | S03-operators/comparison.t: RT #121326: correct and unfudge tests |
05:43 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121326 | ||
05:44
ingy left,
ingy joined
|
|||
[Coke] | moritz++ | 05:45 | |
I have a makefile that rakudo generated that has "j-all" at the top, but no definition of it. | 05:46 | ||
05:49
darutoko joined
06:00
tgt joined
06:04
tgt left,
alc left
06:21
BenGoldberg left
06:22
[Sno] left
|
|||
moritz | [Coke]: did Configure.pl abort with an error? | 06:24 | |
masak | morning, #perl6 | 06:46 | |
yoleaux | 00:44Z <[Coke]> masak: if rt.perl.org/Ticket/Display.html?id=80694 is still a question that needs an answer. (if so, perhaps TimToady or jnthn has one?) | ||
grondilu notices that rosettacode.org/wiki/SHA-256#Perl_6 now works with MoarVM | 06:47 | ||
masak | [Coke]: I'd like to know, too. | 06:49 | |
06:57
SamuraiJack__ joined
07:01
tgt joined
07:03
SamuraiJack__ left
07:04
SamuraiJack__ joined
07:05
tgt left
07:09
kaleem joined
07:14
SamuraiJack__ left
07:16
SamuraiJack__ joined
|
|||
dalek | kudo/nom: 881f828 | larry++ | src/core/LoL.pm: ensure 1st arg to X is lazy |
07:26 | |
kudo/nom: a836ab7 | larry++ | src/core/ (2 files): add deepmap, make unary hypers shallow as specced |
|||
TimToady | note that this will kill a few wrong unary hyper tests till we change them to .deepmap | ||
07:27
pdcawley_ left
|
|||
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…» | ||
..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..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» | |||
..rakudo-parrot 974d00: OUTPUT«3795212420 3158342417 256165518 1657595798 1786761498 312951935 78079993 1942245667 645834118 4081510027 2310301881 1916196990 4244084058 2864670074 2128534466 3701688132347852200 3952915263 1159181934 3552185973 2361045754 3404705198 1276420302 26816…» | |||
07:27
_daniel-s__ left
|
|||
grondilu | « ===SORRY!===Element shifted from empty list » was very much unexpected here. | 07:28 | |
07:28
_daniel-s__ joined,
pdcawley joined
|
|||
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» | ||
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 7810 104 120 200» | ||
..rakudo-jvm 974d00: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-moar 974d00: OUTPUT«46 85 79 64===SORRY!===Element shifted from empty list» | |||
masak | m: for ^2 { my @b = 1 xx 64; say (@b.shift xx 4) xx @b/4 } | ||
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» | ||
masak | m: for ^2 { my @b = 1 xx 64; say (1 xx 4) xx @b/4 } | ||
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 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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
|
|||
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 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …» | ||
masak | m: for ^2 { my @b = 1 xx 64; say (@b.shift xx 4) xx @b/4 } | ||
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» | ||
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» | ||
masak | m: for ^2 { my @b = 1 xx 4; say (@b.shift xx 2) xx 2 } | ||
camelia | rakudo-moar 974d00: OUTPUT«1 1 1 1===SORRY!===Element shifted from empty list» | ||
07:31
[Sno] joined
|
|||
masak | that sort of highlights that something is wrong, don't it? | 07:31 | |
grondilu | inded | ||
deed* | |||
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» | ||
masak | huh! | ||
07:32
labster joined
|
|||
grondilu | it works in the first iteration, but not in the second. Go figure. | 07:32 | |
masak submits rakudobug | |||
grondilu: oh yes, that's it. | |||
m: for ^2 { my @b = 1 xx 4; say @b.shift xx 4 } | 07:33 | ||
camelia | rakudo-moar 974d00: OUTPUT«1 1 1 11 1 1 1» | ||
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«41 1 1 14===SORRY!===Element shifted from empty list» | ||
TimToady | m: for ^2 { my @b = 1 xx 4; say (@b.shift; @b.shift) xx 2 } | ||
camelia | rakudo-moar 974d00: OUTPUT«1 11 1» | ||
TimToady | m: for ^2 { my @b = 1 xx 4; say (@b.shift xx 2) for 1..2 } | ||
camelia | rakudo-moar 974d00: OUTPUT«1 11 1===SORRY!===Element shifted from empty list» | ||
07:35
dmol left
|
|||
TimToady | m: for ^2 { my @b = 1 xx 4; (say "X" xx 2) for 1..2 } | 07:35 | |
camelia | rakudo-moar 974d00: OUTPUT«X XX XX XX X» | ||
TimToady | that seems okay | 07:36 | |
masak | yes, it's only shifting that somehow gets an old @b or something. | 07:37 | |
this seems very much like a lexical bug to me. | |||
masak shudders | |||
grondilu | it's weird though, since as TimToady shown, @b is correctly 4 long at the beginning of the second iteration. | 07:39 | |
m: for ^2 { say my @b = 1 xx 4; (@b.shift xx 2) xx 2 } | |||
camelia | rakudo-moar 974d00: OUTPUT«1 1 1 11 1 1 1» | ||
grondilu | ?? | 07:40 | |
m: for ^2 { say my @b = 1 xx 4; say (@b.shift xx 2) xx 2 } | |||
camelia | rakudo-moar 974d00: OUTPUT«1 1 1 11 1 1 11 1 1 1===SORRY!===Element shifted from empty list» | ||
grondilu | oh, it's only when we say it that it gets wrong | ||
m: for ^2 { my @b = 1 xx 4; my @c = (@b.shift xx 2) xx 2; say @c } | |||
camelia | rakudo-moar 974d00: OUTPUT«1 1 1 1===SORRY!===Element shifted from empty list» | ||
grondilu | m: for ^2 { my @b = 1 xx 4; my @c = (@b.shift xx 2) xx 2; } | ||
camelia | rakudo-moar 974d00: OUTPUT«===SORRY!===Element shifted from empty list» | ||
grondilu | or affects it. | 07:41 | |
masak | interesting. | ||
my bet: something gets the wrong OUTER somewhere when two nested infix:<xx> are used like that. | 07:43 | ||
the wrong OUTER points back to the @b from the first iteration, and so tries to shift an empty array. | |||
07:44
SamuraiJack__ left
|
|||
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
|
|||
masak | no, not at all. | 07:44 | |
I'm saying something is OUTER'd wrong. | |||
dalek | ast: eb7b2df | larry++ | S03-metaops/hyper.t: change some unary hypers to deepmaps |
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
07:47
molaf joined
07:51
klapperl_ left
07:53
klapperl joined
|
|||
masak | [Coke]: no need to say "sorry" about rt.perl.org/rt3/Ticket/Display.html?id=77340 ! | 07:56 | |
[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. | 07:57 | ||
08:01
tgt joined
08:06
tgt left
08:08
zakharyas joined
|
|||
TimToady | crum broke X on <a b>, didn't notice the test blowup (too many Unicode blowups...) | 08:12 | |
I see what I did | 08:16 | ||
dalek | kudo/nom: d7da964 | larry++ | src/core/LoL.pm: fix botched laziness patch on X |
08:22 | |
08:22
berekuk left
|
|||
dalek | ast: fb9afbd | moritz++ | S32-exceptions/misc.t: Test for RT #82142 |
08:24 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=82142 | ||
08:25
PZt left
|
|||
moritz | I haven't used typed exceptions much in normal p6 code, but for testing they are just wonderful | 08:26 | |
08:29
SamuraiJack__ left
08:37
Shozan left,
SHODAN joined
08:39
salv0 joined
|
|||
masak | agreed. | 08:40 | |
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:41 | ||
08:54
kaare_ joined
|
|||
dalek | ast: 0a52ae3 | larry++ | S03-metaops/hyper.t: more unary hypers to deepmaps |
08:57 | |
kudo/nom: aa5c6bb | larry++ | src/core/metaops.pm: further detangling of deepmap from hyper |
09:00 | ||
masak | deepmap++ detangling++ | 09:03 | |
moritz | does that mean I can write @arry>>[0] again to get the first elements of each array ref? | ||
masak .oO( @arry Potter?? ) | 09:05 | ||
FROGGS_ | >.< | ||
09:07
klapperl_ joined
09:09
klapperl left
|
|||
TimToady | moritz: hopefully | 09:09 | |
timotimo | oh, hyperops are now always shallow? | ||
so no more "is nodal"? | |||
TimToady | we can still have is nodal, but it'll just pick between the hyper and the deepmap | 09:11 | |
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,
rindolf joined
09:23
virtualsue joined
09:24
fhelmberger joined
09:29
denisboyun joined
09:30
tgt joined,
PZt joined
|
|||
dalek | kudo/nom: 453e51a | larry++ | src/core/LoL.pm: better fix for lazy X |
09:31 | |
TimToady | zzz & | 09:32 | |
09:34
tgt left
|
|||
masak | good night TimToady++ | 09:36 | |
09:42
tgt joined,
dakkar joined
09:46
tgt left
09:55
SamuraiJack__ joined
|
|||
jnthn | o/ #perl6 | 09:59 | |
yoleaux | 03:31Z <japhb> jnthn: This bug may be at a level that needs your eyes: irclog.perlgeek.de/perl6/2014-02-26#i_8346638 | ||
moritz | \o * | 10:00 | |
jnthn | Probably, but it won't be getting them for another couple of days... :( | ||
masak | */ \* | 10:04 | |
10:20
xinming_ joined
10:23
xinming left
10:31
SamuraiJack__ left
10:32
_daniel-s__ left,
_daniel-s__ joined,
SamuraiJack__ joined
10:53
donaldh left
10:56
donaldh joined
10:59
denisboyun left
11:00
kivutar joined,
PZt left
11:03
kshannon_ left,
kshannon joined
11:13
kaleem left,
kaleem joined,
kaleem left
11:15
spider-mario left
11:16
kaleem joined
11:19
zakharyas left
11:20
xinming joined
11:24
xinming_ left
11:26
zakharyas joined
11:32
zakharyas left
11:35
zakharyas joined
11:41
mavcunha joined
11:44
zakharyas left
11:48
kivutar left
|
|||
timotimo is now bound to twiddling thumbs at $dayjob and could sneak in a perl6 tuit or two | 11:53 | ||
nnnnoooooo, i can't login to my desktop at home :o | 11:54 | ||
masak | they bind you at work? that's cruel. | ||
and to thumbs, no less. :P | |||
timotimo | hah :) | ||
11:54
denisboyun joined
|
|||
timotimo | phew, false alert | 11:54 | |
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 | ||
jnthn | .oO( NaN ) |
||
timotimo | jnthn: i'll spectest my flatten_fastpath and compare it against master-moarvm. should i merge if there are no new failures? | 11:56 | |
jnthn | timotimo: +1 | 11:57 | |
timotimo | yay | ||
jnthn: also, how do you feel about triggering a GC run if we get a null pointer back from malloc in MVM_string_flatten? | 11:59 | ||
jnthn | timotimo: Very bad. | 12:00 | |
timotimo: You can't just introduce GC runs in a function that hadn't used to make them. | |||
timotimo | the thought was that things that call MVM_string_flatten indirectly will already assume that there may be allocation | ||
jnthn | No, they don't | 12:01 | |
timotimo | ah | ||
jnthn | MVM_string_flatten doesn't allocate GC-able memory. | ||
timotimo | right | ||
if you have a better idea, shoot :) | |||
jnthn | "Fix ropes" | ||
"Implement escape analysis" | |||
:P | |||
12:01
Ven joined
|
|||
timotimo | hah | 12:01 | |
i was thinking more short term ;) | |||
maybe it should throw an adequate exception, though. instead of crashing. | |||
jnthn | Do you have an example of real (not benchmark) code actually running into this? | 12:02 | |
timotimo | no :) | ||
jnthn | OK, then I think we can live with it short term. :) | ||
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 | |
do we have an op where checking that flag seems like a sane thing that wouldn't penalize every single op there is? | |||
12:04
rindolf left,
_daniel-s__ left
|
|||
jnthn | It checks it on branches, iirc. | 12:05 | |
12:05
_daniel-s__ joined
|
|||
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:05 | |
timotimo | oh, there already is such a flag! | 12:06 | |
jnthn | Look for GC_SYNC_POINT or so | ||
Oh yes, it's been in there since the private development days :) | |||
timotimo | should there be an MVM_gc_string_memory_allocated(size_t amount) or something like that? | ||
jnthn | Could do. Can store the value on the ->tc | 12:07 | |
uh tc | |||
timotimo | if i have enough time, i'll implement that then. | ||
what's a sane amount to try for the limit? | 12:08 | ||
maybe just take the nursery size as an orientation value? | |||
jnthn | No, that'll do it way too often. | 12:09 | |
This is more a "don't eat gigabytes" safetly valve... | |||
timotimo | OK | ||
jnthn | So it can be fairly high by default (128MB or so) | ||
See that you don't slow down setting compilation, I guess is one way to analyze it... | 12:10 | ||
timotimo | wtf. | 12:11 | |
filestat.t failed three tests on master, passed all tests on flatten_fastpath | |||
other than that, no new failures at all | |||
i'm counting that as a +1 to merge | |||
12:15
mtk left
12:19
SamuraiJack__ left
12:20
SamuraiJack__ joined
12:27
beastd joined
12:32
xinming_ joined
12:33
xinming left
12:34
kaare_ left
12:36
zakharyas joined
12:37
SamuraiJack__ left
12:39
SamuraiJack__ joined
12:40
bluescreen10 joined
|
|||
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:42 | |
ah | 12:43 | ||
hehe. | |||
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:44 | ||
so we should introduce a new gc state flag that says "i used the interrupt mechanism to tell myself to gc" | 12:45 | ||
(or at least i think that's a good solution) | |||
ah, #moarvm is a better place for this discussion | 12:46 | ||
13:04
benabik left
13:11
skids left
13:13
Adriaaan joined
13:14
PZt joined
13:17
SamuraiJack__ left,
SamuraiJack__ joined
|
|||
masak | for those interested in such things, 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 rosettacode.org/wiki/N-queens_problem#Perl_6 | 13:21 | |
jnthn | Hm, that guy was my algorithms lecturer... :) | 13:27 | |
masak | ooh | ||
masak .oO( your algo lecturer was named Mr. 10? ) :P | |||
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.perl1.perl - 2.perl1 2.perl - 0.perl» | ||
..rakudo-jvm 453e51: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
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.» | ||
..rakudo-parrot 453e51, rakudo-moar 453e51: OUTPUT«1 - 21 - 2$(1, 2) - 0» | |||
Ven | calm down jvm | ||
moritz | j: say 42 | 13:33 | |
camelia | rakudo-jvm 453e51: OUTPUT«42» | ||
Ven | r: .perl.say given 5; | ||
camelia | rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«5» | ||
13:35
xinming joined,
SamuraiJack__ left,
xinming_ left
|
|||
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«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> ($n) { return $_ if $_ given $n == 1; } ⏏say a(0).perl; say a(1).perl; …» | ||
13:37
SamuraiJack__ joined
|
|||
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» | ||
masak | Ven: ^ | ||
Ven | yep | ||
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
|
|||
colomon wants .WHAT for C++ | 13:43 | ||
hoelzro | more like .WAT =P | 13:46 | |
(good morning #perl6!) | 13:47 | ||
FROGGS_ | hi | 13:48 | |
Ven | r: class A { has $!var handles <Str gist FETCH Numeric>; } | ||
camelia | ( no output ) | ||
13:48
ajr joined
|
|||
colomon | hoelzro: I want .WAY for my entire life | 13:48 | |
.WAT, sigh | |||
Ven | not sure which syn is `handles` in. Shouldn't it be `is handles()` ? | ||
13:49
ajr is now known as Guest91066,
Guest91066 is now known as ajr_
13:53
spider-mario joined
|
|||
masak | Ven: S12. | 13:55 | |
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 } | ||
camelia | rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«1 2 3» | ||
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 | ||
timotimo | moritz: well, it would result in a 10gb string. would you accept it to get very unperformant? | ||
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? | ||
Ven: 'is' isn't the only trait verb | |||
timotimo | oh, that's only 4gb | ||
duh, yeah, it's only 4gb | |||
well, my question is unhelpful anyway | 13:59 | ||
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 | |||
this causes a whole lot of collections once your single string is bigger than 3gb | |||
Ven | moritz: Well, 3 syns unless I'm on s12 anyway | 14:00 | |
moritz | Ven: sorry, I can't parse that statement | ||
timotimo | Ven: it seems to me you've done something significant last week and i forgot to put you in the p6weekly post :| | ||
Ven | moritz: I finished s09, so I'm gonna get the informations I need soon | ||
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 | ||
timotimo | hm, is that all of it? | ||
Ven | that's not "significant" by any means | ||
timotimo | phew :P | ||
now i have a way to gently push people to contribute stuff :D | |||
Ven | well, I don't code on perl6-related stuff, so ... That's all I can think about ._. | ||
timotimo: unless I actually wake up at night to work on moarvm, you tell me :p. | 14:02 | ||
(you see that new tree-based constant folding in there ? Magic !) | |||
timotimo | ... i don't understand what you mean by that :( | ||
14:02
telex left
|
|||
Ven | timotimo: forget about my failed jokes, then ! No, that's all I know I did. | 14:03 | |
14:03
kaleem left,
kaleem joined
|
|||
timotimo | the comment about waking up at night was an allusion to your lack of non-$dayjob tuits? | 14:04 | |
14:04
telex joined
14:05
kbaker_ joined
|
|||
Ven | timotimo: I'm afraid I don't know what "tuit" means. (the comment about waking up at night was about somnambulism) | 14:05 | |
nwc10 | Ven: it's a pun: en.wiktionary.org/wiki/round_tuit | 14:07 | |
and then see twitpic.com/11o14i | |||
Ven | nwc10: then I guess I'm just too bad at english to get it | ||
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) | ||
to it => tuit | |||
and then this wooden thing is a round tuit | 14:09 | ||
s/aroung/around/ | |||
Ven | yeah, I got that part of the pun, I just don't get the "lack of non-$dayjob tuits" | ||
FROGGS_ | that means that you are lacking spare time for hacking, basically | 14:10 | |
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 | |
14:11
virtualsue left
|
|||
FROGGS_ | ahh | 14:11 | |
14:12
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
|
|||
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? | ||
masak | Ven: what is your native language? | 14:13 | |
Ven | masak: I'm french | ||
masak | oh! | ||
Ven | nwc10: I plan to ask my resps today to know if instead of an internship, I could do GSoC :p | ||
nwc10 | cool. As I understand it, GSoC is intended to be structured and behave as an internship. Just not an on-site internship | 14:14 | |
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 | ||
i.e. will they consider it as more valuable than a real internship or not | |||
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 | |
yes. do what is right for you. | |||
Ven | nwc10: french courts like privacy to be respected :p | ||
nwc10 | this is a good thing. | ||
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) | ||
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. | ||
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. | ||
FROGGS_ | [Coke]: :o( | ||
Ven | nwc10: yep =(. | 14:18 | |
nwc10 | good luck with sweet talking people | ||
Ven | Working to port it to the CLR would also be very fun | ||
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 ! | ||
nwc10 | I'm afraid I can't help mentor it | ||
but I can buy the mentors beer. :-) | |||
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:20 | |
14:21
kivutar joined
|
|||
nwc10 | it's one of the good and bad points of GSoC - quite a lot of the projects are very ambitious | 14:21 | |
this often means that they don't get completed | 14:22 | ||
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:23 | |
tadzik | Ven: what would you like to work on? | 14:27 | |
14:29
salv0 left
14:36
treehug88 joined
14:37
SamuraiJack__ left,
SamuraiJack__ joined
|
|||
Ven | tadzik: allomorphic types, moarvm optimizations, perl 6 modules (rock solid http server, for example), I guess | 14:38 | |
though call :-) | |||
tadzik | nice :) | ||
FROGGS_ | no, very nice :o) | 14:40 | |
we need http servers, really | |||
(at least I do) | |||
Ven | yeah, I've seen that line a lot, and that looks like a reall fun thing to do | ||
14:41
bluescreen10 left
|
|||
Ven | But I also think you need a fast enough VM to get the juicy fruits | 14:41 | |
14:42
xinming left
|
|||
FROGGS_ | we have that I think | 14:42 | |
tadzik | well, fast is one thing | ||
having a webserver that doesn't crash when you portscan it is the other good thing :) | |||
FROGGS_ | tadzik: one step after the other :o) | ||
tadzik | :) | 14:43 | |
jnthn | We really need HTTP client/server libraires that make good use of async stuff too. | ||
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
14:44
Adriaaan left
|
|||
jnthn | When does the GSoC work start? | 14:44 | |
14:45
salv0 joined
|
|||
FROGGS_ | late april I think | 14:46 | |
14:46
SamuraiJack__ left
14:50
btyler joined
|
|||
FROGGS_ | async hypers would be lovely btw :o) | 14:50 | |
TimToady | GPU'd hypers | 14:51 | |
moritz | hyped hypers! | ||
FROGGS_ | yeah | ||
14:52
skids joined
|
|||
moritz | hypervised hypers! | 14:52 | |
FROGGS_ | 500 cuda threads or so... | ||
does somebody outside of germany/europe know about Scooter? | |||
Hyper Hyper (1995) - www.youtube.com/watch?v=RHVSshgPlQs | 14:54 | ||
Ven | FROGGS_: erm, `say [await] @tbd;` ? | 14:55 | |
timotimo | er, no | ||
await isn't an infix op :) | |||
Ven | await<<@tbd | ||
rjbs scrunches face, rebuilds latest moar. | 14:56 | ||
Ven | r: say (-<<(1,2,3)).perl; | ||
camelia | rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«(-1, -2, -3)» | ||
nwc10 | rjbs: you won't have to hold the face for very long | ||
Ven | seems to be it :-) | ||
nwc10 | rjbs: IIRC MoarVM build is faster than Perl 5's makedepend step | 14:57 | |
OK, cheating by using more that one core | |||
jnthn | With hypers, you're typically intrested in parallel execution, not asynchrony. | ||
14:58
rindolf joined
|
|||
Ven | jnthn: hypers don't assume any evaluation order, right ? | 14:59 | |
rjbs | r-m: 1 !+ 2 | ||
camelia | rakudo-moar 453e51: OUTPUT«===SORRY!=== Error while compiling /tmp/hEdMIqYQpOCannot negate + because it is not iffy enoughat /tmp/hEdMIqYQpO:1------> 1 !+⏏ 2» | ||
rjbs | When run in the REPL, that error just keeps coming and coming and coming. | ||
nwc10 | r: 1 !+ 2 | 15:00 | |
camelia | rakudo-parrot 453e51, rakudo-jvm 453e51, rakudo-moar 453e51: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCannot negate + because it is not iffy enoughat /tmp/tmpfile:1------> 1 !+⏏ 2» | ||
Ven | "iffy" ha! | ||
nwc10 | rjbs: presumably it would come up on the legacy VMs too | ||
rjbs | would it come up as an infinite stream? | ||
nwc10 | ie looks like it's an NQP bug, not a MoarVM bug | ||
moritz | also loops on perl6-j | 15:01 | |
nwc10 | not tried it, so don't know. | ||
rjbs | Okay! | ||
Well, consider it mentioned. :) | |||
nwc10 | hateful. but portably hateful | ||
moritz doesn't have a perl6-p built atm | |||
nwc10 | n: 1 !+ 2 | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Cannot negate + because additive operators are not iffy enough at /tmp/HmP0L05euh line 1:------> 1 !+⏏ 2Parse failed» | ||
nwc10 | oh, wow, very portable | ||
pugs: 1 !+ 2 | |||
camelia | pugs: OUTPUT«***  Unexpected "!+" expecting operator at /tmp/D7Muzr8FCQ line 1, column 3» | ||
rjbs | nwc10: No, the error is expected. | ||
nwc10 | std: 1 !+ 2 | ||
camelia | std 09dda5b: OUTPUT«===SORRY!===Cannot negate + because additive operators are not iffy enough at /tmp/4_IB4uuUMC line 1:------> 1 !+⏏ 2Parse failedFAILED 00:00 122m» | ||
rjbs | of course you can't metanegate "plus" | ||
moritz | rjbs: I'll submit a bugreport | ||
nwc10 | the error is that something is trying? | ||
rjbs | nwc10: so you're testing for the wrong thing | ||
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/ | ||
nwc10 | (how do I move the problem away from between keyboard and chair?) | ||
rjbs | terminal fills up with "cannot negate..." | ||
nwc10 | ah. | ||
so REPL is shagged? | |||
rjbs | Seems like. | ||
moritz: thanks! | |||
moritz | nwc10: aye | 15:03 | |
Ven | hehehe "eager" vs "hyper" vs "race" | 15:08 | |
hoelzro | interesting...URI on JVM gets a null pointer excpetion | 15:09 | |
*exception | |||
hoelzro sees if it's where Mokudo does too | |||
yup | |||
15:09
_thou joined
|
|||
timotimo | hey hoelzro :) | 15:10 | |
hoelzro | ahoy timotimo! | ||
timotimo | if you're stuck, there's always the kate syntax highlighting file you could work on :P | ||
it ought to be blocker-free | |||
hoelzro | =) | ||
it's on my list | |||
my very long, very daunting list =/ | |||
timotimo | :P | ||
no pressure ;) | |||
hoelzro | bam! | 15:11 | |
my "fails on moar" golf'd test fails on Jakudo too! | |||
hoelzro builds pakudo | |||
shower & | |||
15:12
kaleem left
|
|||
timotimo | \o/ | 15:15 | |
15:17
daniel-s_ joined,
_daniel-s__ left,
kivutar left
|
|||
tadzik | .oO( Hooray, shower! ) |
15:19 | |
Ven | nwc10: err, can't really find informations on that one : is GSoC remote ? | 15:20 | |
tadzik | yes | 15:21 | |
btyler | Ven: for almost all mentoring organizations, yes | ||
tadzik | are there exceptions? | ||
Ven | Oh ! that's a good news :) | ||
btyler | some of the Linux foundation ones aren't remote, I think | ||
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 | ||
tadzik | cool | ||
tadzik remembers staying up until 3-4AM because jnthn++ was in China :P | 15:22 | ||
Ven | I'm not really afraid of that :p | ||
that just seems too cool to happen | |||
jnthn | tadzik: Only for a week of it :P | ||
tadzik | fortunately :P | ||
Ven | I guess that can be a problem when you have a family to take care of | 15:23 | |
TimToady | looks like I might finally get to China end of March | 15:25 | |
moritz | \o/ | 15:26 | |
jnthn | .oO( Great Wall ) |
15:27 | |
colomon | Great Wall visits the Great Wall? | ||
tadzik | :D | ||
colomon | better yet, Great Walls visit | ||
15:33
araujo joined,
xinming_ joined
|
|||
masak .oO( Larry 长城 ) | 15:33 | ||
[Coke] creates github.com/coke/mojo6 and hopes to get started in the next week. | |||
tadzik | :O \o/ | 15:34 | |
[Coke] | (/me tries the opposite approach to moar. declare waaaaay too early) | ||
tadzik | :) | ||
TimToady | heh, so really more like Long Wall | ||
[Coke] | I am sick of coding in coldfusion. | ||
masak | TimToady: yeah. | ||
[Coke]: I am sick of coding in hot dispersal. | 15:35 | ||
[Coke] | perhaps our needs coincide. | ||
15:37
xinming left
|
|||
hoelzro | hmm...Pakudo passes | 15:40 | |
errands & | |||
tadzik | Pakudo rasses | ||
masak | Passudo rakes | ||
JimmyZ | jnthn: when will you be in china? | 15:47 | |
TimToady: Where are you going to? | |||
TimToady | Beijing | ||
北京, I should say :) | 15:48 | ||
jnthn | JimmyZ: No idea when I'll be the next time. Last time was a couple of years ago... | ||
JimmyZ: Hopefully the next time will not be in summer, as that was rather too hot for me ;) | 15:49 | ||
JimmyZ | jnthn: :P | 15:50 | |
15:51
klapperl joined
15:53
klapperl_ left,
Gothmog_ left,
kshannon left,
Gothmog_ joined
15:59
kshannon joined,
treehug88 left
16:01
ph1ur3 left
16:03
Psyche^_ left
16:06
virtualsue joined
16:10
Adriaaan joined
|
|||
timotimo | $dayjob is over \o/ | 16:11 | |
16:12
laidback_01 left
|
|||
dalek | ast: e527ad0 | larry++ | S03-operators/increment.t: fix faulty ok/is confusion |
16:14 | |
16:15
bluescreen10 joined
16:18
treehug88 joined,
treehug88 left,
rurban_ left
16:19
treehug88 joined
16:24
btyler left
16:25
rurban_ joined
16:29
dmol joined
|
|||
timotimo | Ven: if you could get your school to accept GSoC as an internship, that would be awesome | 16:31 | |
16:31
rurban_ left,
[Sno] left
16:32
btyler joined
16:34
xinming joined
16:36
denisboyun left
16:37
molaf_ joined
16:38
xinming_ left
16:40
molaf left
|
|||
masak | Angular's bindings in isolate scopes reminds me of macros and lexical scoping. | 16:44 | |
there are basically three types of binding: | |||
'@' -- rvalue binding | |||
'=' -- lvalue binding | |||
'&' -- OUTER scope binding | 16:45 | ||
nwc10 | too slow - I was going to say "those who understand binary and those who do not"? :-) | ||
masak | :P | ||
16:47
Adriaaan left
16:57
zakharyas left
|
|||
[Coke] is happy to find lots of tests for individual mojo modules, and things he'll start with Mojo::Template | 17:03 | ||
*thinks | |||
_sri | aside from the command line interface, test coverage should be very good | 17:04 | |
17:04
hoverboard joined
|
|||
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
|
|||
[Coke] | tadzik: github.com/tadzik/Template-Mojo/ doesn't have a license. | 17:06 | |
[Coke] suggests Artistic 2.0 to match mojo5 | |||
_sri guesses that Mojo::Util will end up being your real starting point | 17:09 | ||
17:09
mavcunha left
17:10
_thou left
|
|||
_sri | in case some helper functions end up not being perl6 built-ins | 17:10 | |
[Coke] | fair enough. | ||
_sri | Mojo::Template is a nice starting point though, Mojo::DOM is similarly isolated | 17:11 | |
[Coke] | I'm trying to avoid morbo to start with. :) | 17:12 | |
_sri | user agent and servers will require a little more planning | ||
haha, yea | |||
moritz | [Coke]: Mojo::JSON is nicely isolated too | 17:16 | |
[Coke]: as well as many of the utils (base64, for example= | |||
) | |||
PerlJam | I've thought about doing Mojo::DOM before. That one would be nice to have in P6 | ||
[Coke] | PerlJam: welcome aboard. ;) | 17:17 | |
masak | mojo6++ | ||
17:17
bluescreen10 left
|
|||
_sri suspects Mojo::DOM could be a nice benchmark for perl6 | 17:17 | ||
17:17
kst joined
|
|||
hoelzro | does anyone know of a version of JVM rakudo that URI passed all its tests on? | 17:18 | |
17:24
bluescreen10 joined
|
|||
tadzik | [Coke]: oh. Is MIT fine? | 17:25 | |
17:26
ajr_ left
|
|||
[Coke] | tadzik: probably? | 17:26 | |
tadzik | ok | ||
it's the only license I ever read, so I prefer to use it whenever possible :) | 17:27 | ||
17:27
hoverboard is now known as honeyboard
|
|||
tadzik | [Coke]: added | 17:28 | |
masak | the only pertinent concern is whether the MIT license allows [Coke]++ to do whatever he wants, I think. | ||
if it allows him to incorporate tadzik++'s module into his own code, then it "works". | |||
17:29
denis_boyun joined
|
|||
tadzik | MIT allows almost everything, as far I was ever concerned | 17:29 | |
tl;dr use it however you want, just don't pretend it's yours | |||
that's what I got from it :) | |||
17:30
kurahaupo_mobile joined
|
|||
vendethiel | still not sure about `||` vs `|` (in regexp context, not `,` vs `;` interp), isn't it just for precedence ? | 17:30 | |
masak | vendethiel: no, certainly not. | 17:31 | |
vendethiel: `||` is procedural, `|` is declarative. | |||
vendethiel | Then I definitly didn't understand that part of the synopsis | ||
17:31
SamuraiJack__ joined,
araujo left
|
|||
vendethiel | masak: what does that mean ? | 17:31 | |
dalek | ast: f293ea0 | larry++ | S02-types/lazy-lists.t: X is lazy, make sure X+ is lazy too (since it's a different codepath) |
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. | ||
vendethiel: `||` gives you a left-to-right order of evaluation. | |||
vendethiel: `|` gives you Longest-Token Matching. | |||
vendethiel: let me put together an example. | |||
m: say "food" ~~ / foo || food / | |||
camelia | rakudo-moar 453e51: OUTPUT«「foo」» | 17:33 | |
masak | m: say "food" ~~ / foo | food / | ||
camelia | rakudo-moar 453e51: OUTPUT«「food」» | ||
masak | vendethiel: see the difference? | ||
m: say "food" ~~ / foo || f || food / | |||
camelia | rakudo-moar 453e51: OUTPUT«「foo」» | ||
masak | m: say "food" ~~ / foo | f | food / | ||
camelia | rakudo-moar 453e51: OUTPUT«「food」» | ||
masak | m: say "food" ~~ / foo | food | f / | ||
camelia | rakudo-moar 453e51: OUTPUT«「food」» | ||
17:33
DarkWolf84 joined
|
|||
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 | |
DarkWolf84! \o/ | |||
DarkWolf84 | hi, masak | ||
17:34
honeyboard is now known as hoverboard
|
|||
DarkWolf84 | I found rakudo bug | 17:34 | |
prompt don't accept backspace | 17:35 | ||
masak | spill it. | ||
huh. | |||
masak tests | |||
DarkWolf84 | it thinks that it's mailformed utf8 | ||
masak | DarkWolf84: works here. | ||
(on Rakudo Moar) | |||
DarkWolf84 | yes | ||
17:36
bluescreen10 left
|
|||
DarkWolf84 | hm | 17:36 | |
then it's something else | |||
ok | |||
dalek | ast: 7e2dde6 | larry++ | S03-metaops/cross.t: unfudge passing tests of X=:= and X!=:= |
17:37 | |
[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 ;) | ||
DarkWolf84 | I found it | 17:39 | |
dalek | kudo/nom: e8a0326 | larry++ | src/core/metaops.pm: speed up Xop by more than 2x 'X,' is now only slightly slower than 'X' |
||
masak | [Coke]: I think it's awesome! | ||
[Coke] | masak: Oh, I agree. | 17:40 | |
DarkWolf84 | It doesn't work when non english characters are used | ||
masak | DarkWolf84: oh! | ||
DarkWolf84: trying again. | |||
vendethiel | masak++ # thanks | ||
TimToady is only good for programming when he's sick :) | |||
DarkWolf84 | It works with askii symbols only | ||
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 | ||
masak | DarkWolf84: again, I'm on Moar. YMMV on other VMs. | ||
DarkWolf84 | I'm using moar on 64 bit linux | 17:42 | |
masak | me too. | ||
DarkWolf84 | with cyrillic it fails | ||
masak tries with cyrillic | |||
DarkWolf84 | my native language use cyrillic alphabet | 17:43 | |
masak | DarkWolf84: still works here. | ||
DarkWolf84 | ok | ||
masak | how old is your rakudo build? | ||
17:43
[Sno] joined
|
|||
DarkWolf84 | I pulled the git repository 3,4 minutes ago | 17:44 | |
17:45
rurban joined
|
|||
masak | can someone else confirm DarkWolf84's bug report? | 17:46 | |
prompt, cyrillic, backspace | |||
DarkWolf84 | I'll try to build it again from fresh clone | ||
17:47
araujo joined,
treehug88 left
|
|||
[Coke] | masak: which backend? | 17:47 | |
DarkWolf84 | moar | 17:48 | |
[Coke] | ah, moar. | ||
шоркс чере. | 17:49 | ||
DarkWolf84 | :) | ||
[Coke] | er, works here. | ||
DarkWolf84 | sorry then | ||
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. ;) | ||
DarkWolf84 | maybe my build is corupted somehow | ||
moritz | it's awesome to see that the list code has a bus number > 0 :-) | ||
17:50
mtk joined
|
|||
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? | ||
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 :) | ||
DarkWolf84 | my terminal is all utf8 | ||
17:52
dakkar left
|
|||
btyler | DarkWolf84: latest Moar on OSX, tried with cyrillic, backspace was ok | 17:52 | |
DarkWolf84 | I'll try in another terminal | 17:53 | |
[Coke] | (osx here also) | ||
DarkWolf84 | maybe it's the terminology's problem | ||
masak | TimToady: what prevents us from compiling X, down to X -- making them equal in speed? | 17:54 | |
TimToady | just a SMOP | ||
masak | oki | 17:55 | |
TimToady | but I figure anyone who write 'X,' really means it :) | ||
*writes | |||
however, we should do the optimization anyway, just because someone might compose a crossop that way by accident | 17:56 | ||
trying the stupid trick first | 17:58 | ||
17:59
hoverboard left
|
|||
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: :) | ||
masak | as it clicked, it was very funny, of course. like a joke one gets. | ||
but for a few seconds, it was terribly head-scratching. | 18:01 | ||
jnthn | Unpexpected Cyrillic шоркс me too :P | ||
dalek | kudo/nom: 1ec91c7 | larry++ | src/core/metaops.pm: optimize 'X,' to 'X' |
||
TimToady | the stupid trick worked :) | ||
masak | TimToady++ | ||
TimToady | HOP in action | 18:02 | |
masak | that's my best sort of stupid trick! | ||
18:03
btyler_ joined,
btyler left
18:05
treehug88 joined
18:09
klapperl_ joined
|
|||
DarkWolf84 | terminology (e18's terminal) is corrupting the data | 18:11 | |
rakudo-m works | |||
18:11
klapperl left
18:14
hoverboard joined
18:22
Adriaaan joined
18:24
thou joined
|
|||
vendethiel | TimToady: what's X, ? | 18:24 | |
18:27
pdcawley left
18:41
tgt joined
|
|||
TimToady | the X metaoperator applied to infix:<,> | 18:43 | |
has identical semantics to the ordinary X operator | |||
18:48
kbaker_ left
|
|||
timotimo | and what is X11? | 18:49 | |
18:50
pmichaud_ left,
pmichaud joined
|
|||
timotimo | seems like i've got quite a bit of backlog to catch up with | 18:51 | |
18:54
kivutar joined
|
|||
timotimo | ooh | 18:55 | |
18:56
kivutar left
|
|||
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 | |
TimToady: i'm very glad you could speed Xop up again :) | |||
18:57
scottp left
18:59
scottp joined
|
|||
masak | DarkWolf84: oh, that's a relief. thank you for confirming it's on your end. | 19:07 | |
timotimo | DarkWolf84: terminology is so pretty, though! :( | 19:08 | |
19:10
Rotwang joined,
darutoko left
|
|||
[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 | |
there is also a perl6 group, but that's muuuch smaller. ;) | |||
19:12
SamuraiJack__ left
|
|||
FROGGS_ | can somebody upload the nqp-2014.02 tarball to rakudo.org/downloads/nqp/ ? | 19:18 | |
btyler_ | [Coke]: do you have a repo going for the mojo6 idea yet? | 19:23 | |
19:23
trump left
|
|||
[Coke] | github/coke/mojo6 - it's a shell until this weekend. | 19:23 | |
just wanted to make sure I had something to get back to. | |||
FROGGS_ | yay, I finally have some time for Perl 6 this evening | 19:25 | |
19:25
FROGGS_ is now known as FROGGS
|
|||
nwc10 | Right now, on www.gittip.com/for/ Perl has 442 members and jQuery has 441 | 19:27 | |
so Perl is just in 8th place | |||
FROGGS | rong, Perl has 443 now :o) | ||
19:28
Sqirrel joined
|
|||
nwc10 | oh yes | 19:28 | |
19:38
fhelmberger_ joined,
lizmat_ joined
19:40
denis_boyun__ joined,
Adriaaaan joined,
Rotwang1 joined
19:41
denis_boyun left,
Gothmog__ joined,
_thou joined
19:42
dwolf_ joined
19:44
berekuk joined,
__rnddim__ joined
19:47
Rotwang left,
thou left,
Adriaaan left,
DarkWolf84 left,
dmol left,
Gothmog_ left,
fhelmberger left,
lizmat left,
Vlavv left,
_sri left,
synopsebot left,
lue left,
ggoebel left,
yakudza left,
Gothmog__ is now known as Gothmog_
19:48
ggoebel joined,
synopsebot joined
19:52
klapperl joined
19:53
klapperl_ left,
Vlavv joined,
yakudza joined
19:57
bjz_ joined
19:58
dmol joined,
_sri joined,
mcglk is now known as 20WABB86T,
Guest23735 joined,
mcglk joined
19:59
mcglk left,
dmol left,
_sri left
20:00
lue joined
20:01
daniel-s__ joined,
bjz left,
kurahaupo_mobile left,
Alula left,
salv0 left,
kshannon left,
erkan left,
__rnddim__ left,
araujo left,
daniel-s_ left,
rindolf left,
japhb left,
20WABB86T left,
kshannon joined,
japhb joined,
xragnar left,
rindolf joined
|
|||
timotimo | FROGGS: \o/ | 20:01 | |
20:01
xragnar joined
|
|||
FROGGS | yeah :o) | 20:01 | |
timotimo | s11 tonight? | 20:02 | |
today is sauna evening for little timo :3 | 20:03 | ||
masak | sauna evening! \o/ | ||
20:04
vendethiel left,
vendethiel joined,
Ven left
20:05
araujo joined,
mcglk joined,
dmol joined,
_sri joined
|
|||
vendethiel | r: (1, 2) X, (3, 4) | 20:05 | |
r: say (1, 2) X, (3, 4) | |||
camelia | ( no output ) | ||
rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«1 3 1 4 2 3 2 4» | |||
20:05
salv0 joined
|
|||
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 left,
araujo is now known as Guest50972,
hoverboard joined
|
|||
vendethiel | r: (1, 2) Z, (3, 4) ==> .perl ==> say | 20:06 | |
20:06
hoverboard left,
hoverboard joined
|
|||
camelia | rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileSorry, do not know how to handle this case of a feed operator yet.at /tmp/tmpfile:1------> (1, 2) Z, (3, 4) ==> .perl ==> say⏏[3…» | 20:06 | |
PerlJam | vendethiel: ==> doesn't give you a free map. | 20:07 | |
timotimo | you and your feeds :) | 20:08 | |
hm. would ==> **.perl ==> be sensible? | |||
i know ** is NYI and a only very lightly specced ... | |||
20:08
[particle] joined
|
|||
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
|
|||
timotimo | looking forward to it :) | 20:10 | |
20:11
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar,
dwolf__ joined
20:12
stevan__ joined
20:13
japhb__ joined,
salv01 joined,
colomon_ joined
20:17
kshannon_ joined
20:18
salv0 left,
vendethiel left,
japhb left,
kshannon left,
dwolf_ left,
Sqirrel left,
stevan_ left,
colomon left,
[particle]1 left,
gfldex left,
colomon_ is now known as colomon
20:19
vendethiel joined
|
|||
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» | ||
vendethiel | sorry freenode, this is your lose | 20:20 | |
[Coke] | timotimo: I do xlsx manipulation for work, but end up doing it in raw xml because reasons. | 20:22 | |
20:22
kurahaupo_mobile joined
|
|||
[Coke] | having a perl6 module that worked for my needs and ran on the JVM would be nifty. | 20:22 | |
20:22
Mouq joined
|
|||
[Coke] | (my needs are bonkers) | 20:22 | |
20:25
dwolf__ left,
tgt left
20:26
tgt joined,
denis_boyun__ left
20:31
virtualsue left
20:32
LLamaRider joined
|
|||
grondilu thinks of all the cool rewriting of RC entries once concurrency is available on MoarVM | 20:35 | ||
20:36
denisboyun joined
|
|||
grondilu is looking at 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 | |||
masak <3 S09 | |||
grondilu: better keep the originals too, thought :) | |||
show things from two angles. | |||
TimToady | as I'm rewriting *map, I'm thinking, gee, we'll need to clone the shape here... | ||
20:37
kaare_ joined
|
|||
rjbs | shapes? | 20:40 | |
[Coke] | rewriting map? | ||
rjbs: multi-d arrays, I think? | |||
20:41
Alina-malina left,
silug___ joined,
silug__ left
20:42
Alina-malina joined
|
|||
PerlJam | [Coke]: well, not just that ... being able to say: my int @stuff[42]; # is quite useful | 20:46 | |
I tend to think of "shape" as "sized dimensions" and "user-defined indexing" | |||
[Coke] | are you suggested we can type individual cells of containers? | 20:47 | |
*suggesting | |||
(as opposed to typing -all- the cells) | |||
PerlJam | Um ... no. :) | 20:48 | |
(though being able to type along a single dimension would be interesting :) | |||
I was just saying that "shape" isn't only about multi-dimensionality | |||
20:49
dmol left
|
|||
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: perlcabal.org/syn/S09.html#line_483 | ||
[Coke] | I don't understand what your "int" there means, then. | 20:52 | |
it looks like you're saying that element 43 of @stuff must be an int. | |||
TimToady | in a declaration, [42] defines the size of that dimension (only one dimension in this case) | 20:54 | |
20:54
benabik joined
|
|||
TimToady | my Num @matrix[3;3]; | 20:54 | |
[Coke] | whoops. | 20:55 | |
TimToady++ PerlJam++ | |||
dalek | c: 27231d7 | moritz++ | lib/regexes.pod: [regexes] start to talk about quantifiers |
20:59 | |
21:00
xenoterracide left
|
|||
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 | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«calledcalled» | ||
masak | FROGGS: yeah, I really don't like those errors. | ||
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? | ||
Mouq needs to backlog | |||
FROGGS | jnthn: I am doing something like that: | 21:03 | |
class CompUnitRepo::Local::Installation { | |||
has Str $!cver = nqp::atkey(nqp::gethllsym('perl6', '$COMPILER_CONFIG'), 'version'); | |||
moritz doesn't know what he's doing, so doesn't qualifiy | |||
also, tonight my brain is mushrooms all the way down | |||
FROGGS | moritz: mine is fine today, finally :o) | 21:04 | |
jnthn | FROGGS: Oh...haha | ||
FROGGS: I guess that isn't a Perl 6 string, but an NQP one | |||
FROGGS: Wrap it in an nqp::hllize | |||
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
Maddingue left
|
|||
FROGGS | jnthn: yes, and it was a nice error, complaining about parameter $expected :P | 21:05 | |
jnthn | How...expected | 21:06 | |
masak .oO( this takes me completely by anticipation! ) | 21:11 | ||
FROGGS | cool, rakudo/eleven seems to build for jvm again | ||
Mouq | FROGGS++ | ||
FROGGS | when it builds for parrot I'll go ahead and merge | 21:12 | |
:P | |||
MUHAAHAHAAHA | |||
timotimo | what, merge it into nom? | ||
FROGGS | just a joke | ||
timotimo | aaw | ||
FROGGS | to see who is still awake *g* | ||
timotimo | you woke everybody up by MUHAHAHAHAing into the channel | 21:13 | |
Mouq | r: say [1,2,3]>>.succ | 21:14 | |
camelia | rakudo-parrot 1ec91c, rakudo-jvm 1ec91c, rakudo-moar 1ec91c: OUTPUT«2 3 4» | ||
TimToady | how does one trap exceptoins in nqp? | ||
Mouq thinks its still CATCH | 21:16 | ||
timotimo | there is catch, aye | 21:17 | |
but be careful | |||
throwing inside a catch will cause the very same catch to trigger again, unfortunately | |||
TimToady | well, maybe I can make try {} work at this point of the setting | ||
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... | ||
timotimo | oh! | ||
21:18
salv0 joined
|
|||
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
|
|||
camelia | nqp-parrot: OUTPUT«(timeout)» | 21:19 | |
( no output ) | |||
..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/languages/nqp/lib/NQPHLL.moarvm::94) from g…» | |||
FROGGS | hehe | ||
moar++ | |||
jnthn | nqp-jvm: say('alive?') | ||
camelia | nqp-jvm: OUTPUT«alive?» | 21:20 | |
jnthn | Hmm. | ||
21:20
ggherdov_ joined,
salv01 left,
segomos left,
genehack_ left,
ggherdov left,
genehack joined
|
|||
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:20
grondilu left,
ggherdov_ is now known as ggherdov
21:21
grondilu joined
|
|||
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' | ||
((2, 3, 4), (5, 6, 7), (8, 9, 10)) | |||
\o/ | |||
timotimo | the second die is inside a try | ||
21:22
hoverboard is now known as HoveredElf,
HoveredElf is now known as waterboard
21:23
lizmat joined
|
|||
timotimo | TimToady: the [ turned to ( ! | 21:23 | |
jnthn | timotimo: Yes, and you're inside teh CATCH at that point. | ||
21:24
bjz joined
|
|||
timotimo | jnthn: for a moment i forgot that the CATCH belongs *inside* the try | 21:24 | |
21:24
nebuchad` joined
|
|||
dalek | kudo/nom: bfec6cd | larry++ | src/core/ (2 files): add duckmap, more nodality infrastructure |
21:24 | |
21:24
rindolf left,
erkan joined,
erkan left,
erkan joined,
ggoebel1118 joined
|
|||
TimToady | yes, the deep mappers do not preserve type correctly yet | 21:24 | |
but it's a start | 21:25 | ||
timotimo | mhm | ||
yeah, good start i'd say | |||
21:26
denis_boyun_ joined
|
|||
TimToady | at the moment, prefixes just default to deep, and postfixes to flat (those that work) | 21:26 | |
haven't really got the subscripts working yet | |||
21:26
waterboard is now known as errantfools
21:27
xinming_ joined
21:28
bjz_ left,
denisboyun left,
xinming left
21:29
errantfools is now known as hoverboard
21:31
stevan__ left
21:32
colomon_ joined,
colomon left,
colomon_ is now known as colomon,
mathw left
21:33
mathw joined
21:34
Guest23735 left
|
|||
timotimo | the subscripts are trés interesting | 21:34 | |
21:35
lizmat_ left,
nebuchadnezzar left,
ggoebel1117 left,
SubTerra joined,
vendethiel left,
Kelder left,
vendethiel joined
|
|||
dalek | c: 6d5efce | moritz++ | lib/regexes.pod: [regexes] general quantifier |
21:36 | |
21:42
beastd left
21:47
benabik left
|
|||
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 | ||
which I wouldn't have expected | |||
I'd've expected op to stay at position 2 | 21:49 | ||
> ./perl6 -e 'say ([[1,2,3],[4,5,6],[7,8,9]]»[1]).perl' | |||
(2, 5, 8) | |||
\o/ | |||
timotimo | mister wall | ||
you are doing good work | 21:50 | ||
#perl6 is hiring, btw | |||
TimToady | course it blows up on any kind of slice... :/ | ||
still | |||
[Coke] | timotimo: I mean I am generating raw xml to create xlsx files. | ||
timotimo | bah. for a programmer of your caliber, it'll be but a slice of cake! | ||
[Coke] | slice of coke? | ||
timotimo | [Coke]: oh, what kind of program reads xml files and turns them into xlsx? | ||
[Coke]: nah, coke usually comes in bottles, glasses or lines | |||
[Coke] | timotimo: xlsx -is- xml. | 21:51 | |
dalek | kudo/nom: da53ec1 | larry++ | src/core/metaops.pm: handle hyper subscripts (1 arg only so far) |
||
timotimo | (quick! somebody write *snort* to make the joke complete!) | ||
[Coke] | (well, a zip file containing lots of xml) | ||
TimToady | *fnort* | ||
[Coke] | *eyeroll* | ||
timotimo | ah. i thought you had a simpler representation of tables | ||
so ... is that format actually handleable? | |||
i heard docx and friends are terrible abominations | |||
[Coke] | timotimo: it's pretty easy to handle if you use a library. which we can't. :) | 21:52 | |
however, to do what we need, it's doable in a few hundred lines of java. | |||
timotimo | well, i'm asking from the vantage point of a library implementor, so ... | ||
[Coke] | "given an .xlsx template with some markers, replace those markers with the result of a SQL query". | ||
timotimo | do you need a hundred lines of java to write "hello" in one cell and "world" in the cell next to that? | ||
oh, that kind | |||
Okay.jpg | |||
[Coke] | if we used a real library, we'd open the doc, delete those cells, and then insert lots more. | ||
but since that would kill our memory for queries that are enormous but still representable in xlsx, we cheat. | 21:53 | ||
timotimo | yikes. | ||
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. | ||
timotimo | (especially given how memory hungry rakudo is, even on moarvm) | ||
[Coke] | yah, we're already fighting memory as it is. (streaming everything out to disk as soon as possible, etc.) | ||
timotimo | ah. not a perl6 niche, then. | 21:55 | |
21:55
nebuchad` is now known as nebuchadnezzar
|
|||
[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? | ||
[Coke] | I'm already stuck working inside a j2ee container, how much worse can rakudo be on top of that. ;) | ||
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. | ||
timotimo | i might actually have one. | ||
[Coke] | it's a giant <row><c>value</c></row><row>.... | ||
timotimo | really? | ||
how do they make it sparse? | |||
[Coke] | where value might be a lookup into some other xml, yes. | 21:57 | |
only report rows, cells, and distinct values. | |||
er, *extant* rows, cells, | |||
timotimo | okay, so there's something like <emptyRows count="100"> | ||
or is it more like <row number="A"><col number="10">...</col></row>? | 21:58 | ||
[Coke] | one sec. | ||
timotimo | and how punishing is excel's parser? does it explode if you have a whitespace before a >, for example? | 21:59 | |
does it barf if you have a <tag />? | |||
[Coke] | <row r="1"><c r="A1" t="n"><v>1.0</v> | ||
timotimo | oh | ||
well, that's surprisingly pleasant. | |||
but the whole stuff around it would be less pleasant, aye? | |||
[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 ... | ||
[Coke] | right. the stuff around we try to touch as little as possible. ;) | ||
timotimo | :( | ||
i should probably have a look at the python library that does excel worksheets and seems to give a decent interface | |||
[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. | ||
timotimo | how are formulas represented? are they actually an xml tree of the operators and nodes? | ||
[Coke] | timotimo: the perl one is pretty good. | ||
timotimo | i can't read perl. | 22:01 | |
[Coke] | no, I think it's just a string. | ||
dalek | Heuristic branch merge: pushed 22 commits to rakudo/eleven by FROGGS | ||
[Coke] | timotimo: you are in an odd channel. | ||
timotimo | i can only stand perl6 :) | ||
also: are excel formulas localized in any other countries than germany? | |||
22:01
vendethiel left
|
|||
[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:01 | |
timotimo | ah, libreoffice should be able to write that format, too | 22:02 | |
TimToady | running a full spectest while I nap & | ||
timotimo | good nqp, TimToady | ||
22:03
skids left
|
|||
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 :) | ||
(there's a moar-support branch i believe) | |||
FROGGS | perhaps use the moar-support branch of panda | 22:05 | |
timotimo | wwwhome.ewi.utwente.nl/~trieschn/ex...excel.html - this weirds me out a little bit | ||
AUFGELZINSF | |||
LLamaRider | perl6-m ! *secret knowledge unlocked* | ||
getting a weird error though - "Cannot call 'postcircumfix:<{ }>'; none of these signatures match:" | |||
timotimo | also, "you can also download it as an excel file" | 22:06 | |
which is a bit funny, but definitely helpful | |||
FROGGS | LLamaRider: I've seen that one... maybe this was fixed in the moar-support branch, I can't remember | 22:07 | |
LLamaRider | I think I will wait for the official merge to master :) Thanks though | 22:08 | |
22:08
virtualsue joined
|
|||
FROGGS | tadzik: ping | 22:08 | |
timotimo | FROGGS: will moar-support in panda land before eleven? the race is on! :) | ||
FROGGS | tadzik: let's merge panda/moar-support into master! :P | ||
timotimo: ohh yes, moar-support there does not any harm I think | 22:09 | ||
timotimo | glad to hear that :) | 22:10 | |
FROGGS | github.com/tadzik/panda/compare/moar-support | ||
just a few tweaks | |||
timotimo | comptarget and compsuffix really ought to be cached for performancoe! | 22:12 | |
FROGGS | tadzik: there, I PR'd you! github.com/tadzik/panda/pull/70 | 22:13 | |
timotimo: ohh, I thought our optimomizer does that automagially :o) | 22:14 | ||
22:15
awwaiid_ is now known as awwaiid
|
|||
timotimo | :D | 22:15 | |
it *could* in theory | |||
but i don't think we have "dead code elimination" of any sort yet | |||
not even evaluating ifs with compile-time-constant conditions into their result (or even just their inner block) | 22:16 | ||
hm. how to pretty-print xml easily? | 22:17 | ||
22:17
_thou left,
_thou joined
22:18
BenGoldberg joined
|
|||
FROGGS | timotimo: gist.github.com/FROGGS/6a75572af1ce8f66d8c0 | 22:21 | |
22:21
Adriaaaan left
|
|||
timotimo | huh? that's not perl6! | 22:21 | |
FROGGS | :o) | ||
I use something like that to pretty print soap stuff, that is why it aligns xml namespace declarations | 22:22 | ||
22:22
kivutar joined
|
|||
timotimo | oh | 22:22 | |
hrm. i need to set up cpanm first | 22:24 | ||
we totally need a single-line-installer for rakudo that begins with "curl" | 22:25 | ||
[Coke] | yes'm. | 22:29 | |
22:29
Rotwang1 left
|
|||
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:30 | |
FROGGS | I dunno | 22:31 | |
timotimo | there's apparently cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) | ||
hm. maybe that's exactly how. | |||
hoelzro | I used PERL_CPANM_OPT to append a -l option for cpanm to pick up | 22:32 | |
and you can eval $(perl -Mlocal::lib=$HOME/.perl5) to set it up as well | |||
timotimo | can i has a fish-compatible local::lib? :) | 22:35 | |
22:35
treehug88 left
|
|||
timotimo | FROGGS: what will "per-project local installations of packages from panda" look like btw? | 22:37 | |
dalek | kudo/eleven: 84e2b32 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm: let CompUnitRepo stringify to absolute path |
||
timotimo | is there a concrete plan or mockup yet? | ||
FROGGS | you can register your own repository just like you would do -Isomething | 22:38 | |
-ICompUnitRepo::Local::Installation=path/to/somewhere would work, and PERL6LIB=... also | 22:39 | ||
timotimo | that's pretty wordy | ||
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 | ||
FROGGS | well, you don't have to specify which repository type you want... you would get the default then (the current) | ||
timotimo | of course | 22:41 | |
FROGGS | timotimo: but somehow you have to tell it about that other repository for you in-dev stuff, no? | ||
btw, you can also just put something in %*CUSTOM_LIB | 22:42 | ||
(at begin time, perhaps) | |||
timotimo | well, PERL6LIB= seems pretty reasonable | 22:43 | |
and a tool to make setting up and "entering" that environment a la "virtualenv" would be nice, too. | |||
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 | ||
timotimo | danke | ||
timotimo is glad to see that tmux will allow independent scrolling in different splits | 22:46 | ||
timotimo would like to have a "scrollbind" next | |||
nwc10 | is that like xkcd.com/363/ ? :-) | ||
timotimo | a little bit, ja | ||
FROGGS | hehe | ||
22:50
pippo joined
|
|||
timotimo | i'll test my string pressure changes on the moar-conch branches and then perhaps merge. then i'll go to bed | 22:52 | |
conc* | 22:53 | ||
22:59
dmol joined,
virtualsue left
23:01
virtualsue joined
23:02
tgt left
|
|||
timotimo had to un-#jvm the concurrency tests first >_> | 23:12 | ||
sadly, my branch seems to cause a big crash | 23:16 | ||
(double free) | 23:17 | ||
timotimo goes to sleep, as promised :P | |||
23:19
virtualsue left
23:20
kivutar left
23:22
hoverboard left,
btyler_ left
|
|||
masak | 'night, #perl6 | 23:24 | |
23:29
tgt joined
23:30
skids joined
23:34
tgt left
23:41
xenoterracide joined
23:42
Alina-malina left
|
|||
grondilu | Stephen Wolfram's Introduction to the Wolfram Language: www.youtube.com/watch?v=_P9HqHVPeik | 23:45 | |
^ kind of impressive | |||
23:47
kivutar joined
|
|||
grondilu | or just plainly impressive, to be honnest | 23:50 | |
23:57
Alina-malina joined
|