»ö« 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:02 FROGGS left 00:17 skids joined 00:21 jnap left, jnap joined 00:31 FROGGS joined 00:34 fridim__ joined 00:36 revdiablo joined 00:38 djanatyn left 00:39 djanatyn joined 00:43 FROGGS left 00:49 xenoterracide left, xenoterracide joined 00:53 xenoterracide left 00:59 Ben_Goldberg joined 01:02 BenGoldberg left 01:07 ssutch left, pdurbin joined
dalek rl6-roast-data: 8b05d92 | coke++ | / (5 files):
today (automated commit)
01:09
TimToady licjtkind: mostly not, except insofar as the clean design of the rest of the language stays out of jnthn++'s way :) 01:20
01:21 licjtkind left
lichtkind TimToady: ah thanks 01:21
TimToady for example, threading works much better in a language where all your variables are limited in scope either lexically or dynamically 01:22
lichtkind TimToady: and would you agree that @you somewhat seeing an end of the p6 speccing
TimToady and the porting to JVM/MoarVM is enabled in part by the representational polymorphism that was a gleam in our eye from the start of P6 01:23
I believe we'll converge on a 6.0.0 spec within the coming year or so
that doesn't mean Perl 6 will stop develoing more spec :) 01:25
*lop
lichtkind sure i would not expect that :) 01:27
i just wanted it hear from your lips before i put it into the virtual press :)
oh and i will giv btw nxt weekend a p6 talk at froscon 01:28
so if you want me to mention enything
dalek kudo-star-daily: feccec3 | coke++ | log/ (5 files):
today (automated commit)
01:30
kudo-star-daily: c1d3276 | coke++ | log/ (5 files):
today (automated commit)
01:35 nebuchadnezzar joined 01:37 araujo left, araujo joined 01:46 jnap left 01:57 xenoterracide joined, xenoterracide left 01:58 xenoterracide joined 02:11 xenoterracide left, xenoterracide joined 02:12 imarcusthis joined 02:16 jaldhar joined 02:19 Mouq joined 02:20 benabik joined 02:26 xilo joined 02:32 jaldhar left 02:34 jaldhar joined 02:43 Targen left 02:51 Kelder joined 02:59 ssutch joined 03:10 Kelder left 03:11 Ayiko joined 03:18 Targen joined 03:22 ssutch left 03:24 preflex joined, ChanServ sets mode: +v preflex 03:28 xenoterracide left, xenoterracide_ joined 03:33 fridim__ left 03:36 jaldhar left 03:37 jaldhar joined 03:41 jaldhar left, jaldhar joined 03:43 dayangkun joined, dayangkun left 03:50 slavik joined 03:56 Gruber joined 03:57 cbk left 04:01 Mouq left 04:04 FROGGS joined 04:14 FROGGS left 04:21 Grrrr joined 04:23 FROGGS joined, Gruber left, ribasushi left 04:26 Ben_Goldberg left, ribasushi joined 04:35 abnorman left 04:48 Mouq joined 04:50 hummeleBop joined
dalek rl6-bench: b519b26 | (Timo Paulssen)++ | microbenchmarks.pl:
replace $i++ with $i = $i + 1 in p6 for the time being
04:50
perl6-bench: 9b0af8b | (Timo Paulssen)++ | microbenchmarks.pl:
perl6-bench: trim_string.perl5 no longer cheats.
diakopter d'oh 04:51
04:51 dalek joined, ChanServ sets mode: +v dalek
japhb .tell timotimo I've pulled and pushed all your changes to perl6-bench, and made a few minor tweaks on top of them (plus one spot where you appear to have accidentally made the perl6 version algorithmically different). One remaining question: Why the different handling of capture {} and the segfault check between the two halves of timeall:time_command()? 04:53
yoleaux japhb: I'll pass your message to timotimo.
japhb .tell timotimo (... made the perl6 version of one microbenchmark ...) 04:54
yoleaux japhb: I'll pass your message to timotimo.
05:01 FROGGS left 05:08 FROGGS joined 05:20 SamuraiJack joined
masak morning, #perl6 05:21
05:22 FROGGS left 05:26 SamuraiJack left 05:28 SamuraiJack joined 05:35 crab2313 joined 05:39 abnorman joined 06:14 grondilu joined 06:15 snoopy_ joined 06:16 snoopy_ left, denisboyun joined 06:17 snoopy_ joined 06:18 snoopy_ left, dwarring joined 06:34 kaleem joined 06:43 denisboyun left
timotimo "immutable++" amuses me greatly 06:47
yoleaux 04:53Z <japhb> timotimo: I've pulled and pushed all your changes to perl6-bench, and made a few minor tweaks on top of them (plus one spot where you appear to have accidentally made the perl6 version algorithmically different). One remaining question: Why the different handling of capture {} and the segfault check between the two halves of timeall:time_command()?
04:54Z <japhb> timotimo: (... made the perl6 version of one microbenchmark ...)
timotimo japhb: the moarvm runner (cross-compiler thingie) will not give a proper return value if the moar process segfaulted, which it did for almost all benchmarks 06:53
so i had to do the ugly string comparison to not do infinite amounts of the same crashing benchmark over and over again
06:56 fhelmberger joined 06:57 ribasushi left 06:59 fhelmberger left 07:00 FROGGS joined
moritz \o 07:07
07:16 zakharyas joined 07:18 dmol joined 07:19 FROGGS left, donaldh joined 07:20 sunnavy joined
donaldh o/ 07:20
07:21 caofang joined 07:24 donaldh left 07:25 caofang left, donaldh joined
donaldh Oh, github is down 07:26
timotimo *sigh*
a bit too often, recently
07:27 zakharyas left, xenoterracide_ left 07:28 dmol left, xenoterracide_ joined, sidus joined 07:33 dmol joined 07:35 donaldh left 07:44 crab2313 left 07:46 zakharyas joined 07:59 pernatiy left 08:11 denis_boyun joined 08:12 fhelmberger joined 08:18 ribasushi joined 08:19 FROGGS joined 08:28 Rotwang joined 08:39 FROGGS left 08:46 Vlavv joined 08:52 berekuk joined 09:02 imarcusthis left 09:03 pecastro joined, dakkar joined 09:05 berekuk left, daxim joined 09:06 berekuk joined
jnthn morning, #perl6 09:12
yoleaux 02:37Z <diakopter> jnthn: yes I'm kinda married to outputting the opname and which instruction it is; it can be very helpful; but I'm glad to make it a command-line flag (--verbose-stack-traces or something)
04:02Z <diakopter> jnthn: how much of *Moar.nqp can we wrap in BEGIN { }.. hopefully lots? also, plz read scrollback in moar
jnthn read ALL the scrollback? /o\ :)
09:16 ssutch joined 09:24 FROGGS[mobile] joined
diakopter jnthn: eh no 09:25
jnthn: just .. up to that note :)
jnthn: actually I take that back, yes all :D
jnthn yeah, I'll get to it in a bit :)
09:45 pernatiy joined 09:55 Rotwang left 10:04 kivutar joined 10:06 crab2313 joined 10:09 kivutar left 10:10 donaldh joined 10:11 ennio joined 10:14 ennio left 10:15 Bebus joined 10:16 ennio joined
felher r: my @a; BEGIN { @a = 1,2,3; }; @a; 10:17
camelia rakudo 9fcbf5: OUTPUT«This type does not support elems␤current instr.: 'REIFY' pc 323028 (src/gen/CORE.setting.pir:137364) (src/gen/CORE.setting:7505)␤called from Sub 'REIFY' pc 328528 (src/gen/CORE.setting.pir:139788) (src/gen/CORE.setting:7809)␤called from Sub '' pc 304947 (src/gen/CO…
felher Known? Related to rt.perl.org/rt3//Public/Bug/Displa...?id=119267 ?
felher -> lunch 10:19
10:22 ssutch left 10:24 ennio left
lizmat hmmm… maybe I broke sometihing 10:38
felher lizmat: regarding the BEGIN-Bug?
lizmat r: my @a; say @a.VAR.of # would expect (Any) here
camelia rakudo 9fcbf5: OUTPUT«(Mu)␤»
lizmat r: my @a; say @a[0] # since this is Any
camelia rakudo 9fcbf5: OUTPUT«(Any)␤»
10:39 fgomez left
lizmat felher: yes 10:39
felher lizmat: well, my Perl6 is roughly a week old and I see the same behavior on my machine. :) 10:41
8 days old, to be exact
lizmat ok, then maybe it's been broke for a while
r: my @a; CHECK @a=1,2,3; say @a # not just BEGIN blocks 10:42
camelia rakudo 9fcbf5: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7505␤ in method REIFY at src/gen/CORE.setting:7809␤ in method reify at src/gen/CORE.setting:6731␤ in method reify at src/gen/CORE.setting:6718␤ in method reify at src/gen/CORE.setting:67… 10:43
lizmat r: my @a; once @a=1,2,3; say @a # once blocks seem fine
camelia rakudo 9fcbf5: OUTPUT«1 2 3␤»
lizmat r: my @a; BEGIN say @a.WHICH; say @a.WHICH # uh oh 10:44
camelia rakudo 9fcbf5: OUTPUT«Array|774368358␤Array|782646392␤»
lizmat r: my @a; once say @a.WHICH; say @a.WHICH # uh oh 10:45
camelia rakudo 9fcbf5: OUTPUT«Array|1529834946␤Array|1529834946␤»
lizmat seems like the @a in the BEGIN block is something else
10:45 bbkr__ left 10:47 denis_boyun left, bbkr joined 10:48 fgomez joined, frettled joined 10:49 crab2313 left
moritz r: my @a; BEGIN say @a.defined; say @a.defined; 10:50
camelia rakudo 9fcbf5: OUTPUT«True␤True␤»
lizmat @a is always defined, currently, afaik 10:51
10:51 robinsmidsrod joined
lizmat judging from the .WHICH, the @a inside the phaser is not the same as the @a on the outside 10:51
10:53 alex___ joined, alex___ left
timotimo so the @a gets redefined after the phaser runs? 10:53
lizmat not sure 10:55
r: my %h; BEGIN %h<a>=1; say %h
camelia rakudo 9fcbf5: OUTPUT«("a" => 1).hash␤»
lizmat no pb there, however: 10:56
r: my %h; BEGIN say %h.WHICH; say %h.WHICH # these are not the same either
camelia rakudo 9fcbf5: OUTPUT«Hash|-1603668746␤Hash|-1598501904␤»
timotimo right, so maybe there is a value assignment from whatever it was before to the new container at one point after the begin phaser?
jnthn Well, you'll end up with a fresh %h when you enter the scope at runtime, since that's what happens at scope entry. 10:58
10:58 lichtkind_ joined, betterworld left
lizmat r: my %h := my %a; BEGIN{ say %h.WHICH; say %a.WHICH } 10:58
camelia rakudo 9fcbf5: OUTPUT«===SORRY!=== Error while compiling /tmp/QTsCtuDYT3␤multi-dimensional indexes not yet implemented. Sorry. ␤at /tmp/QTsCtuDYT3:1␤------> %a; BEGIN{ say %h.WHICH; say %a.WHICH }⏏<EOL>␤»
lizmat WAT? 10:59
jnthn Any hash assignment inside of BEGIN is in theory affecting the static lexpad on the outside, which means that the hash would end up being initialized to something in the BEGIN block.
lizmat r: my %h := my %a; BEGIN { say %h.WHICH; say %a.WHICH }
camelia rakudo 9fcbf5: OUTPUT«Hash|432510130␤Hash|-1721231940␤»
lizmat signifcant whitespace :-(
11:01 lichtkind left 11:03 lichtkind_ is now known as lichtkind
lizmat jnthn: but in the array case, surely that should work and not bomb? 11:16
jnthn lizmat: It shodulnt' bomb. Unfortunately, every since array is going to share underlying storage no matter how many times you enter a scope, at present. 11:17
s/since/single/ 11:18
So if we make it not blow up, we'll still have interesting behavior :)
lizmat ok
the fact that the same @a or %H has a different .WHICH, is normal ? 11:19
jnthn Yeah. 11:21
I mean, consider sub foo() { my %h; say %h.WHICH; foo(); } 11:22
Every invocation we have should get a fresh %h
lichtkind hai jnthn : i make you superstar :) no just mentioned implication of your 3 talks on an german aticle that will come maybe today :) 11:24
11:25 mtk left
felher jnthn gave talks not so long ago? Any video recordings available? 11:26
jnthn Not aware of any videos yet, though I know there were video cameras there
felher Hm, hopefully the videos are yet to come. :)
jnthn: where did you give those talks? 11:27
jnthn YAPC::EU v Kyiv
felher jnthn: thnx
11:29 mtk joined
felher jnthn: www.youtube.com/watch?v=LHjF3WujAu8 . Thats one of 'em? 11:30
Ah, probably not: 'This talk was given at the First Dutch Perl Workshop' 11:31
jnthn right :)
no, not that :)
The slides are available from 6guts
diakopter jnthn: what happened to the Rakudo Architecture slides 11:32
jnthn diakopter: ?
felher jnthn: thnx, i'll take a look at them. :) 11:33
lizmat jnthn: that was the first *Polish* workshop! 11:34
jnthn: but in the case of "my @a; BEGIN @a=1,2,3; say @a", there is no *my* inside the BEGIN phaser 11:38
so it should be using the @a from the outer scope, no?
jnthn lizmat: Yes, for sure, but you have to thing about compile time vs runtime to understand the issue. 11:43
*think
Of note, @a is *not* static. 11:44
It's lexical, and a scope entry (which hasn't happened at the point we do a BEGIN) creates fresh lexicals. 11:45
What's really going on under the hood is that a BEGIN referring to something in an outer scope sees a "prototype" container. 11:47
Every scope entry from then on just clones this prototype
That's why:
r: sub foo() { my $a; BEGIN { $a = 42 }; say $a; $a = 69; say $a; }; foo(); foo(); 11:48
camelia rakudo 9fcbf5: OUTPUT«42␤69␤42␤69␤»
jnthn The 69 doesn't stay around, and $a starts as 42 since that's what the prototype container we assigned to in the BEGIN block set up.
lizmat wow 11:49
jnthn :)
11:49 kivutar joined
jnthn That's what :scope('contvar') means, by the way :) 11:50
uh, sorry
:decl('contvar')
lizmat p5eval: sub foo { my $a; BEGIN { $a = 42 }; say $a; $a = 69; say $a }; foo(); foo()
p5eval lizmat: 4269691
lizmat so this is different from p5
jnthn Yes. I'm not entirely sure how to explain Perl 5's behavior :P 11:51
lizmat second time around, the BEGIN is not executed
11:52 fhelmberger_ joined
jnthn argh!! 11:52
lizmat p5eval: sub foo { BEGIN { say "BEGIN" } }; foo(); foo()
p5eval lizmat: BEGIN
jnthn BEGIN doesn't mean that!
lizmat r: sub foo { BEGIN { say "BEGIN" } }; foo(); foo()
camelia rakudo 9fcbf5: OUTPUT«BEGIN␤»
lizmat hmmm....
jnthn BEGIN means "at parse time"
lizmat yes, I know
jnthn r: BEGIN say "here!"; 1 2 3 "omg syntax error"
camelia rakudo 9fcbf5: OUTPUT«here!␤===SORRY!=== Error while compiling /tmp/X1v3t4s_8p␤Two terms in a row␤at /tmp/X1v3t4s_8p:1␤------> BEGIN say "here!"; 1 ⏏2 3 "omg syntax error"␤ expecting any of:␤ postfix␤ infix stopper␤ infix or m…
lizmat but I got the impression
jnthn :)
I guess in Perl 5 something happens "interestingly" initialization wise. :) 11:53
lizmat from the 42 behaviour in p6 it *did* get executed
jnthn No
11:53 skids left
lizmat let me put it this way: coming from p5, it feels that way :-) 11:53
brb
11:55 fhelmberger left, LeopoldBloom joined 11:56 JimmyZ_ joined
lizmat back 11:56
felher sub foo() { state $a; BEGIN { $a = 'a' }; say $a; $a = 'b'; say $a; }; foo(); foo(); 12:02
12:02 rindolf joined
felher r: sub foo() { state $a; BEGIN { $a = 'a' }; say $a; $a = 'b'; say $a; }; foo(); foo(); 12:02
camelia rakudo 9fcbf5: OUTPUT«a␤b␤b␤b␤»
12:02 brrt joined, kivutar left
lizmat that seems right to me 12:03
felher In this case, the prototype container is only cloned on the first entry? 12:04
12:06 sqirrel joined
lizmat you mean with "state" ? 12:08
felher lizmat: yes 12:09
lizmat I think so, yes
r: say my $a; BEGIN $a=42 # works
camelia rakudo 9fcbf5: OUTPUT«42␤»
lizmat r: say my %a; BEGIN %a=a=>42 # works 12:10
camelia rakudo 9fcbf5: OUTPUT«("a" => 42).hash␤»
lizmat r: say my @a; BEGIN @a=42 # doesn't work, so rakudobug, right?
camelia rakudo 9fcbf5: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7505␤ in method REIFY at src/gen/CORE.setting:7809␤ in method reify at src/gen/CORE.setting:6731␤ in method reify at src/gen/CORE.setting:6718␤ in method reify at src/gen/CORE.setting:67…
jnthn felher: yes, that's right.
felher: First entry *to a particular closure clone* at least
lizmat regardless of what's happening, this is not expected behaviour, right?
jnthn lizmat: Yes, that error is certainly a bug 12:11
felher jnthn: kay, thnx :)
lizmat ok, then we agree on that
lizmat is resisting the urge to dive into this, and will wait until after the RaNIW if it hasn't been fixed by then 12:12
12:16 pdurbin left 12:23 Bebus left 12:27 BenGoldberg joined
lichtkind lizmat: hej looks you well :) 12:28
lizmat you mean, me diving ? I need a big pool :-)
lichtkind because your a big girl :) 12:29
12:30 ajr joined, ajr is now known as Guest25690, Guest25690 is now known as ajr_ 12:37 jnap joined 12:48 kbaker joined
lichtkind lizmat: so see you in augustin , is there a time for my talk? 12:50
lizmat yes, there is!
lichtkind i would like to hear it :) 12:51
donaldh g'day o/
lizmat donaldh o/ 12:52
donaldh github.com/rakudo/rakudo/pull/196 Use nqp::shell(cmd, dir, %env) 12:56
moritz spectests the pull request 12:58
donaldh thx moritz++ 12:59
moritz donaldh++ # pull request
donaldh I'm not 100% sure of the default status of the spec tests on MacOS.
donaldh must baseline
13:00 benabik left
moritz donaldh: clean, except for some of those socket timeouts 13:00
donaldh on jvm ?
moritz on parrot 13:01
jnthn Today is relesae day, yes? :) 13:02
moritz wonders if it's wise to merge before the rakudo release
jnthn: aye
13:02 benabik joined
jnthn I'll take a look at ChangeLog and release announce shortly then :) 13:02
sjn btw, what happend to the rakudo star releases?
quarerly release schedule? 13:03
quarterly*
moritz sjn: modules regressed, and nobody had enough time and/or energy to fix them, so there's no new star release until that's fixed 13:04
I'll make another attempt shortly
sjn aah 13:05
ok, good to know
lizmat moritz: socket timeouts have gone 13:06
moritz \o/ 13:07
dalek kudo/nom: a4fca90 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Show class inheritance in comments
kudo/nom: dcdf023 | (Elizabeth Mattijsen)++ | src/core/ (10 files):
Sync BOOTSTRAP comments into core SETTINGS for easier perusal
13:10 FROGGS[mobile] left
jnap hey, was looking at modules.perl6.org for PSGI/Plack related stuff and wasn't sure if there was an 'official' P6 port of the P5 Plack distribution. Anyone know? 13:15
13:15 fhelmberger_ left
BenGoldberg .ud LOCATE(MY MARBLES) 13:16
yoleaux ENOTFOUND
moritz jnap: I'm not aware of an 'official' p6 port 13:19
dalek kudo/nom: 5e48a79 | (Donald Hunter)++ | src/core/control.pm:
Use 2 param version of nqp::shell
13:20
kudo/nom: 91cb99c | (Donald Hunter)++ | / (11 files):
Merge branch 'nom' of github.com:rakudo/rakudo into chdir-emulation
kudo/nom: 50f4549 | (Donald Hunter)++ | / (3 files):
Use nqp::shell(, , %env), Remove %*ENV specialness on JVM, Convert CWD to IO::Path
kudo/nom: ec2a800 | moritz++ | / (3 files):
Merge branch 'shell-vars' of github.com/donaldh/rakudo into nom

