»ö« 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:06 raiph left, btyler joined 00:09 TeaserASA joined 00:12 Psyche^ left 00:13 raiph joined
lue grondilu: that won't work for S26. 00:13
00:14 sftp joined
grondilu Indeed. I don't read it often anyway. When I do I just read it in Vim. 00:15
00:18 Psyche^ joined
lue
.oO(That's surprising. I was just reading about conspiracy theories, and clicked on a link to a high-res picture of the face on Mars. I got redirected to notice.usa.gov)
00:18
grondilu my 02:15 comment sounds so much like a meme, I can't resist: memecrunch.com/meme/SKM2/pod2man-ca.../image.png 00:20
rjbs- grondilu: dork :) 00:21
lue Vim is good. If you're stranded on a deserted island without a GUI or gnu in sight. Then it's passable :) . 00:25
diakopter bwahaha. 00:27
grondilu lue: what editor do you use?
grondilu installed padre but couldn't get used to it. 00:28
diakopter Notepad++, thanks for asking :)
grondilu that windows stuff :/ 00:29
lue Editor MACroS
grondilu emacs is too heavy, imho. And the name is longer.
lue I personally could never get into vim (although it is the best editor I have for quick in-terminal file edits). If this IRC client were Vim, I'd have to remember to press 'r' for RESPOND MODE, for instance :) 00:31
00:32 Oflameo left
grondilu Well, Vi is a text editor. It has no ambition to be used as a IRC client. 00:32
lue Also what may help you understand my viewpoint is that I think the Space Cadet keyboard looks Unbelievably Awesome™ :)
grondilu: I know. I was making a joke about how I have to explicitly enter a mode before doing what the program's designed to do (in Vi's case, INSERT MODE) 00:33
[ and I've been sure to have judicious use of smileys to keep my words from sparking a Holy War :) ] 00:34
00:34 ivanshmakov left 00:35 ivanshmakov joined
grondilu I think at some point we get so used to using our prefered editor, that the idea of using any other one seems absurd. To me for instance pressing 'i' or 'o' to enter insert mode is completely natural. 00:35
lue Yeah. Like I said, I do use vim for quick in-terminal edits [ principally when the edit isn't worth the small effort to switch to my emacs window :) ], but I suppose I like emacs enough now that I feel no need to learn vim much. 00:37
I will say though: vim has far better Perl 6 support at the moment. /me should get back to his perl6-mode for emacs sometime.
grondilu what kind of support, apart from syntax hilighting? 00:38
(which doesn't even work so well, at least for long files) 00:39
lue The syntax hilighting :) . cperl-mode, the only mode aside from mine offering any kind of support for Perl 6, is utter crap. (I've somehow broken it to the point where typing an OPENING BRACE causes a lisp error :| . Perhaps it was always broken, but I didn't notice before making ELisp errors fatal) 00:40
Also: typing \s+ in your regex code somehow is interpreted as starting a subst pattern, and breaks highlighting there.
grondilu can't emacs read a vim syntax file? 00:41
lue (I could go on, but it's been a while since I've willingly subjected myself to CPerl.) My point is, the vi hilighter isn't perfect (far from), but at least from my POV it's better.
geekosaur cperl-mode has always been narsty 00:42
handy when it works, but narsty
00:42 sftp left
lue grondilu: I'd be surprised if no-one's coded a vi-hilighter for emacs yet. I haven't really looked though. 00:42
Again, I should pick up my perl6-mode again, and get it doing more.
00:42 c1sung left 00:43 c1sung joined
grondilu what would be nice would be a perl6-capable ctags. 00:43
Though I understand that would be tough.
00:43 sftp joined
lue geekosaur: I believe once, while going through the shipped elisp, I found what I think was a "convert code to webpage with hilighting" file. There was a specific piece of code in there to work around CPerl because it apparently gets stubborn about its custom colors. 00:43
geekosaur it kinda has to 00:44
lue (also: use of non-standard colors to highlight non-essential distinctions. IMO there's no need to highlight an @array different from a %hash or $scalar.)
If you can't tell, I'm kinda done with CPerl as something that's "good". :) 00:45
geekosaur (what is actually happening is that emacs' font lock support is ridiculously inadequate for Perl, so it does it all itself. which means that other stuff that expects to be able to hook emacs' font lock mechanisms generally fails with it, because it doesn't bother with the hooks.) 00:46
lue
.oO(Sure, I could let Lisp errors be non-fatal like before, and then have CPerl not die when invoking -electric- functions, but I shouldn't have to.)
I've yet to get to the part coding my p6-mode where I've run into problems with font-lock (except embedded comments. Those definitely have to be outside the realm of provided font-lock stuff). 00:47
Sometimes when I think about my mode again, I realize that it'd be easier if I could just parse the source file with Perl 6 :) 00:48
colomon ;)
lue (esp. with how Perl 6 has a few "sub"-languages: pod, Regex, Q, etc.)
Any situation involving the entire selection of Unicode brackets will be Pure Fun® when I eventually get to it. (My first naïve attempt at a p6-mode focused on correctly parsing and highlighting embedded comments, by way of keeping a hard-coded list of all open/close pairs possible. It should surprise no-one that this initial attempt caused emacs to lag :P) 00:52
lue & 00:54
01:24 benabik joined 01:26 stephenwan joined 01:33 raiph left 01:42 Vlavv` left
Mouq r: say [1,2,3].combinations 01:43
camelia rakudo a10341: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method combinations at src/gen/CORE.setting:7869␤ in block at /tmp/46tStGAs5U:1␤␤»
Mouq Shouldn't combinations and permutations default to *-1? 01:44
Well, *ought't?
01:44 FROGGS_ joined 01:48 FROGGS left
dalek rl6-roast-data: 0019802 | coke++ | / (5 files):
today (automated commit)
01:49
01:54 Vlavv` joined
dalek p: c0c8267 | coke++ | t/docs/opcodes.t:
test for parrot opcodes

Improve test for finding documented opcodes
01:55
p: 2b99f92 | coke++ | docs/ops.markdown:
fix formatting. Mark async opcode as experimental
Mouq [Coke]++ # moar documentation 01:59
01:59 Vlavv` left 02:00 Vlavv` joined
lue Mouq: I'd say that's a reasonable default. 02:24
Mouq r: say <4 5 6>[] 02:26
camelia rakudo a10341: OUTPUT«4 5 6␤»
02:28 prevost joined
dalek p: 65cb592 | coke++ | docs/ops.markdown:
doc some file opcodes
02:33
02:40 fridim_ left 02:48 grondilu left 03:02 preflex left 03:05 preflex joined, ChanServ sets mode: +v preflex
BenGoldberg All this opcode documentation... how much of it could be autogenerated? 03:06
03:06 TeaserASA left
BenGoldberg Obviously not the text, but all of the argument variations which have the same base name... 03:07
Mouq BenGoldberg: see t/docs/opcodes.t : I'm guessing the argument variations wouldn't be too much of a stretch… 03:17
BenGoldberg :) Right... so why not write a program which looks at the docs, finds where in them there's a list of argument variations, looks at the code, makes a list of actual implemented argument variations, and supplements the list in the docs with any that are in the code but unmentioned in the docs. 03:21
Mouq BenGoldberg: Well volunteered! :) 03:22
BenGoldberg erm... 03:24
Mouq Heh ;) 03:25
BenGoldberg I don't understand perl6 (or nqp) well enough to do it. 03:28
I'm happy enough to try to find bugs... 03:33
rn: my @foo := gather {}[0]; say @foo;
camelia niecza v24-95-ga6d4c5f: OUTPUT«(Any)␤»
..rakudo a10341: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤ in block at /tmp/ydICRHOCKb:1␤␤»
03:35 berekuk joined 03:38 raiph joined 03:47 berekuk left 03:53 gattschardo left 03:55 gattschardo joined 04:01 preflex left, preflex joined, ChanServ sets mode: +v preflex
Mouq "Could not find sub cuid_325_1380772919.56994" -- my favorite kind of error message 04:03
TimToady the default for combinations is 0..* (autostopping on the size of the list) 04:09
04:09 BenGoldberg left
TimToady so <a b c>.combinations starts with () and ends with ('a','b','c') 04:10
04:13 prevost left
Mouq r: <a b c>.list.combinations.say # ... 04:16
camelia rakudo a10341: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method combinations at src/gen/CORE.setting:7869␤ in block at /tmp/_NVB1FZPKL:1␤␤»
Mouq (checking)
*was checking. Currently trying to bend NQP to my will 04:17
TimToady anyway, default is documented at S32/Containers:616 04:23
lue wonders if synopsebot will respond to S32::Containers:616 04:26
Mouq S32:616(Containers)
synopsebot Link: perlcabal.org/syn/S32.html#line_616
Mouq idk 04:27
diakopter Mouq++
wb Syno Psebot 04:28
lue diakopter: nope, almost though
TimToady that seems wrongish though
lue (S32.html !~~ defined)
diakopter S99999999999999:9999999999999
synopsebot Link: perlcabal.org/syn/S99999999999999.h...9999999999
diakopter
.oO( that's quite a few synopse's
04:29
)
04:29 xinming joined
lue wait, why does permutations not accept any arguments? I could swear nPr was an infix operator... 04:30
04:30 eiro left
lue (not that nPr is what .permutations does, but still. What if I just want all possible 3-element lists of 0..9, respecting order?) 04:34
04:35 rindolf joined 04:37 eiro joined
dalek p/proto-inner: 33fe530 | Mouq++ | src/QRegex/P6Regex/Grammar.nqp:
Update obsolete proto-regex syntax in P6Regex

  ( If anything should be up-to-date on S05… )
04:40
p/proto-inner: 26c85b4 | Mouq++ | src/ (3 files):
Non-functional sketch of proto regex with pre- and post- matches

I.e., proto rule foo { 'bar' {*} 'baz' } as per S05:1330 Builds and doesn't break anything
synopsebot Link: perlcabal.org/syn/S05.html#line_1330
Mouq Someone can definitely take that and work on it. 04:41
I need to go to bed
'night #perl6++
lue good ♞ then Mouq o/
04:51 rindolf left 04:52 Mouq left 05:05 berekuk joined, btyler left 05:18 rindolf joined 05:29 FROGGS_ left 05:31 rindolf left, rindolf joined 06:02 rindolf left 06:09 aindilis joined 06:11 SamuraiJack_ joined 06:17 clkao joined 06:21 iSlug joined 06:24 [Sno] left 06:26 clkao left 06:27 [Sno] joined, [Sno] left 06:32 kaleem joined 06:37 [Sno] joined 06:41 dmol joined 06:47 ssutch left 06:48 ssutch joined 07:02 raiph left 07:04 zakharyas joined 07:10 FROGGS joined
sjn arnsholt: hey, I hoped to see you at Oslo.pm yesterday; talk about Perl6 @ uio 07:12
07:14 darutoko joined
arnsholt Yeah, had to do other stuff, unfortunately 07:18
sjn arnsholt: let's continue in #oslo.pm; I have some news 07:34
07:35 fhelmberger joined
jnthn morning o/ 07:41
yoleaux 04:31Z <diakopter> jnthn: interestingly, after optimization, only 0.04% of time is spent in the compunit loading... o_O
FROGGS morning 07:42
jnthn Well, that's not much :)
...depending on the context :)
lizmat good *, #perl6!
07:43 iSlug left, iSlug joined
jnthn FROGGS: Seems the remaining cursless failures are thanks to <?before ...> switches...afaict, anyway 07:48
FROGGS yeah, I was fearing that...
jnthn: mast/nom was merged in?
master*
jnthn yeah
Well, I've got merges locally of this stuff 07:49
FROGGS k, so I'll fix it so we get a clean spectest run
jnthn Well
FROGGS ahh, okay
jnthn I can maybe do it here also
I'll push the NQP merge
Then triage the Rakudo and bump it
FROGGS this must be applied again: github.com/rakudo/rakudo/commit/b9bebcca25
and there are two other <?[...]> which contain a hash-sign which must be tweaked I think 07:50
it is a public holiday here today so I have enough time now to fix that 07:51
lizmat ah, Reunification Day ? 07:52
jnthn ok, got for that
dalek Heuristic branch merge: pushed 16 commits to nqp by jnthn
FROGGS lizmat: and my grandmom's birthday :o) 07:53
lizmat cool! must have been a great birthday gift for your grandmom 24 years ago! 07:54
FROGGS well, she had seen much much worse times, so I'm not sure it was soo bad fer her in the GDR 07:58
she had a house and a garden so it was basically all what she needed 07:59
jnthn: you are merging it to master? 08:00
jnthn FROGGS: I merged cursless in NQP into nqp/master
FROGGS k 08:01
jnthn FROGGS: So now it's just Rakudo to triage
dalek rlito: b9edaad | (Flavio S. Glock)++ | / (6 files):
Perlito5 - perl6 - create html/perlito5to6.html and "make build-5to6browser"
08:03
08:05 ssutch left 08:07 fglock joined
fglock I created a web page for the perl5-to-perl6 translator 08:08
this is very early code, it doesn't clean up extra parenthesis and there are bugs everywhere
perlcabal.org/~fglock/perlito5to6.html 08:09
08:09 ssutch joined
FROGGS fglock: how does that work? you are compiling to an ast and then generate perl6 code? 08:10
I can't imagine that this would work with QAST 08:11
maybe you would take the match objects...
fglock yes, it is a normal compiler
FROGGS fglock: this is pretty awesome!
fglock the perl5 to perl6 compiler, compiled to javascript 08:12
hmm - $^O didn't interpolate correctly 08:14
ah, no - it did 08:15
it's a mix up of perl5 and perl6 - need more work :P
FROGGS r: say chr(15) 08:16
camelia rakudo a10341: OUTPUT«␤»
fglock it is $^O = ${ chr(15) } = in perl6 $( chr(15) ) which doesn't make sense 08:18
08:21 Woodi joined 08:24 iSlug left
FROGGS p5eval: ${ chr(15) } 08:27
p5eval FROGGS: linux
FROGGS interesting
jnthn wtf :)
FROGGS jnthn: we totally need that in perl 6 :P 08:28
jnthn :P
r: multi chr(15) { 'linux' }; say $(chr(15)) 08:29
camelia rakudo a10341: OUTPUT«linux␤»
jnthn Done. :P
OK, so that unspace fix helped. Reduction meta-ops are busted now, though... 08:30
FROGGS /home/froggs/dev/rakudo/src/Perl6/Grammar.nqp:418: token spacey { <?[\s\#]> } 08:31
/home/froggs/dev/rakudo/src/Perl6/Grammar.nqp:451: \\ <?before <[\s\#]> >
/home/froggs/dev/rakudo/src/Perl6/Grammar.nqp:4039: token escape:ws { \s+ [ <?[\#]> <.ws> ]? }
not more than these should be wrong... 08:32
I'd fix it too if you pushed to nom
jnthn hmm
FROGGS or to another branch
jnthn think I'll just merge nom into cursless and we can work on it there
FROGGS yeah, so I can do something :o) 08:33
jnthn Wasn't expecting this much to fix...
FROGGS how many fails?
or do you mean the merge?
dalek Heuristic branch merge: pushed 21 commits to rakudo/cursless by jnthn 08:34
jnthn no, spectest
FROGGS k 08:35
dalek kudo/cursless: 0029ea5 | jnthn++ | src/Perl6/Grammar.nqp:
Undo before removal in unsp.
jnthn reduce is the bothersome one
dalek rlito: eae6843 | (Flavio Glock)++ | / (2 files):
Perlito5 - perl6 - fix $^O variable
08:36
fglock ... ' running in ' ~ ($?VM) 08:37
FROGGS r: say $*OS # larry will kill me :P
camelia rakudo a10341: OUTPUT«linux␤»
fglock should it use $*OS ? I've got the $?VM from here - doc.perl6.org/language/variables#Sp...+Variables 08:38
08:38 REPLeffect joined
fglock I'll change 08:39
jnthn: multi chr(15) ... that could be used to build a compatibility layer :) 08:40
dalek rlito: 0d6f509 | (Flavio Glock)++ | / (2 files):
Perlito5 - perl6 - fix $^O variable more
08:43
jnthn FROGGS: Found the pattern in what's up, I think 08:48
FROGGS: <?[...]> with both a cclass thing and a enumcharlist thing get made into an altseq, which LTM ignores. 08:49
FROGGS yes, I think I had an issue with <?[\s\#]> 08:50
but I thought this was fixed...
dalek kudo/cursless: ecc836b | jnthn++ | src/Perl6/Grammar.nqp:
Undo a before to cclass that busts LTM.
08:51
FROGGS still need to wait for the spectest run...
jnthn FROGGS: It works
But doesn't LTM properly
FROGGS: Above fixes the reduce issue
FROGGS jnthn: awesome! 08:52
I would like to fix that in nqp then though... how can I check that something does LTM properly?
jnthn std: my @array; @array.min:{ $^a <=> $^b }
camelia std 4cde04e: OUTPUT«ok 00:00 44m␤»
FROGGS just an alternation with <?[...]> inside? 08:53
jnthn rn: my @array = 5,-3,7,0,1,-9; say @array.min:{ $^a <=> $^b }
camelia rakudo a10341, niecza v24-95-ga6d4c5f: OUTPUT«-9␤»
jnthn That parses wrong now without a space after the : ... 08:54
08:55 yogan joined
jnthn ah, found it 08:57
FROGGS token spacey { <?[\s#]> } ? 08:58
jnthn no, the one in methodop
FROGGS <?[\s{]> 08:59
yeah
I need a faster computer :o(
there are a few other candidates... token infix:sym«!=» { <sym> <?[\s\]]> <O('%chaining')> }
jnthn I fixed taht one in the last commit 09:00
FROGGS you pushed?
... t/spec/S12... *sigh*
jnthn That one was in ecc836b yeah 09:02
FROGGS ahh, I was thinking you are talking about the "candidate" 09:03
wait
nvm
jnthn r: m-b-
camelia rakudo a10341: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D : $target, *%adverbs)␤ in method match at src/gen/CORE.setting:3370␤ in block at /tmp/Su_qsHJgPp:1␤␤»
FROGGS these might all be problematic: gist.github.com/FROGGS/80bc4940327cb6d395e7 09:05
jnthn no, there has to be a \s -like thing that compiles to cclass *AND* and enumcharlist thing in the same <?[...]> for it to be a problem 09:06
That's only true of spacey in that list
ah, and the methodop one which I already caught here 09:07
eeks
std: m-b-
camelia std 4cde04e: OUTPUT«===SORRY!===␤Bogus term at /tmp/FNZczCymJb line 1 (EOF):␤------> m-b-⏏<EOL>␤Undeclared routine:␤ 'm-b' used at line 1␤Parse failed␤FAILED 00:00 42m␤»
jnthn std: m'b' 09:08
camelia std 4cde04e: OUTPUT«===SORRY!===␤Confused at /tmp/SoZG4HlTuC line 1:␤------> m'b⏏'␤ expecting any of:␤ POST␤ argument list␤ feed_separator␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤ postfix_prefix_meta_operator␤
..postop␤ st…»
jnthn n: m'b'
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Confused at /tmp/DnYjxFFeyS line 1:␤------> m'b⏏'␤␤Undeclared routine:␤ 'm'b' used at line 1␤␤Parse failed␤␤»
jnthn n: m-b-
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/W7iIKGyiI7 line 1 (EOF):␤------> m-b-⏏<EOL>␤␤Undeclared routine:␤ 'm-b' used at line 1␤␤Parse failed␤␤»
FROGGS std: m-b-c
camelia std 4cde04e: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'm-b-c' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn OK, so *that* spectest failure is simply t/spec being wrong.
FROGGS std: m'b'c
camelia std 4cde04e: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'm'b'c' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn There are tests that expect you can use ' and - as regex delimeters
FROGGS ' and - is not allowed to be at the dn/beginning 09:09
ahh
jnthn Before the <apostrophe> LTM fix you could (wrongly, it appears) do so in Rakudo
FROGGS I think I made that working
at least the usage of \W as delim
jnthn Yes, it's fine in general, but not wiht those two. :)
FROGGS but yes, ' and - as delim should not work 09:10
that is a problem in perl5, you can't call a sub named m
tadzik sub bus
jnthn convergence++ 09:11
sub way
dalek ast: 7c5ddf1 | jnthn++ | S05-metasyntax/delimiters.t:
Remove tests that STD/Niecza disagree with.

Rakudo will also, after cursless branch merges.
09:12
jnthn So, now down to S05-mass/named-chars.t I think.
09:13 iSlug joined
jnthn not ok 374 - Negative charclass hex \X[2724] match 09:13
The fails all look like that
FROGGS yeah, I see it too
jnthn think I see it 09:16
jnthn--
FROGGS O.o
timotimo o_O 09:19
FROGGS I believe stage parse dropped from about 160s to 145s 09:20
I should really benchmark that
timotimo good idea. so sad it will take about 3 minutes each time, though :( 09:21
arnsholt jnthn: OOC, what's the cursless refactor refactoring? Something will stop using cursors or summat? 09:22
FROGGS arnsholt: yes, you have to pull out your mouse to not have a cursor :P 09:23
I've taped my touchpad fwiw
jnthn arnsholt: Yes, it greatly reduces the number of Cursor allocations
timotimo my mouse has a on/off switch at the bottom
and the cable is removable, too
arnsholt Ah, right. So not cursor-less, but less cursors
jnthn arnsholt: Right
About 50%-60% or so of what we had before for CORE.setting parse, for example 09:24
FROGGS 50-60% less?
jnthn FROGGS: No
FROGGS k
timotimo no, 40-50% less
jnthn Right :)
arnsholt Oh, nice! I assume that gives at non-zero speed increase in setting compilation? 09:25
timotimo yes, but also not nearly close to 50%
jnthn Yeah, though it's not a huge increase
Which tells us a few things. 09:26
oh noes, github fail
arnsholt Yeah, that's interesting
timotimo another piece of the puzzle was that the line pos cache was rebuilt each time a compile_in_context was used (which was 137 times in the core setting)
but i'm not sure if the fix for that is in any branch right now
FROGGS I have seen the commit 09:27
jnthn timotimo: You got the patch handy
?
jnthn hasn't...
timotimo github is down, yes?
jnthn Something's wrong, but I just managed to push at least
timotimo ah, it still exists
09:27 Woodi left
jnthn Though, dalek didn't report it so something is up 09:28
nwc10 its website was slow to load for me
timotimo pastebin.com/ZvzwmPhe
FROGGS maybe this one, but I can't fetch the site: github.com/perl6/nqp/commit/5f7801861b
jnthn status.github.com says the exception rate just skyrocketed...
timotimo that happens when you deploy 50-odd times a day :P 09:29
jnthn timotimo: Thanks, will work on getting that patch in. 09:31
arnsholt: What's the status of NativeCall stuff on JVM, ooc? 09:36
diakopter FROGGS: that github link worked for me 09:41
jnthn still can't push
diakopter push harder? 09:42
jnthn error: unknown option `harder'
09:45 SamuraiJack__ joined
arnsholt jnthn: Stalled, trying to figure out the get_boxed_ref stuff 09:46
09:46 cognominal left
jnthn arnsholt: ah, hm 09:46
09:46 cognominal joined
jnthn arnsholt: I suspect NativeCall is the major thing for a JVM Star now... 09:46
arnsholt Basically, they way it's implemented/works on Parrot is at odds with how box targets work on JVM 09:47
09:47 crazedpsyc left, fglock left
jnthn Flattening multi-field things into P6opaques probably ain't gonna work too well on JVM... 09:47
09:47 fglock joined, crazedpsyc joined
jnthn So yeah, we'll have to do it a bit different. 09:48
arnsholt Yeah
09:48 SamuraiJack_ left, hugme left
arnsholt Problem is that the way it works on Parrot means we really want something like a Map<REPR, SixModelObject> 09:48
09:48 Timbus joined
jnthn arnsholt: Yeah. 09:49
arnsholt: Something along those lines would do it.
arnsholt But that doesn't play along too nice with the JVM inverted approach where each flattened REPR injects fields and methods
jnthn Well, it's more like we want a Map<REPR, Integer> or so which specifies the slot to getattr 09:50
arnsholt Yeah
09:50 hugme joined, ChanServ sets mode: +v hugme
jnthn FROGGS: OK, I'm happy enough cursless can merge, I think... 09:51
09:51 fglock left
jnthn Just pusehd the final fix there but dalek seems unreporting... 09:51
timotimo cool. so what else can we just allocate less of? 09:52
arnsholt I guess P6OpaqueBaseInstance could have a Map<REPR, Something> we could use to dig out what we want, but that'll add an awful lot of Maps 09:53
JimmyZ wonders the ?% time of compiling core.setting
timotimo oh that sounds nice, we could just allocate less time for parsing and such! 09:56
jnthn arnsholt: no, not per instance...it'd go in REPR data 09:57
arnsholt: If it's the slot index it's the same for everything
09:57 lizmat_ joined
jnthn timotimo: Currently building with the linepos patches 09:58
arnsholt: Is the current progress pushed somewhere?
arnsholt jnthn: Oh, that's a good point. Not quite as terribly expensive
nqp/nativecall-jvm is in sync with my local changes I think 09:59
Nothing there about this though, since I've been stuck on the design part of it
10:00 lizmat left
jnthn ok 10:00
timotimo: With that I have lowest CORE.setting time I've seen in a good while on JVM
timotimo: for parse phase
FROGGS, timotimo: cursless is merged to nom and pushed 10:01
timotimo \o/ 10:02
moritz \o 10:03
jnthn
.oO( /nick dalek )
10:05 daxim joined
jnthn timotimo: your linepos patch is in NQP (+ using it in NQP::World) and Rakudo 10:05
nwc10: CORE.setting build should have a bit less GC churn now; may help on smaller systems 10:08
timotimo ah, NQP::World? i didn't find any usage of compile_in_context there, and i didn't have the presence of mind to search for .compile 10:09
jnthn ;)
jnthn did
jnthn does a little Rakudo debugger work, to see if he can make any progress towards having it on JVM also 10:10
warnings because we deprecated .exists :( 10:12
diakopter you folks seen this? hotness. runnable.com/ 10:14
jnthn tadzik: Please can .exists usage in Term::ANSIColor be fixed (or I'll accept a commit bit to do it :)) 10:16
s/fixed/updated/
tadzik jnthn: sure
jnthn: you are now a Collaborator 10:19
jnthn tadzik: Thanks!
tadzik Thank you :)
moritz
.oO( your now Conspirator )
jnthn now if only I could get at github... 10:20
10:25 gfldex joined
FROGGS still benchmarking.... I'll compare the almost up-to-date version to 2013-09 10:25
moritz status.github.com/ " 10:27
10:20 UTC The site is unavailable as we continue mitigating a large DDoS attack.
"
FROGGS jnthn: see? they think you're attacking them 10:29
FROGGS .oO( "That can't be something human-ish!" )
jnthn I don't commit *that* fat :P
moritz was just able to git pull a rakudo
jnthn *fast
yeah, it sometimes works...
FROGGS 7/10 rakudo recompile completed 10:30
moritz wow, new error message while pulling from github: "No route to host" 10:31
10:32 Woodi joined
lizmat_ p5eval: sub m { "hello" }; &m 10:35
p5eval lizmat_: hello
10:36 lizmat_ is now known as lizmat
jnthn hello, lizmat :) 10:36
lizmat
.oO( you *can* call a sub called "m" in perl 5 )
p5eval: sub m { "hello" }; m() # just not this way 10:39
p5eval lizmat: 1
FROGGS r: say ([+] 140.925, 138.979, 138.785, 138.639, 138.615, 139.286, 140.331, 139.872, 140.185) / 10 10:48
camelia rakudo a10341: OUTPUT«125.5617␤»
FROGGS r: say ([+] 140.925, 138.979, 138.785, 138.639, 138.615, 139.286, 140.331, 139.872, 140.185) / 9
camelia rakudo a10341: OUTPUT«139.513␤»
FROGGS today's rakudo's stage parse
2013.09 comes in a few hours :o) 10:49
lizmat
.oO( odd that we don't have a method .avg ?)
10:50
FROGGS I guess it will be specced within hours too :P
lizmat 10:48 UTCWe're working to re-establish connectivity after the attack disrupted our primary internet transit links. 10:52
FROGGS 2013.09's first stage parse completed in 156.949 10:53
that is 15%-something
lizmat r: say 100 - 14000/157 10:54
camelia rakudo a10341: OUTPUT«10.828025␤»
lizmat more like 11 :-(
but I'l take it!
that's at least 15 minutes saved / day for me 10:55
colomon lizmat: surely it should be mean instead of avg? not that we have mean.... 10:56
10:56 pecastro_ is now known as pecastro
lizmat
.oO( and so the bikeshedding starts :-)
10:56
I guess that's the reason it's not in there :-)
colomon that and it's a one-liner 10:57
lizmat still, it would have been nice to be able to say:
r. (1,2,3,4,5).avg.say
r: (1,2,3,4,5).avg.say
camelia rakudo a10341: OUTPUT«No such method 'avg' for invocant of type 'Parcel'␤ in block at /tmp/lU7J50O51E:1␤␤»
colomon rn: sub mean(@*a) { @a R/ [+} @a; }; say mean(4, 6, 7) 10:58
camelia rakudo a10341: OUTPUT«===SORRY!=== Error while compiling /tmp/oc7vcy2lCD␤Variable '@a' is not declared␤at /tmp/oc7vcy2lCD:1␤------> sub mean(@*a) { @a⏏ R/ [+} @a; }; say mean(4, 6, 7)␤ expecting any of:␤ postfix␤»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Variable @a is not predeclared at /tmp/OruBcCVvK6 line 1:␤------> sub mean(@*a) { ⏏@a R/ [+} @a; }; say mean(4, 6, 7)␤␤Prefix requires an argument at /tmp/OruBcCVvK6 line 1:␤------> sub mean(@*a) …»
colomon rn: sub mean(*@a) { @a R/ [+} @a; }; say mean(4, 6, 7)
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Prefix requires an argument at /tmp/AULlvW9nEY line 1:␤------> sub mean(*@a) { @a R/ [+⏏} @a; }; say mean(4, 6, 7)␤␤Parse failed␤␤»
..rakudo a10341: OUTPUT«===SORRY!=== Error while compiling /tmp/EYSZnuqBeJ␤Preceding context expects a term, but found infix + instead␤at /tmp/EYSZnuqBeJ:1␤------> sub mean(*@a) { @a R/ [+⏏} @a; }; say mean(4, 6, 7)␤»
colomon needs to wake up
10:59 fhelmberger left
colomon rn: sub mean(*@a) { @a R/ [+] @a; }; say mean(4, 6, 7) 11:00
camelia rakudo a10341, niecza v24-95-ga6d4c5f: OUTPUT«5.666667␤»
11:01 FROGGS[mobile] joined
colomon rn: sub median(*@a) { @a %% 2 ?? (@a[*/2-1] + @a[*/2]) / 2 !! @a[*/2-1]; }; say median(1,3,4,7); say median(1,3,9) 11:04
camelia rakudo a10341, niecza v24-95-ga6d4c5f: OUTPUT«3.5␤1␤»
colomon has left an important step out!
rn: sub median(*@r) { my @a = @r.sort(+*); @a %% 2 ?? (@a[*/2-1] + @a[*/2]) / 2 !! @a[*/2-1]; }; say median(1,3,4,7); say median(1,3,9)
camelia rakudo a10341, niecza v24-95-ga6d4c5f: OUTPUT«3.5␤1␤» 11:05
colomon rn: sub median(*@r) { my @a = @r.sort(+*); @a %% 2 ?? (@a[*/2-1] + @a[*/2]) / 2 !! @a[*/2-1]; }; say median(3,1,4,7); say median(1,9,3)
camelia rakudo a10341, niecza v24-95-ga6d4c5f: OUTPUT«3.5␤1␤»
11:07 iSlug left 11:10 pmurias joined
jnthn whee 11:13
11:13 fhelmberger joined 11:14 iSlug joined
jnthn OK, it needs some minor hacks that I'm gonna have to redo properly, and I've built it by hand, but I've just been single-stepping code with Rakudo::Debugger on JVM. :) 11:15
lizmat just pushed some roast changes to github 11:17
jnthn Turns out prompt doesn't work on Rakudo JVM yet due to .flush also not working.
That's an easy fix. There's also an exception handler related thing that needs some VM abstraction. Those aside, it'll just be a case of sorting out build stuff. 11:18
lizmat just push some nom changes to github 11:19
*pushed
basically KeySet -> SetHash and KeyBag -> BagHash changes 11:20
jnthn lizmat++
tadzik: Pushed exists updates 11:26
dalek kudo-debugger: c901e44 | jnthn++ | bin/perl6-debug.nqp:
Some pir:: -> nqp:: in prep for JVM support.
tadzik \o/ 11:27
dalek kudo/nom: bd0f19c | jnthn++ | / (2 files):
Use recursion_limit method from HLL:Compiler.
jnthn heh, that commit was a while ago :)
Guess github is gonna be playing catch up :) 11:28
lizmat parse time for me went from 140 -> 123
so, 17 seconds gained for each build :-) 11:29
dalek ast: 3ca73a7 | (Elizabeth Mattijsen)++ | S02-types/ (4 files):
Part 1 of bringing Set/Bag tests up to spec
ast: 109ff98 | (Elizabeth Mattijsen)++ | S (9 files):
Part 2 of bringing Bag/Set tests up to spec again
kudo/nom: bc39750 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
Part 1 of bringing Set/Bag up to spec again
kudo/nom: 7eacce5 | (Elizabeth Mattijsen)++ | / (10 files):
Part 2 of bringing Set/Bag up to spec again
kudo/nom: 71b47aa | (Elizabeth Mattijsen)++ | t/spectest.data:
Part 3 of getting the Set/Bag tests up to spec again
tadzik \o/
dalek kudo-debugger: 6b8fc4f | jnthn++ | lib/Debugger/UI/CommandLine.pm:
Stop using deprecated .exists method.
11:30
kudo-debugger: e014aaf | jnthn++ | bin/perl6-debug.nqp:
Some JVM compatibility fixes.
jnthn lizmat: Great!
lizmat spectest before took 504 wallclock / 3700 CPU 11:31
running post cursless merge spectest now 11:32
11:31 UTCWe've restored access to code downloads and queued service hooks are being delivered. The attack continues, but our mitigation is holding firm.
diakopter o_O 11:35
jnthn The fact perl6-debug hasn't been a nightmare to make work on JVM bodes well for getting it on Moar too, once we have Rakudo over there.. 11:37
diakopter :)
lizmat spectest down to 492 wallclock / 3600 CPU 11:40
cool!
jnthn \o/ 11:42
11:48 raiph joined 11:50 l30n1du5 joined 11:54 fhelmberger left
dalek rlito: bb6da3c | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - make build-5to6browser by default; cleanup
11:56
11:56 mtk0 left, mtk left 11:59 fglock joined, btyler joined 12:02 mtk joined 12:07 denis_boyun joined 12:20 l30n1du5 left
lizmat
.oO( wish we had a make target that would only run the files in t/spec that are listed in git status )
12:20
dalek ast: 9d973ed | (Elizabeth Mattijsen)++ | S02-types/ (5 files):
KeyHash is now called QuantHash
12:21
12:23 pmurias left 12:26 iSlug left
dalek kudo/nom: 93064b1 | (Elizabeth Mattijsen)++ | / (5 files):
Introduce QuantHash
12:28
lizmat TimToady: .elems on a Baggy, is the sum of all weights, this becomes weird with MixHash, or not ? 12:30
arnsholt lizmat: How about: make $(git s --porcelain | perl -nE 'chomp; next if substr($_, 0, 2) ne " M"; say substr($_, 3); ') 12:33
Where git s is my alias for git status, obv.
lizmat arnsholt++ will try the next time I have t/spec changes 12:37
arnsholt jnthn: What's the correct way to call a method in a superclass in NQP? 12:39
jnthn nqp::findmethod(SuperClassName, 'method')(self, ...args...) 12:40
arnsholt Right. Cheers
I think it looks like I'll have to override an action method not defined in NQP::RegexActions to set up $/ on subrule calls 12:41
moritz eeks, rakudo segfaulted during setting parsing 12:44
masak good afternoon, #perl6 12:45
moritz \o masak
make: *** No rule to make target `src/core/QuantHash.pm', needed by `CORE.setting.pbc'. Stop. 12:52
lizmat: did you forget to git add QuantHash.pm?
dalek p: 755bd8b | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Fix copy-pasto.
12:54
p: 1eb7d09 | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Add an nqp::flushfh op on Parrot.
p: a4e9ac9 | jnthn++ | src/vm/jvm/ (7 files):
Implement nqp::flushfh on JVM.
[Coke] my 9th grader is taking Mandarin this year. at the school's open house, I asked the teacher if *i* could peek at the course materials... she gave me a copy of the textbooks to borrow indefinitely. Whee! 12:55
masak [Coke]: nice!
[Coke] jnthn: "hey, no adding opcodes without documentation! 12:56
I'll grab that one, though.
12:57 iSlug joined, ajr joined
dalek p: ff08120 | jnthn++ | docs/ops.markdown:
Document flushfh; [Coke]++ for reminder.
12:57
12:57 ajr is now known as Guest26235 12:58 Guest26235 is now known as ajr_
dalek p: b71e06e | coke++ | docs/ops.markdown:
doc new opcode.

  (fix nearby op name)
12:58
[Coke] D'oh.
jnthn oops 12:59
:)
[Coke] fixing.
jnthn Well, we're flush with docs for that op now...
dalek p: 57ede8d | coke++ | docs/ops.markdown:
what? too much docs?

use jnthn++'s explanation in alphabetical slot.
13:00
kudo/nom: a8d9dc8 | jnthn++ | / (2 files):
Start using nqp::flushfh.

Fixes .flush, and also prompt(), on JVM.
[Coke] jnthn++ \o/
only 505 failing tests in t/docs (most of them are duplicates because something is documented but exists in parrot -and- java) 13:01
(autogenerating signatures) - the problem with that is the signatures often take a perl 6 object, but immediately die if given something not, e.g., a bigint. 13:02
so it's not as straightforward as you might think.
also, the point is to get the -descriptions- autogenerating potentially incorrect signatures would then make it slightly harder to figure out where we were missing docs. (or leave a lot of XXX boilerplate) 13:03
if you want to help, find an opcode that isn't documented (run the test) and give me a snippet of text to use for the description.
13:03 benabik left
[Coke] (another issue: we are categorizing the opcodes - can't get that from the code) 13:03
jnthn Down to one hack in the debugger code now. 13:06
jnthn will fix this, and then leave the build stuff for another time. 13:07
13:09 daxim left 13:16 lowpro30 joined 13:17 skids left, lowpro30_ joined
FROGGS r: say ([+] 157.831, 154.795, 155.103, 154.866, 155.325, 154.584, 154.834, 155.286, 155.128) / 9 13:18
camelia rakudo 71b47a: OUTPUT«Missing or wrong version of dependency 'src/stage2/QRegex.nqp'␤current instr.: '' pc 16569 (src/gen/perl6-pod.pir:6540) (src/Perl6/Pod.nqp:464)␤called from Sub '' pc 1902 (src/stage2/gen/module_loader.pir:880) (src/vm/parrot/ModuleLoader.nqp:47)␤called from Sub…»
FROGGS what?
13:18 daxim joined
[Coke] r: say.what.say 13:19
camelia rakudo 71b47a: OUTPUT«Missing or wrong version of dependency 'src/stage2/QRegex.nqp'␤current instr.: '' pc 16569 (src/gen/perl6-pod.pir:6540) (src/Perl6/Pod.nqp:464)␤called from Sub '' pc 1902 (src/stage2/gen/module_loader.pir:880) (src/vm/parrot/ModuleLoader.nqp:47)␤called from Sub…»
FROGGS :o(
13:19 lowpro30__ joined
tadzik nooo 13:19
[Coke] tries to remember what the command is to force a rebuild...
13:20 rindolf joined
tadzik evalbot control rebuild 13:20
nope
FROGGS k, 10.168828361% faster 13:21
13:21 lowpro30 left
FROGGS nqp: say(1) 13:21
camelia nqp: OUTPUT«1␤»
13:22 lowpro30_ left
jnthn gets "don't know how to build QuantHash"... :( 13:23
lizmat: ping?
JimmyZ git reset HEAD^ --hard 13:26
13:31 Lorn_ is now known as Lorn, Lorn left, Lorn joined 13:33 lowpro30__ left
jnthn Well, will do some $dayjob stuff for a bit...only got one more patch to try out anyway... :) 13:34
13:34 raiph left, raiph joined 13:38 Fatalnix left
nwc10 jnthn: trying it. I think that I got a kernel panic. Whoops 13:38
but unfortunately the screen saver had cut in, so when it hung, it hung with all black output on the "console" (the TV)
so I didn't get to see whether it had (like before) dropped me into the kernel debugger 13:39
(before locking up. Oops)
trying again
Kernel panic makes a change from a JVM bug.
moritz [Coke]: evalbot rebuilds don't work atm 13:40
13:40 iSlug left 13:41 lowpro30 joined, iSlug joined
arnsholt Heh. That's a fun failure mode. Even funner then segfaults, even =D 13:45
13:45 denis_boyun left
nwc10 I think it's because the USB drivers are pants 13:46
13:48 xinming left
jnthn
.oO( Wearable tech considered overrated... )
13:48
13:48 stevan_ left 13:49 stevan_ joined 13:50 stevan_ left 13:52 lowpro30 left 13:57 iSlug left
dalek kudo/nom: 454984b | (Elizabeth Mattijsen)++ | src/core/QuantHash.pm:
Oops, forgot to add QuantHash, moritz++
14:05
14:05 lowpro30 joined
lizmat sorry about that, guys 14:05
it spectested ok here :-) 14:06
jnthn :P 14:07
lizmat r: say 1 14:08
camelia rakudo 71b47a: OUTPUT«Missing or wrong version of dependency 'src/stage2/QRegex.nqp'␤current instr.: '' pc 16569 (src/gen/perl6-pod.pir:6540) (src/Perl6/Pod.nqp:464)␤called from Sub '' pc 1902 (src/stage2/gen/module_loader.pir:880) (src/vm/parrot/ModuleLoader.nqp:47)␤called from Sub…»
lizmat hope that gets fixed soon
14:08 lowpro30 left
lizmat again, sorry about that… had a little nap in the sun 14:08
jnthn Nice timing...I did my $dayjob errands and was about to do some real work, but now I can distract myself testing my Rakudo patch :P 14:09
14:09 larks left
lizmat yw, running errands myself now & 14:09
14:15 jnap joined
dalek kudo-debugger: 33b17a7 | jnthn++ | / (2 files):
Final code tweaks to support Parrot and JVM.

Still need to get proper build/runner stuff in place for JVM, but that should be all that's needed now.
14:18
jnthn My word to multiple threads confuse the poor debugger. 14:20
*do
14:21 kaleem left
dalek kudo/nom: eb07bd1 | jnthn++ | src/ (3 files):
Add nqp::p6invokehandler.

Hides away a Parrot specific detail. Cleans up one place in Actions, but the debugger is the main beneficiary.
14:27
14:40 SmokeMachine left 14:41 larks joined 14:43 bluescreen10 joined, skids joined 14:44 denisboyun joined
FROGGS perl6 t/spec/S02-types/declare.rakudo.parrot 14:47
not ok 40 - The object is-a 'QuantHash'
# Actual type: QuantHash
jnthn Is QuantHash a role or a class? 14:48
FROGGS a role 14:49
that explains it
jnthn da 14:51
ok ... ~~ QuantHash is probably the easy fix
dalek ast: c7c53a7 | (Tobias Leich)++ | S02-types/declare.t:
fix QuantHash test
14:53
14:54 sftp left 14:56 guru joined, ajr_ left, guru is now known as Guest34241 14:57 sftp joined 14:58 benabik joined 14:59 Guest34241 is now known as ajr_ 15:00 iSlug joined
TimToady nr: m 'this is fine' 15:10
camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method match in type Any␤ at /tmp/7KPgmywCmx line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) ␤ at /h…»
..rakudo 454984: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D : $target, *%adverbs)␤ in method match at src/gen/CORE.setting:3372␤ in block at /tmp/Qvspk9sH2f:1␤␤»
TimToady (syntactically, anyway) 15:11
nr: $_ = 'thisisfine'; say m 'this is fine' 15:12
camelia rakudo 454984, niecza v24-95-ga6d4c5f: OUTPUT«「thisisfine」␤␤»
TimToady nr: $_ = 'soisthis'; say m -so is this- 15:13
camelia rakudo 454984, niecza v24-95-ga6d4c5f: OUTPUT«「soisthis」␤␤»
TimToady so there should probably be tests for delims that work as long as there's whitespace between 15:16
15:17 ssutch left
jnthn ah, yes 15:17
15:25 yogan left, yogan joined 15:27 sftp left 15:29 sftp joined 15:30 fglock left 15:33 kaare_ joined 15:34 sftp left
FROGGS m -so is this- <-- that is not a programming style I will adopt soon 15:35
15:36 zakharyas left 15:37 sftp joined
jnthn FROGGS: s ' only ' a little odd ' 15:38
FROGGS yeah
jnthn std: s ' only ' a little odd '
camelia std 4cde04e: OUTPUT«ok 00:00 42m␤»
jnthn r: s ' only ' a little odd '
camelia ( no output )
FROGGS s "nice" :o) " 15:39
PerlJam What is this? Perl 5? ;>
FROGGS std: s "a"b"
camelia std 4cde04e: OUTPUT«ok 00:00 42m␤»
TimToady std: s"a"b"
camelia std 4cde04e: OUTPUT«ok 00:00 42m␤» 15:40
FROGGS of course, only the single quotes belong to ident
jnthn identifier, but yes
Good we got STDier amongst the cursor killing, anyway... :)
TimToady that STDlier to you :P 15:41
*that's
now my 's key is getting gimpy...
it it's it's it it it it's <-- intermittent 15:42
yay, my Stage parse dropped from 96.5 to 85.5 15:44
jnthn TimToady: Which backend?
FROGGS aww, I wanna have an i7 too
TimToady JVM
FROGGS ahh, that is JVM
then mine is already faster?
TimToady just has an ancient T61 15:45
(2 core)
jnthn TimToady: I only gained a couple of seconds on JVM, but am down to around 44s/45s now.
FROGGS I had a Lenovo Thinkpad before my DELL, and I don't miss it at all 15:46
TimToady well, GC might be more efficient with more cores
jnthn True
TimToady likes the T61, for all its faults
jnthn picks up a new laptop tomorrow :)
Hopefully it'll be around as fast as my current desktop 15:47
jnthn only uses the laptop when traveling, not at home...
FROGGS I use my laptop like 16/7
jnthn :) 15:48
I suspect if laptop use was physically comfortable for me, I might use one most of the time too
I'd probably be more nomadic also... :)
FROGGS well, my neck hurts a lot and so does my back and my legs... dunno if laptops are preferable :o) 15:49
but my flat is too small for a desktop-pc+table of mine 15:50
TimToady tries a differential compile on his supercomputer
FROGGS 65.3s stage parse here 15:55
jnthn FROGGS: on JVM? 15:57
FROGGS yes
jnthn Figured so :)
FROGGS hehe
I never had such a nice number on @parrot
it was once around 80s though, must be a year ago now
jnthn Yeah. The setting grew... :) 15:58
FROGGS true, happened much since then 15:59
TimToady 59.4 -> 55.0 on six cores
FROGGS sad that we don't have a number for moarvm yet :o) 16:00
and then we really need buildbots 16:01
parrot, jvm, moarvm Rxx linux, windows, mac
jnthn I'll try and do a bit moar hacking this evening to get closer to being able to dig into bootstrap 16:02
FROGGS ohh awesome!
jnthn I've got quite a lot of travel coming up in the next 3 weeks, but I'm hopeful the tuit supply won't be hit too hard. 16:03
FROGGS I like to help too, but well, I dunno how and I think I'm not capable of fixing things in the current state
jnthn Well, current task is getting --target=mbc to work out right
But that shouldn't be much more than debugging.
FROGGS k, so I will try it tonight 16:04
jnthn me too ;)
Actually fixing the Pod regression would be helpful, as I guess I can't build nqp-cc until that one is fixed...
16:06 iSlug left 16:14 raiph left, ssutch joined 16:15 Rotwang joined 16:33 denisboyun left
TimToady lizmat: it'll probably be a .total method instead of .elems, and we'll probably add an immutable QuantMap to go with QuantHash 16:35
errands &
16:39 sftp left 16:42 iSlug joined 16:44 sftp joined
jnthn gist.github.com/jnthn/6812967 # action method count/time stats, if anybody is curious 16:44
timotimo is the time number time-per-call or sum-of-all-times? 16:45
oh, must be time-total, otherwise the parsing would take like an hour :) 16:46
jnthn total :)
So we can understand what is in it for us if we optimize
timotimo seems like the actions don't take much time, that is very nice indeed.
comparing what package_def and dec_number have to do, it seems like dec_number is unjustly slow 16:48
but it's only worth about 1 second all in all, so not sure if we'd want to do anything there
well, all action methods in all are very roughly 30 seconds; how much time does stage parse cost on your computer in total? 16:49
jnthn yes, dec_number stands out
TimToady: Yes but on my machine the whole parse stage is 45s.
um, timotimo ^ 16:50
r: say 1.8 / 45
camelia rakudo eb07bd: OUTPUT«0.04␤»
16:50 xenoterracide left
jnthn So it's 4% of CORE.setting compilation time 16:50
16:50 ajr_ left
timotimo oh, this is on jvm? 16:50
jnthn yes 16:51
timotimo that makes a difference of about 3x to me :)
jnthn Thing is, we have an nqp::radix op
Which I *think* may be capable of doing a lot of what that action method is doing
timotimo nqp: say(nqp::radix("1023", 10))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::radix(\"1023\", 10)"): Error while compiling op radix (source text: "nqp::radix(\"1023\", 10)"): Operation 'radix' requires 4 operands, but got 2␤current instr.: '' pc 55082 (src/stage2/QAST.…» 16:52
timotimo ah, that way
nqp: say(nqp::radix_I(10, "1032", 0, 0, Int))
camelia nqp: OUTPUT«get_boxed_ref could not unbox for the given representation␤current instr.: '' pc 93 ((file unknown):61) (/tmp/qPqWpVX92J:1)␤»
timotimo string_to_bigint already uses nqp::radix in the actions 16:53
jnthn Well, we're producing a num here I guess...
timotimo the question is probably if it allows underscores; this filter_number thing is probably very costy if 99.99% of our numbers don't have any underscores
jnthn Well, I think radcalc may be mroe so 16:54
I believe nqp::radix can do underscores
FROGGS is =cut valid for perl6's pod
?
jnthn I...don't think so? 16:55
r: =cut
camelia rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/ELygstVbDS␤Preceding context expects a term, but found infix = instead␤at /tmp/ELygstVbDS:1␤------> =cut⏏<EOL>␤»
jnthn um :)
timotimo hehe.
jnthn I think there's an error saying "no, =cut is Perl 5" or soin Perl 6's grammar, though
arnsholt jnthn: Giving this $/ in subrule arguments thing a whack, I'm urnning into some trouble. Could it be that the subrule's (pristine) $/ gets set up before the arguments are evaluated?
FROGGS jnthn: why do we have =cut in nqp code then?
jnthn Anyway, I throw out the dec_number thing for anybody who fancies trying their hand, and suggest nqp::radix may be the way to go there :)
FROGGS like, NQPHLL.nqp 16:56
16:56 iSlug left
jnthn FROGGS: I...have no idea ;) 16:56
FROGGS nqp/src/HLL/CommandLine.nqp:89:=cut
and right before it there is an =end
:o)
jnthn Thinko maybe :)
And our Pod parsing was, like, liberal man. 16:57
16:58 raiph joined
timotimo yeah, tadzik transformed all of his chill into the pod parser 16:59
also, the filter_number thing does all the string copies
the really un-nice quadratic kind 17:00
17:00 xenoterracide joined
timotimo even if there is nothing for it to do 17:00
oh well. i'll investigate nqp::radix
nqp::index to see if a character is 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9 is also ... 17:02
(and another for 0-9A-Z)
those could much more easily be chr and integer compares, no?
well, it would be nice to figure out if it's actually that that causes slowness 17:04
17:12 kaleem joined
timotimo i wonder if we can make a big difference by keeping around a hash of string-of-number to number? 17:13
i bet we see a hundred 1 and 0, some 10s
17:15 denisboyun joined
arnsholt timotimo: Maybe a kind of cache structure? 17:15
timotimo also, does add_numeric_constant do any caching?
17:18 kaleem left 17:22 SamuraiJack__ left
timotimo is very distracted 17:28
17:40 zwut00 joined 17:48 benabik left
timotimo r: say nqp::radix_I(10, "1024", 0, 0, Int) 17:52
camelia rakudo eb07bd: OUTPUT«No such method 'gist' for invocant of type 'FixedPMCArray'␤ in sub say at src/gen/CORE.setting:12751␤ in block at /tmp/3bBM2Gb7Ze:1␤␤»
timotimo ah, it returns an array of parts
r: my Mu $res := nqp::radix_I(10, "1024", 0, 0, Int); say nqp::atpos($res, 0); say nqp::atpos($res, 1); 17:53
camelia rakudo eb07bd: OUTPUT«1024␤10000␤»
timotimo r: my Mu $res := nqp::radix_I(10, "1024", 0, 4, Int); say nqp::atpos($res, 0); say nqp::atpos($res, 1); 17:54
camelia rakudo eb07bd: OUTPUT«1024␤10000␤»
timotimo r: my Mu $res := nqp::radix_I(10, "1024", 0, 1, Int); say nqp::atpos($res, 0); say nqp::atpos($res, 1);
camelia rakudo eb07bd: OUTPUT«-1024␤10000␤»
timotimo r: my Mu $res := nqp::radix_I(10, "1024", 0, 3, Int); say nqp::atpos($res, 0); say nqp::atpos($res, 1);
camelia rakudo eb07bd: OUTPUT«-1024␤10000␤»
timotimo not quite sure why there's a +4 for the $neg parameter in the Str part of core...
r: my Mu $res := nqp::radix_I(10, "1024", 0, 0, Int); say nqp::atpos($res, 0); say nqp::atpos($res, 1); say nqp::atpos($res, 2); 17:55
camelia rakudo eb07bd: OUTPUT«1024␤10000␤4␤»
timotimo and the last thing seems to be the position of the dot in the number
jnthn timotimo: github.com/perl6/nqp/blob/master/s....ops#L2891 has some doc on it 17:57
And yes, there already is caching of constants, odne in H::World 17:58
*done in Perl6::World
dalek p: d756b3f | (Tobias Leich)++ | src/ (2 files):
fix pod-parsing, jnthn++
FROGGS jnthn: running a spectest too, to be sure 17:59
timotimo now the question becomes: is a string-indexed hash for parsing numbers sensible?
FROGGS but nqp-cc builds, nqp's tests are ok, and rakudo builds
jnthn timotimo: I still think the whole lot may be replaceable with an nqp::radix call 18:00
timotimo all of it?
18:00 daxim left
jnthn Well, we need to convert the b/x/whatevers into a base 18:00
And do some work on the array that comes out
I guess divide the first by the second, for example 18:01
er, or something like that
timotimo not quite
jnthn bbiab
timotimo otherwise it would give you 0.1024 for 1024 :)
probably multiply it with the third to the power of the radix or something? 18:02
18:06 ssutch left
FROGGS jnthn: spectest passes 18:13
18:16 darutoko left 18:18 guru joined, guru is now known as Guest19395, Guest19395 is now known as ajr_ 18:19 ssutch joined
japhb__ timotimo: Have you looked through the Str.Numeric implementation? It's crazy general, but you might be able to browse through it to find just the bit you need. 18:19
timotimo no, i'm afraid of failure and so i'm distracting myself :)
japhb__ Ah. 18:20
timotimo: Also, there's some documentation of the op in nqp ... src/vm/parrot/ops/nqp_bigint.ops line 436 and following. Line 444 looks typoed; it should be "The contents of $1 ..." 18:24
lue hello world o/
japhb__ o/ lue 18:25
lue o/ japhb__ 18:26
18:39 raiph left 18:46 sqirrel joined 18:53 rindolf left
lizmat is back from errands 18:59
.oO( and backlogging )
19:00
19:02 denisboyun left 19:03 slava joined, xinming joined
dalek ecs: 29e1f75 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Change use of .elems on Set/Bag/Mix to new method .total
19:08
19:08 iSlug joined 19:09 jnap left, iSlug left 19:13 xorp joined 19:20 riceandbeans joined
riceandbeans how can I make a multidimensional array in perl? 19:20
19:20 jnap joined
lizmat hello riceandbeans, you mean Perl 5 or Perl 6 ? 19:22
lue r: my @a = [1,2],[3,4 19:23
camelia rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/Q1i_8hPq8I␤Unable to parse expression in array composer; couldn't find final ']'␤at /tmp/Q1i_8hPq8I:1␤------> my @a = [1,2],[3,4⏏<EOL>␤ expecting any of:␤ postfix␤ sta…»
lue r: my @a = [1,2],[3,4]; say @a.perl
camelia rakudo eb07bd: OUTPUT«Array.new([1, 2], [3, 4])␤»
lue (if you're using P6 that is)
arnsholt Does anyone else get test failures on NQP/Parrot at HEAD? 19:24
(t/nqp/05-comments.t)
diakopter jnap: did you find the --crash flag?
19:25 slava left, slava joined
jnap diakopter: probably not, but to be honest I've been so busy lately I can't even recall looking for it :( 19:25
19:25 iSlug joined
diakopter jnap: sorry, I meant to type jnthn, and also in the other channel 19:27
jnap diakopter: np :) glad my memory is failing less than I thought 19:28
dalek kudo/nom: 0dbbbfe | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Change .elems to .total for Sets/Bags, .elems is now what you expect for a hash
19:29
19:30 iSlug left
dalek ast: 3ee1ee0 | (Elizabeth Mattijsen)++ | S02-types/bag (2 files):
Adapt applicable tests to use .total rather than .elems
19:30
riceandbeans perl5, sorry 19:31
19:32 iSlug joined
riceandbeans just in general, defining a multidimensional array 19:32
@array = [][]; doesn't work
geekosaur no, it won't. it's also off topic here; try #perl
perl6 solutions won't help you much in perl5
FROGGS @array = [], [] # is perl6, and almost perl 5 :o) 19:33
TimToady @array = ([],[]); will work in either
riceandbeans is perl6 really that vastly different?
geekosaur (mainly because this is one of the areas where perl5 is most ... unusual... and perl6 is correcting that
)
TimToady you'll note p6 actually makes things easier by not requiring the parens
geekosaur perl5 needs to play ugly games with references to get multidimensional stuff
FROGGS riceandbeans: yes and no, it has huge differences in some areas, but in others you an nearly write identical code
geekosaur in many ways it feels like trying to do real structures in something like C which doesn't do real structures 19:34
riceandbeans ok, let me explain briefly what I want to do and maybe you could give me a little advice
lizmat r: role A { has %!a }; role B does A {}; class Foo does B { method BUILD (:%!a) {} } # is this a bug, or is this intended to work this way ?
camelia rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/Cl4EuJc9DA␤Attribute %!a not declared in class Foo␤at /tmp/Cl4EuJc9DA:1␤------> ass Foo does B { method BUILD (:%!a) {} ⏏} # is this a bug, or is this intended␤ expecting any of:␤…»
riceandbeans I want to scan a file for criteria, upon finding it, I want relative data from each line to be part of its own separate reference and able to be sorted by a certain value with it 19:35
say I'm scanning a maillog, with one line, storing from, to, msg size, attachment
in ruby I'd make a class and invoke it as a new instance 19:36
FROGGS riceandbeans: if you need detailed perl 5 specific help then a perl 5 channel might be better
lizmat r: role A { has %.a }; role B does A {}; class Foo does B { method BUILD (:%.a) {} } # is this a bug, or is this intended to work this way ?
riceandbeans FROGGS: I'm banned there from a disagreement with popl
camelia ( no output )
PerlJam riceandbeans: are you sure it wasn't a temp ban?
riceandbeans yeah
diakopter riceandbeans: just use a different nick if you burned that one :)
FROGGS riceandbeans: banned in #perl-help or in #perl ?
riceandbeans #perl 19:37
FROGGS #perl-help might be your friend :o)
riceandbeans FROGGS: I'm not sure what approach I should best go with this, and how much of a pain it would be to get perl6 on CentOS6 box
lue lizmat: I want to say it's a bug, but don't trust me when it comes to private attributes :)
FROGGS riceandbeans: see, #perl's topic is: Welcome to the perl hackers' chat channel - For help, #perl-help or freenode #perl | Interesting questions may still be answered ... or not
diakopter riceandbeans: how big are your input files
geekosaur points out that, having been banned in one channel, asking off topic questions in another channel is not the best way to go about getting that ban lifted
diakopter geekosaur: he was asking if he can use p6 instead 19:38
FROGGS riceandbeans: not much pain if you an handle git, or tar and make 19:39
can*
lizmat r: role A { trusts B }; role B {}
camelia rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/WafTtSz_Qe␤Illegally post-declared type:␤ B used at line 1␤Undeclared routine:␤ trusts used at line 1␤␤»
diakopter geekosaur: sounds you want grep with captures put into an array of hashes or arrays
erm. 19:40
riceandbeans: I mean
geekosaur: sry
TimToady r: role A { has %.a }; role B does A {}; class Foo does B { method BUILD (:%.a) {} }; B.new(:a(:lue(42))).perl.say
lizmat r: role B {} role A { trusts B }
camelia rakudo eb07bd: OUTPUT«B.new(a => ("lue" => 42).hash)␤»
rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/Wm1n7_HOWl␤Two terms in a row␤at /tmp/Wm1n7_HOWl:1␤------> role B {} ⏏role A { trusts B }␤ expecting any of:␤ statement list␤ horizontal whitespace␤ postfix␤ …»
lizmat r: role B {}; role A { trusts B }
camelia rakudo eb07bd: OUTPUT«===SORRY!=== Error while compiling /tmp/rXGp6qq6Xd␤Method 'add_trustee' not found for invocant of class 'Perl6::Metamodel::ParametricRoleHOW'␤at /tmp/rXGp6qq6Xd:1␤------> ␤»
lizmat I guess this is a rakudobug, or at least an LTA error 19:41
TimToady not sure it makes sense to trust a role 19:42
(rather than a class)
diakopter r: (role { }).new
camelia ( no output )
diakopter r: (role { }).new.WHAT.say
camelia rakudo eb07bd: OUTPUT«(<anon>)␤»
riceandbeans diakopter: my input files are ~70MB text files 19:43
diakopter perl6 isn't quite ready for that
19:43 japhb_ left
TimToady depends on how patient you are 19:43
slava isn't java-rakudo pretty good with large files? 19:44
lizmat but should a class that does a role, which does another role, which has a private attribute, be able to see that attribute ?
FROGGS slava: yes
riceandbeans a class would make this easier, which is why i WANT to use ruby
but out of the box, everything pretty much supports perl, whereas ruby is the weirdo in the corner no one wants to talk to
but sometimes he knows how to do some cool magic tricks 19:45
TimToady well, we're even weirder than ruby :)
19:46 Tene left
lue thinks you should be able to see the private attributes of roles from classes that C<does> those roles. 19:46
19:47 Tene joined, Tene left, Tene joined
diakopter p5 is to p6 as Burt Wonderstone is to Jim Carrey's character 19:47
19:47 djanatyn left
PerlJam lizmat: but is it the role that has the private attr or does the role merely convey the role to a class and the class is what really has the private attr? 19:47
lizmat I want to make QuantHash the basic role for Set/Bag/Mix as per spec
which means I have to specify the %!elems in there 19:48
19:48 djanatyn joined
lizmat but then Bag, which does Baggy, which does QuantHash, don't see the attribute anymore :-( 19:48
*doesn't 19:49
lue I see roles as a collection of things that classes can take and use for themselves (think starter kits for various kinds of projects). I think private attributes from roles should be visible to the class. 19:51
diakopter lizmat: can you create accessors in Baggy for it?
lizmat and throw performance even more out of the window ?
diakopter [half-rhetorical question directed at TimToady also] :)
PerlJam lizmat: get it working first, then working fast :-) 19:52
lue
.oO(Alternate solutions: a private !setElems() method, or invent protected attributes. One of these alternates is a joke.)
diakopter PerlJam: trite
lizmat instead keeps QuantHash as a shell role, until the situation improves
diakopter PerlJam: often, performance is part of "working" 19:53
PerlJam lue: you and I apparently have similar views on roles. I wonder if the spec backs that up? I don't see anything in particular that makes me think one way or the other. 19:54
19:55 kay_ left
TimToady I thought we've have QuantHash for the mutable *Hash types, and QuantMap for the Setty,Baggy,Mixy types 19:55
if we need that many roles, which I don't know we do
lue PerlJam: The intro to perlcabal.org/syn/S14.html#Roles might be informative. 19:56
TimToady but I figured the immutable/mutable distinction was probably important for how/when .totals is calculated
*.total rather
lue "or a set of generic methods and their associated data" specifically
19:56 japhb_ joined
PerlJam oh, duh. I just needed to read farther along 19:58
S14:100 even
synopsebot Link: perlcabal.org/syn/S14.html#line_100
lizmat TimToady: the distinction between mutable / immutable is made at the lowest level, in the class 20:00
basically, overrides on at_key, delete_key and .WHICH
that's all 20:01
20:01 denis_boyun joined
lizmat so I don't think we need a QuantMap 20:01
Setty/Baggy/Mixy serve both the immutable as the mutable versions of Set/Bag/Mux 20:02
Mix
20:03 riceandbeans left
jnthn lizmat: The role attributes should be visibl ein the class, I think the ruling was. Just didn't get around to implementing it yet. 20:04
lizmat maybe all I need is some pointers to fix this ? 20:05
jnthn void *over_there;
I can describe the change... :)
TimToady that's only one pointer :)
jnthn Smart *ass; # :P 20:06
diakopter it could point to more than one pointer..
lue suddenly has an urge to search for the hidden wonders of abusing void pointers...
jnthn lue: See the MoarVM GC
lue :)
diakopter lue: see every GC
jnthn lizmat: At the moment, when we see a $!foo, we immediately ask the class, "do you know of a $!foo"?
TimToady technically speaking, a void pointer doesn't point to anything; it's a big enough chunk of memory to hold a pointer :) 20:07
FROGGS and it should ask up the long ladder(tm)?
jnthn lizmat: The fix is (perhaps only when the answer is "no", or perhaps always) to store these up until after class composition time (triggered int he package_def action method)
lizmat: And then do the checks then
lizmat: Probably keeping the $/ around of the variables we need to check so we can get the location reporting right also. 20:08
lizmat ah, ok, I think that rings a bell
jnthn lizmat: Better still data structure wise is a hash of array
lizmat ok, will have a go at that
jnthn lizmat: Keys are the attribute names to check
lizmat: Value is array of the $/s of the places we saw it
lizmat: There is one nasty subtlety
lizmat: Which is the following csae: 20:09
role R { has int $!x }; class C does R { method m() { say $!x } } # we need to also go back and fix the AST to know that it should be looking up an int attribute
20:09 kaare_ left
lizmat ok, that's a bit yikes 20:10
jnthn Well, I can tell you something wrose... :P
lizmat but this doesn't work now anyway, so could wait for future refinement, no?
worse ?
.oO( what have I gotten myself into ;-)
20:11
FROGGS *g*
jnthn Worse is if somebody is silly enough to write BEGIN C.new.m; inside the class body :P
diakopter You find yourself mired in a morass of tarpits and boondoggles.
jnthn We'll call that "erroneous" or "you asked for it, you got it" :P
lizmat ah, yes, you *can* do that, but not with inherited attributes :-) 20:12
jnthn lizmat: Well, actually if you just keep the AST nodes around, all you need do is set .returns(...) on it
lizmat: There's already code there that does it today
lizmat: It's just a matter of setting it later
lizmat yup, got ya (I think)
jnthn lizmat: I can't think of any further gotchas. 20:13
Oh, that BEGIN case already fails *in general*.
r: class Foo { BEGIN Foo.new }
20:13 grondilu joined
camelia rakudo eb07bd: OUTPUT«===SORRY!===␤No such method 'new' for invocant of type 'Foo'␤» 20:13
jnthn We didn't actually add the default parent yet
lizmat *phew*
jnthn Even if we had 20:14
r: class Foo is Any { BEGIN Foo.new }
camelia rakudo eb07bd: OUTPUT«===SORRY!===␤No such method 'new' for invocant of type 'Foo'␤»
jnthn hah
:)
Fine :)
So yeah, we can not worry
lizmat I'll give it a stab tomorrow
jnthn OK :)
jnthn will be about for some of tomorrow if there's questions :) 20:15
20:15 denis_boyun left
lizmat cool! I most certainly will have questions 20:15
:-)
diakopter r: class NeverTruer is unknown { }
camelia rakudo 0dbbbf: OUTPUT«===SORRY!=== Error while compiling /tmp/7SErsmJZpK␤'NeverTruer' cannot inherit from 'unknown' because it is unknown.␤at /tmp/7SErsmJZpK:1␤------> ␤»
diakopter cracks meself up
lizmat r: class NeverTruer is Mu {} # huh, even more unknown ? 20:16
camelia ( no output )
lue r: class Foo is known { } 20:18
camelia rakudo 0dbbbf: OUTPUT«===SORRY!=== Error while compiling /tmp/ZhPba7M_Ky␤'Foo' cannot inherit from 'known' because it is unknown.␤at /tmp/ZhPba7M_Ky:1␤------> ␤» 20:19
japhb__
.oO( "But I just *said* it was known. Why don't you believe me?" )
20:20
dalek kudo/nom: a2bf0a4 | (Elizabeth Mattijsen)++ | / (6 files):
Move set operators to their own file, for clarity and ease of maintenance
20:21
jnthn btw, if you add up all the action method times in that thing I produced earlier, you get to 24s, and on my machine that's almost exactly half of stage parse. 20:22
um, wait, I can't math, it's a bit over half.
japhb__ Half the time after the cursless merge, or after? 20:25
s:1st/after/before
jnthn after
japhb__ Nice. 20:26
jnthn So yeah, we spend more time asting than parsing
FROGGS jnthn: do you think that changing [...]**0..1 to [...]? might help? 20:28
japhb__ Over 7s in just the top two; I can see why timotimo was asking about dec_number earlier.
jnthn FROGGS: Yeah, but it needs care (needs changes to action methods too) 20:29
20:29 dalek left
jnthn FROGGS: But it wants doing. 20:29
FROGGS k, that was my expectation
jnthn FROGGS: It'll save an array allocation each time so it's very worth it
20:29 dalek joined, ChanServ sets mode: +v dalek
FROGGS why are we doing this at all?? github.com/rakudo/rakudo/blob/nom/...5210-L5211 20:40
jnthn FROGGS: I'm not sure. I mentioned to timotimo that nqp::radix may be able to replace those and some of what radcalc is doing 20:42
FROGGS I mean, $int and $frac is unused
colomon dohQ
doh!
FROGGS++ 20:43
jnthn oh wtf
FROGGS++
FROGGS we are doing text-filtering stuff on numbers just for fun *g*
colomon but I *like* text-filtering numbers!
japhb__ Wow, nice catch.
jnthn Does that mean filter_number becomes unused? :)
dalek kudo/nom: d30b53e | (Elizabeth Mattijsen)++ | src/core/Baggy.pm:
Slight optimization in Str / pick / roll
FROGGS colomon: go write a module! :P 20:44
diakopter just don't git blame that...
FROGGS jnthn: yes
hehe
dalek albot/host07: dd10ea1 | moritz++ | evalbot.pl:
prepare some paths for hosting camelia on host07.perl6.com
20:45
jnthn does host07.perl6.com have a JDK 7? :D
colomon diakopter: moritz added those lines, but they actually did something when he added them. 20:47
moritz++
diakopter jnthn: yah
jnthn diakopter: yayz
diakopter jnthn: there's a nice ubuntu package
www.webupd8.org/2012/01/install-ora...u-via.html 20:48
updates same-day as new downloads from Oracle
japhb__ Who owns that box?
diakopter moi
japhb__ Thank you, diakopter++! 20:49
What kind of machine is it?
diakopter medium-class virtual
japhb__ Which hosting service?
diakopter tries to remember 20:50
japhb__ *chuckle*
diakopter digitalocean.com
mwilson@host07:~$ uptime 20:50:33 up 103 days
japhb__ 2 GB RAM or 4 GB? 20:51
japhb__ is looking at www.digitalocean.com/pricing ...
diakopter 3.9GB
moritz 4GB, modulo rounding errors :-)
lue just had a violent mental reaction to src/core/set_operators.pm 20:52
lizmat lue: why ? 20:53
japhb__ Good. That should be able to build one thing while running a couple queries at the same time
lue something about <<"\x220B">> just threw me for a loop.
diakopter japhb__: the two cores aren't super-fast
lizmat ah, yes
diakopter but they're okay 20:54
japhb__ diakopter: I'd rather slow cores than running out of RAM ....
lizmat lue: I *could* put in the actual unicode characters, but then parse time would be x15 or so
diakopter *whimper*
japhb__ lizmat: That bad? I thought it was only 2-4x worse for parse with Unicode ...
lue Oh, OK. I was about to say if someone could explain that to me, I'd be fine. That's a perfectly acceptable reason.
japhb__ Has the delta gotten way worse in the last 6 months? 20:55
lizmat let me put it this way: normally parse time is around 2 minues
the last time I tried it, I stopped it after it had been busy for 50+ minutes
japhb__ Holy crap.
lue O.o
japhb__ That's insane.
lizmat I welcome you to prove me wrong :-)
lue methinks that's a serious bug.
japhb__ That feels like a big bug 20:56
lizmat it's a known issue
FROGGS an Unibug!
diakopter deficiency, not bug
FROGGS diakopter: would moarvm have the same problem?
diakopter unclear.
japhb__ Is Unicode parsing O(n**2) or something?
lue r: my infix:<<"\x2603">>($a, $b) {say $a, "☄", $b}; say now - BEGIN now; 20:57
camelia rakudo 0dbbbf: OUTPUT«===SORRY!===␤Type 'infix:<☃>' is not declared␤at /tmp/pXM71Bdn7N:1␤------> my infix:<<"\x2603">>⏏($a, $b) {say $a, "☄", $b}; say now - BE␤Malformed my␤at /tmp/pXM71Bdn7N:1␤------> my infix:<<"\x⏏2603">>($a, $b…»
jnthn diakopter: Won't because the problem is utf-8 being used as an internal representation
lue r: sub infix:<<"\x2603">>($a, $b) {say $a, "☄", $b}; say now - BEGIN now;
camelia rakudo 0dbbbf: OUTPUT«0.05488848␤»
jnthn diakopter: Which Moar doesn't do
lue r: sub infix:<☃>($a, $b) {say $a, "☄", $b}; say now - BEGIN now;
camelia rakudo 0dbbbf: OUTPUT«0.0537766␤»
jnthn Nor does JVM, so I imagine the setting bug doesn't exist there either 20:58
s/setting/unicode/
diakopter I find it funny that atoi is faster than utf8 indexing
lizmat lue: just insert "#∅" anywhere in the setting, and try to build :-) 20:59
lue I could pull out my old laptop with an old old copy of rakudo on it, and see which setting compiles sooner :P
20:59 skids left 21:01 grondilu left, iSlug left 21:04 aindilis left 21:05 REPLeffect left, dmol left
dalek p: 7d0611b | (Tobias Leich)++ | src/HLL/Grammar.nqp:
[...]**0..1 to [...]? for dec_number
21:06
21:07 dmol joined
dalek kudo/nom: 6f84eb5 | (Tobias Leich)++ | / (3 files):
[...]**0..1 to [...]? for dec_number

