»ö« 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. |
|||
[Coke] | .tell pmurias I'm just using a shotgun here. Feel Free to fix any of my stupids. (esp in re: the _I variants which I know are wrong) | 00:02 | |
yoleaux | [Coke]: I'll pass your message to pmurias. | ||
00:04
fridim__ left
|
|||
dalek | p: 72c955f | coke++ | docs/ops.markdown: Convert from Int -> Any |
00:11 | |
p: 108c2d6 | coke++ | docs/ops.markdown: Add ops from Numerics::Basics |
|||
p: 7388952 | coke++ | docs/nqp-opcode.txt: Add pointer to new docs. (Remove ops already in new file) |
|||
00:12
Psyche^_ joined
00:15
Psyche^ left
|
|||
BenGoldberg | r: say join "", "", "a".."z" | 00:16 | |
camelia | rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz» | ||
BenGoldberg | r: say join "\c[combining low line]", "", "a".."z" | 00:17 | |
camelia | rakudo 223075: OUTPUT«̲a̲b̲c̲d̲e̲f̲g̲h̲i̲j̲k̲l̲m̲n̲o̲p̲q̲r̲s̲t̲u̲v̲w̲x̲y̲z» | ||
BenGoldberg | r: say join "\c[combining double low line]", "", "a".."z" | ||
camelia | rakudo 223075: OUTPUT«̳a̳b̳c̳d̳e̳f̳g̳h̳i̳j̳k̳l̳m̳n̳o̳p̳q̳r̳s̳t̳u̳v̳w̳x̳y̳z» | ||
BenGoldberg | Quick question: do those three lines look like they're the same length (amount of screen width) as each other, to anyone? | ||
00:17
krokite joined,
krokite left,
krokite joined
|
|||
BenGoldberg | This is an irc viewer / unicode display question rather than a perl question, I hope no one minds :) | 00:18 | |
Mouq | BenGoldberg: Yes | 00:20 | |
The "z»" is at the same place in all three for me; monospaced font here, though. | 00:21 | ||
BenGoldberg | On mIRC, the all look like they're different lengths (even though I'm using Courier New font, which is supposed to be monospaced) | 00:22 | |
Mouq | I think the font renderer counts 25 characters that take up space and so renders it like that | ||
I'm in iTerm | |||
BenGoldberg | Thank's Mouq... next question: do the second and third lines look like underlined (and double underlined) a-z? | ||
timotimo | the z isn't underlined in any of the lines (for a good reason) | 00:23 | |
TimToady | the logs appear off-by-1 on the underlining, at least under firefox | ||
00:23
fridim__ joined
|
|||
BenGoldberg | D'oh, combining means combine with previous, doesn't it? | 00:23 | |
Mouq | ... no, they're all collapsed into a single space for me. | ||
timotimo | why the « gets one is a mistery to me, though | ||
Mouq | Except z | ||
TimToady | oh, wait, that's what you printed | 00:24 | |
timotimo | why the z doesn't get one makes sense. | ||
(because join) | |||
TimToady | combiners are supposed to follow their combinee | ||
Mouq | timotimo: because of the "" | ||
timotimo | oh! | ||
BenGoldberg | r: say join "\c[combining low line]", "a".."z", "" | ||
camelia | rakudo 223075: OUTPUT«a̲b̲c̲d̲e̲f̲g̲h̲i̲j̲k̲l̲m̲n̲o̲p̲q̲r̲s̲t̲u̲v̲w̲x̲y̲z̲» | ||
timotimo | you did that! | ||
sneaky :) | |||
TimToady | many of the combiners are actually wrong in my terminal | 00:25 | |
BenGoldberg | r: say join "\c[combining double low line]", "a".."z", "" | ||
camelia | rakudo 223075: OUTPUT«a̳b̳c̳d̳e̳f̳g̳h̳i̳j̳k̳l̳m̳n̳o̳p̳q̳r̳s̳t̳u̳v̳w̳x̳y̳z̳» | ||
BenGoldberg | Do those show up with the z underlined? | ||
TimToady | yes, and the NL after it :) | ||
timotimo | to me, yes (gnome-terminal) | ||
TimToady | but not the a | ||
because gnome-terminal is buggy that way | |||
timotimo | huh? with my gnome-terminal, the a does get underlined | 00:26 | |
TimToady | innersing | ||
*sting | |||
Mouq | BenGoldberg: irclog.perlgeek.de/perl6/2013-09-18#i_7599829 | ||
In other words, yes | |||
TimToady | my firefix does it right but my gnome-terminal does it wrong | 00:27 | |
BenGoldberg | r: say join "\c[synchronous idle]", "", "a".."z" | ||
camelia | rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz» | ||
timotimo | what the hell is that o_O | ||
oh, wait, perhaps this isn't even gnome-terminal | |||
TimToady | lucky you | 00:28 | |
timotimo | nope, it totally is | ||
Mouq | r: say join "\c[symbol for synchronous idle]", "", "a".."z" | ||
camelia | rakudo 223075: OUTPUT«␖a␖b␖c␖d␖e␖f␖g␖h␖i␖j␖k␖l␖m␖n␖o␖p␖q␖r␖s␖t␖u␖v␖w␖x␖y␖z» | ||
Mouq | :D | ||
BenGoldberg | r: say join "\c[information separator for one]", "", "a".."z" | ||
camelia | rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/P7jok7tdkIUnrecognized character name information separator for oneat /tmp/P7jok7tdkI:1------> y join "\c[information separator for one⏏]", "", "a".."z"» | ||
BenGoldberg | r: say join "\c[information separator one]", "", "a".."z" | ||
camelia | rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz» | ||
Mouq | Oh \c[synchronous idle] is basically ^V | 00:29 | |
TimToady is running gt 3.6.1 | |||
timotimo: what is your version? | |||
timotimo | 3.6.1 as well | 00:30 | |
Mouq | Doensn't X manage fonts? I thought… | ||
timotimo | though maybe mint (or the ubuntu it's based on) has some patches in there? | ||
monaco 9 is the font on my end, perhaps that has something right and your font has something wrong? | |||
TimToady is ubuntu, so maybe mint, font is just Monospace 17 | 00:33 | ||
Mouq | en.wikipedia.org/wiki/FreeType | 00:34 | |
TimToady | hmm, doesn't even provide Monaco, seemingfully | ||
dalek | p: 648a121 | coke++ | docs/ops.markdown: add trigonometric codes |
00:35 | |
p: 783df30 | coke++ | docs/ (2 files): Add Relational ins opcodes |
|||
TimToady | lemme check from Mint | ||
timotimo | i installed monaco manually | ||
Mouq | I think you guys may be using FreeType, and if so, maybe different versino | 00:36 | |
Excuse my accent | |||
TimToady | buggy on mint too, with Monospace 10 | 00:38 | |
timotimo | hoelzro: when you said the github person followed through, did that refer to the pygments stuff and language guessing module? | ||
colomon is pondering if he could implement ISO 10303-11 in NQP as part of his current contract $work | 00:39 | ||
BenGoldberg | r: for (((0..15) X (0..15)).pick(64)) -> $f, $b { print "", $f, ",", $b,"X" } | 00:40 | |
camelia | rakudo 223075: OUTPUT«8,1X12,7X8,8X5,10X13,1X8,4X7,10X6,10X2,11X13,9X6,0X5,12X14,11X6,13X3,12X12,15X3,11X1,0X13,2X15,8X6,5X2,2X6,9X3,5X15,2X14,0X13,10X8,3X2,0X6,12X9,12X14,7X4,9X4,2X12,0X10,12X10,14X7,5X11,11X9,1X14,14X13,6X10,13X10,11X15…» | ||
[Coke] | GAH. | 00:41 | |
BenGoldberg | r: for (((0..15) X (0..15)).pick(64)) -> $f, $b { print "X" } | 00:43 | |
camelia | rakudo 223075: OUTPUT«XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX» | ||
00:44
cognominal left
|
|||
BenGoldberg | I wonder if there's a way to tell perl that (for a particular task) particular sequences should be treated as zero width sequences, for the purpose of measuring a string | 00:44 | |
dalek | p: 965a55e | coke++ | docs/ops.markdown: add sections for more opcodes |
00:45 | |
Mouq | colomon: sounds cool | ||
colomon | Mouq: it's a massive pain-in-the-neck I have to solve something. doing it in NQP would just be a way to make it more interesting. | ||
s/something/somehow/ | 00:46 | ||
Mouq | [Coke]++ #NQP documentation | ||
colomon: Sounds even cooler :) | 00:47 | ||
[Coke] | Mouq: just grunt work at the moment, you're welcome. (and welcome to join in! I can give you a list of short op names if you want to fill in a section. ;) | ||
00:49
cognominal joined
|
|||
Mouq | Sure | 00:49 | |
'/msg me if you want | 00:50 | ||
[Coke] | new fun game: when asked for your name when waiting for a food order, give the name of someone on channel instead of yours. | 00:51 | |
Mouq | .oO( …And get the most out of that credit card you found at YAPC ) |
00:52 | |
[Coke] | (I hate giving out my name when they don't need it. :P) | 00:53 | |
geekosaur reminded of old acquaintance who used "N. Ritchie Kernighan" | 01:00 | ||
01:02
benabik joined
|
|||
BenGoldberg | Hi, my name is dalek and I'd like to order a .... | 01:04 | |
Hi, my name is hugme and I'd like to order a double order of hugs :) | 01:05 | ||
Mouq | Hi, my name is dale- FLOOD ERROR | 01:09 | |
01:12
stevan__ joined
01:14
stevan_ left,
FROGGS_ joined
01:18
FROGGS left
01:28
btyler joined
01:58
FROGGS_ left
02:00
btyler left
02:03
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
02:04
benabik left
02:18
benabik joined,
EvanTeitelman left
|
|||
dalek | p: 436f7a5 | Mouq++ | docs/ops.markdown: Add Hash opcodes to ops.markdown |
02:21 | |
p: 165d8e5 | jimmy++ | docs/ops.markdown: Merge pull request #131 from Mouq/master Add Hash opcodes to ops.markdown |
|||
02:21
FROGGS joined
02:27
btyler joined
02:28
FROGGS left
02:34
raiph left
|
|||
Mouq | When one is speaking about an array, does one say "…do this to array @a at position $i…"? | 02:55 | |
02:56
juiko left
02:59
panchiniak_ joined
03:05
cognominal left,
cognominal joined
03:06
preflex_ joined,
ChanServ sets mode: +v preflex_
03:08
preflex left,
preflex_ is now known as preflex
03:11
bruges_ joined
|
|||
[Coke] | that seems reasonble. | 03:12 | |
03:12
bonsaikitten joined
03:13
kshannon joined,
xenoterracide joined,
JimmyZ_ joined,
prammer_ joined,
araujo left,
DrEeevil left,
salv01 left,
bruges left,
mattp_ left,
masak left,
noxgirl left,
kshannon_ left
03:14
autumn joined,
mattp_ joined
03:18
araujo_ joined,
araujo_ left,
masak joined,
Util joined
03:22
stevan_ joined
03:23
stevan_ left,
stevan_ joined
03:25
stevan__ left,
stevan_ left
03:26
stevan_ joined
03:27
araujo joined
03:28
salv0 joined
|
|||
dalek | p: f6e2b7b | Mouq++ | docs/ops.markdown: Add Array opcodes to ops.markdown. nqp::splice not documented Someone who knows what they're talking about should document splice. |
03:38 | |
p: 5b1a452 | Mouq++ | docs/ops.markdown: [ops.markdown] s/$b/$v/ |
|||
p: 3c4f80a | Mouq++ | docs/nqp-opcode.txt: Remove ops documented from nqp-opcodes.txt |
|||
p: 677b1f1 | Mouq++ | docs/ops.markdown: [ops.markdown] (int %hash…) etc doesn't make sense |
|||
p: 1189dd6 | jimmy++ | docs/ (2 files): Merge pull request #132 from Mouq/master Add Array opcodes to ops.markdown |
|||
Mouq | Thanks JimmyZ | 03:39 | |
Mouq → bed | |||
JimmyZ_ | good night | 03:40 | |
03:40
JimmyZ_ is now known as JimmyZ
03:41
panchiniak_ left
03:45
Mouq left
04:02
BenGoldberg left
04:27
fridim__ left
04:44
slavik left
04:55
btyler left
04:58
xenoterracide left,
slavik joined
05:14
FROGGS joined
05:18
FROGGS left
|
|||
moritz | good morning | 05:42 | |
I have given Mouq++ an NQP commit bit | |||
JimmyZ | morning | 05:45 | |
05:52
denis_boyun joined
05:56
denis_boyun__ joined
05:57
denis_boyun left
06:28
pernatiy joined
06:29
kaleem joined
06:33
FROGGS joined
06:39
slavik left
06:40
FROGGS left,
slavik joined
06:41
slavik left
06:51
slavik joined,
FROGGS joined
|
|||
FROGGS | o/ | 06:54 | |
07:02
woolfy joined,
pernatiy left
07:08
rindolf joined
07:09
zakharyas joined
07:10
dayangkun joined
07:12
domidumont joined
07:19
sqirrel joined
|
|||
masak | morning, #perl6 | 07:24 | |
07:26
GlitchMr left
|
|||
moritz | \o masak, FROGGS, * | 07:27 | |
FROGGS | morning :o) | ||
07:28
GlitchMr joined
07:37
jlaire joined,
domidumont left
07:38
domidumont joined
07:40
jlaire left
|
|||
nwc10 wonders how scary jnthn's alarm clock is today | 07:40 | ||
07:41
denis_boyun__ left
07:47
mberends joined
07:54
dmol joined
08:01
frettled joined
08:05
yeltzooo joined
08:16
sqirrel left
08:20
connectanot joined
08:21
connectanot left
08:22
yeltzooo6 left
08:25
dmol left
|
|||
hoelzro | timotimo: yes | 08:34 | |
(also, good morning #perl6) | |||
08:34
SamuraiJack joined
08:35
trnh joined
08:39
bruges_ left
08:43
GlitchMr left
|
|||
masak | nwc10: not so scary, it would seem :) | 08:45 | |
08:46
GlitchMr joined
|
|||
nwc10 | it's still morning. There's hope yet | 08:47 | |
jnthn | morning o/ | 08:48 | |
Didn't set alarm today :) | |||
Wanted to get lots of sleep, 'cus I know I gotta be at the airport by 7am tomorrow... :) | 08:49 | ||
nwc10 | 7am. Yuk | ||
hoelzro | can I haz rakudo commit bit? I'm rolling that failing case into a test file for the repository | 08:53 | |
hmm | |||
tadzik | hoelzro: did you send the CLA? | ||
hoelzro | maybe I should check roast for an analogous test first, though... | ||
moritz | hoelzro: we don't hand out rakudo commit bits as liberally as for other repos | ||
hoelzro | ah | ||
moritz | hoelzro: you need to sign the CLA, and send in a few good patches | ||
until then you have to send old-fashioned patches or pull requests | 08:54 | ||
tadzik | I believe hoelzro's got the second point covered | ||
hoelzro | oh, ok | ||
it's not imperative | |||
whoa | 08:55 | ||
I just typed '$?VM' into rakudo-jvm (the REPL) and it freaked out | |||
tadzik | :) | ||
I believe $*VM works | |||
08:55
GlitchMr left
|
|||
hoelzro | try $?VM; see if you see what I saw | 08:55 | |
because it's crazy | 08:56 | ||
tadzik | but here's exception | ||
so throw me maybe | |||
I'm sorry | |||
hoelzro | hahaha | ||
masak | tadzik++ | 08:57 | |
08:57
dakkar joined
09:02
GlitchMr joined
09:04
daxim joined
09:09
GlitchMr left
09:10
GlitchMr joined
09:12
huf joined
09:20
pernatiy joined
|
|||
masak | rn: say "1a23b45c6" ~~ / [ \d <( <[abc]> )> \d ]+ / | 09:21 | |
camelia | rakudo 223075: OUTPUT«「c」» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«「a」» | |||
masak | I would like to make a case for the correct reply here being 「abc」. | ||
thoughts? | |||
jnthn | :/ | ||
Not sure how what'd work | 09:22 | ||
*that'd | |||
masak | the fact that Rakudo and Niecza disagree is interesting on its own. | ||
OK, let's start with the conservative option, then: the above is disallowed. | |||
or, more generally, <( )> inside a quantifier is disallowed. | 09:23 | ||
jnthn | Thing is, quantified things typically result in an array | ||
But here we're talking about the top-level Match... | |||
09:23
GlitchMr left
|
|||
masak | yeah. | 09:23 | |
I'm pretty sure there is a wonderful, correct answer. but I don't quite see it now. | |||
jnthn | Which is why I'm not sure what to do... | ||
masak | anyway, OK if I submit rakudobug for not following the conservative option? | 09:24 | |
09:24
pmurias joined
|
|||
dalek | kudo-js: b55521f | (Pawel Murias)++ | / (11 files): Make nqp-compiler.js pass a bunch of tests (using a cross compiled setting). Add NQP::Compiler, HLL::Compiler to nqp-compiler.nqp. Support negative indexes in array lookup e.g. @foo[-1]. Implement nqp::islt_s. Implement nqp::radix. Implement nqp::ctxlexpad. Implement nqp::ctxouter. Stub nqp::lexprim. Implement iterating over contexts. Set WHO for knowhow STables. Hashes numify to their number of elements. Hack to allow numfixing nulls. Make nqp::unshift work on type objects. Implement nqp::preinc and nqp::predec. Disable broken static vars inlining. |
09:24 | |
09:25
GlitchMr joined
|
|||
moritz | IMHO we should forbid <( and )> inside a quantifier | 09:25 | |
jnthn | masak: Maybe a spec ticket, if the spec doesn't alrady say (no, I didn't check...) | ||
masak: Would prefer we file Rakudo bugs based on spec'd stuff, so spec ticket feels better to track the issue, then file a Rakudo one when the spec one is resolved. | 09:26 | ||
masak | jnthn: gotcha. filing. | 09:28 | |
jnthn | I just looked through all mentions of <( in S05 and don't see any wording on it being inside a quantified thingy. | ||
masak | *nod* | ||
moritz | or more general | 09:29 | |
repeated use of <( | |||
nr: say 'abc' ~~ /a<(b<(c/ | |||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«「bc」» | ||
..rakudo 223075: OUTPUT«「c」» | |||
moritz | same problem | ||
niezca takes the first one, rakudo the last one | 09:30 | ||
FROGGS | nr: say 'abc' ~~ /a)>b<(c/ | ||
camelia | rakudo 223075: OUTPUT«#<failed match>» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Cannot be negative.Parameter name: length at System.String.Substring (Int32 startIndex, Int32 length) [0x00000] in <filename unknown>:0  at Niecza.CtxMatchStr.Get (Niecza.Variable obj) [0x00…» | |||
09:31
fhelmberger joined
|
|||
masak | github.com/perl6/specs/issues/60 | 09:33 | |
09:33
pernatiy left
|
|||
moritz | masak++ | 09:33 | |
09:36
SamuraiJack_ joined,
fhelmberger_ joined
|
|||
masak | rn: say "abc\n" ~~ /abc\n^^/ # why doesn't this match? | 09:37 | |
camelia | rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«Nil» | ||
09:37
fhelmberger left
|
|||
moritz | rn: say "abc\n\n" ~~ /abc\n^^/ | 09:37 | |
FROGGS | ha, you included my rediculous example *g* | ||
camelia | rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«「abc」» | ||
moritz | masak: because there is neither a line after the \n, nor the start of the string | ||
masak | isn't the position at the end of my string the beginning of an (empty) line? | 09:38 | |
09:38
SamuraiJack left
|
|||
moritz | masak: an empty line would be "\n", not "" | 09:39 | |
p5eval: "abc\n" =~ /abc\n^/m | |||
p5eval | moritz: No output | ||
masak | moritz: you're saying lines are \n-terminated, not \n-separated? | ||
...and whatever comes after the last \n is *not a line*? | |||
FROGGS | well, there is nothing | 09:40 | |
moritz | hm | ||
p5eval: "abc\na" =~ /abc\n^/m | |||
p5eval | moritz: 1 | ||
moritz | huh | ||
erm | |||
I call this inconsistent | |||
Perl 6 is consistent with Perl 5 here | |||
and both are inconsistent in themselves | |||
masak | fwiw, I was parsing a file when all this struck me. | 09:41 | |
currently trying to make the grammar work against all the cases. | |||
will need to write tests for the grammar. :) | |||
nwc10 | I don't think that you should assume that Perl 5 is right, or good | 09:42 | |
09:42
dayangkun left,
cognominal left
|
|||
nwc10 | just because it's been paying for the party for the past decade or two | 09:42 | |
09:42
cognominal__ joined
|
|||
moritz | sure | 09:43 | |
masak | well, of course. | ||
moritz | just wanted to check, because often p5 regexes behavior *is* well thought-out | ||
masak | aye. | ||
here's my mental model, fwiw: a "line" is any maximal run of characters that don't contain a logical \n. thus ^^ at the end of a string that finishes with a "\n", should match. | 09:44 | ||
moritz | agreed | 09:45 | |
masak | in defense of this interpretation, I'd also like to point out that there's absoltely nothing that says a (text) file has to end in a "\n". | 09:46 | |
(and thus that final "\n" doesn't so much end the previous line, as it begins a new one) | |||
moritz | there is something | ||
two decades of UNIX tradition | 09:47 | ||
(not saying that's valid, just that it exists) | |||
09:47
bruges joined
|
|||
masak | indeed -- not contesting that there is tradition. | 09:47 | |
but I've also seen plenty of files not containing that final newline. | 09:48 | ||
btw, all this reminds me about the special case put into Perl 5's &split. | |||
feels like the same issue twice in slightly different guise. | |||
moritz | "the" special case? you mean there's just one? :-) | 09:49 | |
masak | $ perl -E 'say for split /\|/, "a|b|c|"' | 09:50 | |
a | |||
b | |||
c | |||
that one. | |||
the one that says "the last delimited doesn't count if there's nothing after it". | 09:51 | ||
delimiter* | |||
moritz | trailing empty elements are removed from split's output | ||
unless you add a -1 as limit | |||
masak | that's what I mean. | ||
it doesn't happen for leading empty elements. | |||
anyway, taking the delimiter as \n, we basically have our current case. | |||
rn: .say for "a|b|".split('|') | 09:56 | ||
camelia | rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«ab» | ||
masak | Perl 6 does *not* have the special case. | ||
shouldn't for newlines either. | 09:57 | ||
...for newlines in grammars, I mean. | |||
10:00
fhelmberger_ left,
fhelmberger joined
|
|||
FROGGS | masak: you have convinced me fwiw | 10:00 | |
masak submits rakudobug | |||
10:04
risou_awy is now known as risou
10:07
risou is now known as risou_awy
|
|||
masak .oO( that brief moment when you look at the last line of PgUp'd backlog, and go "but moritz, we talked about this already? why bring it up again!?" ) :P | 10:07 | ||
s/\?/./ | 10:08 | ||
moritz | why do we have a file src/core/Any2.pm | ||
jnthn | hm, I thought we only had that in a branch... | ||
moritz | ah, it seems to be a pseudo-Any stuff | 10:09 | |
jnthn: a branch named nom :-) | |||
jnthn | Part of the postcircumfix refactors, anyways | ||
ah, I thought lizmat was keeping it more segregated than that... | |||
Anyway, it's temporary. | |||
masak | & | 10:10 | |
10:15
risou_awy is now known as risou,
fhelmberger_ joined
10:16
denis_boyun joined
|
|||
hoelzro | what are the roast/integration tests for? | 10:17 | |
just general failures that we find and and test for regressions? | |||
10:18
fhelmberger left
|
|||
jnthn | hoelzro: Tests that exercise multiple features together | 10:19 | |
hoelzro | ok | ||
I'm just wondering where this belongs: gist.github.com/hoelzro/6607190 | |||
hoelzro filed rakudobug | 10:28 | ||
we'll sort it out later | |||
10:37
domidumont left
|
|||
dalek | kudo-js: aa5c92c | (Pawel Murias)++ | runtime.js: Fix nqp::isne_s. This was causing a bug in the precedence parses in nqp-on-js. |
10:39 | |
10:43
FROGGS left
10:44
risou is now known as risou_awy
10:49
rindolf left
10:50
rindolf joined,
ssutch left
10:55
GlitchMr left
10:58
GlitchMr joined
11:10
GlitchMr left,
GlitchMr joined
11:15
GlitchMr left
11:17
denis_boyun left
11:18
GlitchMr joined
11:24
fhelmberger_ left
11:31
pernatiy joined
11:33
GlitchMr left
11:34
denis_boyun joined,
GlitchMr joined
11:37
ksh left
|
|||
masak waves from a train! | 11:38 | ||
moritz trains from a wave | |||
11:38
daniel-s left
|
|||
tadzik traves from a wain | 11:39 | ||
moritz | .. in vain! | ||
masak .oO( always in this vein ) | 11:42 | ||
11:49
domidumont joined
|
|||
pmurias | jnthn: I don't fully undestand nqp::freshcoderef, it seems to clone the code ref and it's static how does the latter change? | 11:54 | |
yoleaux | 00:02Z <[Coke]> pmurias: I'm just using a shotgun here. Feel Free to fix any of my stupids. (esp in re: the _I variants which I know are wrong) | ||
jnthn | pmurias: iirc, iIt's used to make sure the serializer knows the diference between different coderefs rather than them all being closure clones of the thunk on NQP::World or Perl6::World. | 11:59 | |
11:59
jnap joined
12:06
iSlug joined,
iSlug left
12:07
ksh joined,
FROGGS joined
12:09
denis_boyun left
12:11
alester left,
PZt left
12:12
rindolf left,
PZt joined,
rindolf joined
12:16
PZt left
12:17
PZt joined
12:19
iSlug joined
12:24
GlitchMr left
12:26
GlitchMr joined,
isBEKaml joined
12:30
GlitchMr left,
isBEKaml left
12:32
GlitchMr joined
12:35
isBEKaml joined
12:37
denis_boyun joined
12:42
isBEKaml left
12:48
fridim__ joined
12:50
rindolf left
12:51
rindolf joined,
kbaker joined
12:52
SamuraiJack_ left
12:54
fridim__ left
12:56
iSlug left
13:00
huf left,
huf joined
13:02
prevost joined
13:03
lizmat joined
|
|||
mberends | o/ lizmat | 13:11 | |
lizmat | mberends o/ | ||
moritz | \o mberends, long time no see | 13:12 | |
mberends | aye, nice to see you again :-) | ||
lizmat | too bad the two of you didn't meet at the RaNIW :-( | 13:13 | |
nwc10 | have to have another one. Obviously. | ||
lizmat | nwc10: will you attend then ? | 13:14 | |
nwc10 | probably not. still. | ||
lizmat | .oO( one reason less to organize another one) |
||
;-) | 13:15 | ||
13:16
ajr joined,
ajr is now known as Guest70625,
Guest70625 is now known as ajr_
13:28
kaleem left
13:33
prevost left
13:36
flussence left,
flussence joined
|
|||
lizmat | moritz, jnthn: re: irclog.perlgeek.de/perl6/2013-09-18#i_7601349 it's already gone in my repo, but waiting to commit until after the release | 13:37 | |
lizmat caught up on yesterdays/todays backlog and wonders whether she should look at the past weekend's backlog | 13:38 | ||
moritz | lizmat: would you mind pushing it into a branch? | 13:39 | |
lizmat | I guess I could | ||
without the upcoming release, I would have committed it already | |||
moritz | oh right, tomorrow is rakudoday! | 13:43 | |
13:45
prevost joined
|
|||
dalek | kudo/method2sub: 031ff96 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files): Change op generation for [] and {} from method to sub |
13:46 | |
kudo/method2sub: 1cd2597 | (Elizabeth Mattijsen)++ | / (4 files): Remove method [] and {} handling, merge Any2 into Any again Still needs implementation of []:exists and {}:delete |
|||
13:47
denis_boyun left,
integral_ is now known as integral
|
|||
moritz | lizmat++ | 13:47 | |
lizmat | please also note that when this gets merged, we will need to implement lift | 13:49 | |
because classes will not be able to simply override [] and {} no more | |||
*any more | |||
jnthn | We need to implement lift at some point anyway. :) | ||
I highly doubt this case is any worse than the operator case, though. | 13:50 | ||
Mostly I've seen people just override the single element case | |||
13:51
xenoterracide joined
13:53
ksh left
13:57
lizmat left
|
|||
pmurias | which unicode version does nqp supprt (for codepointfromname) | 13:59 | |
13:59
lizmat joined
|
|||
timotimo | it relies on the underlying backend i believe | 14:01 | |
jnthn | Probably varies by backend. | ||
timotimo | so on parrot the icu version you linked against, moarvm has the super optimized self-made database thingie, JVM has whatever JVM has | 14:02 | |
jnthn | Or with Parrot, even by which version of ICU is used, I guess. | ||
The MoarVM one gets all its data from the standard UCD, I think at 6.0 was used to generate the current .c/.h etc. | 14:04 | ||
14:07
jnap left
|
|||
colomon | lift! lift! lift! | 14:08 | |
timotimo | is that like "chug! chug! chug!"? | 14:09 | |
moritz | lift will totally trash inlining and other compile time optimizations | ||
timotimo | yeah, there'll be much to be done with JITs i fear :| | 14:10 | |
14:10
grondilu joined
|
|||
moritz | and the problem is that we need to do use lift virtually everywhere where operators are used in the setting | 14:10 | |
which is, like, everywhere | |||
jnthn | Wait, what? | ||
If you inline something that lifts, you throw away the lift. | |||
And job done. | |||
timotimo | oh, huh | ||
jnthn | 'cus you're already in the caller's lexical scope. | 14:11 | |
moritz category error | |||
just to make sure we're talking about the same thing | |||
sub do_something($a, $b) { lift &infix:<+>; return $a + $b } | 14:12 | ||
that uses the caller's &infix:<+>, right? | |||
let's rather use | |||
sub do_something(Int $a, Int $b) { lift &infix:<+>; return $a + $b } | |||
so the optimizer inlines the infix:<+>(Int, Int), because it knows that $a and $b are both Int | 14:13 | ||
and the caller has an infix:<+> for subtypes of Int | |||
and then the lift has no effect anymore | |||
WAT? | |||
or did I misunderstand lift? | 14:14 | ||
commute& | |||
14:14
ajr_ left
|
|||
timotimo | i think what jnthn means with "inline something that lifts" and "throwing away the lift" refers to inlining that do_something into the caller | 14:15 | |
jnthn | timotimo: yes | 14:16 | |
14:16
ajr joined
|
|||
jnthn | Inlining a thing with a lifted op is a problem, I agree. | 14:16 | |
14:16
ajr is now known as Guest68027
14:17
ksh joined
|
|||
jnthn | I was thinking about inlining of things that inside of them use lift. | 14:17 | |
14:17
btyler joined,
Guest68027 is now known as ajr_
14:20
alester joined
|
|||
pmurias | shouldn't it be sub do_something($a,$b) { return lift $a + $b }? | 14:21 | |
as "lift &infix:<+>;" is a noop | |||
timotimo | ah, that's how it's used, yes | 14:22 | |
pmurias | is it allowed to use lift outside of a multi? | 14:23 | |
timotimo | why wouldn't it be? | ||
oh | 14:24 | ||
lift allows access to lexicals without requiring variables to be defined "is dynamic"? | |||
pmurias | yes | ||
timotimo | there goes my lexical-to-local transformation optimisation for rakudo. | ||
pmurias | that's what I thought while reading the lift spec ;) | 14:25 | |
dalek | p: 42dde67 | jimmy++ | src/vm/parrot/ops/nqp.ops: removed unused codes |
14:26 | |
p: 034ed97 | jonathan++ | src/vm/parrot/ops/nqp.ops: Merge pull request #108 from zhuomingliang/master removed dead code |
|||
pmurias | timotimo: if you could detect lift usage you could salvadge the optimisation | 14:27 | |
dalek | p: a67c607 | (Peter Rabbitson)++ | tools/lib/NQP/Configure.pm: Saner git pull address The http:// is more likely to work in limited environments, hence it will work for more people trying to compile with --gen-X |
||
p: 9416e3b | (Peter Rabbitson)++ | src/NQP/Grammar.nqp: Remove parasithic lookaheads According to jnthn leftovers from when the LTM wasn't too smart |
|||
p: f9578fe | jonathan++ | / (2 files): Merge pull request #128 from ribasushi/sanificationz Some minor grammar nit (vers 2) |
|||
pmurias | sanificationz++ | 14:28 | |
timotimo | pmurias: but what if out of nowhere a new sub enters the picture and destroys everything! :( | ||
jnthn | pmurias: Didn't check the spec, but I'd hope it's only lifting calls, not variable access... | ||
timotimo | no, it lifts variable access, too | ||
jnthn | dammit | 14:29 | |
Well, we didn't implement that bit of spec yet anyways. | |||
pmurias | heh | ||
jnthn | I'll happily push for limiting it. | ||
timotimo | me, too :) | ||
jnthn checks exactly what is said | |||
timotimo | perlcabal.org/syn/S04.html#The_lift...ent_prefix | 14:30 | |
oh, i misread! | |||
14:30
fhelmberger joined
|
|||
pmurias | timotimo: what did you misread? | 14:31 | |
timotimo | "these are taken at face value" | 14:32 | |
jnthn wonders exactly what this means: | |||
Note that in each piece of lifted code there are references to | |||
variables defined in the multi, such as C<$a>, C<$b>, and C<&f>. | |||
These are taken at face value. | |||
pmurias | my understanding is that if you define something in the multi it takes precedence over the stuff from your callers lexical scope | 14:33 | |
jnthn | I think it may only be talking about variables defined in the multi, not variables in general? | ||
pmurias | yes | ||
if we defined a &infix:<+> in the multi it also would be taken at face value | |||
jnthn | Right | 14:34 | |
I'm not sure why lift should do anything about variables. | |||
That is, I thought the point was entirely about operators. | |||
timotimo | i can't think of a good use case | ||
pmurias | aren't subroutines just variables with a fancy sigil | ||
? | |||
jnthn | Sure. | ||
timotimo | i wouldn't call it sigil o_O | ||
pmurias | the & sigil | ||
jnthn | And contextuals are just variables with a * twigil, and attributes are just variables with a ! sigil | 14:35 | |
timotimo | all subroutines have the & sigil | ||
jnthn | But we handle both of those very differently. :) | ||
timotimo | oh, i misread *again* | ||
i thought you said "operators are subs with a fancy sigil" | |||
pmurias | yes, because they have a twigil, which causes strange effects | ||
jnthn | Anyway, we probably want to look at constraining lift... | 14:36 | |
If nothing else, I don't have to implement it in NQP. :) | |||
So we can always do the lexical -> local optimization there :) | |||
pmurias | can lift be use in multi methods? | ||
s/use/used/ | |||
jnthn | Yeah. Which also raises interesting questions. :) | 14:37 | |
'cus if it's called via the proto then the proto's frame is on the stack. | |||
But for the sub case auto-generated protos are inlined. | |||
14:37
lichtkind joined
|
|||
jnthn | So "caller" varies :) | 14:37 | |
Anyway, we can see what TimToady thinks. It's possible the lift definition sucking in ordinary variables rather than just callable things isn't intended or is no longer desired | 14:38 | ||
I spot one example also does Str::leg, which is almost certainly wrong nowadays :) | 14:39 | ||
pmurias | if lift is only used in multi subs and not multi methods then we could analyse it to an extent | ||
lizmat | pmurias: and multi subs is where they seem to be needed most atm | 14:42 | |
14:46
amkrankruleuen left,
amkrankruleuen joined,
amkrankruleuen left,
amkrankruleuen joined
14:49
krokite left
14:57
jnap joined
14:58
grondilu left
|
|||
TimToady is having trouble lifting his eyelids | 14:59 | ||
timotimo | chug some coffee? | 15:00 | |
TimToady | you mean chug moar coffee | ||
15:01
berekuk joined
|
|||
dalek | ecs: 710337e | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod: Sanitize @.delete|exists to define existence as being different from default |
15:01 | |
lizmat | TimToady: just unlifted the meaning of @.exists and @.delete | ||
can methods be "is export" , and if so, what does that mean ? | 15:02 | ||
dalek | kudo-js: 5192fbb | (Pawel Murias)++ | / (4 files): Implement nqp::codepointfromname. |
||
15:03
dmol joined
|
|||
pmurias | TimToady: could you clarify some things about lift? is it possible to use it from inside a multi method (as opposed to a multi sub), and from inside a sub? | 15:04 | |
jnthn | lizmat: Yes, they are exported as if they were subs... | ||
masak | rn: class A { method foo is export { say "OH HAI" }; foo(A.new) | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Unable to parse block at /tmp/bnlAwA_a3m line 1:------> class A {⏏ method foo is export { say "OH HAI" }; Couldn't find final '}'; gave up at /tmp/bnlAwA_a3m line 1 (EOF):------> o is export { …» | ||
..rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/4J_02QaA2tUnable to parse expression in block; couldn't find final '}'at /tmp/4J_02QaA2t:1------> o is export { say "OH HAI" }; foo(A.new)⏏<EOL> expecting any of: postfi…» | |||
masak | rn: class A { method foo is export { say "OH HAI" } }; foo(A.new) | ||
camelia | rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/G3LN7_vTzTUndeclared routine: foo used at line 1» | 15:05 | |
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Undeclared routine: 'foo' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36)  at /…» | |||
masak | er. I guess I have to import it too. | ||
can that be done through p6eval? or do I need a .pm file? | |||
jnthn | rn: class A { method foo is export { say "OH HAI" } }; import A; foo(A.new) | ||
camelia | rakudo 223075: OUTPUT«OH HAI» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Action method statement_control:import not yet implemented at /tmp/p321B1ZZ6k line 1:------> o is export { say "OH HAI" } }; import A⏏; foo(A.new)Unhandled exception: Unable to resolve method statem…» | |||
TimToady | lizmat: S12:1383 talks about exporting methods | ||
synopsebot | Link: perlcabal.org/syn/S12.html#line_1383 | ||
pmurias | TimToady: and are normal $ sigiled variables accesible through lift (without an is dynamic on them) | ||
? | |||
TimToady | pmurias: not awake enough to think about lift yet | 15:06 | |
timotimo | lifting ought to wake you up a bit :) | ||
15:07
jnap left
|
|||
masak | TimToady: when you're awake enough, it'd be nice to get some kind of ruling (or weighing in) on github.com/perl6/specs/issues/60. | 15:09 | |
TimToady: also, why do we have S05:792 but not the special case in split from Perl 5? | 15:11 | ||
synopsebot | Link: perlcabal.org/syn/S05.html#line_792 | ||
15:11
jnap joined
|
|||
lizmat | and finally UPS delivers our Rakudo Perl 6 tuits with a full-color Camelia on them | 15:12 | |
moritz | masak: because we don't use split in such cases, but comb | ||
TimToady | well, split(/^/) turned into lines() | 15:13 | |
timotimo | today i'll be attending a perl mongers meeting \o/ | 15:15 | |
tadzik | \o/ | 15:16 | |
moritz | tadzik: have fun! | ||
lizmat | timotimo: Karlsruhe.pm | ||
? | 15:17 | ||
tadzik | moritz: thanks! :) | ||
timotimo | indeed | 15:18 | |
(they are apparently not yet .compose'd) | |||
lizmat | :-) | 15:19 | |
timotimo | but i'll be giving them perl community tuits | ||
that ought to help | |||
lizmat | hehe | ||
tadzik | timotimo: if you see pari, please slap him from me :) | 15:21 | |
timotimo | is that supposed to be a friendly slap, or more like a mafia type of slap? | 15:22 | |
tadzik | more like "obtw, tadzik slaps you" | 15:23 | |
timotimo | how do i know it's pari? | 15:24 | |
tadzik | maybe not slap him literally ;) | ||
hm | |||
timotimo | i will lexically slap him :) | ||
15:27
mberends left
|
|||
tadzik | :) | 15:27 | |
15:29
skids joined
|
|||
masak | moritz: split and comb were two sides of the same coin, and which one to use depends on whether content or separator is easier to describe. | 15:31 | |
tadzik | lizmat: wooah | ||
pics? | |||
(of tuits) | |||
timotimo | whoa, full-color?! i thought it would be b&w like all other tuits | 15:32 | |
pics please! | |||
lizmat | woolfy's working on pictures | ||
woolfy | Yeah yeah, hold your horses. I'm just our of bed and my feet are cold. :-) | 15:33 | |
timotimo | beh, cold feet are the worst | ||
masak .oO( cold sausage is the wurst ) | 15:34 | ||
detrain & | 15:35 | ||
15:35
fhelmberger left
15:41
mberends joined
15:46
prevost left
|
|||
tadzik | fun fact: in python, backtrace is spelled traceback | 15:48 | |
timotimo | at least it's a simple to spot anagram | 15:49 | |
not something like "kellerabzug" | |||
tadzik | it's like their ",".join(list) | ||
15:55
prevost joined
|
|||
arnsholt | Join being a method on Str in Python annoys me | 15:59 | |
Feels much more natural for it to be on lists | |||
sjohnson | how comes? | ||
oh right. | |||
daxim | perl6: [0..9].reverse.join(",").say | 16:00 | |
camelia | rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«9,8,7,6,5,4,3,2,1,0» | ||
daxim | pugs: [0..9].reverse.join(",").say | 16:01 | |
camelia | pugs: OUTPUT«9,8,7,6,5,4,3,2,1,0» | ||
16:01
daxim left
16:03
Ulti left
|
|||
arnsholt | sjohnson: Yeah, it's mostly a Perl-ism | 16:03 | |
Heck, now that I think about it, it -is- join(',', @list) in Perl 5 | 16:04 | ||
TimToady | P6 too, for endweight considerations | 16:05 | |
sjohnson | not sure why PHP decided to change join/split to implode/explode respectively. | 16:06 | |
i have to use a visual mneumonic of stuff blowing up to remember it. | |||
woolfy | So you want to pictures of the Camelia Tuits? The ones that came in today? | ||
Well, I just made a few. Now on my Flickr page. | |||
www.flickr.com/photos/wendyga/sets/...619932186/ | |||
TimToady | sjohnson: prior art from other languages, I believe | ||
algol maybe | 16:07 | ||
16:07
ajr_ left
|
|||
sjohnson | hmm, interesting they had that technology for some of the older languages. | 16:07 | |
benabik | woolfy++ | ||
geekosaur | implode/explode is lisp | ||
arnsholt | woolfy: Oh, cool! | 16:08 | |
geekosaur | (maclisp at least) | ||
timotimo | that is beautiful. | ||
arnsholt wants | |||
TimToady | obviously php is more like lisp than perl... :) | ||
16:08
ajr joined
|
|||
FROGGS | sjohnson: implode/explode just take a string as delimiter instead of a regex, that is the difference | 16:08 | |
woolfy | Want some of those Tuits? Meet me somewhere... :-) | ||
16:08
ajr is now known as Guest3527
|
|||
FROGGS | sjohnson: and in php you have to put a regex into a string, so it makes sense to have some different sub for saying: "I want to split by a string" | 16:09 | |
sjohnson | FROGGS: not to mention preg_split and the like... | ||
a lot to remember! | |||
FROGGS: i just keep forgetting which is which, implode, explode.. hence the visual mneumonic. | 16:10 | ||
JimmyZ | woolfy++ | 16:11 | |
TimToady | asplode should do explode then return the bits in random order | 16:12 | |
16:15
Guest3527 is now known as ajr_
|
|||
FROGGS | sjohnson: true | 16:18 | |
16:19
Ulti joined,
Ulti left
|
|||
FROGGS | and asplode should have another uncommon signature then | 16:19 | |
TimToady suspects it only really works on type Brain | |||
FROGGS | like: asplode(limit, delim, string) or so | ||
benabik | limit.asplode(string, delim) | 16:20 | |
TimToady | there is no limit on asploding branes | ||
16:20
Ulti joined
|
|||
TimToady | they always asplode completely | 16:20 | |
PerlJam | I find it really weird that I was in a meeting a few minutes ago talking about implode/explode/asplode and now when I look on IRC, you guys were talking about them too | 16:22 | |
FROGGS | we were all there O.o | 16:23 | |
mberends | woolfy++: very nice :-) | 16:26 | |
Ulti | does .asplode break things into a byte array? | ||
JimmyZ | It's a coincidence | ||
mberends | some MoarVM hackers might find this C macro cross reference useful: gist.github.com/mberends/6606401 | 16:28 | |
FROGGS | woolfy: nice!! | ||
mberends++ | 16:29 | ||
benabik | mberends++ | ||
PerlJam | mberends: is that document the start of moarguts? :) | ||
mberends | :) hopefully... | ||
dalek | kudo/nom: 20854f0 | (Elizabeth Mattijsen)++ | src/core/List.pm: Simplify List.at_pos so that it doesn't refer to .exists anymore This is needed because at_pos will be needed by .exists in the future |
16:30 | |
jnthn | It...it will? | 16:32 | |
16:35
jnap left
16:37
denis_boyun joined
|
|||
lizmat | well, exists needs to determine whether the value is equal to the dafault | 16:38 | |
*default | |||
if the index provided is in range and the self is DEFINITE | 16:39 | ||
*or* we need a bit for each element in a list to check whether it exists | |||
jnthn | I thought we were gonna use nqp::null() as a magical value for that :) | 16:40 | |
lizmat tries to recall the discussion but fails | 16:43 | ||
16:44
ssutch joined
|
|||
lizmat | r: my $a = nqp::null | 16:44 | |
camelia | rakudo 223075: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in block at /tmp/5jEv0AVCxX:1» | ||
16:48
dakkar left
16:49
prammer_ is now known as prammer
|
|||
lizmat | r: my @a=0..10; @a.delete(0); say @a.exists(0) # jnthn: exists/delete currently broken on [] | 16:49 | |
camelia | rakudo 223075: OUTPUT«True» | ||
lizmat | r: my @a=0..10; say @a.elems; @a.delete(10); say @a.elems; say @a.exists(10) # jnthn: only time exists/delete works | 16:50 | |
camelia | rakudo 223075: OUTPUT«1110False» | ||
TimToady suspects that existence is a more basic concept than defaultness, but maybe that's because he is not a Platonist | 16:51 | ||
16:51
trnh left
|
|||
lizmat | r: my @a is default(42); say @a[1000] | 16:52 | |
camelia | rakudo 223075: OUTPUT«42» | ||
lizmat | does @a[1000] exist or not? | 16:53 | |
TimToady | no | ||
benabik | It's not unusual to say that if @a[1] exists, then @a[0] also exists. | 16:54 | |
TimToady | r: my @a is default(42); @a[582] = 42; say @a[582]; # but this does | ||
camelia | rakudo 223075: OUTPUT«42» | ||
16:54
zakharyas left
|
|||
jnthn | Right, so it's not just default value | 16:54 | |
lizmat: not =, but := | |||
TimToady | inverting those implies that it's impossible to set a value to the default without deleting it | 16:55 | |
jnthn | aye | ||
TimToady | but those are specialized semantics for KeyHashes | ||
we don't want to inflict those semantics on every Array/Hash | 16:56 | ||
16:56
denis_boyun left,
pernatiy left
16:57
denis_boyun joined
|
|||
lizmat | on Hashes, we don't need to | 16:57 | |
because we can check for the existence of the key | |||
but in Arrays, how do we check for existence of the index? | |||
just 0 .. @array.end ? | 16:58 | ||
TimToady | by whether the slot is null or a pointer to something | ||
jnthn | lizmat: $idx < nqp::elems($!storage) && !nqp::isnull(nqp::atpos($!storage, $idx)) or so | ||
In fact, you can skip the first check | |||
As it's done inside the repr | 16:59 | ||
lizmat | ok, will try that | ||
jnthn | And delete should nqp::bindpos($!storage, $idx-to-delete, nqp::null()) or so | ||
And I guess then shorten if we delete at the end. | |||
lizmat | ok | ||
jnthn | nqp::pop($!storage) while $!storage && nqp::isnull(nqp::atpos($!storage, nqp::elems($!storage) - 1)); # or so | 17:00 | |
dalek | kudo/nom: c2f7f74 | (Elizabeth Mattijsen)++ | src/core/List.pm: This approach was the wrong way :-) Nothing like commit driven discussion :-) This reverts commit 20854f0bf9f60215df876405bcc81e6d870cc832. |
17:01 | |
17:03
krokite joined
|
|||
TimToady | we've done remarkably well at keeping the flaming egos out of Perl 6 development :) | 17:04 | |
well, except for mine... :) | |||
woolfy | lizmat is listening to www.youtube.com/watch?v=2rjbtsX7twc and says "cool" (ok, nothing to do with P6) | 17:06 | |
diakopter | some peoples' egos overflow and wraparound | ||
PerlJam | woolfy: heh! | 17:08 | |
diakopter | Infinities will make you cry | ||
Kiss your fields goodbye | 17:09 | ||
woolfy | I am a bit sorry (hehe, not really) for taking away so many minutes of productivity from Perl 6 heroes... | ||
17:11
pmurias left
17:13
jnap joined
17:15
SamuraiJack_ joined
17:19
SamuraiJack__ joined
17:21
SamuraiJack_ left
17:22
kaleem joined
|
|||
lizmat | jnthn: seems the "$idx < nqp::elems($!storage)" is needed: QRPA: index out of bounds | 17:22 | |
in method exists at src/gen/CORE.setting:7664 | |||
in t/spec/S02-types/array_extending.t | |||
d^_^b | so is rakudo all I need to start writing Perl6? | 17:23 | |
err rakudo star* | |||
lizmat | I would say yes to that | ||
d^_^b I am also johnny5_ btw among other nicks | 17:24 | ||
lizmat | jnthn: apparently for negative indexes | ||
d^_^b this is my vps account. | |||
lizmat: k | |||
lizmat | jnthn: $ perl6 -e 'my @a; say @a.exists(-1)' | 17:25 | |
QRPA: index out of bounds | |||
should this be fixed at the nqp::at_pos level ? | |||
I guess it is :-) | |||
17:26
spider-mario joined
|
|||
jnthn | lizmat: Hmm... For now I'd go with checking $idx >= 0 for now | 17:28 | |
lizmat | yup, doing that right now | 17:29 | |
17:31
Rotwang joined
17:35
ajr_ left
17:37
kst`` is now known as kst
|
|||
dalek | ecs: 4128913 | larry++ | S05-regex.pod: Explain semantics of <( )> inside []* and ()* fixes #60 |
17:40 | |
17:42
kaleem left
|
|||
[Coke] | (camelia tuits) squee! | 17:42 | |
no spectest diffs for a few days. Almost like everyone was busy or something. | 17:43 | ||
lizmat | also, upcoming release | 17:44 | |
[Coke] | someone has that covered, ja? | ||
lizmat is about to break some non-parakudo tests | |||
[Coke] | today's run is already started, go for it. ;) | ||
[Coke] is in a much better mood at work today, and blames the workshop. | 17:45 | ||
tadzik | I was productive like crazy today | ||
[Coke] | \o/ | ||
lizmat | good to hear! | ||
this month's release is by masak, I'm told | 17:46 | ||
[Coke] | lizmat, woolfy: bought some kids books for my wife. didn't even thing of this at the time, but one of them is the very hungry caterpillar. Guess what he turns into at the end of the story! | ||
lizmat | :-) | ||
tadzik | VELOCIRAPTOR | ||
woolfy | [Coke]: a flying camel? | ||
lizmat suggests Karlsruhe.pm as the name for the release | |||
[Coke] | tadzik: YOU NEED TO WRITE THAT BOOK NOW. | ||
tadzik | [Coke]: I'm writing it down on my book ideas list | 17:47 | |
lizmat | seems appropriate with timotimo going to the first Karlsruhe meeting in ages | ||
[Coke] | woolfy: a schmetterling, of course. :) | ||
woolfy | d'oh | ||
Papillon | |||
[Coke] | ok, back to dayjob. later, peeps. | 17:48 | |
TimToady | masak: Perl 6 considers \n to be a line terminator, and text files ending without a final \n to be aberrant, but tolerated | ||
pmichaud | good afternoon, #perl6 | ||
tadzik | hello pmichaud | ||
TimToady | so "abc\n" ~~ /abc\n^^/ will not match | 17:49 | |
diakopter | pmichaud: good afternoon | ||
lizmat | pmichaud: o/ | ||
TimToady | \o | 17:50 | |
lizmat wonders the message of a super hungry caterpillar in a kid's world with SuperSizeMe | |||
*about | |||
pmichaud | how was the perl 6 course thingy this past weekend? | 17:51 | |
diakopter | rn: say so "" ~~ /^^^^^^^/ | ||
camelia | rakudo c2f7f7, niecza v24-95-ga6d4c5f: OUTPUT«True» | ||
TimToady | yes, ^^ always matches at the start of the string | ||
diakopter | r: say so "" ~~ /^^^^^^^$$$$$$$^$^^^$^$^$^$$^^^^$$$$^^^$^$/ | 17:52 | |
camelia | rakudo c2f7f7: OUTPUT«True» | ||
TimToady | ayup | ||
lizmat | pmichaud: the thingy went quite well | ||
pmichaud: also check 6guts.wordpress.com/2013/09/17/mate...ls-course/ | |||
pmichaud | checking! | ||
oooh! course materials! | 17:53 | ||
17:53
PZt left
|
|||
TimToady | huh, interestingly, echo -n "this" >foo; wc -l foo returns a line count of 0 | 17:58 | |
anyway, \n termination is considered normative | |||
diakopter | echo -n "this" | wc -l | 17:59 | |
TimToady | I see no reason to make a whole bunch of code return final null elements just because normative is not completely enforced (lookin' at you, emacs) | 18:00 | |
dalek | rl6-roast-data: ef0d847 | coke++ | / (3 files): today (automated commit) |
18:02 | |
TimToady | this particular consistency looks kinda hobgoblin colored to me | ||
lizmat | hmmm… in a recent spec change, I changed [].delete from taking multiple params to a single parameter only | 18:03 | |
18:03
benabik left
|
|||
TimToady doesn't care what .delete does, but :delete has to be able to return the whole slice | 18:03 | ||
lizmat | indeed | ||
that was my thought as well | 18:04 | ||
lizmat adjust spectest | |||
18:04
benabik joined
|
|||
TimToady doesn't even care whether .delete exists (or .exist deletes, for that matter :) | 18:04 | ||
as internal methods, they should probably be spelled differently anyway | 18:05 | ||
lizmat | if they are truly internal, then maybe they shouldn't be documented in S32 ? | ||
TimToady | that's what I've always thought, but didn't push it before :delete was implemented | 18:06 | |
didn't push it after either, for that matter :) | 18:07 | ||
18:07
panchiniak joined,
PZt joined
|
|||
lizmat | r: my @a=^10; @a.delete(*-1); say @a # should .delete be smart enough to handle *-1 ? | 18:09 | |
camelia | rakudo c2f7f7: OUTPUT«0 1 2 3 4 5 6 7 8» | ||
TimToady | why are you asking me about internal methods? :) | 18:11 | |
lizmat | :-) | ||
lizmat goes on with further changing spectests | 18:12 | ||
pmichaud | it looked to me like lizmat was asking rakudo :) | ||
TimToady | it's really neat that rakudo is smart enough to understand comments now :P | ||
18:14
SamuraiJack__ left,
mberends left
|
|||
lizmat | rakudo is really getting good at reading between the lines, siriously :-) | 18:14 | |
GlitchMr | It would be nice if Rakudo would download the specification, and do exactly what it says. | 18:15 | |
(but that's impossible) | |||
TimToady | it's impossible for us too :) | ||
I said from the very start that we were trying to do something impossible, and that we would fail, fsdo. :) | 18:16 | ||
18:16
telex left
|
|||
GlitchMr | Perl 7 should support code golf, by allowing you to do everything with 0 bytes. | 18:16 | |
TimToady | already possible with alternate settings | 18:17 | |
diakopter | hah | 18:18 | |
18:18
telex joined
|
|||
TimToady | Perl 6 makes some impossible things merely hard, but a few of them it makes easy. :) | 18:19 | |
[Sno] | moritz: I figured out the parrot build error reported Monday (parrot_version.pir installed separately without being in config_lib.pir) | 18:22 | |
moritz: it's because of parallel builds - avoid "make -jn" with n >= 2 | |||
FROGGS | [Sno]: what was it? | ||
ahh | |||
good catch! | |||
[Sno] | but well, MoarVM is ready to be delivered before christmas :P | 18:23 | |
diakopter | eh | ||
[Sno] | so I don't dig deeper and fix parrot | ||
but wait for MoarVM | |||
and flag lang/parrot for MAKE_JOBS_SAFE=no :) | |||
moritz | STEVE_JOBS_SAFE=no | 18:24 | |
[Sno] | well, that's already been decided by cancer ;) | 18:25 | |
TimToady | he's a lot safer than he used to be... | ||
[Sno] | but it fails securely on Darwin, SunOS and NetBSD | ||
TimToady | though that depends on whether the cult evolves into a religion | 18:26 | |
[Sno] | well, I usually move around religions where ever I can | 18:28 | |
so I cannot argue there | |||
TimToady hopes that Perl does not evolve into a religion after he is dead, or that if it does, he is not held responsible for it... :) | |||
[Sno] | so let's evolve it while you're alive | 18:29 | |
pmichaud | I'm afk for a while again | ||
TimToady | well, that worked for L. Ron Hubbard, but I'm not sure I want to share a circle of hell with him. | 18:30 | |
[Sno] | this is the main problem of famous people: they don't have a choice | 18:31 | |
their lambs do the choice - meh | |||
hoelzro | sweet | 18:33 | |
my Parrot allocation tracker works! | |||
hmm | 18:34 | ||
18:34
rindolf left
|
|||
hoelzro | of over 4 million allocations performed when compiling CORE.setting, over 2 million are Perl6::Grammar objects | 18:34 | |
tadzik | ...Grammar? | 18:35 | |
that at least looks weird | |||
hoelzro | yeah, i was shocked too | 18:36 | |
lizmat | hoelzro++ | ||
hoelzro | hang on; I'll upload the results | ||
arnsholt | I think the cursor used to match will be a Perl6::Grammar | ||
hoelzro | that's what I figured | ||
jnthn | yes, it's Cursor objects | 18:37 | |
you allocate the grammar you're matching | |||
arnsholt | That works out to about 200 allocations of Perl6::Grammar per line of CORE.setting | 18:38 | |
hoelzro | hoelz.ro/files/parrot-alloc-results.txt | ||
arnsholt | Don't think that's too shocking a result, given the complexity of the grammar | ||
hoelzro | how many Grammar objects need to be alive at a given time, I wonder? | 18:39 | |
I was thinking of having an object pool for commonly allocated objects | |||
arnsholt | O(maximum depth of the parser recursion) probably | 18:40 | |
18:41
mberends joined
|
|||
arnsholt | An object pool for Cursor objects might make sense, I think. jnthn would know | 18:41 | |
hoelzro waits for jnthn's response | |||
diakopter | A generic object pool for types detected high-churn would be nice too at the vm level | 18:44 | |
(Assuming we add the ability for user (byte)code to tell the VM it's ok to reuse a given object) | |||
(when leaving a scope) | |||
18:46
kbaker left
18:49
EvanTeitelman joined
18:55
btyler left
|
|||
TimToady | most cursors should probably be C structs with dynamic particulars stored in a simple linked list rather than a hash | 18:56 | |
since most such lists will be very short | |||
but mostly moving everything we can into the struct itself | 18:59 | ||
dalek | kudo/nom: 6f86684 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Properly implement internals [].exists|delete, according to new semi-spec |
19:03 | |
ast: bc14b79 | (Elizabeth Mattijsen)++ | S (4 files): Fudge/Unfudge for latest [].exists|delete fixes |
19:06 | ||
ast: fecf003 | (Elizabeth Mattijsen)++ | S (2 files): Oops, some premature fixes slipped in |
|||
jnthn | TimToady: Cursor is a P6opaque and doesn't have any kind of Hash inside of it at present, just an integer array for backtracking marks and a (lazily allocated) object array for cursors we capture... There's no hash until Match construction. | 19:10 | |
TimToady: position is stored as a native int in the Cursor, for example... | |||
hoelzro | jnthn: would it be possible to recycle cursor objects? | 19:12 | |
it seems like it would be a big win | |||
jnthn | hoelzro: Cursor objects generally follow the generational hypothesis: they either live for a long time 'cus they get attached into the overall parse result, or live for a very short time 'cus they fail. | 19:13 | |
hoelzro | I figured | ||
but for each creation, the VM needs to find a chunk of memory, and it's another object to clean up later | |||
19:14
iSlug joined
|
|||
jnthn | The first of those should be decidedly cheap on a good VM :) | 19:14 | |
19:15
domidumont left
|
|||
hoelzro | yes | 19:15 | |
but considering what we have to work with =P | |||
19:16
jnap left
|
|||
benabik | Well, as time goes there's always moar things to work with... | 19:16 | |
jnthn | I think the biggest win is to look into making places that want to explicitly produce a fail cursor re-use a single one | 19:17 | |
masak | TimToady++ # hobgoblin colored | ||
nwc10 | and maybe other VMs will be captured in Perl6's .net | ||
masak | TimToady: and yes, I agree. | ||
nwc10 | jnthn: effectively, make a fail cursor singleton? | 19:18 | |
jnthn | For example, when a protoregex has no matching thing, it does a !cursor_start, which produces a new, failed cursor. But if we cache one in ParseShared I *think* we can get away with it. | ||
nwc10: Yeah, something like that. | |||
It *may* save a lot of 'em. | |||
nwc10 | quick, find a minion. You've got 15 now :-) | ||
it doesn't sound like a terrible idea even if it only saves a few (thousand) | |||
jnthn | Well, it could save a lot | 19:19 | |
I mean, everywhere we call EXPR, at least the final attempt to find another infix will fail. | |||
And !protoregex is an easy place to do this. | |||
moritz wonders if anybody noticed that parrot didn't have a release yesterday | 19:21 | ||
nwc10 | I did. | ||
jnthn | The 120,584 QAST::Var objects feels like a fair few... | 19:22 | |
PerlJam | moritz: does that mean that rakudo shouldn't have one either? ;) | ||
jnthn | As in, the ratio between QAST::Op and QAST::Var surprises me a bit | ||
moritz | PerlJam: tomorrow | ||
19:22
trnh joined,
trnh left,
trnh joined,
zwut00 joined
|
|||
masak | moritz: well, technically... :) | 19:23 | |
moritz: two days after the Parrot release. | |||
PerlJam | (it certainly means that it's time to change that bit in the release_guide that talks about how rakudo's release schedule is based on parrot's release schedule) | ||
masak | aye. | ||
lizmat | maybe Util has some more info ? | ||
masak | anyway, I'm perfectly willing to cut a release tomorrow no matter what the release_guide says. | ||
:) | |||
PerlJam | hoelzro: is there a way to easily find out how long-lived those objects are on average? | 19:24 | |
hoelzro | PerlJam: my next step is to find out when they're dealloc'd | ||
mainly to find how many objects of each type are alive at one time | |||
nwc10 | I think the rakudo release happened on "time" even when parrot 5.0.0 was unfortunately late | 19:25 | |
lizmat | hoelzro: on the way to Frankfurt, mberends was telling about measuring longevity of an object by number of bytes changed in the system between creation and garbage collect | ||
PerlJam | hoelzro: some measure of churn would be nice. | ||
hoelzro | lizmat: how would that measurement occur, though? brk()? malloc info? | ||
lizmat | maybe mberends has more pointers | 19:26 | |
lizmat was driving at 100+ miles / hour at the time :-) | |||
hoelzro does a rimshot | |||
get it? pointers? =P | 19:27 | ||
lizmat wrecks her brain to thing of a pun that would be to the point | |||
*think | |||
hoelzro | the problem with measuring deallocations vs allocations is that just because an object hasn't been free()'d yet doesn't mean it's still reachable | 19:28 | |
so for *really* reliable stuff, I'd probably have to invoke the GC on every call to nqp::create | |||
it would (hopefully) result in some interesting data, though | |||
jnthn | hoelzro: You could instrument !cursor_start and !cursor_start_all to see where most cursors are created | 19:29 | |
hoelzro | ooooh | ||
that would be helpful =) | |||
jnthn | hoelzro: You could do similar for !cursor_pass to see how many of those pass. | 19:30 | |
So we know where the common failure paths are. | |||
hoelzro | cursors seem to be the big culprit here | ||
mhmm | |||
jnthn | Well, they're numerous, we can say that match. | ||
uh, much | |||
:) | |||
nwc10 | fingers in autopun mode? | ||
jnthn goes back to being sort-of-around... | |||
nwc10 | get packing! | 19:31 | |
PerlJam | instrumenting !curpos_pass could tell you how much of a win that singleton fail-cursor will be | 19:32 | |
er, !cursor_pass even | |||
19:32
jeffreykegler joined
|
|||
dalek | kudo/method2sub: 23e9d51 | (Elizabeth Mattijsen)++ | / (7 files): Move sub [] and sub {} to separate files for easier maintenance |
19:32 | |
19:33
prevost left
|
|||
nwc10 | [Coke]: you bought a German language copy of The Very Hungry Caterpilar? | 19:36 | |
lizmat | r: my %h=a=>1; say %h{}:delete; say %h # another bug now exposed by moving to sub {} | 19:40 | |
camelia | rakudo 6f8668: OUTPUT«("a" => 1).hash("a" => 1).hash» | ||
19:40
ksh left
|
|||
d^_^b | So one thing that I want to do consistantly is produce executables of my application. Right now on windows I am having to use cava packager. I am able to produce an exe natively in P6? | 19:40 | |
well I don't want to do it per say, but it is easier to manage an exe vs a Perl installation on multiple machines. | 19:41 | ||
19:42
ksh joined
|
|||
FROGGS | d^_^b: I think it is not yet available, but hopefully it is not impossible | 19:42 | |
you could make it use the sfx-hack for example | |||
d^_^b | huh? | 19:43 | |
self-extracting? | 19:44 | ||
19:44
jnap joined
|
|||
FROGGS | I packed a Perl 5 game once (or twice), using a self extracting archive which runs the perl exe with the right command args to invoke the game | 19:45 | |
there might be a nicer way (like perl5's staticperl) but this would be a lot more work I suppose | |||
d^_^b | cava works and does that. just its a hassle if the exe does work I have to go and add the dep that it missed when packaging. | 19:46 | |
FROGGS | yeah | ||
19:47
thou left
|
|||
timotimo | lizmat: sadly, there were only 3 people in karlsruhe.pm this time :( (including me) | 19:49 | |
lizmat | it's a start | 19:50 | |
Amsterdam.pm had meetings with fewer people in the beginning :-) | |||
hoelzro | sweet, the POD is building | 19:56 | |
hoelzro laughs maniacally | |||
FROGGS | *g* | ||
20:00
iSlug left
|
|||
lue | hello world o/ | 20:03 | |
hoelzro | ahoy lue | ||
lizmat | lue o/ | 20:06 | |
timotimo | lizmat: it's said there's either ~14 people or ~2 ;) | 20:08 | |
20:08
pernatiy joined,
berekuk left
|
|||
timotimo | hoelzro: good work so far! :) | 20:11 | |
hoelzro | thanks! | ||
20:11
berekuk joined
20:16
iSlug joined
20:17
flussence left,
flussence joined
20:21
flussence left,
flussence joined,
spider-mario left
20:22
spider-mario joined
20:27
ajr joined,
ajr is now known as Guest96139
20:28
Guest96139 is now known as ajr_,
odoacre left,
berekuk left,
stevan_ left
20:31
berekuk joined
20:35
jeffreykegler left
|
|||
hoelzro | there's no DESTROY method in Perl 6, is there? | 20:42 | |
jnthn | In the spec, yes. In Rakudo, no. | ||
hoelzro | I'd like to try out an object pool for cursors, but I'm not sure how I'm going to mark them as "free" | ||
ah | |||
jnthn | Object pool sounds fraught. | ||
hoelzro | yeah | 20:43 | |
timotimo | wouldn't you like to try a constant "failure" cursor first? | ||
jnthn | Did you try the singleton fail cursor thing I suggested? | ||
hoelzro | I'd probably have to actually return cursors to the pool from the outside | ||
not yet | |||
jnthn | That's actually sane and reasonable-about. | ||
timotimo | or at least analyze how often, in relation, failure cursors are made | ||
hoelzro | I'm still wrapping my head around Cursor.nqp =/ | ||
and I'm building the Perl6 docs | |||
which is taking 80% of my memory =S | |||
diakopter | I would guess that it's not the allocation or gc of all the objects that takes the most time, but the copying/initializing of their fields | 20:44 | |
jnthn | Well, we don't know anything much about time either :) | ||
We just know allocation counts. | |||
hoelzro | yeah | ||
I'm just going on a hunch | |||
diakopter | my point is that even with a pool, whether created by the qast compiler or by the vm, I don't think it'd remove the main cost | 20:45 | |
20:45
mberends left
|
|||
hoelzro | that would be interesting to test | 20:46 | |
hoelzro has to figure out how to dump some data on program exit in NQP | |||
diakopter | if it's just normal exit, have the qast compiler wrap the main | ||
error exit, much harder I guess | 20:47 | ||
hoelzro | ah, good point | ||
normal exit should be fine | |||
timotimo | i suggest just streaming it out to stderr during run and collect the pieces externally | ||
hoelzro | oh yeah | ||
that's pretty much what I did for the alloc counts =/ | |||
timotimo | that's failsafe | ||
yeah, so what. this is a one-off as far as i'm concerned ;) | 20:48 | ||
hoelzro | indeed | ||
it's just some simple instrumentation | |||
I thought someone told me that Parrot has some sort of profiling of how long each opcode takes in a program? | |||
do we have any data on that? | 20:49 | ||
that would probably shed some light on time spent allocating/binding attrs/etc | 20:50 | ||
diakopter doesn't know... a different runcore or something? | |||
timotimo | i ran rakudo through perf once | 20:51 | |
i think it was mostly allocating stuff or something? | |||
20:52
cjwelborn joined
|
|||
hoelzro | I'll try that | 20:54 | |
cjwelborn | I was just reading "Masterminds of Programming" and the creator of Perl was talking about Perl6, it sounds cool. Is Perl6 code going to be backward-compatible with Perl5? | ||
timotimo | no, but there will be interop. | 20:55 | |
FROGGS | cjwelborn: so one day you might be able to load Perl5 modules and run you Perl5 code inlined... | ||
like: use FooBar:from<Perl5>; | 20:56 | ||
timotimo | i don't know the status of (or even how to use) blizkost | ||
cjwelborn | Perl5 came with Ubuntu on my machine, i guess because they use perl scripts for some of their own stuff. Is it possible for me to install a copy of Perl6 side-by-side with Perl5? | ||
timotimo | yes, they will not conflict | ||
cjwelborn | awesome, thank you. | ||
masak | cjwelborn: Perl 6 is pretty cool. however, it has to compete with not just Perl 5 (which Perl, in its time, didn't), but all the other nice and successful dynamic languages that have blossomed since. | 20:57 | |
diakopter | (and static) | ||
masak | which is not to say it isn't awesome -- it is. | ||
cjwelborn | masak: true, i'm actually a Python programmer (among a few other things) myself. | ||
diakopter | (and all other orientations) | ||
timotimo | ha! another one! ;) | ||
i came to perl6 from python as well | |||
masak | it's just that it's awesome against a backdrop of not-too-bad. | ||
I've been dabbling in Python lately :) | |||
jnap | cjwelborn: just to let you know, if you do end up playing with Perl5 as well, I'd recommend side loading it with a tool like perlbrew, rather than use the Perl that came with ubuntu. System Perls sometimes get upgraded or changed from under you and its annoying | 21:00 | |
cjwelborn | good to know, ::looking up perlbrew:: | 21:01 | |
21:02
skids left
21:04
dalek left
21:05
dalek joined,
ChanServ sets mode: +v dalek
|
|||
tadzik | I recommend plenv if perlbrew doesn't work for you | 21:05 | |
(perlbrew is a little quirky) | 21:06 | ||
timotimo | tadzik: did you listen to hellsongs - paranoid? it's pretty beautiful | 21:07 | |
tadzik | timotimo: yeah, it's nice :) | 21:12 | |
I've listened to everything they published. On spotify, of course, legally, of course | |||
21:13
spider-mario left
|
|||
tadzik | it's nice to listen to it once or twice, but gets a bit tiring/boring after a while, imho | 21:13 | |
timotimo | sure | 21:15 | |
jnthn | Early flight...'night, #perl6 | 21:16 | |
tadzik | like all lounge coverers, I'd say | ||
good knight jnthn | |||
hoelzro | night jnthn | ||
tadzik | but Hellsongs is one of the more interesting | ||
21:17
donaldh joined
|
|||
timotimo | richard cheese is hard to top; the amount of showmanship put on top is quite something ;) | 21:17 | |
tadzik | oh yes :) | 21:18 | |
one of the few performers from whom I prefer "live" recordings | |||
timotimo | gaaaah | 21:20 | |
21:20
lichtkind left
21:21
denis_boyun left
|
|||
tadzik | hm? | 21:22 | |
timotimo | i'm still struggling to create the compile-time switch between bindattr_i resolving to with or without hints | 21:23 | |
21:24
denis_boyun joined
21:27
iSlug left,
yannickberthoud joined
|
|||
timotimo | IT COMPILES | 21:28 | |
21:29
yannickberthoud left
21:30
cjwelborn left
21:33
FROGGS left
21:36
Rotwang left
|
|||
timotimo | huh. for none of the accesses through nqp::getattr_i it will actually successfully create a hint :( | 21:40 | |
oh, actually bindattr_i | |||
21:41
trnh left
21:44
pmurias joined
|
|||
pmurias | [Coke]: do you think we could (semi)easily have smartlinks to the tests in our ops docs? | 21:44 | |
masak | 'night, #perl6 | 21:45 | |
lizmat | gnight masak! | 21:47 | |
21:48
denis_boyun left,
FROGGS joined
21:52
donaldh left
|
|||
timotimo | Error while compiling op bind (source text: ":="): Cannot infer type from '' :( | 21:55 | |
22:01
FROGGS left
|
|||
d^_^b | so once rakudo ships with MoarVM will there be really any functionally different from a developers perspecitve? | 22:02 | |
diakopter | not at first probably | 22:03 | |
d^_^b | or is JVM work and MoarVM separate? | ||
timotimo | it's only partially separate | ||
the parallelisation stuff is jvm-exclusive at the moment | 22:04 | ||
lue | jnthn's slides are fun to read (still on day 1). I think I'll go back after reading them and do the exercises :) | ||
diakopter | lue++ | 22:05 | |
good fun! and have luck! | |||
22:09
PZt left
22:10
trnh joined,
trnh left,
trnh joined
22:11
baest joined
22:18
BenGoldberg joined
22:21
PZt joined
22:22
FROGGS joined
|
|||
timotimo | i think i'm doing this thing with the compile time value wrong :| | 22:26 | |
22:26
jnap left
|
|||
timotimo | - QAST::WVal(ParseShared) - this doesn't "has_compile_time_value" and/or QAST::SVal($!highwater) - this doesn't has_compile_time_value | 22:27 | |
is has_compile_time_value the wrong approach? | |||
because - QAST::Var+{QAST::CompileTimeValue}(lexical $?CLASS) - this does has_compile_time_value, curiously | |||
i suppose i'll have to check for isinstance QAST::WVal and SVal respectively? | 22:29 | ||
lizmat | fwiw, feels right | 22:34 | |
timotimo | a getattr is always right, right? even if a getattr_i/_n/_s would be "better"? | 22:35 | |
because i think i could turn getattr into getattr_$foo at compile time under the same circumstances that i can calculate the hint | |||
22:37
FROGGS left
|
|||
timotimo | invoke() not implemented in class 'QAST::IVal' - the what now? | 22:37 | |
lizmat | da bin ich überfragt | ||
timotimo | :) | ||
ich besichtige die sehenswürdigkeiten | 22:38 | ||
lizmat | :-) | 22:39 | |
timotimo | what was that twilight fanfiction called that was kind of like friendship is optiomal? | 22:45 | |
lizmat | no idea… :-) | 22:46 | |
and also gnight #perl6! | |||
timotimo | gnite lizmat :) | ||
now i can calculate the hint, but not add it to the op because it chokes on the IVal ;_; | 22:47 | ||
22:50
pmurias left,
[Sno] left
|
|||
timotimo | DOH | 22:51 | |
DOH DOH DOH | |||
i forgot the .new | |||
22:51
[Sno] joined
22:58
mtk0 left
23:01
trnh left,
jdv79_ joined
23:02
skids joined
|
|||
timotimo | so far i get no debug output when compiling rakudo with my optimisation ... :/ | 23:04 | |
that kind of makes me sad | |||
but perhaps the grammar etc benefitted a bit from this | |||
oh, there we go! :) | 23:05 | ||
nqp::getattr_i($param, Parameter, '$!flags') - that sounds helpful :) | |||
nqp: say(nqp::r_elems(Str)) | 23:09 | ||
camelia | nqp: OUTPUT«Cannot do repr_elems on a type objectcurrent instr.: '' pc 93 ((file unknown):61) (/tmp/Wg0GK39koI:1)» | ||
timotimo | huh | ||
23:12
dmol left
|
|||
dalek | p/awesome_bindattr: 1af1098 | (Timo Paulssen)++ | src/vm/parrot/ (3 files): WIP on bind/set/getattr with hints |
23:25 | |
p/awesome_bindattr: b04f59f | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp: this actually works! |
|||
23:28
panchiniak left
|
|||
timotimo | i figured the _n ops wouldn't get used often, so i can just skip the crufty code | 23:28 | |
lue now realizes why all the NQP node-related code looked familiar; it reminds him of Lisp a bit. | 23:35 | ||
23:38
stevan_ joined
|
|||
timotimo | well yeah, it is a tree and trees tend to look like that :) | 23:43 | |
[Coke] | nwc10: (caterpillar) ja. | 23:44 | |
timotimo | probably also with op nodes having the op names in them at the beginnings makes it look much more like sexp | ||
[Coke] | .to pmurias - re smartlinks - let's start with checking to see if every variant listed in the docs has a test. (and that every variant in the code has doc) | 23:46 | |
yoleaux | [Coke]: I'll pass your message to pmurias. | ||
lue | Ending the construction of a QAST::Op with )))); doesn't help matters :P | 23:47 | |
[Coke] | lue: indent often. | ||
((it's the only way I can read those) | |||
timotimo | hehe | ||
lue | One thing I didn't like about elisp when I was getting to know it was how )))))) was somehow preferred over )\n)\n ... (with proper indentation of closing parens, of course) | 23:49 | |
23:49
pernatiy left
23:56
ajr_ left
|