Conflicts: tools/build/NQP_REVISION
kudo/nom: 23ab546 | moritz++ | src/ (11 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
lizmat running spectest on these changes 13:23
moritz fwiw I just had an all-clean spectest on linux 13:24
13:24 PacoAir joined
moritz with the pull request merged, but with lizmat's changes (which were comments only, if I read the commit messages directly) 13:24
lizmat before or after donaldh's merge ?
ok
jnap moritz: I was pretty encouraged that stevan L did a pretty quick port of Plack to the p5mop stuff. I figure we'd wonder if there's some cool P6 features we could take advantage of in porting Plack, but maybe a first 1 to 1 go would not be a bad place to start
lizmat moritz: yes. comments only 13:25
13:25 nyuszika7h left 13:33 FROGGS joined 13:34 lowpro30 joined 13:38 fhelmberger joined 13:39 colomon_ joined 13:40 sqirrel left 13:41 sidus left 13:43 jnap left, nyuszika7h joined
lizmat clean spectest on OSX 13:44
13:44 LeopoldBloom left 13:49 jnap joined 13:51 kbaker left
moritz \o/ 13:54
13:54 kbaker joined 13:57 kaare_ joined 14:02 Ben_Goldberg joined, benabik left, BenGoldberg left 14:04 c1sung joined 14:05 bluescreen10 joined 14:08 ajr_ left 14:10 fhelmberger left 14:11 benabik joined, fhelmberger joined 14:12 lowpro30 left 14:16 berekuk left 14:22 bluescreen100 joined, fhelmberger left 14:23 crab2313 joined, kaleem left 14:26 berekuk joined, bluescreen10 left
FROGGS t/spec/S32-io/IO-Socket-INET.t (Wstat: 0 Tests: 41 Failed: 3) 14:27
Failed tests: 2, 20, 41
14:28 lowpro30 joined
FROGGS I have fails again, but okay, have a windows in a vm running that currently builds parrot 14:28
I don't really like tests that depend on some performance 14:29
14:29 brrt left, thou joined
lizmat how many seconds did the tests before the failed ones take ? 14:29
FROGGS lizmat: I can run it now again, but I can't tell if it will fail again 14:30
it succeeds, but now I only run one tests, not the suite with TEST_JOBS=4 14:31
felher jnthn: I now read all your "Rakudo on JVM", "Concurrency, Parallelism and Asynchrony" and "MoarVM" slides. Interesting stuff, thanks :) 14:32
FROGGS is running now windows + spectest + socket test in parallel
lizmat: ok 32 - [11s] received first character
not ok 33 - finished in time #16
jnthn felher: :)
lizmat I raised the timeout to 10 seconds 14:34
14:36 fhelmberger joined
lizmat maybe I should take out all time related tests 14:36
FROGGS dunno
lizmat I put them in there when we had some 20 second related timeout pb that was fixed some time ago 14:37
FROGGS I'd leave them in... what if we increase it to 30s? so it will succeed in 99.99% but won't hang? 14:38
moritz +1 to 30s 14:39
14:39 Psyche^ joined
dalek ast: a6efd56 | (Elizabeth Mattijsen)++ | S32-io/IO-Socket-INET.t:
Increase timeout time to 30 seconds to prevent false positives
14:41
lizmat brb
14:42 Psyche^_ left
moritz s/positives/negatives/ # :-) 14:43
FROGGS lizmat++ 14:45
donaldh What's the process for adding spec tests ? 14:46
donaldh hopes it is 1. add tests 2. commit 3. run away 14:47
moritz donaldh: you write then, commit them, push them :-)
donaldh This okay to start with ? gist.github.com/donaldh/6308172
FROGGS the main problem is mostly where to put the tests...
donaldh: if you have to create a new test file, it must be added to t/spectest.data 14:48
donaldh Okay, thx
moritz donaldh: for the .perl and .gist things I'd use lives_ok { $*TMPDIR.perl }, '.perl works'
FROGGS (for rakudo, and for niecza if it can run them)
donaldh I copied vm.t as a starting point. 14:49
TimToady or maybe $*TMPDIR.?perl is good enough
lives_ok won't test that it returned a value 14:50
FROGGS if you dont know where to put these tests, then locate the section of the spec where tmpfir is mentioned, then you'd know the folder at loast
least
r: say $*TMPDIR.?perl
camelia rakudo 23ab54: OUTPUT«IO::Path.new(path => "/tmp")␤»
FROGGS r: say $*TMPDIR.?hurz
camelia rakudo 23ab54: OUTPUT«Nil␤»
moritz $ perl tools/update-tai-utc.pl src/core/tai-utc.pm
Couldn't replace leap-second-dates at tools/update-tai-utc.pl line 29.
FROGGS cool
moritz any idea what's wrong here?
FROGGS I forgot about .?name
donaldh Oh, it's not a magical. Hey ho. I'll put it in S16
moritz donaldh: another good test is isa_ok $*TMPDIR, IO::Path; 14:51
FROGGS moritz: yes, the perl script is unable to handle windows lineendings
donaldh thx, I'll do better than vm.t
FROGGS so convert the .pm to unix lineendings first, then it should work
t\spec\S02-literals\quoting.rakudo.parrot ....................... Failed 1/155 subtests 14:52
(less 3 skipped subtests: 151 okay)
^--------- that is on windows xp 32bit
spectest still runs
and it will do so for a while, that windows is sloooooooow 14:53
dalek kudo/nom: e7ce6b0 | moritz++ | src/core/tai-utc.pm:
change tai-utc.pm to UNIX line endings