Also strip call to filter_number().
21:09
21:11 sqirrel left 21:13 zwut00 left 21:14 donaldh joined
dalek kudo/nom: 147c1e0 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm:
Normalize Baggy.gist to make consistent with future Mixy.gist
21:14
21:15 Rotwang left, bluescreen10 left
dalek ast: cf33793 | (Elizabeth Mattijsen)++ | S02-types/bag (2 files):
Fix tests for new Baggy.gist format
21:15
21:22 dmol left 21:23 raiph joined
raiph .tell fglock TimToady doesn't like $*OS: irclog.perlgeek.de/perl6/2013-09-07#i_7555053 21:26
yoleaux raiph: I'll pass your message to fglock.
diakopter moritz: .cabal is in /root not ~p6eval 21:35
21:37 PacoAir left
lizmat TimToady: .pick($n > 1) on a MixHash, how would that work? I assume it won't work? What to deduct for a chosen key? 21:45
(or on a Mix, for that matter) 21:46
TimToady I don't we need to support .pick on a Mix until someone comes up with a real use case 21:47
lizmat okidoki 21:48
diakopter wonders what a Mix is 21:49
is that like a compilation of your fav songs on a tape?
TimToady kinda 21:50
diakopter or a saved setting of audio output levels?
TimToady with a marking that says how much you like each one
diakopter is it ordered?
TimToady no
it's a Bag with fractional balls 21:51
21:51 alester left
lizmat :-) 21:51
possibly negative even
TimToady or dice that are loaded
diakopter what is it keyed on 21:52
lizmat anything you want
TimToady anything that can be in a set or bag
21:53 aindilis joined
diakopter but its .Str ? 21:53
TimToady what about its .Str?
diakopter is that what it's keyed on?
TimToady no
japhb__ .WHICH?
TimToady 3rd base 21:54
diakopter .WHICH.Str ?
.WHO???
TimToady today, tomorrow...
lizmat $ perl6 -e 'Mix.new-fp((a=>1.5, b=>2.5)).Str.say'
a(1.5) b(2.5)
TimToady it's just an object hash
perigrin .o($doctor.WHO)
diakopter
.oO( but who's on second )
21:55
TimToady beats me, I'm just the warmup band 21:56
perigrin .WHO is :on_first
japhb__ Speaking of which. I've been taking a tuit here and there to try to unbitrot p6-pb (samuraisam/ssutch's Perl 6 Proto Buffers project). It compares different nodes of its model using overloaded infix:<eq>. Am I correct in thinking that it should overload infix:<eqv> instead?
21:56 BenGoldberg joined
diakopter www.archive.org/download/otr_abbott...ve_Rad.mp3 21:56
lizmat diakopter: the current rakudo implementation uses the .WHICH of the object to key on, but keeps a copy of the object as well 21:57
diakopter why not the original?
(why a copy)
lizmat why not the original what ?
TimToady abbot and costello
lizmat ah, sorry, yes, the original
TimToady *tt
BenGoldberg The original Abbot and Costello? 21:58
PerlJam
.oO( costtello? )
diakopter
.oO( originttal? )
lizmat %h{object.WHICH} = ( object,value ) basically
$ perl6 -e '(a=>1.5, b=>2.5).Mix.Str.say' 21:59
a(1.5) b(2.5)
BenGoldberg What position is WHICH playing?
diakopter is there like a farce of the absurd where the level of absurdity becomes absurd?
TimToady if it were kept as object => value it'd be very easy to return .pairs
lizmat TimToady: it is
%h{object.WHICH} = ( object => value ) basically 22:00
:-)
PerlJam diakopter: If there is, #perl hasn't reached it yet (not for lack of trying though) 22:01
dalek kudo/nom: 61580f2 | (Elizabeth Mattijsen)++ | / (8 files):
Initial implementation of Mixy / Mix / MixHash, as per spec (almost)
FROGGS or we are beyond measurement
PerlJam oh, perhaps we've already "wrapped around" absurdity 22:02
lizmat and that's enough for today, absurdly enough
FROGGS /o\ we are trapped in an absurdity-loop! /o\ 22:03
lizmat tomorrow I'll have a stab at fixing the private attribute visibility problem with roles
good night, #perl6!
the absurdity of my attempts will become clear tomorrow :-) 22:04
FROGGS gnight!
*g*
jnthn 'night, lizmat
PerlJam good night lizmat! pleasant dreams!
TimToady oo/
japhb__ So *anyway* ... am I correct that the correct equivalence test for a tree node structure should be infix:<eqv>? 22:05
PerlJam japhb__: sounded right to me. but I'm no expert
TimToady well, === would only check that the two parent objects were the same object
22:06 bbkr left
TimToady (unless they happened to be immutable value trees) 22:06
22:06 bbkr joined
diakopter lizmat: nite 22:07
japhb__ OK, I'll patch that too.
perigrin ($witch.WHICH is which?) 22:09
BenGoldberg The absurdity of #perl6 is greater than א₀ but less than א₁ 22:11
TimToady otoh, if you have two tree that you're just comparing fringes of, and don't care whether the nodes are the same, then eq is likelier to work, assuming .Str only emits the leaves
*treeses 22:12
japhb__ TimToady: " 22:13
er
TimToady ponders the relurdity of it all
22:13 REPLeffect joined
japhb__ TimToady: But wouldn't the infix:<eqv> multis be expected to know that's what makes sense for that tree? 22:13
TimToady japhb__: you'd think 22:14
japhb__ True, I would. :-)
TimToady and, in fact, our string types might end up looking like that underneath
but the nodes would be an implementation detail 22:15
japhb__ Sure.
What's the current idiom for marking that an attribute's value must be specified during object construction? Is it still 'has $.foo = die "Must specify a value for the foo attribute when constructing $?CLASS"' ? 22:23
Because ... eww/
TimToady nothing better yet
22:23 FROGGS[mobile] left
TimToady course, one could define something that was shorter 22:24
japhb__ I can see why samuraisam just specified a new() to allow required params ...
At one point I thought we discussed 'has $.foo is required' or somesuch, but ISTR there was some reason it wouldn't work at the time. Can we resurrect that now? 22:25
22:27 bluescreen10 joined
TimToady r: class Foo { has $.foo = !!! }; Foo.new 22:28
camelia rakudo 61580f: OUTPUT«Stub code executed␤ in method at /tmp/pt7C4gVK33:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at src/gen/CO…»
TimToady that's pretty short :)
japhb__ Heh
Too bad that for this use the error ends up being LTA ... 22:29
TimToady r: class Foo { has $.foo = !!! 'foo' }; Foo.new
camelia rakudo 61580f: OUTPUT«foo␤ in method at /tmp/eDuIMWOTlG:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at src/gen/CORE.setting:798␤…»
japhb__ r: class Foo { has $.foo = !!! 'foo value required' }; Foo.new 22:30
camelia rakudo 61580f: OUTPUT«foo value required␤ in method at /tmp/1dTnTyRS6h:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at src/gen/CO…»
japhb__ Hmmmm.
TimToady r: class Foo { has $.foo is default(42) }; Foo.new 22:31
camelia rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/wdXQzQzjRM␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/wdXQzQzjRM:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
TimToady looks like we have traits on attrs now though, at least syntactically 22:32
well, we always had rw
jnthn multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method () { die "$a.name is required" } }; class Foo { has $.foo is required; }; Foo.new
r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method () { die "$a.name is required" } }; class Foo { has $.foo is required; }; Foo.new
camelia rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/AEA5wD1dsZ␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/AEA5wD1dsZ:1␤------> method () { die "$a.name is required" } ⏏}; class Foo { has $.foo is required; …»
dalek p: e0585e5 | (Tobias Leich)++ | src/NQP/ (2 files):
[...]**0..1 to [...]? in deflongname
22:33
nqp: ab37e54 | (Tobias Leich)++ | src/NQP/ (2 files):
nqp: [...]**0..1 to [...]? in statement
22:33 dalek left
jnthn r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method () { die "$a.name is required" }) }; class Foo { has $.foo is required; }; Foo.new 22:33
camelia rakudo 61580f: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method <anon> at /tmp/mCzly_jDrt:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen…»
jnthn r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method (Z) { die "$a.name is required" }) }; class Foo { has $.foo is required; }; Foo.new
camelia rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/fqg_X28Qey␤Invalid typename 'Z' in parameter declaration.␤at /tmp/fqg_X28Qey:1␤------> a, :$required!) { $a.set_build(method (Z⏏) { die "$a.name is required" }) }; clas␤»
jnthn argh
22:33 dalek joined, ChanServ sets mode: +v dalek
jnthn r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method (|) { die "$a.name is required" }) }; class Foo { has $.foo is required; }; Foo.new 22:33
camelia rakudo 61580f: OUTPUT«$!foo.name is required␤ in method <anon> at /tmp/qh6KpO8Ymi:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at …»
jnthn r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method (|) { die "$a.name() is required" }) }; class Foo { has $.foo is required; }; Foo.new
camelia rakudo 61580f: OUTPUT«$!foo is required␤ in method <anon> at /tmp/GBIcDY7c76:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at src/g…»
jnthn Or something like that :) 22:34
TimToady obviously completely impossible yet :)
jnthn Yeah. Can't be done. :)
r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method (|) { die "$a.name().substr(2) is required" }) }; class Foo { has $.foo is required; }; Foo.new # neater, I guess
camelia rakudo 61580f: OUTPUT«foo is required␤ in method <anon> at /tmp/0xG2PeY5Hw:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in method new at src/gen…»
jnthn r: multi trait_mod:<is>(Attribute:D $a, :$required!) { $a.set_build(method (|) { die "$a.name().substr(2) is required to construct a {self.^name}" }) }; class Foo { has $.foo is required; }; Foo.new # informativer 22:35
camelia rakudo 61580f: OUTPUT«foo is required to construct a Foo␤ in method <anon> at /tmp/NAZsRkFb7z:1␤ in block at src/gen/CORE.setting:871␤ in method BUILDALL at src/gen/CORE.setting:826␤ in method bless at src/gen/CORE.setting:815␤ in method new at src/gen/CORE.setting:800␤ in me…»
TimToady couldn't we find a longer name than "required"? required-to-be-initialized-or-else
FROGGS is needed
jnthn is obligatory
diakopter is mandatory? 22:36
japhb__ is needy # ;-)
diakopter is necessary
is crucial
TimToady is critical
is a must
diakopter is indispensable
FROGGS has $.mass is critical
japhb__ *BOOM* 22:37
BenGoldberg indispecriticucianecesseedatory 22:38
diakopter perfect
TimToady r: class Foo { has Int:D $.foo }; Foo.new
camelia ( no output )
TimToady seems like that should blow up
jnthn No idea how or where. :)
diakopter n: class Foo { has Int:D $.foo }; Foo.new
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Only simple types may be attached to variables at /tmp/Y3qXTs_T0b line 1:␤------> class Foo { has Int:D⏏ $.foo }; Foo.new␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.sett…» 22:39
FROGGS ohh, it blows
diakopter up.
TimToady niecza++ for knowing when it doesn't know :)
FROGGS r: my Int:D $x
camelia ( no output )
BenGoldberg rn: class Foo { has int:D $foo }; Foo.new.say 22:40
FROGGS :D
camelia rakudo 61580f: OUTPUT«Foo.new()␤»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Malformed has at /tmp/Mb0HsJlL6h line 1:␤------> class Foo { has⏏ int:D $foo }; Foo.new.say␤␤Parse failed␤␤»
TimToady if Int:D is an invariant, we seem to be varying rather early 22:41
japhb__ "invariants aren't"?
22:42 kay joined
BenGoldberg And here I thought :D was a smiley face. 22:42
22:42 kay is now known as Guest27353
TimToady the Int:D approach would also prevent people from setting it to an undefined value later 22:44
would be nice if it could be used to check initialization too
jnthn Might be able to fudge a way :) 22:45
TimToady I suppose we could check for it particularly and install an = die "Must be initialized to an defined value"
or some such
but only if there isn't an = pseudoassignment already 22:46
jnthn I was pondering sticking it into the buildplan somehow...
TimToady that'd work for my as well as has, seems
jnthn Hm
Isn't
my Int:D $x;
Just statically an error?
TimToady yes, could be 22:47
TimToady ponders the Int():D type... 22:48
BenGoldberg Here's another "wouldn't it be nice" ... if there were a way to tell perl that certain of a class's member values should be initialized *positionally* from the constructor's argument list.
lue thinks at some point you should stop relying on the default constructor 22:49
TimToady there is, it's called writing your own constructor
BenGoldberg So I could say: class Foo { has $bar <something something>; }; my $baz = new Foo(4); # $baz.bar is now 4
jnthn TimToady: Yes, the combinatorics there are one thing that's made me not be too hasty to work on these ;-)
TimToady note, however, that it doesn't support derived classes very well to use positionals
lue BenGoldberg: method new($attr1) { ... } :)
22:51 btyler left
TimToady it's almost easy, if you name the positionals right, and you can bless 'em as :$myattr 22:51
ajr_ should perl6 -e "for 1..3 {say $_}" not give the same output as perl6 -e "for 1..3 {.say }" ?
lue I can't help but wonder if "this attribute is required" is common enough to save people from writing :$attr! filled constructors themselves. I'm middle-of-the-road on the issue.
BenGoldberg r: for 1..3 { say $_ }; for 1..3 { .say }
camelia rakudo 61580f: OUTPUT«1␤2␤3␤1␤2␤3␤»
lue ajr_: .say is equal to $_.say 22:52
donaldh Hmmm, eager ListIters allocate a 100_000 element SixModelObject[] right off the bat.
lue (which is equal to say $_)
ajr_ The first produces 1..3
True
3 times
The second:
1
2
3
lue r: for 1..3 {.say };
camelia rakudo 61580f: OUTPUT«1␤2␤3␤» 22:53
BenGoldberg What do you mean, 1..3 three times?
TimToady how old is your rakudo?
ajr_ 1..3
True
1..3
2013.09
lue r: for 1...3 {say $_}
camelia rakudo 61580f: OUTPUT«1␤2␤3␤»
TimToady 1..3 and 1...3 should be equivalent in list context
jnthn ajr_: On Parrot or JVM, and where are you running it?
ajr_ parrot 22:54
TimToady isn't camelia using parrot?
diakopter not for long
BenGoldberg ajr: When you type "perl6 -e ...", what shell are you using?
ajr_ bash 22:55
TimToady so $_ is getting interplated by the shell?
BenGoldberg If the shell's environment variable _ contains "1..3", and if your shell is interpolating $_, you could be getting unexpected results
lue try perl6 -e ' ... ' instead of perl6 -e " ... "
TimToady since it's in double quotes
ajr_ doh!
BenGoldberg :)
TimToady ajr_: don't feel special, we all do this one from time to time 22:56
ajr_ That was it. Sorry.
donaldh rakudo allocates 15 of these 100_000 element SixModelObject[]s before it can 'say 1'. 22:57
japhb__ Shell quoting: it's why Perl has arbitrary quote constructs.
donaldh: Why 100_000?
jnthn donaldh: Hm. That's a little over-keen... 22:58
donaldh japhb__: a page up
japhb__ donaldh: I meant, where did that magic number come from? 22:59
donaldh japhb__: in ListIter.pm my int $max = 100_000; 23:00
japhb__ has been iterating on the error message from an 'is required' sort of construct. How does "Foo::Bar requires a value for attribute foo" sound?
donaldh an eager ListIter allocates an array this size.
japhb__ Ah.
jnthn Well, it wants to avoid having to resize...
But yeah, that's a big chunk size. 23:01
japhb__ s/00_//
donaldh The weird thing is these seem to get allocated just to load the CORE.setting.
diakopter jnthn: I think it should x8 in size until 100k or so, then just double like usual
japhb__ Is power-of-two an advantage? Would a chunk size of 2 ** N be better than 10 ** M ? 23:02
23:02 kivutar joined
jnthn diakopter: The resizing is *exactly* what we're trying to avoid. 23:03
japhb__: yes, most likely
BenGoldberg Why not profile it somehow?
diakopter jnthn: I'm saying that would reduce it a lot
japhb__ jnthn: Sure, but log base 8 (N / 1024) is going to be pretty small.
BenGoldberg See what happens if your set $max to ... 10 or so, and keep track of how many times it gets resized... then change $max so it's just big enough to not resized while loading CORE.setting. 23:04
donaldh As an aside, a min size of 8 for VMArrayInstance is quite wasteful when parsing CORE.setting. Very many < 4 element arrays.
Very many single element arrays.
japhb__ Didn't niecza have an optimization for that at one point? 23:05
TimToady perl 5 always starts with 4, iirc
or did, last I looked
donaldh BTW these 15 arrays are full of nulls
jnthn donaldh: Do they live? 23:07
BenGoldberg japhb__: What happens if Foo::Bar requires a value for $.foo, and also for @.foo? Does it print the same error message twice?
donaldh let me check again.
jnthn BenGoldberg: You won't make it past compile time, iirc... 23:08
japhb__ BenGoldberg: How would you even do that? Constructors expect to refer to attributes using the un-sigiled name ....
jnthn r: class A { has $.foo; has @.foo; }
camelia rakudo 61580f: OUTPUT«===SORRY!===␤Two or more attributes declared that both want an accessor method 'foo'␤»
TimToady ah, yes, note that perl 5 only extends by 20% !!!
newmax = key + AvMAX(av) / 5;
BenGoldberg Ahh, ok, nevermind
TimToady and gets by fine with that 23:09
the overhead of copying pointers gets swamped by the overhead of actually putting more stuff into the array
so it's better to guess small
diakopter fsdo of "gets" "by" and "fine"
donaldh jnthn: yes, they are still referenced, while at the REPL prompt
jnthn donaldh: eek, ok
r: 15 * 100_000 * 8 23:10
camelia ( no output )
jnthn r: say 15 * 100_000 * 8
camelia rakudo 61580f: OUTPUT«12000000␤»
japhb__ jnthn: That error reminds me ... what's the BCP for error messages with regards to quoting interpolants? Meaning, should we be saying "method foo" or "method 'foo'"?
jnthn japhb__: Typically quote method names, but not type names (as the uppercase starting letter is clue enough)
TimToady diakopter: p5 relies on the programmer to pre-extend the array if they have better knowledge 23:11
japhb__ OK, and I assume quote attribute names as well, since they lack the uppercase.
jnthn makes sense
TimToady but 100_000 is just stupid
diakopter well, lazy anyway 23:12
japhb__ And how big is an array slot? One pointer? Or a full object inlined?
donaldh jnthn: they are referenced by oLex and oRet of various CallFrames.
japhb__ Oh, I see you used * 8, so I'm assuming one pointer
donaldh jnthn: the graph of CallFrames seems to go on for evah 23:13
TimToady diakopter: this seems like a better time to be impatient than to be lazy :) 23:14
jnthn That may be due to the prior_invocation thing that I managed to kill off over in MoarVM and now need to do for the JVM. 23:15
TimToady: Well, it's *meant* to do this when it knows there's a huge number of things coming. Apparently it's doing it when it doesn't know.
donaldh well, caller [ <- caller ]+ <- priorInvocation
yeah
TimToady maybe we should remember how many things we got last time we did this :) 23:16
diakopter sshhh don't give away all the secrets
donaldh Yeah, eagerness is triggered by: my $eager = nqp::p6bool(nqp::istype($n, Whatever) || $n == $Inf); 23:17
TimToady seems like that should trigger laziness, not eagerness
donaldh oops, wrong paste. my $eager = nqp::p6bool(nqp::istype($n, Whatever));
TimToady still 23:18
this couldn't be the for eagerness bug, could it?
hmm, doesn't seem like it could 23:19
jnthn I *think* that's something else, but I've known since Austin Pm wants to re-do various things in lists, including to support the hyper/race things
donaldh oh, look at the hour. 23:20
goodnight o/
jnthn 'night, donaldh++
TimToady yes, we talked about that; we don't really need to pass all those contexts down the stack, but we do need to at least know when there's going to be a list-context handshake of some sort
o/
jnthn *nod* 23:21
23:21 donaldh left
jnthn Anyway, I'm inclined to wait for that to happen rather than try to patch it here and there... 23:21
TimToady since you have to generate one on the caller end as well as the callee
a simple dynvar ain't gonna cut it
jnthn *nod* 23:22
The one list-y thing I do plan to refactor in the next weeks is feeds, but that'll be after the monthly release... 23:23
Want to try and get them to the point where I can do the producer/consumer stuff on JVM.
For now though, I want to sleep :) 23:24
'night o/
TimToady \o
23:29 Guest27353 left
TimToady nr: constant @fact = 1, * * ++(my $) ... *; say @fact[5] 23:36
camelia niecza v24-95-ga6d4c5f: OUTPUT«120␤»
..rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/XM9g02xuRa␤Unsupported use of $) variable; in Perl 6 please use $*EGID␤at /tmp/XM9g02xuRa:1␤------> constant @fact = 1, * * ++(my $)⏏ ... *; say @fact[5]␤»
TimToady nr: constant @fact = 1, * * ++(my $ ) ... *; say @fact[5]
camelia rakudo 61580f, niecza v24-95-ga6d4c5f: OUTPUT«120␤»
TimToady std: constant @fact = 1, * * ++(my $) ... *; say @fact[5] 23:37
camelia std 4cde04e: OUTPUT«ok 00:00 46m␤»
TimToady I guess the fix for that hasn't got into rakudo yet
lue TimToady: what's the purpose of (my $) anyway? Not upset about it, but just curious :) . 23:44
geekosaur evil way to make a closure with a "static" local variable (WhateverCode) 23:47
TimToady it's just an anonymous variable
nr: constant fact = 1, * * ++my $ ... *; say fact[5] 23:48
camelia rakudo 61580f: OUTPUT«120␤»
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Builtins.InvokeSub (Niecza.P6any obj, Niecza.Variable[] pos) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.ToComposable (Niecza.STable…»
TimToady I guess we really don't need the parens there
lovely nieczabug, btw
r: constant fact = 1, * * ++my$ ... *; say fact[5] 23:50
camelia rakudo 61580f: OUTPUT«120␤»
TimToady I guess my doesn't require ws
TimToady wonders if my$ will catch on as an idiom 23:54
BenGoldberg r: constant fact = 1, * * ++my$ ... *; say fact[^5] 23:55
camelia rakudo 61580f: OUTPUT«1 1 2 6 24␤»
TimToady nr: say my$++ for 1..5
camelia niecza v24-95-ga6d4c5f: OUTPUT«0␤1␤2␤3␤4␤»
..rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/BAxHQZsC_t␤Undeclared routine:␤ for used at line 1␤␤»
BenGoldberg Undeclared routine:[empty name]? :) 23:56
TimToady say what?
guess it's parsing as ( my $ ) + + for 23:57
nr: say my$++ 23:59
camelia rakudo 61580f: OUTPUT«===SORRY!=== Error while compiling /tmp/p_iFSPZcxp␤Two terms in a row␤at /tmp/p_iFSPZcxp:1␤------> say my$++⏏<EOL>␤ expecting any of:␤ scoped declarator␤ constraint␤ postfix␤ infix stopper␤ …»
..niecza v24-95-ga6d4c5f: OUTPUT«0␤»
TimToady um...