otherwise the automatic updater fails
moritz FROGGS++
TimToady are you guys testing both parrot and jvm?
moritz TimToady: testing JVM is a bit harder, because it doesn't produce a clean spectest run 14:54
(to the best of my knowledge it never didi)
but I'm testing it in the sense that I run it, and do a visual check to confirm that most spectests pass 14:55
14:57 kaleem joined
dalek p: a764846 | moritz++ | VERSION:
bump VERSION to 2013.08
14:57
TimToady supposes this is because people are so busy developing that they don't have time for fudging--or is the fudging not up to snuff yet to handle the problems?
not a lot of sense in fudging when things are so dynamic yet 14:58
moritz the problem is that if we start fudging stuff for JVM, we have a much harder time tracking what needs to be fixed
jnthn Yes, that.
TimToady plus we lose our 99% measurement, I guess
moritz we don't lose test counts by fudging 14:59
TimToady probably needs more coffee in order not to sound like he needs more coffee... 15:00
[Coke] moritz: (OSX tests) When I was doing them, I regularly had failures on some tests.
15:00 danaj joined
[Coke] (also donaldh) 15:00
Ben_Goldberg .ud coffee 15:01
yoleaux The best drink ever... glory...What Columbians grow and export in an attempt to make the world think that they are not the world's leading cocaine exporter.Drug used by hackers and studentssimply it m
lizmat cycling&
Ben_Goldberg I really really hope you don't mean this:
.ud cycling
yoleaux The lower intestinal cramping associated with diarrhea. The pain includes hot and cold flashes, goose bumps, and general irritation. Cycling refers to the way the pain comes on strong and then goes aw
moritz ok, NQP is released
jnthn \o/
moritz++
moritz jnthn: when you're done updating changelog/announcement, I can do the rakudo release too 15:02
jnthn moritz: looking now
The ChangeLog isn't updated at all yet? 15:03
The top heading is New in 2013.07
I don't see a New in 2013.09
donaldh oh, I was adding $*CWD to S16-io but it's sorta covered in S28-named-variables. Oooh. specced in two places.
jnthn oops, .08 15:04
oh, darn, wrong branch
TimToady funny how so many countries market coffee as if they are the primary provider of coffee to the world; I was always amused growing up at the Scandinavian lady touting her coffee as "mountain grown", as if there are any coffee trees in her country...
italian coffee, french coffee, turkish coffee, seattle coffee... 15:05
moritz Irish Coffee 15:06
Ben_Goldberg For that matter, is "mountain grown" coffee any better than "valley grown" or "plains grown?"
TimToady well, at least Irish Coffee can be partly from Ireland... :)
[Coke] Fuding for jvm has -improved- our pass rate, because we can skip tests that would blow up. 15:07
.ud coleda
yoleaux The act of spilling food or drink on oneself, typically on a shirt with no collar.The act of being a sloppy eater, usually involving spilling spicy food all over a collarless shirt or other clothing,
[Coke] is still annoyed at his lunch buddies for putting that in there. :P
TimToady well, I guess they'd know :P 15:08
donaldh I'm going to go ahead and add S16-io/cwd.t because the spec is reasonably detailed there. 15:10
I'll leave S28-named-variables/cwd.t for now 15:11
is that okay?
moritz yes 15:12
maybe add a comment in both files that the other one exists
"see also ..."
dalek kudo/nom: 674f5d5 | jnthn++ | docs/ChangeLog:
Some more ChangeLog entries.
15:14
jnthn We didn't do bad this month! :) 15:15
moritz aye :-) 15:16
TimToady or at least you did more good than bad...
japhb .tell timotimo I meant, why do you use capture { eval system ... } in one place, and just capture { system ... } in the other place, and why do you check both out and err for segfault messages in one place, but only one of those in the other? 15:17
yoleaux japhb: I'll pass your message to timotimo.
15:18 ajr joined 15:19 ajr is now known as Guest14991, Guest14991 is now known as ajr_
dalek kudo/nom: 2c18c57 | jnthn++ | docs/announce/2013.08.md:
Minor announce tweaks.
15:20
jnthn moritz: relese the houn^WRakudo :)
*release
15:21 alexghacker left
dalek kudo/nom: e7d08a2 | moritz++ | tools/build/NQP_REVISION:
[release] bump NQP revision
15:21
15:21 daniel____ joined 15:22 alexghacker joined
dalek kudo/nom: 4f2a40b | moritz++ | VERSION:
[release] bump VERSION
15:22
kudo/nom: 398fd0a | moritz++ | docs/release_guide.pod:
[release] mark this release as being done
15:23
15:24 benabik left
moritz ... and now I have to wait 15:24
donaldh What is the L<…> comment syntax for in spec tests?
moritz because the JVM Makefile doesn't know how to build releases
so I have to reconfigure
and that requires the newly versioned NQP
donaldh: they are called "smartlinks" 15:25
donaldh: and they make the appropriate sections of the test files show up in the HTML on perlcabal.org/syn/S\d+.html
donaldh Okay, so I should add them too ...
15:25 silug joined
timotimo yay for release time! 15:27
yoleaux 15:17Z <japhb> timotimo: I meant, why do you use capture { eval system ... } in one place, and just capture { system ... } in the other place, and why do you check both out and err for segfault messages in one place, but only one of those in the other?
dylanwh cshadow:
timotimo japhb: that was just a hack to get some bit of forwards motion towards moarvm benchmarking; the code is like that not by choice, but by ignorance and lack of skill and discipline i guess :) 15:28
15:28 crab2313 left
timotimo oh, is it too late to add a change to the changelog? 15:28
because i think sized (shaped?) arrays were implemented, but not announced in the changelog? 15:29
15:30 fhelmberger left
jnthn timotimo: ooh...that did get merged, didn't it? 15:30
masak olahoj, #perl6
timotimo yes, it did, but i don't know what exactly it makes work
github.com/rakudo/rakudo/pulse/monthly - find the PRs here at the bottom of the list 15:31
there's also a pull request for additional fixes that seems to mix in some makefile changes as well, which may not apply cleanly
r: my @foo[10] = 1, 2, 3; 15:32
camelia rakudo e7ce6b: OUTPUT«===SORRY!=== Error while compiling /tmp/1cveyfRNlm␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/1cveyfRNlm:1␤------> my @foo[10]⏏ = 1, 2, 3;␤»
timotimo ..oh?
ah, just for attributes? 15:33
masak Rakudo #67 Kiev \o/
timotimo r: sub test(@a[10]) { say +@a }; test((1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
camelia rakudo e7ce6b: OUTPUT«Constraint type check failed for parameter '' in sub-signature of parameter @a␤ in sub test at /tmp/0z2GvPLDJ9:1␤ in block at /tmp/0z2GvPLDJ9:1␤␤»
timotimo i got nothin'
masak has been teaching Python all day
15:34 zakharyas left
masak timotimo: that doesn't mean what you think it means. 15:34
FROGGS masak: lol
masak FROGGS: :)
FROGGS: NO LOL!!!
FROGGS *g*
LOL!
masak NO PROJECT EULER!
donaldh github.com/perl6/roast/pull/32 15:36
masak r: sub test(@a [10]) { say "it's alive!" }; test([10])
camelia rakudo e7ce6b: OUTPUT«it's alive!␤»
TimToady masak: @a[10] is supposed to mean something different than @a [10]
jnthn masak: omg wtf can you help me with an euler problem lol!
masak TimToady: that may be. it clearly doesn't in Rakudo ;)
jnthn: I... I *dare* you to go into #python, and... :D
TimToady lol
or at least, I smiled out loud 15:37
FROGGS hehe
jnthn r: sub foo(@a[10]) { }
camelia rakudo e7ce6b: ( no output )
jnthn r: sub foo(@a[10]) { }; foo([10]
camelia rakudo e7ce6b: OUTPUT«===SORRY!=== Error while compiling /tmp/rKbdsPr589␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/rKbdsPr589:1␤------> sub foo(@a[10]) { }; foo([10]⏏<EOL>␤ expecting any of:␤ postfix␤»…
jnthn r: sub foo(@a[10]) { }; foo([10])
camelia rakudo e7ce6b: ( no output )
jnthn r: sub foo(@a[10]) { }; foo([9])
camelia rakudo e7ce6b: OUTPUT«Constraint type check failed for parameter '' in sub-signature of parameter @a␤ in sub foo at /tmp/hkmGe2JZqy:1␤ in block at /tmp/hkmGe2JZqy:1␤␤»
jnthn hm :) 15:38
TimToady it's not parsing it as a shape
jnthn aye, I don't think it expects to parse a shape there... :P
donaldh github.com/rakudo/rakudo/pull/197
jnthn Does STD? What does it mean to parse a shape there? :)
15:38 benabik joined
TimToady I can think of two interpretation 15:39
one, a constraint on what you can pass in
secondly, one might allow @a[$size] to bind $size to the size, but that's a little there, and probably a bad idea
jnthn pobably ;) 15:40
TimToady STD parses it as a shape
15:40 sidus joined
timotimo @a [:$size] won't work? 15:41
TimToady doesn't see how that would work, offhand
timotimo i seem to recall you can use nameds like that in subcaptures to call methods on the passed object and take those values
jnthn No, it doesn't work like that :) 15:42
timotimo something like foo($pair (:$key, :$value))?
anyway, bbl :)
TimToady r: sub foo (@a (:$elems)) { say $elems }; foo <a b c> 15:43
camelia rakudo e7ce6b: OUTPUT«Too many positional parameters passed; got 3 but expected 0 in sub-signature of parameter @a␤ in sub foo at /tmp/Wi6BSA4mSb:1␤ in block at /tmp/Wi6BSA4mSb:1␤␤»
jnthn Yes, that's 'cus key and value are public attributes of Pair
TimToady why does it care whether it's an attribute? 15:44
I guess if it's making a capture, it doesn't want to do extra work, but is that what it's doing? 15:45
jnthn It's making a Capture 15:46
It only cares for attributes 'cus I think that's what the spec says, but also 'cus we know it's safe to look at an attribute. :)
TimToady maybe that's something of an argument for @a[$elems] 15:47
jnthn :/
.elems isn't really something we want to encourage use of, though. 15:48
It's rather laziness-hostile...
15:48 lowpro30 left
jnthn Plus introspect-y 15:48
TimToady shaped arrays know the shape
so the .elems vs laziness doesn't really come into it 15:49
moritz moritz.faui2k3.org/tmp/rakudo-2013.08.tar.gz # release preview
please test
15:49 kaleem left
masak builds and tests 15:50
TimToady in any case, the syntax @a[] should be reserved for shape-related declarations, not treat it as a subbinding 15:52
ss/treat it/treated/ 15:53
moritz clones from github via a gigabit link with 417KiB/s 15:54
masak submits rakudobug 15:57
moritz: I have 19 KiB/s here :)
lichtkind masak: ++ 15:59
glad having seen you
masak :) 16:00
16:00 JimmyZ_ left
TimToady anyway, if we let people write subbinding with @a[], people will, and then their code will break later when we require whitespace; so better to require it now 16:01
masak *nod* 16:02
FROGGS is testing moritz.faui2k3.org/tmp/rakudo-2013.08.tar.gz
TimToady plus we want to maintain visual consistency that a bracket with whitespace in front of it always means something different from a bracket without whitespace, whether it's [, {, <, or ( 16:03
confusing them in one instance doesn't help with that
16:04 fhelmberger joined
TimToady heh, tried to do the tarball build on my "supercomputer", failed with "javac not found" :) 16:05
FROGGS moritz: that is from my winxp machine: gist.github.com/FROGGS/f53696c0ee96f65e9d00 16:08
16:08 fhelmberger left
FROGGS moritz: but I dunno if 2013.07 fails the same way or not 16:08
TimToady works better after installing the JDK for some reason :)
FROGGS TimToady: pure magic
16:09 jnap left
FROGGS and unicorns, but mostly magic 16:09
16:09 lowpro30 joined, Targen left
TimToady can I get a pony with one horn? 16:10
FROGGS btw, why is unicorns written that way? it is not about corn (or orn), is it?
TimToady corn and horn are etymologically related
16:10 lowpro30 left
TimToady and probably "corner" 16:10
FROGGS TimToady: well, it is called Einhorn here
16:10 lowpro30 joined
masak here too. 16:10
TimToady weaking k to h is a typical language change 16:11
weakening*
FROGGS ahhh, that is why it is called kindergarden instead of Kindergarten
masak "enhörning", which comes off as a really weird degenerate polygon roughly translatable as "monogon".
TimToady stop -> affricate -> fricative -> voiceless vowel
FROGGS so it should be Berl for consistency *g*
TimToady and gard is related to ward 16:12
FROGGS ahh, that is interesting 16:13
but it makes sense
TimToady pater -> vater -> father is the same thing
FROGGS right, but this one is obvious :o)
TimToady (he said grimmly)
16:15 daniel____ left
TimToady and if you look at "beta" or "delta" in modern Greek they come out more like "vetha" and "dheltha", give or take a long vowel 16:16
FROGGS hmmm, not in german 16:17
we say it pretty germish
BETA! :#[ 16:18
(no, not like that)
masak if we ever want to get DbC back into Perl 6, we could look at cobra-language.com/trac/cobra/wiki/Contracts , which looks kind of nice. 16:19
FROGGS masak: what is DbC ? 16:20
masak FROGGS: Design by Cockroaches
FROGGS ahh
well, I guessed there would be a 'by' :o)
TimToady maybe we should start thinking about things that could be in 6.0.0 but marked experimental to begin with 16:21
masak *nod*
masak .oO( unlike dBc, which means "decibel cymbal" )
TimToady maybe we need a metric that bosses can use to calculate how much experimental stuff their project is using
FROGGS and it will be measured in experimeters? 16:22
TimToady then we just lie :)
FROGGS I'd almsot say we need an implementation of S11 and we have our 6.0.0 16:24
almost*
do we are missing other big things?
masak S09
FROGGS I see 16:25
jnthn Apart from all the bits of S09 that we do have :P
masak nodnod
jnthn It would be nice to work out which bits of it we really want :)
masak from user input at YAPC, I do know we need a better documentation story.
jnthn I've done some of the foundational work for native arrays.
FROGGS masak: what do you mean by documentation story? 16:33
16:33 jnap joined
FROGGS do they wanna know what is done/happening? 16:33
masak FROGGS: I mean "where can I learn Perl 6?" -- "doc.perl6.org/" -- "oh, wow! that's more than I could ever ask for!" 16:35
TimToady minor problem with the tarball:
cd t/spec && git pull
fatal: Not a git repository (or any of the parent directories): .git
masak TimToady: I think you're meant to 'make spectest'
TimToady that's exactly what I did
but nothing ever transformed the tarball tests into a git repo 16:36
FROGGS cd t/spec && git pull
fatal: Not a git repository (or any of the parent directories): .git
make: [spectest_update] Fehler 128 (ignoriert)
/usr/bin/perl t/harness --fudge --keep-exit-code --icu=1 --tests-from-file=t/spectest.data
t/spec/S02-lexical-conventions/begin_end_pod.t .................. ok
TimToady or disabled the git pull, if we want a snapshot
masak oh!
yes, that's a problem. 16:37
TimToady if the intent is to snapshot the tests, it should disable the git pull
FROGGS true, but it continues
TimToady does spectest automatically parallelize on multicore?
FROGGS TimToady: no, I set the TEST_JOBS variable in my bash.rc or so 16:38
TimToady doesn't seem like it
16:38 Targen joined
TimToady do all the jobs share the same eval server, or are there multiple? 16:38
FROGGS I dunno 16:39
TimToady supposes the eval server can be multithreaded
jnthn On JVM they share the eval server and it uses threads.
oh, on Parrot here's no eval server so you must be asking about JVM :)
16:41 lowpro30_ joined
FROGGS moritz: Result: PASS on ubuntu x64 16:42
TimToady oh noes; java is taking 570% of my CPU!!! :)
I guess we'll finally see if all these cores work at the same time... 16:43
16:44 lowpro30 left
FROGGS my local hack of @a >>+<< @b uses 400% cpu... 16:44
(parrot specific) 16:45
jnthn
.oO( core blimey )
thou moritz: For me, jvm build OK, but no tests (Parse errors: No plan found in TAP output): pastee.org/fqbpk ; Darwin ganesha 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
FROGGS thou: please run the spectests (make spectest) instead 16:46
thou what, and make my machine unusable? :-) 16:47
FROGGS thou: you can ban it to one core only :o)
thou Anyways, it's having the same problem
16:47 spider-mario joined
FROGGS hmmm 16:47
thou As mentioned above, i should read that bit 16:48
pkg flaw, though, i guess 16:49
FROGGS jnthn / moritz: `make test` seems to be about parrot... what should we do?
16:50 dakkar left
TimToady directory needs renaming, except for the one test that uses PIR 16:50
the rest of the tests pass under JVM anyway 16:51
Util Can viv (or anything else in github.com/perl6/std) be used for P5->6 translation? 16:53
After this conversation irclog.perlgeek.de/parrot/2013-08-20#i_7476839
, I tried `viv`. It worked for some 6->5 , but I do not see how to do 5->6.
jnthn FROGGS: I think I proposed that t/00-parrot and t/01-sanity should just be merged into t/01-sanity or so
TimToady Util: we don't have a 5->6 translator at this point, unless someone wants to resurrect the Haskell program done for SoC some years ago 16:54
but it's probably fairly bitrotted by now
the v5 parser that FROGGS++ is working on could probably be retargetted to doing translation at some point 16:55
16:56 jnap left
TimToady after all, it's doing the semantic mapping already, it could just translate on a syntactic level rather than a semantic level ("just", he sez) 16:56
Util TimToady: Thanks! From what rurban said, I thought it was working right now, and I was just doing something wrong.
TimToady no, viv is only for vi -> v :)
Util No worries; I will keep working on Blue_Tiger 16:57
TimToady though v -> iv would be a neat trick
Util Noooooooo!
TimToady but yeah, we definitely want something that does a decent job of translation at some point, hopefully with a bit of refactoring thrown in 16:59
Util Blue_Tiger has a lot of thought in it, toward refactoring. 17:00
TimToady the basic problem is going to come down to knowing things that the P5 core itself doesn't know
such as, "this is always used as an integer" 17:01
or "nobody pokes things into this package to cheat"
Util My strategy is to work on 90% to 99% of common code, phrases, and idioms. Anything we can't be sure is correct, we report to the user during conversion, either as a possible manual refactoring, or as a warning of something automatically refactored that needs manual verification. 17:03
TimToady personally, I'd put the "remove parens" into the mandatory category, but that's just me :) 17:07
Util TimToady: Already done, for things like if and while. :) 17:08
TimToady do you feel that PPI actually gives you enough information? I always thought that PPI punted on a lot of the interpretation...
17:09 jaldhar left
TimToady (which is why I hacked in MADPROPS in the first place) 17:09
Util TimToady: I am sure that much more can be gleaned from your MAD approach, but as far as "minimizing user effort and error" goes, PPI is providing enough info to recognize and transform common idioms. 17:13
With MAD info, I wold be able to reduce the number of user-check-this warnings, though.
TimToady well, I'm not necessarily recommending the MAD approach these days, since it turned out to be rather fragile 17:14
moritz git tag -a -m 'tag release #67' Kiev
fatal: tag 'Kiev' already exists
moritz is dumb
$ grep Kiev docs/release_guide.pod 2010-06-17 Rakudo #30 "Kiev" (masak) 2013-08-22 Rakudo #67 "Kiev" moritz
TimToady but we might want to consider targetting STD_V5 (what FROGGS++ is using for 'use v5') at some point
moritz so, there already was a release named "Kiev" 17:15
and I didn't notice it
TimToady since he's actually making a P5 interpreter
Util I will look closely at FROGG's work. Thanks.
TimToady r: use v5; say "foo" . "bar"; 17:16
camelia rakudo 398fd0: OUTPUT«===SORRY!=== Error while compiling /tmp/3r0d7AlLtz␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/3r0d7AlLtz:1␤------> use v5; say "foo" . ⏏"bar";␤»
TimToady hmm, I guess it's not intergrated yet
s/rgr/gr/ 17:17
17:17 jaldhar joined
moritz anybody have a good idea what to use instead as release name? 17:17
if nobody has a good idea, I'll use Bicycle.pm
TimToady r: { use v5; say "foo" . "bar; }
camelia rakudo 398fd0: OUTPUT«===SORRY!=== Error while compiling /tmp/tlLXMzSCu1␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/tlLXMzSCu1:1␤------> { use v5; say "foo" . ⏏"bar; }␤»
Util thinks moritz is awfully smart for a dumb guy.
TimToady that goes for most of us
though some of us are just smartmouthed :) 17:18
17:18 lowpro30__ joined
masak moritz: "Kiev II" :P 17:19
FROGGS TimToady: my v5 is still something like a module, and not included in rakudo
masak moritz: "Kyiv" .5 * :P
TimToady huh, the test summary doesn't actually summarize how many tests succeed/failed overall... 17:20
masak .oO( it had one job )
FROGGS O.o
TimToady well, Result: FAIL was already kinda expected...
FROGGS ahh, that is why it is called viv? really? 17:21
TimToady yes 17:22
17:22 lowpro30_ left
TimToady but it was also a pun on "Oh, no! It's alive!!!" of course 17:22
the precursor to viv was called gimme5, which is also a pun :) 17:23
FROGGS yeah 17:24
FROGGS is glad that he tripped into Perl world
17:24 jnap joined, dmol left 17:25 dmol1 joined
TimToady we actually optimize for fun, not for world domination, unlike certain other communities 17:25
FROGGS yeah
TimToady And I try very hard to keep earning the B in my DFL. :-) 17:26
17:26 pernatiy left
pmichaud I always tried to earn A's instead of B's. :-) 17:27
TimToady A doesn't always have positive connotations, especially in proximity to "hole"... :) 17:28
FROGGS hi pmichaud
pmichaud yes, well, I figure I've been less B in my DFL than you have in yours. :) 17:29
TimToady you're just too self-decrementing :) 17:30
FROGGS I guess DFL is not about Donuts For Life?
pmichaud that would be CDFL. 17:31
(Cake)
TimToady not to be confused with CFL, which is a compact football league. 17:32
geekosaur I suppose 9 yards instead of 10 counts as compact :p 17:37
17:40 araujo left, araujo joined
lichtkind pmichaud: howdy meissed you in kiev 17:49
pmichaud lichtkind: yes, it's the first yapc::eu I've missed since 2008. :-|
I hope others all had an excellent conference and time there, though.
lichtkind yes relaxed and nice
moritz quite enjoyed it
pmichaud (er, I guess I should say 2007, since yapc::eu 2008 was the first yapc::eu I attended.) 17:50
lichtkind pmichaud: me too :)
17:50 denis_boyun joined
dalek kudo/nom: f024a60 | moritz++ | docs/ (2 files):
rebrand the current release as Bicycle.pm

turns out masak++ already named a release Kiev.pm
17:51
17:55 ssutch joined 18:01 daxim left
moritz release is tagged and uploaded. Feel free to go wild on rakudo again 18:02
donaldh I have a pull request + one in roast :-) 18:05
18:05 slavik left
donaldh afk& 18:05
18:05 donaldh left
gfldex moritz: rakudo-2013.08.tar.gz does make test all fine on cygwin 18:06
18:07 Rotwang joined 18:13 Targen left
moritz \o/ 18:19
18:21 Targen joined
TimToady moritz++ for more than one ++'s worth of work 18:21
18:21 SamuraiJack left
jnthn Bicycle.pm++ :) 18:22
and moritz++ for cutting the release
FROGGS the successor of Kiev should be Qiev for some reason
18:23 pernatiy joined
jnthn gah, I'm really gonna have to find a moment to improve NQP's parse error reporting sometime before the internals workshop... 18:25
TimToady what, just printing out "?" isn't good enough? :) 18:27
FROGGS CONFUSED
TimToady (some ancient Unix utilities just printed out "?" on syntax errors) 18:28
FROGGS must be before my time :o)
geekosaur mmm, ed
TimToady it was a really low bar to raise in those days, when everything was SMLTA
18:29 rindolf left
TimToady so much for SMLTA :) 18:29
jnthn heh, before my time too :) 18:30
Nah, I want to do the highwater thing I tink
I mean, it's tracking it...
And get rid of the meaningless backtrace. 18:31
18:34 pecastro left, denis_boyun left 18:35 benabik left 18:36 benabik joined
masak possibly interesting data point: Python puts the error below the backtrace, where you have a chance to see it regardless of how long the backtrace is. 18:42
masak is starting to feel like a spy, running between the camps
FROGGS *g*
jnthn Hm, what happens if you emit the entire backtrace downwards? :P 18:43
FROGGS >.< 18:44
or as jnthn would express it: *groan*
we could even print "turtles" below it 18:45
TimToady you'd have to print "turtle\n" xx * I think 18:48
FROGGS lazily?
so that it multiplies while you read
hmmm, that would even work when we get the user to read \r correctly 18:49
but then what do we do when the user "hangs" while he sits? 18:50
lizmat or, heaven forbid, the user is a she ? 18:53
:-)
bbl
FROGGS ohh, #twas just a typo :o)
'twas 18:54
>.<
18:56 lowpro30__ left 18:58 pecastro joined, Moukeddar joined 19:03 Moukeddar_ joined 19:05 kbaker left, Moukeddar left 19:06 geekosaur left 19:07 geekosaur joined 19:14 jnap left 19:24 jnap joined 19:25 zwut00 joined 19:27 jnap1 joined 19:28 jnap left 19:32 jnap1 left
dalek ar: a1d7a45 | moritz++ | tools/star/Makefile:
bump version to rakudo 2013.08
19:32
ar: 2ac519d | moritz++ | modules/ (12 files):
update submodules
19:33 lowpro30 joined
dalek ar: 759ea52 | moritz++ | tools/build/Makefile.in:
bump version
19:34
19:39 abnorman left, donaldh joined 19:46 hummeleBop left
dalek p: 077f97f | (Geoffrey Broadwell)++ | ConfigureJVM.pl:
Allow NQP's ConfigureJVM.pl to recognize a JVM that refers to itself as 'jdk' instead of 'java'
19:51
donaldh where do perl6 release announcements go? 19:52
19:52 abnorman joined
moritz donaldh: compiler announcements go only to perl6-language 19:52
FROGGS [email@hidden.address]
moritz erm, perl6-compiler. What FROGGS said 19:53
star announcements are more wide spread
FROGGS (I cheated by looking at my inbox)
donaldh r: for <planetsix.perl.org rakudo.org perl6.org> -> $u { say "It's not $u" }
moritz (rakudo.org, perl6-announce and a few others)
camelia rakudo f024a6: OUTPUT«It's not planetsix.perl.org␤It's not rakudo.org␤It's not perl6.org␤»
19:53 dwarring left
donaldh Shouldn't they be announced more widely ? 19:53
FROGGS it is just a naked compiler 19:54
moritz donaldh: we actually want people to use the star releases
so that when they ask "how do I install $module?", we can answer "panda install $module", or even better, "you already have it!" 19:55
donaldh I realise that. But the monthlies should be visible demonstrations of stable, tested, organised, regular as clockwork, healthy development, no? 19:56
thou spectest run just finished; maybe i got a lot more failures due to slow machine. pastee.org/eb5hr
19:57 jnap joined
donaldh okay, when's the next star and what can I do to help get it out with JVM support? 19:58
FROGGS donaldh: bug tadzik about the state of panda and maybe help him out 20:00
moritz thou: did you build with JVM?
FROGGS after that the modules needs testing and maybe even fixing
moritz thou: the spectests are only clean on parrot at the moment
thou ok, i thought i saw reports of "all tests passing on jvm" 20:02
donaldh dinner &
20:03 kaare_ left 20:04 grondilu left
lichtkind moritz: lately started to dust off p6 articles on (german) wikipedia, tuits to join 20:08
20:09 jnap left
moritz r: say join ', ', ('tuit' xx 5) # for lichtkind 20:10
camelia rakudo f024a6: OUTPUT«tuit, tuit, tuit, tuit, tuit␤»
lichtkind moritz: that can be read as i should do it :)
moritz meh, compilingy HTTP::Easy::PSGI fails with "Could not find PSGI in any of: ..." 20:11
dalek ar: 5144072 | moritz++ | / (3 files):
Added PSGI

perl6-http-easy and Bailador both use it
20:14
20:15 jnap joined
moritz trying to make a star release on a slow machine is really painful 20:18
diakopter moritz: I thought I gave you a shell account on a very fast server 20:19
moritz should just ssh into his work machine
diakopter: I don't think you did
diakopter moritz: oh, oops
donaldh github.com/perl6/roast/pull/32 20:28
github.com/rakudo/rakudo/pull/197 20:29
:-)
20:29 SHODAN joined
moritz donaldh: fwiw I've given you commit access to roast 20:35
donaldh: so you can merge that one yourself
donaldh moritz++
dalek kudo/nom: 760ae83 | (Donald Hunter)++ | / (2 files):
Resurrect TMPDIR on JVM. Added spectests.
20:36
kudo/nom: 226c2ca | moritz++ | / (2 files):
Merge branch 'process-tmp' of github.com/donaldh/rakudo into nom
ast: 074876a | (Donald Hunter)++ | S (3 files):
Added S16-io/cwd.t and S16-io/tmpdir.t
ast: 0252b66 | (Donald Hunter)++ | S (3 files):
Merge pull request #32 from donaldh/s16-update

Added S16-io/cwd.t and S16-io/tmpdir.t
moritz meh, perl6-debug fails to build in star 20:37
/home/mlenz/p6/star/install/bin/parrot --dynext /home/mlenz/p6/star/install/lib/parrot/5.5.0/dynext/ -o modules/rakudo-debugger/perl6-debug.pbc modules/rakudo-debugger/perl6-debug.pir
error:imcc:loadlib directive could not find library `perl6_group' in file 'modules/rakudo-debugger/perl6-debug.pir' line 1
make: *** [modules/rakudo-debugger/perl6-debug] Error 1
FROGGS moritz: known issue 20:38
moritz sadface
and indeed, I can't find any file perl6_group*
FROGGS perl6_group is now perl6_ops, and the other perl6_something in the makefile is gone
but even if you patch the makefile, there is another issue with its code itself, which probably only jnthn++ can fix 20:39
moritz how depressing 20:42
FROGGS well, you can try to debug it, I dont remember what the error was 20:43
moritz $ ./perl6-debug 20:45
> say 42
Null PMC access in get_pmc_keyed()
something like this?
> 43 20:46
Unable to load setting CORE; maybe it is missing a YOU_ARE_HERE?
FROGGS moritz: right, this one was it 20:48
jnthn hm, thre's a PR here github.com/jnthn/rakudo-debugger/pull/10
Not sure htat's quite righ tthough 20:49
moritz jnthn: the necessary Makefile patch is trivial 20:50
- $(NQP) --vmlibs=perl6_group,perl6_ops --target=pir --output=perl6-debug.pir bin/perl6-debug.nqp
+ $(NQP) --vmlibs=perl6_ops --target=pir --output=perl6-debug.pir bin/perl6-debug.nqp
just removes perl6_group,
jnthn *nod*
Just building a latest Rakudo
So I can reproduce 20:51
(the debugger issue)
moritz but now I really must go to bed :/
jnthn 'night o/
moritz \o
FROGGS gnight moritz 20:53
dalek kudo-debugger: 6fd1d22 | jnthn++ | / (2 files):
Remove mention of perl6_group, which went away.
20:55
kudo-debugger: 12a439a | jnthn++ | bin/perl6-debug.nqp:
Unbust debugger against latest Rakudo.
21:05
jnthn At least somewhat unbust it. 21:06
donaldh S32-io has spec for multi sub visitor that calls for a dynamically scoped $*CWD. 21:07
visitdir even 21:08
damn you autocorrect
21:08 sidus left
donaldh That suggests I need to insert a temp into the caller's dynamic scope 21:08
lizmat and possibly only once 21:13
jnthn huh
jnthn tries to find the applicable spec 21:14
lizmat even with multiple calls to visitdir in the same scope
jnthn: it's new
jnthn S32
aww
.oO( S32:/visitdir/ # feature request for synopsesbot :) )
dalek kudo-debugger: d0c7ae6 | jnthn++ | bin/perl6-debug.nqp:
Chase changes to END handling.
21:16
kudo-debugger: fde4726 | jnthn++ | lib/Debugger/UI/CommandLine.pm:
Eliminate a pir::.
donaldh I don't know how you macro S32
jnthn TimToady: um...is it me or does visitdir need to be macro-ish 21:17
?
donaldh S32-io:198 21:18
S32:198
synopsebot Link: perlcabal.org/syn/S32.html#line_198
jnthn Right, that's where I am :)
Thing is that it needs to temporize in the scope of the *caller* which is...weird :)
donaldh Yeah, I thought macro would be easier / more obvious
if it's implemented as a sub, yeah 21:19
jnthn Well, and it's an unhygenic macro at that...
The only way I can see to actually handle it today is to make that name special to the compiler...
donaldh oh
jnthn Which also feels weird :) 21:20
masak longs for being able to insert a temp into the caller's dynamic scope
jnthn: sounds very much like gensymming.
jnthn Somebody should work on macros :P 21:21
donaldh I was wondering if I could use the same mechanism as prefix:<temp>
maybe I misunderstand that operator.
masak jnthn: trust me, it's in the back of my mind. all the time.
jnthn Sure, I think temp is also special to the compiler...
lemme check
21:22 panchiniak joined
donaldh it's in operators.pm 21:22
jnthn token prefix:sym<temp> { <sym> \s+ <!before '=>'> <O('%named_unary')> { $*W.give_cur_block_temp($/) } }
There's the compiler fiddle
donaldh Ah 21:24
timotimo ah, rakudo::debugger is up to latest rakudo? that's great! 21:26
donaldh jnthn: unhygienic macro ? I don't follow
jnthn timotimo: lemme know if you hit any weird issues 21:27
hehe...that END bug is funny but I'm not immediately sure what to do about it :) 21:28
lizmat there's several things strange with phaser blocks 21:33
I couldn't get will init {} and will end {} as variable traits working 21:34
21:34 Moukeddar_ left
lizmat I would assume that $*W.add_phaser(…) should be enough to add an INIT or an END phaser 21:35
jnthn lizmat: Not all phaser blocks are born equal :)
lizmat I found that out :-)
still, I would argue it would be helpful for developers in general if there were an easy way to add a phaser at run time 21:36
21:36 lowpro30 left
lizmat I mean, it's just an array of closures waiting to be executed at a given time, no? 21:36
21:36 Moukeddar joined
donaldh 'night #perl6 o/ 21:37
lizmat gnight donaldh !
21:37 donaldh left
jnthn lizmat: Kinda-ish 21:38
japhb_ What's the status of panda on rakudo-jvm? Last I recall it was relatively close ...
lizmat some are pushed, others are unshifted
jnthn lizmat: It may be possible to try and unify things a little more
lizmat afaiac, this can wait until after RaNIW 21:39
21:39 bluescreen100 left
lizmat just in time for the next release ;-) 21:40
meanwhile, I realize I'm falling asleep at the wheel so to say
so, gnight #perl6!
dalek kudo-debugger: 7d0127e | jnthn++ | lib/Debugger/UI/CommandLine.pm:
Better handling of END on quit; fixes #13.

Now, when you quit and there are END blocks queued up, you are asked if you wish to run them. Doing so will return the prompt to a saner state if you happened to be in an exceptional state.
21:41
21:41 spider-mario left
jnthn japhb_: donaldh++ is currently working on resolving a bunch of chdir related issues, which are a Panda blocker. So, moving forward... 21:45
japhb_ jnthn, OK, thanks
japhb_ is working on a couple JVM-related things today, so figured it was a good time to ask. :-) 21:46
jnthn japhb_: ooh, what you workong on, ooc? 21:47
*working
japhb_ BTW, I found that Rakudo requires -Xss1m -Xmx1100m on a 32-bit intel/2GB box to compile the setting, while at least -Xmx1300m (to the nearest 100m) on a large 64-bit box. Upping that to -Xmx1600m makes the big 64-bit compile less than 2% slower than the current state. If I can take that value back to the 32-bit/2GB box and get a successful compile, I think we'll have a winner. 21:49
jnthn \o/ 21:51
japhb_ I also pushed a trivial patch earlier to recognize OpenJDK (in addition to Oracle Java)
jnthn yes, I saw that :)
japhb_ (The bump to NQP_REVISION is pending "trivial patch review")
TimToady jnthn: yes, I said somewhere in the backlog that visitdir would have to be macroish 21:54
jnthn TimToady: urgh. ok. 21:55
TimToady for now we can probably get away with just using temp
jnthn yeah
Or make the API visitdir(newdir, { ... }); # :) 21:56
lichtkind i just compiled parrot on mac 21:57
TimToady or just throw a "temp $*CWD;" into every single function call :D
21:58 jnap left
lichtkind i mean it worked but had delete entire repo with the hg and du fresh clode 21:58
either write that on the page or do something in makefile
japhb_ I can't even guess how many times I've written something with that API over the years (something that takes a dir and a code handle of the appropriate type for the language, and CD's in and out of the dir while calling the code)
jnthn oh noes 21:59
21:59 jnap joined
jnthn 63-slurp.t fails on Windows. 21:59
Why?
ok(nqp::chars($content) == 126, "File slurped");
Line endings are different on Windows :P
And if I fix the test of course I have to re-count the bytes it might be :P
japhb_ Is it a binary slurp? 22:00
TimToady we need a standard random file :)
jnthn japhb_: I don't think that makes a difference, unless slurp is meant to normalize line-endings...
japhb_: Which I don't think it is...
TimToady no, that's why \n matches either way 22:01
timotimo You don't have permission to access /perl6/2013-08-22 on this server. :(
22:01 Rotwang left 22:02 pecastro left 22:03 pecastro joined
dalek p: ecee284 | (David Warring)++ | src/vm/jvm/ (2 files):
make nqp:chr barf when code points invalid or out of range
22:03
p: 78bfcc5 | (David Warring)++ | src/vm/jvm/stage0/ (10 files):
add bootstrap files
p: b6fbbe9 | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Fallback for box/unbox in code-gen.

Discovered while using the toolchain to build a language other than NQP/Perl 6.
p: 3c66300 | jnthn++ | src/vm/jvm/ (12 files):
Merge branch 'master' of git://github.com/dwarring/nqp
p: c6d3e54 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Formatting cleanups.
p: c5c2342 | jnthn++ | t/nqp/63-slurp.t:
Ensure 63-slurp.t works on Windows also.
timotimo fwiw, there's an "indir" method that takes a dir and a block. panda uses that.
jnthn timotimo: I think panda implemetns that so it can use it, iirc
22:03 pecastro left
timotimo either panda or File::Tools or Shell::Command 22:03
22:07 yoleaux left
lichtkind jnthn: should i file bug or smthng 22:08
22:08 pecastro joined
jnthn lichtkind: What about? 22:08
lichtkind please just scroll up a page 22:09
jnthn lichtkind: What did you have to throw away? I'm confused :) 22:10
diakopter jnthn: what's the mystery language
lichtkind jnthn: i had to delete the entire rakudo rep and clone freshly because when i deleted all and just left .hg and pulled new it was not enough 22:11
jnthn diakopter: ssshhh :P 22:12
lichtkind jnthn: only configure, make, install a fresh clone did work
timotimo how were you able to get rakudo as a .hg?
lichtkind i mean git
timotimo ah, ok
lichtkind sorry my default setting is hg
i get sleepy
timotimo yeah, if you have only the .git and no more files, you can git reset --hard to get all your files back
i think a checkout will suffice, too?
jnthn diakopter: Just a tiny one I put together to illustate some things at the upcoming internals workshop :)
22:13 yoleaux joined, ChanServ sets mode: +v yoleaux, yoleaux left 22:14 yoleaux joined, ChanServ sets mode: +v yoleaux 22:15 berekuk left 22:17 Rotwang joined, fgomez left 22:19 pecastro left, pecastro joined 22:20 pecastro left 22:21 Moukeddar left 22:22 benabik left
masak 'night, #perl6 22:24
TimToady sleep well
timotimo i learnt today that turning things off and on again makes them work better in miraculous ways, so i'll try to do that to myself now :P 22:25
(IOW: i'm going to bed, good night!)
TimToady jnthn: am considering the ramifications of weaning .bless from taking * as a first arg; we could install a temporary * catcher, I suppose 22:28
or we could switch to a *-less .build and leave .bless as-is
22:29 benabik joined
TimToady I see that nqp doesn't even do the * though 22:29
jnthn No, I'm pretty sure NQP cheats there :) 22:30
TimToady I'm assuming that the build planner can generally just ask the repr for a way to create
though we could have a way of attaching a property to a class that says how to create, if the repr doesn't want to decide
but when nearly every single .bless has * as a first argument, that says something 22:31
jnthn Well, the repr is really only concerned with allocation
22:31 yoleaux left 22:32 yoleaux joined, ChanServ sets mode: +v yoleaux
jnthn I mean, the only case I think we need to consider is, "if I declared the class open to any REPR, how do I ask it to base itself on an alternate one" 22:32
That is, how do I write the constructor that does that.
22:32 yoleaux left 22:33 yoleaux joined, ChanServ sets mode: +v yoleaux
TimToady well, but create is largely, "how do I allocate this?" 22:33
in fact, grepping through, the only .bless that doesn't use * appears to be the test for CREATE! to wit, t/spec/S12-construction/construction.t: return self.bless(self.CREATE(), :x(42)) 22:34
jnthn can believe that
TimToady so I do think CREATE is largely the province of the repr, and not the constructor
timotimo would love to have a simple service to grep through all modules in the ecosystem. also, i could totally build that. 22:35
TimToady anyway, I trying to get you to where you don't have to copy the args into .bless
jnthn TimToady: What I really mean is, we need a way to say "create an instance of this class with a REPR besides its default one"
diakopter jnthn: pun the class with the is repr 22:36
?
TimToady well, it could be a different method than .bless, or a trait on the class, or...
thou good idea, timotimo++
TimToady or we could reserve .bless for that, and put in a .build to use instead
jnthn Well, for setting the default REPR there's the is repr trait.
22:36 Rotwang left
jnthn I mean, if we say "OK, a given class only ever has one REPR"... 22:37
TimToady well, usually it does
jnthn Rather than allowing instance-level granularity
That also works fine
diakopter that's what I was proposing
TimToady we can make an escape valve, but we don't have to make that the default as it is now
jnthn Well, if that's all we want, then the is repr trait is fine :)
*nod*
Aye, it's an unusual thing to want.
TimToady guesses that having both .bless and .build would result in confusion 22:38
is self.bless(|c) smart enough to not recreate the capture passed to .new? 22:40
22:40 jnap left
TimToady since it's presumably the same object? 22:40
the same invocant, I should say
22:40 dalek left 22:41 dalek joined, ChanServ sets mode: +v dalek
jnthn TimToady: No, but I can almost certainly make it smart enough or just use an nqp:: op there :) 22:41
Probably I'd do the latter for now and implement the general optimization afterwards.
TimToady I guess I'll just de-spec the first arg to bless for now, and we can feel our way forward from there 22:44
TimToady would like object construction to be fast too
though of course object access is even more critical, since it happens many times for each creation 22:45
22:45 Ben_Goldberg left
japhb_ TimToady, not necessarily -- Match and associated objects may be an exception there. 22:46
timotimo .o( also in a real-world use case i had ... immutable 2d vectors )
TimToady nodnod, but you're still going to access them at least as often as you create them 22:47
unless you're putting them into write-only memory, of course...
timotimo right. at the absolute very most you'll be 50% creating, 50% accessing, otherwise you're wasting data
but that information is worthless 22:48
japhb_ TimToady, I actually meant that I'm not sure about that for Match -- it seems reasonable to check a file for validity by matching against a grammar -- a bazillion objects get generated, and then the whole thing is used for a single boolean test.
diakopter bazillion is on the low end
japhb_ heh 22:49
timotimo that's not entirely true, though
the match objects are being accessed throughout the matching
22:49 dmol1 left
diakopter not really, I don't think 22:49
timotimo you can't get around them for backtracking, have a hard time getting rid of them for alternations and have quite a tricky hack to implement if you want to get rid of them for subrules
japhb_ timotimo: are you sure that the match objects are never wasted, even internal to the matching process?
timotimo never? no, of course not 22:50
jnthn Don't confuse Match and Cursor objects
japhb_ (That wasn't accusatory -- I haven't looked enough at the grammar guts to know if every created object gets accessed > 0 times)
jnthn The Cursor objects we may have to keep around for backtracking, though grammars usually ratchet, and also for capturing. 22:51
Match is only created when first asked for
timotimo oh, you are right, i was confusing them
jnthn Though once you ask for one you gotta make the whole tree of 'em beneath it.
timotimo is that perhaps something that could be eased?
make the hash interface of matches a bit more magical?
TimToady but yeah, point taken, there are obviously some inefficiencies in how we currently generate data that will never be used 22:52
jnthn: does rakudo call a BUILDALL, or is that also a figment of the spec's imagination?
22:53 nebuchadnezzar left
TimToady and if .bless is going to call buildall directly, maybe .bless is the actual autogenerated plan 22:53
22:53 nebuchadnezzar joined
timotimo i saw a BUILDALL fly by in many a traceback 22:54
TimToady can we get rid of another level of call, is what I'm askin'
(ignoring for the moment the fact that the inliner might be smart enough to do that for us)
((though with methods, it's more doubtful than with functions...)) 22:56
timotimo yes, i think the inliner will only ever touch private method invocations
and even then i think it will only do compile-time-dispatch rather than a full inline
but immediate blocks like the ones created in if statements are already being inlined successfully
jnthn TimToady: BUILDALL is actually where I put the thing that executes the build plan. 22:57
TimToady wonders if it could be named .bless directly now
jnthn TimToady: github.com/rakudo/rakudo/blob/nom/.../Mu.pm#L69
Quite possibly. 22:58
Though of course, if we call it bless we have the * legacy to work out
22:58 skids joined
jnthn On the other hand, it's just a positional argument and clearly distinguishable from an auto-vivifying proto... 22:59
s/proto/type object/
timotimo oh right, the other arguments to bless are all positionals
TimToady would eventually like to get to the point where simple classes could inline the initialization code directly into the new 23:00
timotimo or even into the caller's frame (with a jit that perhaps puts a guard before it) 23:01
i think that's a thing the 6model-aware jit of moarvm could do, at least i either read or hallucinated that very thing somewhere
TimToady yes, but we'll have to move away from an interpreted BUILDALL to get there 23:02
jnthn *nod* 23:03
TimToady just trying to get us out of a semantic corner where we pretty much have to interpret
jnthn Well, we can always code-gen a BUILDALL for a class too... 23:04
23:04 lichtkind left
jnthn That may be a code explosioin of course... 23:04
But probably not too bad
TimToady and I'm asking if that codegen'd BUILDALL should just be called bless to begin with
jnthn Also gets tricky when people build types up by meta-programming 23:05
TimToady if it gets too bad, you can have derived ones referring to base classes
jnthn Rather than when we're actually in the compiler and can just go code-gen-ing. :)
That could be vastly faster, anyway...
TimToady I suspect we still need the interpreter too
jnthn Well, there is that...
Having the interpreter in Mu 23:06
And then generating an override where possible.
And the interp is the fallback.
TimToady so it's not bad to attack it interpreter first, but just don't want to get stuck there
jnthn Yeah
TimToady someday I'd love to give C++ a run for its money :) 23:07
jnthn I guess it's mostly saying, "don't write a method called X yourself"
('cus it'll be generated)
Or don't be surprised if one you didn't write magically appears in the method table if you go introspecting...
TimToady so our earlier advice to tadzik++ to write a wrapper BUILDALL is in jeopardy :)
jnthn uh-oh :) 23:08
Well, if you must, you can always callsame up to the interp :P
TimToady is now thinking (guiltily) about allowing both a submethod and a method of the same name :) 23:09
jnthn o.O
Well, we already keep them in different tables. 23:10
TimToady the autowritten one is a submethod, and the user can write their own bless method that wraps it, y'see
jnthn If I removed a couple of error checks it already "works" :P
eek
TimToady but it seems...unseemly
jnthn Which one goes in the method cache? :)
Once we start missing that, things get slow.
TimToady well, the idea was to capture control after the object is completely built, and there are other ways to manage that 23:11
self.bless(...).postprocesses() 23:12
postprocesses, my precious!
japhb_ /me imagines that in Andy Sirkis's voice. 23:13
*Serkis
jnthn
.oO( ALLBUILT phaser :P )
23:18
Time for some rest...'night
timotimo hm. how about some parametric phasers?
like AFTERLINE(20) { ... } 23:19
that in of itself isn't useful yet. it needs more flexibility
here we go: AFTERLINE('foo/bar.pm', 20) { ... }
23:19 panchiniak left
timotimo goes to bed, finally. 23:21
23:25 abnorman left 23:27 kbaker joined, PacoAir left
dalek ecs: de909c2 | larry++ | S (2 files):
simplify blessing

The .bless method no longer takes a first candidate argument.
  (Saying how to create the candidate is now the responsibility of the
representation.) The BUILDALL method is now gone, so that the compiler is free to write a bless submethod that inlines all the creation and build logic into an easily inline-able routine. We will probably invent ways to restore the flexibility of the old system as we go on, but there's no need to inflict that flexibility on all objects with well-known representations, nor on the users trying to create such objects. That this will also make things faster is not undesirable...
23:35
TimToady
.oO(Mandatory Options Considered Harmful)
23:38
geekosaur how about optional mandates? 23:39
TimToady Step 3: optionally mix in powder of mandate root. 23:40
Step 4: now mix in the mandate root if you didn't earlier...
geekosaur has seen a few recipes like that (granted, there was other evidence that something had originally been in between) 23:41
23:46 jferrero joined 23:48 ajr_ left
perigrin "the cry for a mandate root" 23:52
23:55 thou left