Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-22

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:17 skids joined #perl6
00:21 jnap joined #perl6
00:31 FROGGS joined #perl6
00:34 fridim__ joined #perl6
00:36 revdiablo joined #perl6
00:39 djanatyn joined #perl6
00:49 xenoterracide joined #perl6
00:59 Ben_Goldberg joined #perl6
01:07 pdurbin joined #perl6
01:09 dalek perl6-roast-data: 8b05d92 | coke++ | / (5 files):
01:09 dalek perl6-roast-data: today (automated commit)
01:09 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/8b05d9272f
01:20 TimToady licjtkind: mostly not, except insofar as the clean design of the rest of the language stays out of jnthn++'s way :)
01:21 lichtkind TimToady: ah thanks
01:22 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
01:23 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 TimToady I believe we'll converge on a 6.0.0 spec within the coming year or so
01:25 TimToady that doesn't mean Perl 6 will stop develoing more spec :)
01:25 TimToady *lop
01:27 lichtkind sure i would not expect that :)
01:27 lichtkind i just wanted it hear from your lips before i put it into the  virtual press :)
01:28 lichtkind oh and i will giv btw nxt weekend a p6 talk at froscon
01:28 lichtkind so if you want me to mention enything
01:30 dalek rakudo-star-daily: feccec3 | coke++ | log/ (5 files):
01:30 dalek rakudo-star-daily: today (automated commit)
01:30 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/feccec3d4f
01:30 dalek rakudo-star-daily: c1d3276 | coke++ | log/ (5 files):
01:30 dalek rakudo-star-daily: today (automated commit)
01:30 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/c1d3276d87
01:35 nebuchadnezzar joined #perl6
01:37 araujo joined #perl6
01:57 xenoterracide joined #perl6
01:57 xenoterracide joined #perl6
02:11 xenoterracide joined #perl6
02:12 imarcusthis joined #perl6
02:16 jaldhar joined #perl6
02:19 Mouq joined #perl6
02:20 benabik joined #perl6
02:26 xilo joined #perl6
02:34 jaldhar joined #perl6
02:51 Kelder joined #perl6
02:59 ssutch joined #perl6
03:11 Ayiko joined #perl6
03:18 Targen joined #perl6
03:24 preflex joined #perl6
03:28 xenoterracide_ joined #perl6
03:37 jaldhar joined #perl6
03:41 jaldhar joined #perl6
03:43 dayangkun joined #perl6
03:50 slavik joined #perl6
03:56 Gruber joined #perl6
04:04 FROGGS joined #perl6
04:21 Grrrr joined #perl6
04:23 FROGGS joined #perl6
04:26 ribasushi joined #perl6
04:48 Mouq joined #perl6
04:50 hummeleBop joined #perl6
04:50 dalek perl6-bench: b519b26 | (Timo Paulssen)++ | microbenchmarks.pl:
04:50 dalek perl6-bench: replace $i++ with $i = $i + 1 in p6 for the time being
04:50 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/b519b262d3
04:50 dalek perl6-bench: 9b0af8b | (Timo Paulssen)++ | microbenchmarks.pl:
04:50 dalek perl6-bench: trim_string.perl5 no longer cheats.
04:51 diakopter d'oh
04:51 dalek joined #perl6
04:53 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.
04:54 japhb .tell timotimo (... made the perl6 version of one microbenchmark ...)
04:54 yoleaux japhb: I'll pass your message to timotimo.
05:07 FROGGS joined #perl6
05:20 SamuraiJack joined #perl6
05:21 masak morning, #perl6
05:28 SamuraiJack joined #perl6
05:35 crab2313 joined #perl6
05:39 abnorman joined #perl6
06:14 grondilu joined #perl6
06:15 snoopy_ joined #perl6
06:16 denisboyun joined #perl6
06:17 snoopy_ joined #perl6
06:18 dwarring joined #perl6
06:34 kaleem joined #perl6
06:47 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()?
06:47 yoleaux 04:54Z <japhb> timotimo: (... made the perl6 version of one microbenchmark ...)
06:53 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 timotimo 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 #perl6
07:00 FROGGS joined #perl6
07:07 moritz \o
07:16 zakharyas joined #perl6
07:18 dmol joined #perl6
07:19 donaldh joined #perl6
07:20 sunnavy joined #perl6
07:20 donaldh o/
07:21 caofang joined #perl6
07:25 donaldh joined #perl6
07:26 donaldh Oh, github is down
07:26 timotimo *sigh*
07:26 timotimo a bit too often, recently
07:28 xenoterracide_ joined #perl6
07:28 sidus joined #perl6
07:33 dmol joined #perl6
07:46 zakharyas joined #perl6
08:11 denis_boyun joined #perl6
08:12 fhelmberger joined #perl6
08:18 ribasushi joined #perl6
08:19 FROGGS joined #perl6
08:28 Rotwang joined #perl6
08:46 Vlavv joined #perl6
08:52 berekuk joined #perl6
09:03 pecastro joined #perl6
09:03 dakkar joined #perl6
09:05 daxim joined #perl6
09:06 berekuk joined #perl6
09:12 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)
09:12 yoleaux 04:02Z <diakopter> jnthn: how much of *Moar.nqp can we wrap in BEGIN { }.. hopefully lots?   also, plz read scrollback in moar
09:12 jnthn read ALL the scrollback? /o\ :)
09:16 ssutch joined #perl6
09:24 FROGGS[mobile] joined #perl6
09:25 diakopter jnthn: eh no
09:25 diakopter jnthn: just .. up to that note :)
09:25 diakopter jnthn: actually I take that back, yes all :D
09:25 jnthn yeah, I'll get to it in a bit :)
09:45 pernatiy joined #perl6
10:04 kivutar joined #perl6
10:06 crab2313 joined #perl6
10:10 donaldh joined #perl6
10:11 ennio joined #perl6
10:15 Bebus joined #perl6
10:16 ennio joined #perl6
10:17 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…
10:17 felher Known? Related to https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=119267 ?
10:19 * felher -> lunch
10:24 ennio left #perl6
10:38 lizmat hmmm… maybe I broke sometihing
10:38 felher lizmat: regarding the BEGIN-Bug?
10:38 lizmat r: my @a; say @a.VAR.of # would expect (Any) here
10:38 camelia rakudo 9fcbf5: OUTPUT«(Mu)␤»
10:38 lizmat r: my @a; say @a[0] # since this is Any
10:38 camelia rakudo 9fcbf5: OUTPUT«(Any)␤»
10:39 lizmat felher: yes
10:41 felher lizmat: well, my Perl6 is roughly a week old and I see the same behavior on my machine.  :)
10:41 felher 8 days old, to be exact
10:41 lizmat ok, then maybe it's been broke for a while
10:42 lizmat 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
10:43 camelia rakudo 9fcbf5: OUTPUT«1 2 3␤»
10:44 lizmat r: my @a; BEGIN say @a.WHICH; say @a.WHICH  # uh oh
10:44 camelia rakudo 9fcbf5: OUTPUT«Array|774368358␤Array|782646392␤»
10:45 lizmat r: my @a; once say @a.WHICH; say @a.WHICH  # uh oh
10:45 camelia rakudo 9fcbf5: OUTPUT«Array|1529834946␤Array|1529834946␤»
10:45 lizmat seems like the @a in the BEGIN block is something else
10:47 bbkr joined #perl6
10:48 fgomez joined #perl6
10:48 frettled joined #perl6
10:50 moritz r: my @a; BEGIN say @a.defined; say @a.defined;
10:50 camelia rakudo 9fcbf5: OUTPUT«True␤True␤»
10:51 lizmat @a is always defined, currently, afaik
10:51 robinsmidsrod joined #perl6
10:51 lizmat judging from the .WHICH, the @a inside the phaser is not the same as the @a on the outside
10:52 alex___ joined #perl6
10:53 timotimo so the @a gets redefined after the phaser runs?
10:55 lizmat not sure
10:55 lizmat r: my %h; BEGIN %h<a>=1; say %h
10:55 camelia rakudo 9fcbf5: OUTPUT«("a" => 1).hash␤»
10:55 lizmat no pb there, however:
10:56 lizmat r: my %h; BEGIN say %h.WHICH; say %h.WHICH  # these are not the same either
10:56 camelia rakudo 9fcbf5: OUTPUT«Hash|-1603668746␤Hash|-1598501904␤»
10:56 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?
10:58 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 lichtkind_ joined #perl6
10:58 lizmat r: my %h := my %a; BEGIN{ say %h.WHICH; say %a.WHICH }
10:58 camelia rakudo 9fcbf5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/QTsCtuDYT3�multi-dimensional indexes not yet implemented. Sorry. �at /tmp/QTsCtuDYT3:1�------> [32m %a; BEGIN{ say %h.WHICH; say %a.WHICH }[33m�[31m<EOL>[0m�»
10:59 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.
10:59 lizmat r: my %h := my %a; BEGIN { say %h.WHICH; say %a.WHICH }
10:59 camelia rakudo 9fcbf5: OUTPUT«Hash|432510130␤Hash|-1721231940␤»
10:59 lizmat signifcant whitespace  :-(
11:16 lizmat jnthn: but in the array case, surely that should work and not  bomb?
11:17 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 jnthn s/since/single/
11:18 jnthn So if we make it not blow up, we'll still have interesting behavior :)
11:18 lizmat ok
11:19 lizmat the fact that the same @a or %H has a different .WHICH, is normal ?
11:21 jnthn Yeah.
11:22 jnthn I mean, consider sub foo() { my %h; say %h.WHICH; foo(); }
11:22 jnthn Every invocation we have should get a fresh %h
11:24 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:26 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
11:26 felher Hm, hopefully the videos are yet to come. :)
11:27 felher jnthn: where did you give those talks?
11:27 jnthn YAPC::EU v Kyiv
11:27 felher jnthn: thnx
11:29 mtk joined #perl6
11:30 felher jnthn: http://www.youtube.com/watch?v=LHjF3WujAu8 . Thats one of 'em?
11:31 felher Ah, probably not: 'This talk was given at the First Dutch Perl Workshop'
11:31 jnthn right :)
11:31 jnthn no, not that :)
11:31 jnthn The slides are available from 6guts
11:32 diakopter jnthn: what happened to the Rakudo Architecture slides
11:32 jnthn diakopter: ?
11:33 felher jnthn: thnx, i'll take a look at them. :)
11:34 lizmat jnthn: that was the first *Polish* workshop!
11:38 lizmat 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 lizmat so it should be using the @a from the outer scope, no?
11:43 jnthn lizmat: Yes, for sure, but you have to thing about compile time vs runtime to understand the issue.
11:43 jnthn *think
11:44 jnthn Of note, @a is *not* static.
11:45 jnthn It's lexical, and a scope entry (which hasn't happened at the point we do a BEGIN) creates fresh lexicals.
11:47 jnthn 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 jnthn Every scope entry from then on just clones this prototype
11:47 jnthn That's why:
11:48 jnthn 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␤»
11:48 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.
11:49 lizmat wow
11:49 jnthn :)
11:49 kivutar joined #perl6
11:50 jnthn That's what :scope('contvar') means, by the way :)
11:50 jnthn uh, sorry
11:50 jnthn :decl('contvar')
11:50 lizmat p5eval: sub foo { my $a; BEGIN { $a = 42 }; say $a; $a = 69; say $a }; foo(); foo()
11:50 p5eval lizmat: 4269691
11:50 lizmat so this is different from p5
11:51 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 #perl6
11:52 jnthn argh!!
11:52 lizmat p5eval: sub foo { BEGIN { say "BEGIN" } }; foo(); foo()
11:52 p5eval lizmat: BEGIN
11:52 jnthn BEGIN doesn't mean that!
11:52 lizmat r: sub foo { BEGIN { say "BEGIN" } }; foo(); foo()
11:52 camelia rakudo 9fcbf5: OUTPUT«BEGIN␤»
11:52 lizmat hmmm....
11:52 jnthn BEGIN means "at parse time"
11:52 lizmat yes, I know
11:52 jnthn r: BEGIN say "here!"; 1 2 3 "omg syntax error"
11:52 camelia rakudo 9fcbf5: OUTPUT«here!â�¤[31m===[0mSORRY![31m===[0m Error while compiling /tmp/X1v3t4s_8pâ�¤Two terms in a rowâ�¤at /tmp/X1v3t4s_8p:1â�¤------> [32mBEGIN say "here!"; 1 [33mâ��[31m2 3 "omg syntax error"[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or m…
11:52 lizmat but I got the impression
11:52 jnthn :)
11:53 jnthn I guess in Perl 5 something happens "interestingly" initialization wise. :)
11:53 lizmat from the 42 behaviour in p6 it *did* get executed
11:53 jnthn No
11:53 lizmat let me put it this way: coming from p5, it feels that way :-)
11:53 lizmat brb
11:55 LeopoldBloom joined #perl6
11:56 JimmyZ_ joined #perl6
11:56 lizmat back
12:02 felher sub foo() { state $a; BEGIN { $a = 'a' }; say $a; $a = 'b'; say $a; }; foo(); foo();
12:02 rindolf joined #perl6
12:02 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 #perl6
12:03 lizmat that seems right to me
12:03 felher In this case, the prototype container is only cloned on the first entry?
12:06 sqirrel joined #perl6
12:08 lizmat you mean with "state" ?
12:09 felher lizmat: yes
12:09 lizmat I think so, yes
12:09 lizmat r: say my $a; BEGIN $a=42  # works
12:09 camelia rakudo 9fcbf5: OUTPUT«42␤»
12:09 lizmat r: say my %a; BEGIN %a=a=>42  # works
12:10 camelia rakudo 9fcbf5: OUTPUT«("a" => 42).hash␤»
12:10 lizmat r: say my @a; BEGIN @a=42  # doesn't work, so rakudobug, right?
12:10 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…
12:10 jnthn felher: yes, that's right.
12:10 jnthn felher: First entry *to a particular closure clone* at least
12:10 lizmat regardless of what's happening, this is not expected behaviour, right?
12:11 jnthn lizmat: Yes, that error is certainly a bug
12:11 felher jnthn: kay, thnx :)
12:11 lizmat ok, then we agree on that
12:12 * 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:16 pdurbin left #perl6
12:23 Bebus left #perl6
12:27 BenGoldberg joined #perl6
12:28 lichtkind lizmat:  hej looks you well :)
12:28 lizmat you mean, me diving ? I need a big pool  :-)
12:29 lichtkind because your a big girl :)
12:30 ajr joined #perl6
12:37 jnap joined #perl6
12:48 kbaker joined #perl6
12:50 lichtkind lizmat: so see you in augustin , is there a time for my talk?
12:50 lizmat yes, there is!
12:51 lichtkind i would like to hear it  :)
12:51 donaldh g'day o/
12:52 lizmat donaldh o/
12:56 donaldh https://github.com/rakudo/rakudo/pull/196  Use nqp::shell(cmd, dir, %env)
12:58 * moritz spectests the pull request
12:59 donaldh thx moritz++
12:59 moritz donaldh++ # pull request
12:59 donaldh I'm not 100% sure of the default status of the spec tests on MacOS.
12:59 * donaldh must baseline
13:00 moritz donaldh: clean, except for some of those socket timeouts
13:00 donaldh on jvm ?
13:01 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
13:02 moritz jnthn: aye
13:02 benabik joined #perl6
13:02 jnthn I'll take a look at ChangeLog and release announce shortly then :)
13:02 sjn btw, what happend to the rakudo star releases?
13:03 sjn quarerly release schedule?
13:03 sjn quarterly*
13:04 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 moritz I'll make another attempt shortly
13:05 sjn aah
13:05 sjn ok, good to know
13:06 lizmat moritz: socket timeouts have gone
13:07 moritz \o/
13:07 dalek rakudo/nom: a4fca90 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
13:07 dalek rakudo/nom: Show class inheritance in comments
13:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a4fca90036
13:07 dalek rakudo/nom: dcdf023 | (Elizabeth Mattijsen)++ | src/core/ (10 files):
13:07 dalek rakudo/nom: Sync BOOTSTRAP comments into core SETTINGS for easier perusal
13:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dcdf023507
13:15 jnap hey, was looking at http://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:16 BenGoldberg .ud LOCATE(MY MARBLES)
13:16 yoleaux ENOTFOUND
13:19 moritz jnap: I'm not aware of an 'official' p6 port
13:20 dalek rakudo/nom: 5e48a79 | (Donald Hunter)++ | src/core/control.pm:
13:20 dalek rakudo/nom: Use 2 param version of nqp::shell
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e48a79012
13:20 dalek rakudo/nom: 91cb99c | (Donald Hunter)++ | / (11 files):
13:20 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into chdir-emulation
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/91cb99c066
13:20 dalek rakudo/nom: 50f4549 | (Donald Hunter)++ | / (3 files):
13:20 dalek rakudo/nom: Use nqp::shell(, , %env), Remove %*ENV specialness on JVM, Convert CWD to IO::Path
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50f45499d4
13:20 dalek rakudo/nom: ec2a800 | moritz++ | / (3 files):
13:20 dalek rakudo/nom: Merge branch 'shell-vars' of https://github.com/donaldh/rakudo into nom
13:20 dalek rakudo/nom:
13:20 dalek rakudo/nom: Conflicts:
13:20 dalek rakudo/nom: tools/build/NQP_REVISION
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ec2a8003e0
13:20 dalek rakudo/nom: 23ab546 | moritz++ | src/ (11 files):
13:20 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/23ab546752
13:23 lizmat running spectest on these changes
13:24 moritz fwiw I just had an all-clean spectest on linux
13:24 PacoAir joined #perl6
13:24 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 ?
13:24 lizmat ok
13:24 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
13:25 lizmat moritz: yes. comments only
13:33 FROGGS joined #perl6
13:34 lowpro30 joined #perl6
13:38 fhelmberger joined #perl6
13:39 colomon_ joined #perl6
13:43 nyuszika7h joined #perl6
13:44 lizmat clean spectest on OSX
13:44 LeopoldBloom left #perl6
13:49 jnap joined #perl6
13:54 moritz \o/
13:54 kbaker joined #perl6
13:57 kaare_ joined #perl6
14:02 Ben_Goldberg joined #perl6
14:04 c1sung joined #perl6
14:05 bluescreen10 joined #perl6
14:11 benabik joined #perl6
14:11 fhelmberger joined #perl6
14:22 bluescreen100 joined #perl6
14:23 crab2313 joined #perl6
14:26 berekuk joined #perl6
14:27 FROGGS t/spec/S32-io/IO-Socket-INET.t                                (Wstat: 0 Tests: 41 Failed: 3)
14:27 FROGGS Failed tests:  2, 20, 41
14:28 lowpro30 joined #perl6
14:28 FROGGS I have fails again, but okay, have a windows in a vm running that currently builds parrot
14:28 FROGGS I don't really like tests that depend on some performance
14:29 brrt left #perl6
14:29 thou joined #perl6
14:29 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:31 FROGGS it succeeds, but now I only run one tests, not the suite with TEST_JOBS=4
14:32 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
14:32 FROGGS lizmat: ok 32 - [11s] received first character
14:32 FROGGS not ok 33 - finished in time #16
14:32 jnthn felher: :)
14:34 lizmat I raised the timeout to 10 seconds
14:36 fhelmberger joined #perl6
14:36 lizmat maybe I should take out all time related tests
14:36 FROGGS dunno
14:37 lizmat I put them in there when we had some 20 second related timeout pb  that was fixed some time ago
14:38 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:39 moritz +1 to 30s
14:39 Psyche^ joined #perl6
14:41 dalek roast: a6efd56 | (Elizabeth Mattijsen)++ | S32-io/IO-Socket-INET.t:
14:41 dalek roast: Increase timeout time to 30 seconds to prevent false positives
14:41 dalek roast: review: https://github.com/perl6/roast/commit/a6efd562b2
14:41 lizmat brb
14:43 moritz s/positives/negatives/ # :-)
14:45 FROGGS lizmat++
14:46 donaldh What's the process for adding spec tests ?
14:47 * donaldh hopes it is 1. add tests 2. commit 3. run away
14:47 moritz donaldh: you write then, commit them, push them :-)
14:47 donaldh This okay to start with ? https://gist.github.com/donaldh/6308172
14:47 FROGGS the main problem is mostly where to put the tests...
14:48 FROGGS donaldh: if you have to create a new test file, it must be added to t/spectest.data
14:48 donaldh Okay, thx
14:48 moritz donaldh: for the .perl and .gist things I'd use lives_ok { $*TMPDIR.perl }, '.perl works'
14:48 FROGGS (for rakudo, and for niecza if it can run them)
14:49 donaldh I copied vm.t as a starting point.
14:49 TimToady or maybe $*TMPDIR.?perl is good enough
14:49 TimToady 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
14:50 FROGGS least
14:50 FROGGS r: say $*TMPDIR.?perl
14:50 camelia rakudo 23ab54: OUTPUT«IO::Path.new(path => "/tmp")␤»
14:50 FROGGS r: say $*TMPDIR.?hurz
14:50 camelia rakudo 23ab54: OUTPUT«Nil␤»
14:50 moritz $ perl tools/update-tai-utc.pl src/core/tai-utc.pm
14:50 moritz Couldn't replace leap-second-dates at tools/update-tai-utc.pl line 29.
14:50 FROGGS cool
14:50 moritz any idea what's wrong here?
14:50 FROGGS I forgot about .?name
14:50 donaldh Oh, it's not a magical. Hey ho. I'll put it in S16
14:51 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
14:51 donaldh thx, I'll do better than vm.t
14:51 FROGGS so convert the .pm to unix lineendings first, then it should work
14:52 FROGGS t\spec\S02-literals\quoting.rakudo.parrot ....................... Failed 1/155 subtests
14:52 FROGGS (less 3 skipped subtests: 151 okay)
14:52 FROGGS ^--------- that is on windows xp 32bit
14:52 FROGGS spectest still runs
14:53 FROGGS and it will do so for a while, that windows is sloooooooow
14:53 dalek rakudo/nom: e7ce6b0 | moritz++ | src/core/tai-utc.pm:
14:53 dalek rakudo/nom: change tai-utc.pm to UNIX line endings
14:53 dalek rakudo/nom:
14:53 dalek rakudo/nom: otherwise the automatic updater fails
14:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7ce6b0e3f
14:53 moritz FROGGS++
14:53 TimToady are you guys testing both parrot and jvm?
14:55 moritz TimToady: testing JVM is a bit harder, because it doesn't produce a clean spectest run
14:55 moritz (to the best of my knowledge it never didi)
14:55 moritz but I'm testing it in the sense that I run it, and do a visual check to confirm that most spectests pass
14:57 kaleem joined #perl6
14:57 dalek nqp: a764846 | moritz++ | VERSION:
14:57 dalek nqp: bump VERSION to 2013.08
14:57 dalek nqp: review: https://github.com/perl6/nqp/commit/a76484663e
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?
14:58 TimToady 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
14:58 jnthn Yes, that.
14:58 TimToady plus we lose our 99% measurement, I guess
14:59 moritz we don't lose test counts by fudging
15:00 * 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 #perl6
15:00 [Coke] (also donaldh)
15:00 Ben_Goldberg .ud coffee
15:00 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
15:01 lizmat cycling&
15:01 Ben_Goldberg I really really hope you don't mean this:
15:01 Ben_Goldberg .ud cycling
15:01 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
15:01 moritz ok, NQP is released
15:01 jnthn \o/
15:01 jnthn moritz++
15:02 moritz jnthn: when you're done updating changelog/announcement, I can do the rakudo release too
15:02 jnthn moritz: looking now
15:03 jnthn The ChangeLog isn't updated at all yet?
15:03 jnthn The top heading is New in 2013.07
15:03 jnthn I don't see a New in 2013.09
15:03 donaldh oh, I was adding $*CWD to S16-io but it's sorta covered in S28-named-variables. Oooh. specced in two places.
15:04 jnthn oops, .08
15:04 jnthn oh, darn, wrong branch
15:04 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...
15:05 TimToady italian coffee, french coffee, turkish coffee, seattle coffee...
15:06 moritz Irish Coffee
15:06 Ben_Goldberg For that matter, is "mountain grown" coffee any better than "valley grown" or "plains grown?"
15:06 TimToady well, at least Irish Coffee can be partly from Ireland... :)
15:07 [Coke] Fuding for jvm has -improved- our pass rate, because we can skip tests that would blow up.
15:07 [Coke] .ud coleda
15:07 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,
15:07 * [Coke] is still annoyed at his lunch buddies for putting that in there. :P
15:08 TimToady well, I guess they'd know :P
15:10 donaldh I'm going to go ahead and add S16-io/cwd.t because the spec is reasonably detailed there.
15:11 donaldh I'll leave S28-named-variables/cwd.t for now
15:11 donaldh is that okay?
15:12 moritz yes
15:12 moritz maybe add a comment in both files that the other one exists
15:12 moritz "see also ..."
15:14 dalek rakudo/nom: 674f5d5 | jnthn++ | docs/ChangeLog:
15:14 dalek rakudo/nom: Some more ChangeLog entries.
15:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/674f5d5b01
15:15 jnthn We didn't do bad this month! :)
15:16 moritz aye :-)
15:16 TimToady or at least you did more good than bad...
15:17 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 #perl6
15:20 dalek rakudo/nom: 2c18c57 | jnthn++ | docs/announce/2013.08.md:
15:20 dalek rakudo/nom: Minor announce tweaks.
15:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2c18c57896
15:20 jnthn moritz: relese the houn^WRakudo :)
15:20 jnthn *release
15:21 alexghacker left #perl6
15:21 dalek rakudo/nom: e7d08a2 | moritz++ | tools/build/NQP_REVISION:
15:21 dalek rakudo/nom: [release] bump NQP revision
15:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7d08a21e2
15:21 daniel____ joined #perl6
15:22 alexghacker joined #perl6
15:22 dalek rakudo/nom: 4f2a40b | moritz++ | VERSION:
15:22 dalek rakudo/nom: [release] bump VERSION
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f2a40b9fa
15:23 dalek rakudo/nom: 398fd0a | moritz++ | docs/release_guide.pod:
15:23 dalek rakudo/nom: [release] mark this release as being done
15:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/398fd0a55e
15:24 moritz ... and now I have to wait
15:24 donaldh What is the L<…> comment syntax for in spec tests?
15:24 moritz because the JVM Makefile doesn't know how to build releases
15:24 moritz so I have to reconfigure
15:24 moritz and that requires the newly versioned NQP
15:25 moritz donaldh: they are called "smartlinks"
15:25 moritz donaldh: and they make the appropriate sections of the test files show up in the HTML on perlcabal.org/syn/S\d+.html
15:25 donaldh Okay, so I should add them too ...
15:25 silug joined #perl6
15:27 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?
15:27 dylanwh cshadow:
15:28 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 timotimo oh, is it too late to add a change to the changelog?
15:29 timotimo because i think sized (shaped?) arrays were implemented, but not announced in the changelog?
15:30 jnthn timotimo: ooh...that did get merged, didn't it?
15:30 masak olahoj, #perl6
15:30 timotimo yes, it did, but i don't know what exactly it makes work
15:31 timotimo https://github.com/rakudo/rakudo/pulse/monthly - find the PRs here at the bottom of the list
15:31 timotimo there's also a pull request for additional fixes that seems to mix in some makefile changes as well, which may not apply cleanly
15:32 timotimo r: my @foo[10] = 1, 2, 3;
15:32 camelia rakudo e7ce6b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/1cveyfRNlm�Shaped variable declarations not yet implemented. Sorry. �at /tmp/1cveyfRNlm:1�------> [32mmy @foo[10][33m�[31m = 1, 2, 3;[0m�»
15:32 timotimo ..oh?
15:33 timotimo ah, just for attributes?
15:33 masak Rakudo #67 Kiev \o/
15:33 timotimo r: sub test(@a[10]) { say +@a }; test((1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
15:33 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␤␤»
15:33 timotimo i got nothin'
15:33 * masak has been teaching Python all day
15:34 masak timotimo: that doesn't mean what you think it means.
15:34 FROGGS masak: lol
15:34 masak FROGGS: :)
15:34 masak FROGGS: NO LOL!!!
15:34 FROGGS *g*
15:34 FROGGS LOL!
15:34 masak NO PROJECT EULER!
15:36 donaldh https://github.com/perl6/roast/pull/32
15:36 masak r: sub test(@a [10]) { say "it's alive!" }; test([10])
15:36 camelia rakudo e7ce6b: OUTPUT«it's alive!␤»
15:36 TimToady masak: @a[10] is supposed to mean something different than @a [10]
15:36 jnthn masak: omg wtf can you help me with an euler problem lol!
15:36 masak TimToady: that may be. it clearly doesn't in Rakudo ;)
15:36 masak jnthn: I... I *dare* you to go into #python, and... :D
15:36 TimToady lol
15:37 TimToady or at least, I smiled out loud
15:37 FROGGS hehe
15:37 jnthn r: sub foo(@a[10]) { }
15:37 camelia rakudo e7ce6b:  ( no output )
15:37 jnthn r: sub foo(@a[10]) { }; foo([10]
15:37 camelia rakudo e7ce6b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rKbdsPr589â�¤Unable to parse expression in argument list; couldn't find final ')'â�¤at /tmp/rKbdsPr589:1â�¤------> [32msub foo(@a[10]) { }; foo([10][33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»â€¦
15:37 jnthn r: sub foo(@a[10]) { }; foo([10])
15:37 camelia rakudo e7ce6b:  ( no output )
15:37 jnthn r: sub foo(@a[10]) { }; foo([9])
15:37 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␤␤»
15:38 jnthn hm :)
15:38 TimToady it's not parsing it as a shape
15:38 jnthn aye, I don't think it expects to parse a shape there... :P
15:38 donaldh https://github.com/rakudo/rakudo/pull/197
15:38 jnthn Does STD? What does it mean to parse a shape there? :)
15:38 benabik joined #perl6
15:39 TimToady I can think of two interpretation
15:39 TimToady one, a constraint on what you can pass in
15:39 TimToady secondly, one might allow @a[$size] to bind $size to the size, but that's a little there, and probably a bad idea
15:40 jnthn pobably ;)
15:40 TimToady STD parses it as a shape
15:40 sidus joined #perl6
15:41 timotimo @a [:$size] won't work?
15:41 * TimToady doesn't see how that would work, offhand
15:41 timotimo i seem to recall you can use nameds like that in subcaptures to call methods on the passed object and take those values
15:42 jnthn No, it doesn't work like that :)
15:42 timotimo something like foo($pair (:$key, :$value))?
15:42 timotimo anyway, bbl :)
15:43 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␤␤»
15:43 jnthn Yes, that's 'cus key and value are public attributes of Pair
15:44 TimToady why does it care whether it's an attribute?
15:45 TimToady I guess if it's making a capture, it doesn't want to do extra work, but is that what it's doing?
15:46 jnthn It's making a Capture
15:46 jnthn 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. :)
15:47 TimToady maybe that's something of an argument for @a[$elems]
15:47 jnthn :/
15:47 jnthn .elems isn't really something we want to encourage use of, though.
15:48 jnthn It's rather laziness-hostile...
15:48 jnthn Plus introspect-y
15:48 TimToady shaped arrays know the shape
15:49 TimToady so the .elems vs laziness doesn't really come into it
15:49 moritz http://moritz.faui2k3.org/​tmp/rakudo-2013.08.tar.gz # release preview
15:49 moritz please test
15:50 * masak builds and tests
15:51 TimToady in any case, the syntax @a[] should be reserved for shape-related declarations, not treat it as a subbinding
15:53 TimToady ss/treat it/treated/
15:54 * moritz clones from github via a gigabit link with 417KiB/s
15:57 * masak submits rakudobug
15:57 masak moritz: I have 19 KiB/s here :)
15:59 lichtkind masak: ++
15:59 lichtkind glad having seen you
16:00 masak :)
16:01 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:02 masak *nod*
16:02 * FROGGS is testing http://moritz.faui2k3.org/​tmp/rakudo-2013.08.tar.gz
16:03 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 TimToady confusing them in one instance doesn't help with that
16:04 fhelmberger joined #perl6
16:05 TimToady heh, tried to do the tarball build on my "supercomputer", failed with "javac not found"  :)
16:08 FROGGS moritz: that is from my winxp machine: https://gist.github.com/FR​OGGS/f53696c0ee96f65e9d00
16:08 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 :)
16:08 FROGGS TimToady: pure magic
16:09 FROGGS and unicorns, but mostly magic
16:09 lowpro30 joined #perl6
16:09 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?
16:10 TimToady corn and horn are etymologically related
16:10 TimToady and probably "corner"
16:10 FROGGS TimToady: well, it is called Einhorn here
16:10 lowpro30 joined #perl6
16:10 masak here too.
16:11 TimToady weaking k to h is a typical language change
16:11 TimToady weakening*
16:11 FROGGS ahhh, that is why it is called kindergarden instead of Kindergarten
16:11 masak "enhörning", which comes off as a really weird degenerate polygon roughly translatable as "monogon".
16:11 TimToady stop -> affricate -> fricative -> voiceless vowel
16:11 FROGGS so it should be Berl for consistency *g*
16:12 TimToady and gard is related to ward
16:12 FROGGS ahh, that is interesting
16:13 FROGGS but it makes sense
16:13 TimToady pater -> vater -> father is the same thing
16:13 FROGGS right, but this one is obvious :o)
16:13 TimToady (he said grimmly)
16:16 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:17 FROGGS hmmm, not in german
16:17 FROGGS we say it pretty germish
16:18 FROGGS BETA! :#[
16:18 FROGGS (no, not like that)
16:19 masak if we ever want to get DbC back into Perl 6, we could look at http://cobra-language.com/​trac/cobra/wiki/Contracts , which looks kind of nice.
16:20 FROGGS masak: what is DbC ?
16:20 masak FROGGS: Design by Cockroaches
16:20 FROGGS ahh
16:20 FROGGS well, I guessed there would be a 'by' :o)
16:20 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*
16:21 * masak .oO( unlike dBc, which means "decibel cymbal" )
16:21 TimToady maybe we need a metric that bosses can use to calculate how much experimental stuff their project is using
16:22 FROGGS and it will be measured in experimeters?
16:22 TimToady then we just lie :)
16:24 FROGGS I'd almsot say we need an implementation of S11 and we have our 6.0.0
16:24 FROGGS almost*
16:24 FROGGS do we are missing other big things?
16:24 masak S09
16:25 FROGGS I see
16:25 jnthn Apart from all the bits of S09 that we do have :P
16:25 masak nodnod
16:25 jnthn It would be nice to work out which bits of it we really want :)
16:25 masak from user input at YAPC, I do know we need a better documentation story.
16:25 jnthn I've done some of the foundational work for native arrays.
16:33 FROGGS masak: what do you mean by documentation story?
16:33 jnap joined #perl6
16:33 FROGGS do they wanna know what is done/happening?
16:35 masak FROGGS: I mean "where can I learn Perl 6?" -- "http://doc.perl6.org/" -- "oh, wow! that's more than I could ever ask for!"
16:35 TimToady minor problem with the tarball:
16:35 TimToady cd t/spec && git pull
16:35 TimToady fatal: Not a git repository (or any of the parent directories): .git
16:35 masak TimToady: I think you're meant to 'make spectest'
16:35 TimToady that's exactly what I did
16:36 TimToady but nothing ever transformed the tarball tests into a git repo
16:36 FROGGS cd t/spec && git pull
16:36 FROGGS fatal: Not a git repository (or any of the parent directories): .git
16:36 FROGGS make: [spectest_update] Fehler 128 (ignoriert)
16:36 FROGGS /usr/bin/perl t/harness --fudge --keep-exit-code --icu=1 --tests-from-file=t/spectest.data
16:36 FROGGS t/spec/S02-lexical-conventions/begin_end_pod.t .................. ok
16:36 TimToady or disabled the git pull, if we want a snapshot
16:36 masak oh!
16:36 masak yes, that's a problem.
16:37 TimToady if the intent is to snapshot the tests, it should disable the git pull
16:37 FROGGS true, but it continues
16:37 TimToady does spectest automatically parallelize on multicore?
16:38 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 #perl6
16:38 TimToady do all the jobs share the same eval server, or are there multiple?
16:39 FROGGS I dunno
16:39 * TimToady supposes the eval server can be multithreaded
16:39 jnthn On JVM they share the eval server and it uses threads.
16:39 jnthn oh, on Parrot here's no eval server so you must be asking about JVM :)
16:41 lowpro30_ joined #perl6
16:42 FROGGS moritz: Result: PASS on ubuntu x64
16:42 TimToady oh noes; java is taking 570% of my CPU!!! :)
16:43 TimToady I guess we'll finally see if all these cores work at the same time...
16:44 FROGGS my local hack of @a >>+<< @b uses 400% cpu...
16:45 FROGGS (parrot specific)
16:45 jnthn .oO( core blimey )
16:45 thou moritz: For me, jvm build OK, but no tests (Parse errors: No plan found in TAP output): https://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
16:46 FROGGS thou: please run the spectests (make spectest) instead
16:47 thou what, and make my machine unusable? :-)
16:47 FROGGS thou: you can ban it to one core only :o)
16:47 thou Anyways, it's having the same problem
16:47 spider-mario joined #perl6
16:47 FROGGS hmmm
16:48 thou As mentioned above, i should read that bit
16:49 thou pkg flaw, though, i guess
16:49 FROGGS jnthn / moritz: `make test` seems to be about parrot... what should we do?
16:50 TimToady directory needs renaming, except for the one test that uses PIR
16:51 TimToady the rest of the tests pass under JVM anyway
16:53 Util Can viv (or anything else in github.com/perl6/std) be used for P5->6 translation?
16:53 Util After this conversation http://irclog.perlgeek.de/p​arrot/2013-08-20#i_7476839
16:53 Util , I tried `viv`. It worked for some 6->5 , but I do not see how to do 5->6.
16:53 jnthn FROGGS: I think I proposed that t/00-parrot and t/01-sanity should just be merged into t/01-sanity or so
16:54 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 TimToady but it's probably fairly bitrotted by now
16:55 TimToady the v5 parser that FROGGS++ is working on could probably be retargetted to doing translation at some point
16:56 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.
16:56 TimToady no, viv is only for vi -> v  :)
16:57 Util No worries; I will keep working on Blue_Tiger
16:57 TimToady though v -> iv would be a neat trick
16:57 Util Noooooooo!
16:59 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
17:00 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
17:00 TimToady such as, "this is always used as an integer"
17:01 TimToady or "nobody pokes things into this package to cheat"
17:03 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:07 TimToady personally, I'd put the "remove parens" into the mandatory category, but that's just me :)
17:08 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 TimToady (which is why I hacked in MADPROPS in the first place)
17:13 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 Util With MAD info, I wold be able to reduce the number of user-check-this warnings, though.
17:14 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
17:14 moritz fatal: tag 'Kiev' already exists
17:14 * moritz is dumb
17:14 moritz $ grep Kiev docs/release_guide.pod  2010-06-17   Rakudo #30 "Kiev"               (masak) 2013-08-22   Rakudo #67 "Kiev"               moritz
17:14 TimToady but we might want to consider targetting STD_V5 (what FROGGS++ is using for 'use v5') at some point
17:15 moritz so, there already was a release named "Kiev"
17:15 moritz and I didn't notice it
17:15 TimToady since he's actually making a P5 interpreter
17:15 Util I will look closely at FROGG's work. Thanks.
17:16 TimToady r: use v5; say "foo" . "bar";
17:16 camelia rakudo 398fd0: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/3r0d7AlLtz�Unsupported use of . to concatenate strings; in Perl 6 please use ~�at /tmp/3r0d7AlLtz:1�------> [32muse v5; say "foo" . [33m�[31m"bar";[0m�»
17:16 TimToady hmm, I guess it's not intergrated yet
17:16 TimToady s/rgr/gr/
17:16 jaldhar joined #perl6
17:17 moritz anybody have a good idea what to use instead as release name?
17:17 moritz if nobody has a good idea, I'll use Bicycle.pm
17:17 TimToady r: { use v5; say "foo" . "bar; }
17:17 camelia rakudo 398fd0: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tlLXMzSCu1�Unsupported use of . to concatenate strings; in Perl 6 please use ~�at /tmp/tlLXMzSCu1:1�------> [32m{ use v5; say "foo" . [33m�[31m"bar; }[0m�»
17:17 * Util thinks moritz is awfully smart for a dumb guy.
17:17 TimToady that goes for most of us
17:18 TimToady though some of us are just smartmouthed :)
17:18 lowpro30__ joined #perl6
17:19 masak moritz: "Kiev II" :P
17:19 FROGGS TimToady: my v5 is still something like a module, and not included in rakudo
17:19 masak moritz: "Kyiv" .5 * :P
17:19 TimToady huh, the test summary doesn't actually summarize how many tests succeed/failed overall...
17:20 * masak .oO( it had one job )
17:20 FROGGS O.o
17:20 TimToady well, Result: FAIL was already kinda expected...
17:21 FROGGS ahh, that is why it is called viv? really?
17:22 TimToady yes
17:22 TimToady but it was also a pun on "Oh, no! It's alive!!!" of course
17:23 TimToady the precursor to viv was called gimme5, which is also a pun :)
17:24 FROGGS yeah
17:24 * FROGGS is glad that he tripped into Perl world
17:24 jnap joined #perl6
17:24 dmol1 joined #perl6
17:25 TimToady we actually optimize for fun, not for world domination, unlike certain other communities
17:25 FROGGS yeah
17:26 TimToady And I try very hard to keep earning the B in my DFL. :-)
17:27 pmichaud I always tried to earn A's instead of B's.  :-)
17:28 TimToady A doesn't always have positive connotations, especially in proximity to "hole"...  :)
17:28 FROGGS hi pmichaud
17:29 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?
17:31 pmichaud that would be CDFL.
17:31 pmichaud (Cake)
17:32 TimToady not to be confused with CFL, which is a compact football league.
17:37 geekosaur I suppose 9 yards instead of 10 counts as compact :p
17:40 araujo joined #perl6
17:48 lichtkind pmichaud: howdy meissed you in kiev
17:49 pmichaud lichtkind: yes, it's the first yapc::eu I've missed since 2008.  :-|
17:49 pmichaud I hope others all had an excellent conference and time there, though.
17:49 lichtkind yes relaxed and nice
17:49 * moritz quite enjoyed it
17:50 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 #perl6
17:51 dalek rakudo/nom: f024a60 | moritz++ | docs/ (2 files):
17:51 dalek rakudo/nom: rebrand the current release as Bicycle.pm
17:51 dalek rakudo/nom:
17:51 dalek rakudo/nom: turns out masak++ already named a release Kiev.pm
17:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f024a60f54
17:55 ssutch joined #perl6
18:02 moritz release is tagged and uploaded. Feel free to go wild on rakudo again
18:05 donaldh I have a pull request + one in roast :-)
18:05 donaldh afk&
18:06 gfldex moritz: rakudo-2013.08.tar.gz does make test all fine on cygwin
18:07 Rotwang joined #perl6
18:19 moritz \o/
18:21 Targen joined #perl6
18:21 TimToady moritz++ for more than one ++'s worth of work
18:22 jnthn Bicycle.pm++ :)
18:22 jnthn and moritz++ for cutting the release
18:22 FROGGS the successor of Kiev should be Qiev for some reason
18:23 pernatiy joined #perl6
18:25 jnthn gah, I'm really gonna have to find a moment to improve NQP's parse error reporting sometime before the internals workshop...
18:27 TimToady what, just printing out "?" isn't good enough?  :)
18:27 FROGGS CONFUSED
18:28 TimToady (some ancient Unix utilities just printed out "?" on syntax errors)
18:28 FROGGS must be before my time :o)
18:28 geekosaur mmm, ed
18:28 TimToady it was a really low bar to raise in those days, when everything was SMLTA
18:29 TimToady so much for SMLTA :)
18:30 jnthn heh, before my time too :)
18:30 jnthn Nah, I want to do the highwater thing I tink
18:30 jnthn I mean, it's tracking it...
18:31 jnthn And get rid of the meaningless backtrace.
18:36 benabik joined #perl6
18:42 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
18:42 FROGGS *g*
18:43 jnthn Hm, what happens if you emit the entire backtrace downwards? :P
18:43 FROGGS >.<
18:44 FROGGS or as jnthn would express it: *groan*
18:44 FROGGS we could even print "turtles" below it
18:48 TimToady you'd have to print "turtle\n" xx * I think
18:48 FROGGS lazily?
18:48 FROGGS so that it multiplies while you read
18:49 FROGGS hmmm, that would even work when we get the user to read \r correctly
18:49 FROGGS but then what do we do when the user "hangs" while he sits?
18:53 lizmat or, heaven forbid, the user is a she ?
18:53 lizmat :-)
18:53 lizmat bbl
18:53 FROGGS ohh, #twas just a typo :o)
18:54 FROGGS 'twas
18:54 FROGGS >.<
18:58 pecastro joined #perl6
18:58 Moukeddar joined #perl6
19:03 Moukeddar_ joined #perl6
19:07 geekosaur joined #perl6
19:24 jnap joined #perl6
19:25 zwut00 joined #perl6
19:27 jnap1 joined #perl6
19:32 dalek star: a1d7a45 | moritz++ | tools/star/Makefile:
19:32 dalek star: bump version to rakudo 2013.08
19:32 dalek star: review: https://github.com/rakudo/star/commit/a1d7a45674
19:32 dalek star: 2ac519d | moritz++ | modules/ (12 files):
19:32 dalek star: update submodules
19:32 dalek star: review: https://github.com/rakudo/star/commit/2ac519de9f
19:33 lowpro30 joined #perl6
19:34 dalek star: 759ea52 | moritz++ | tools/build/Makefile.in:
19:34 dalek star: bump version
19:34 dalek star: review: https://github.com/rakudo/star/commit/759ea52f77
19:39 donaldh joined #perl6
19:51 dalek nqp: 077f97f | (Geoffrey Broadwell)++ | ConfigureJVM.pl:
19:51 dalek nqp: Allow NQP's ConfigureJVM.pl to recognize a JVM that refers to itself as 'jdk' instead of 'java'
19:51 dalek nqp: review: https://github.com/perl6/nqp/commit/077f97ff83
19:52 donaldh where do perl6 release announcements go?
19:52 abnorman joined #perl6
19:52 moritz donaldh: compiler announcements go only to perl6-language
19:52 FROGGS perl6-compiler@perl.org
19:53 moritz erm, perl6-compiler. What FROGGS said
19:53 moritz star announcements are more wide spread
19:53 FROGGS (I cheated by looking at my inbox)
19:53 donaldh r: for <planetsix.perl.org rakudo.org perl6.org> -> $u { say "It's not $u" }
19:53 moritz (rakudo.org, perl6-announce and a few others)
19:53 camelia rakudo f024a6: OUTPUT«It's not planetsix.perl.org␤It's not rakudo.org␤It's not perl6.org␤»
19:53 donaldh Shouldn't they be announced more widely ?
19:54 FROGGS it is just a naked compiler
19:54 moritz donaldh: we actually want people to use the star releases
19:55 moritz so that when they ask "how do I install $module?", we can answer "panda install $module", or even better, "you already have it!"
19:56 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. https://pastee.org/eb5hr
19:57 jnap joined #perl6
19:58 donaldh okay, when's the next star and what can I do to help get it out with JVM support?
20:00 FROGGS donaldh: bug tadzik about the state of panda and maybe help him out
20:00 moritz thou: did you build with JVM?
20:00 FROGGS after that the modules needs testing and maybe even fixing
20:00 moritz thou: the spectests are only clean on parrot at the moment
20:02 thou ok, i thought i saw reports of "all tests passing on jvm"
20:02 donaldh dinner &
20:08 lichtkind moritz: lately started to dust off p6 articles on (german) wikipedia, tuits to join
20:09 moritz r: say join ', ', ('tuit' xx 5) # for lichtkind
20:09 camelia rakudo f024a6: OUTPUT«tuit, tuit, tuit, tuit, tuit␤»
20:10 lichtkind moritz: that can be read as i should do it :)
20:11 moritz meh, compilingy HTTP::Easy::PSGI fails with "Could not find PSGI in any of: ..."
20:14 dalek star: 5144072 | moritz++ | / (3 files):
20:14 dalek star: Added PSGI
20:14 dalek star:
20:14 dalek star: perl6-http-easy and Bailador both use it
20:14 dalek star: review: https://github.com/rakudo/star/commit/5144072f45
20:16 jnap joined #perl6
20:18 moritz trying to make a star release on a slow machine is really painful
20:19 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
20:19 moritz diakopter: I don't think you did
20:19 diakopter moritz: oh, oops
20:28 donaldh https://github.com/perl6/roast/pull/32
20:29 donaldh https://github.com/rakudo/rakudo/pull/197
20:29 donaldh :-)
20:29 SHODAN joined #perl6
20:35 moritz donaldh: fwiw I've given you commit access to roast
20:35 moritz donaldh: so you can merge that one yourself
20:35 donaldh moritz++
20:36 dalek rakudo/nom: 760ae83 | (Donald Hunter)++ | / (2 files):
20:36 dalek rakudo/nom: Resurrect TMPDIR on JVM. Added spectests.
20:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/760ae839e9
20:36 dalek rakudo/nom: 226c2ca | moritz++ | / (2 files):
20:36 dalek rakudo/nom: Merge branch 'process-tmp' of https://github.com/donaldh/rakudo into nom
20:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/226c2ca89d
20:36 dalek roast: 074876a | (Donald Hunter)++ | S (3 files):
20:36 dalek roast: Added S16-io/cwd.t and S16-io/tmpdir.t
20:36 dalek roast: review: https://github.com/perl6/roast/commit/074876aa18
20:36 dalek roast: 0252b66 | (Donald Hunter)++ | S (3 files):
20:36 dalek roast: Merge pull request #32 from donaldh/s16-update
20:36 dalek roast:
20:36 dalek roast: Added S16-io/cwd.t and S16-io/tmpdir.t
20:36 dalek roast: review: https://github.com/perl6/roast/commit/0252b6666b
20:37 moritz meh, perl6-debug fails to build in star
20:37 moritz /home/mlenz/p6/star/install/bin/parrot  --dynext /home/mlenz/p6/star/instal​l/lib/parrot/5.5.0/dynext/ -o modules/rakudo-debugger/perl6-debug.pbc modules/rakudo-debugger/perl6-debug.pir
20:37 moritz error:imcc:loadlib directive could not find library `perl6_group' in file 'modules/rakudo-debugger/perl6-debug.pir' line 1
20:37 moritz make: *** [modules/rakudo-debugger/perl6-debug] Error 1
20:38 FROGGS moritz: known issue
20:38 moritz sadface
20:38 moritz and indeed, I can't find any file perl6_group*
20:38 FROGGS perl6_group is now perl6_ops, and the other perl6_something in the makefile is gone
20:39 FROGGS but even if you patch the makefile, there is another issue with its code itself, which probably only jnthn++ can fix
20:41 moritz how depressing
20:43 FROGGS well, you can try to debug it, I dont remember what the error was
20:45 moritz $ ./perl6-debug
20:45 moritz > say 42
20:45 moritz Null PMC access in get_pmc_keyed()
20:45 moritz something like this?
20:46 moritz > 43
20:46 moritz Unable to load setting CORE; maybe it is missing a YOU_ARE_HERE?
20:48 FROGGS moritz: right, this one was it
20:49 jnthn hm, thre's a PR here https://github.com/jnthn/rakudo-debugger/pull/10
20:49 jnthn Not sure htat's quite righ tthough
20:50 moritz jnthn: the necessary Makefile patch is trivial
20:50 moritz -       $(NQP) --vmlibs=perl6_group,perl6_ops --target=pir --output=perl6-debug.pir bin/perl6-debug.nqp
20:50 moritz +       $(NQP) --vmlibs=perl6_ops --target=pir --output=perl6-debug.pir bin/perl6-debug.nqp
20:50 moritz just removes perl6_group,
20:50 jnthn *nod*
20:50 jnthn Just building a latest Rakudo
20:50 jnthn So I can reproduce
20:51 jnthn (the debugger issue)
20:51 moritz but now I really must go to bed :/
20:51 jnthn 'night o/
20:51 moritz \o
20:53 FROGGS gnight moritz
20:55 dalek rakudo-debugger: 6fd1d22 | jnthn++ | / (2 files):
20:55 dalek rakudo-debugger: Remove mention of perl6_group, which went away.
20:55 dalek rakudo-debugger: review: https://github.com/jnthn/raku​do-debugger/commit/6fd1d22cbf
21:05 dalek rakudo-debugger: 12a439a | jnthn++ | bin/perl6-debug.nqp:
21:05 dalek rakudo-debugger: Unbust debugger against latest Rakudo.
21:05 dalek rakudo-debugger: review: https://github.com/jnthn/raku​do-debugger/commit/12a439a686
21:06 jnthn At least somewhat unbust it.
21:07 donaldh S32-io has spec for multi sub visitor that calls for a dynamically scoped $*CWD.
21:08 donaldh visitdir even
21:08 donaldh damn you autocorrect
21:08 donaldh That suggests I need to insert a temp into the caller's dynamic scope
21:13 lizmat and possibly only once
21:13 jnthn huh
21:13 * jnthn tries to find the applicable spec
21:14 lizmat even with multiple calls to visitdir in the same scope
21:14 lizmat jnthn: it's new
21:14 jnthn S32
21:14 jnthn aww
21:14 jnthn .oO( S32:/visitdir/ # feature request for synopsesbot :) )
21:15 dalek rakudo-debugger: d0c7ae6 | jnthn++ | bin/perl6-debug.nqp:
21:15 dalek rakudo-debugger: Chase changes to END handling.
21:15 dalek rakudo-debugger: review: https://github.com/jnthn/raku​do-debugger/commit/d0c7ae6a7d
21:15 dalek rakudo-debugger: fde4726 | jnthn++ | lib/Debugger/UI/CommandLine.pm:
21:15 dalek rakudo-debugger: Eliminate a pir::.
21:15 dalek rakudo-debugger: review: https://github.com/jnthn/raku​do-debugger/commit/fde4726155
21:16 donaldh I don't know how you macro S32
21:17 jnthn TimToady: um...is it me or does visitdir need to be macro-ish
21:17 jnthn ?
21:18 donaldh S32-io:198
21:18 donaldh S32:198
21:18 synopsebot Link: http://perlcabal.org/syn/S32.html#line_198
21:18 jnthn Right, that's where I am :)
21:18 jnthn Thing is that it needs to temporize in the scope of the *caller* which is...weird :)
21:18 donaldh Yeah, I thought macro would be easier / more obvious
21:19 donaldh if it's implemented as a sub, yeah
21:19 jnthn Well, and it's an unhygenic macro at that...
21:20 jnthn The only way I can see to actually handle it today is to make that name special to the compiler...
21:20 donaldh oh
21:20 jnthn Which also feels weird :)
21:20 * masak longs for being able to insert a temp into the caller's dynamic scope
21:20 masak jnthn: sounds very much like gensymming.
21:21 jnthn Somebody should work on macros :P
21:21 donaldh I was wondering if I could use the same mechanism as prefix:<temp>
21:21 donaldh maybe I misunderstand that operator.
21:21 masak jnthn: trust me, it's in the back of my mind. all the time.
21:21 jnthn Sure, I think temp is also special to the compiler...
21:21 jnthn lemme check
21:21 panchiniak joined #perl6
21:22 donaldh it's in operators.pm
21:22 jnthn token prefix:sym<temp> { <sym> \s+ <!before '=>'> <O('%named_unary')> { $*W.give_cur_block_temp($/) } }
21:22 jnthn There's the compiler fiddle
21:24 donaldh Ah
21:26 timotimo ah, rakudo::debugger is up to latest rakudo? that's great!
21:26 donaldh jnthn: unhygienic macro ? I don't follow
21:27 jnthn timotimo: lemme know if you hit any weird issues
21:28 jnthn hehe...that END bug is funny but I'm not immediately sure what to do about it :)
21:33 lizmat there's several things strange with phaser blocks
21:34 lizmat I couldn't get will init {} and will end {} as variable traits working
21:35 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 :)
21:35 lizmat I found that out  :-)
21:36 lizmat 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 lizmat I mean, it's just an array of closures waiting to be executed at a given time, no?
21:36 Moukeddar joined #perl6
21:37 donaldh 'night #perl6 o/
21:37 lizmat gnight donaldh !
21:38 jnthn lizmat: Kinda-ish
21:38 japhb_ What's the status of panda on rakudo-jvm?  Last I recall it was relatively close ...
21:38 lizmat some are pushed, others are unshifted
21:38 jnthn lizmat: It may be possible to try and unify things a little more
21:39 lizmat afaiac, this can wait until after RaNIW
21:40 lizmat just in time for the next release ;-)
21:40 lizmat meanwhile, I realize I'm falling asleep at the wheel so to say
21:40 lizmat so, gnight #perl6!
21:41 dalek rakudo-debugger: 7d0127e | jnthn++ | lib/Debugger/UI/CommandLine.pm:
21:41 dalek rakudo-debugger: Better handling of END on quit; fixes #13.
21:41 dalek rakudo-debugger:
21:41 dalek rakudo-debugger: Now, when you quit and there are END blocks queued up, you are asked
21:41 dalek rakudo-debugger: if you wish to run them. Doing so will return the prompt to a saner
21:41 dalek rakudo-debugger: state if you happened to be in an exceptional state.
21:41 dalek rakudo-debugger: review: https://github.com/jnthn/raku​do-debugger/commit/7d0127e020
21:45 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
21:46 * japhb_ is working on a couple JVM-related things today, so figured it was a good time to ask.  :-)
21:47 jnthn japhb_: ooh, what you workong on, ooc?
21:47 jnthn *working
21:49 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:51 jnthn \o/
21:51 japhb_ I also pushed a trivial patch earlier to recognize OpenJDK (in addition to Oracle Java)
21:52 jnthn yes, I saw that :)
21:52 japhb_ (The bump to NQP_REVISION is pending "trivial patch review")
21:54 TimToady jnthn: yes, I said somewhere in the backlog that visitdir would have to be macroish
21:55 jnthn TimToady: urgh. ok.
21:55 TimToady for now we can probably get away with just using temp
21:55 jnthn yeah
21:56 jnthn Or make the API visitdir(newdir, { ... }); # :)
21:57 lichtkind i just compiled parrot on mac
21:57 TimToady or just throw a "temp $*CWD;" into every single function call :D
21:58 lichtkind i mean it worked but had delete entire repo with the hg and du fresh clode
21:58 lichtkind either write that on the page or do something in makefile
21:58 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)
21:59 jnthn oh noes
21:59 jnap joined #perl6
21:59 jnthn 63-slurp.t fails on Windows.
21:59 jnthn Why?
21:59 jnthn ok(nqp::chars($content) == 126, "File slurped");
21:59 jnthn Line endings are different on Windows :P
21:59 jnthn And if I fix the test of course I have to re-count the bytes it might be :P
22:00 japhb_ Is it a binary slurp?
22:00 TimToady we need a standard random file :)
22:00 jnthn japhb_: I don't think that makes a difference, unless slurp is meant to normalize line-endings...
22:00 jnthn japhb_: Which I don't think it is...
22:01 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:03 pecastro joined #perl6
22:03 dalek nqp: ecee284 | (David Warring)++ | src/vm/jvm/ (2 files):
22:03 dalek nqp: make nqp:chr barf when code points invalid or out of range
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/ecee284fe7
22:03 dalek nqp: 78bfcc5 | (David Warring)++ | src/vm/jvm/stage0/ (10 files):
22:03 dalek nqp: add bootstrap files
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/78bfcc555b
22:03 dalek nqp: b6fbbe9 | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
22:03 dalek nqp: Fallback for box/unbox in code-gen.
22:03 dalek nqp:
22:03 dalek nqp: Discovered while using the toolchain to build a language other than
22:03 dalek nqp: NQP/Perl 6.
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/b6fbbe9da6
22:03 dalek nqp: 3c66300 | jnthn++ | src/vm/jvm/ (12 files):
22:03 dalek nqp: Merge branch 'master' of git://github.com/dwarring/nqp
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/3c6630032f
22:03 dalek nqp: c6d3e54 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:03 dalek nqp: Formatting cleanups.
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/c6d3e54ce6
22:03 dalek nqp: c5c2342 | jnthn++ | t/nqp/63-slurp.t:
22:03 dalek nqp: Ensure 63-slurp.t works on Windows also.
22:03 dalek nqp: review: https://github.com/perl6/nqp/commit/c5c2342d0c
22:03 timotimo fwiw, there's an "indir" method that takes a dir and a block. panda uses that.
22:03 jnthn timotimo: I think panda implemetns that so it can use it, iirc
22:03 timotimo either panda or File::Tools or Shell::Command
22:08 lichtkind jnthn: should i file bug or smthng
22:08 pecastro joined #perl6
22:08 jnthn lichtkind: What about?
22:09 lichtkind please just scroll up a page
22:10 jnthn lichtkind: What did you have to throw away? I'm confused :)
22:10 diakopter jnthn: what's the mystery language
22:11 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:11 lichtkind jnthn: only configure, make, install a fresh clone did work
22:12 timotimo how were you able to get rakudo as a .hg?
22:12 lichtkind i mean git
22:12 timotimo ah, ok
22:12 lichtkind sorry my default setting is hg
22:12 lichtkind i get sleepy
22:12 timotimo yeah, if you have only the .git and no more files, you can git reset --hard to get all your files back
22:12 timotimo i think a checkout will suffice, too?
22:12 jnthn diakopter: Just a tiny one I put together to illustate some things at the upcoming internals workshop :)
22:13 yoleaux joined #perl6
22:14 yoleaux joined #perl6
22:17 Rotwang joined #perl6
22:19 pecastro joined #perl6
22:24 masak 'night, #perl6
22:24 TimToady sleep well
22:25 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 timotimo (IOW: i'm going to bed, good night!)
22:28 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 TimToady or we could switch to a *-less .build and leave .bless as-is
22:29 benabik joined #perl6
22:29 TimToady I see that nqp doesn't even do the * though
22:30 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
22:30 TimToady 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
22:31 TimToady 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:32 yoleaux joined #perl6
22:32 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 jnthn That is, how do I write the constructor that does that.
22:32 yoleaux joined #perl6
22:33 TimToady well, but create is largely, "how do I allocate this?"
22:34 TimToady 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
22:34 TimToady so I do think CREATE is largely the province of the repr, and not the constructor
22:35 * 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
22:35 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"
22:36 diakopter jnthn: pun the class with the is repr
22:36 diakopter ?
22:36 TimToady well, it could be a different method than .bless, or a trait on the class, or...
22:36 thou good idea, timotimo++
22:36 TimToady or we could reserve .bless for that, and put in a .build to use instead
22:36 jnthn Well, for setting the default REPR there's the is repr trait.
22:37 jnthn I mean, if we say "OK, a given class only ever has one REPR"...
22:37 TimToady well, usually it does
22:37 jnthn Rather than allowing instance-level granularity
22:37 jnthn That also works fine
22:37 diakopter that's what I was proposing
22:37 TimToady we can make an escape valve, but we don't have to make that the default as it is now
22:37 jnthn Well, if that's all we want, then the is repr trait is fine :)
22:37 jnthn *nod*
22:37 jnthn Aye, it's an unusual thing to want.
22:38 * TimToady guesses that having both .bless and .build would result in confusion
22:39 TimToady is self.bless(|c) smart enough to not recreate the capture passed to .new?
22:40 TimToady since it's presumably the same object?
22:40 TimToady the same invocant, I should say
22:41 dalek joined #perl6
22:41 jnthn TimToady: No, but I can almost certainly make it smart enough or just use an nqp:: op there :)
22:41 jnthn Probably I'd do the latter for now and implement the general optimization afterwards.
22:44 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
22:45 TimToady though of course object access is even more critical, since it happens many times for each creation
22:46 japhb_ TimToady, not necessarily -- Match and associated objects may be an exception there.
22:47 timotimo .o( also in a real-world use case i had ... immutable 2d vectors )
22:47 TimToady nodnod, but you're still going to access them at least as often as you create them
22:47 TimToady unless you're putting them into write-only memory, of course...
22:47 timotimo right. at the absolute very most you'll be 50% creating, 50% accessing, otherwise you're wasting data
22:47 timotimo 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.
22:48 diakopter bazillion is on the low end
22:48 japhb_ heh
22:49 timotimo that's not entirely true, though
22:49 timotimo the match objects are being accessed throughout the matching
22:49 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
22:49 japhb_ timotimo: are you sure that the match objects are never wasted, even internal to the matching process?
22:50 timotimo never? no, of course not
22:50 jnthn Don't confuse Match and Cursor objects
22:50 japhb_ (That wasn't accusatory -- I haven't looked enough at the grammar guts to know if every created object gets accessed > 0 times)
22:51 jnthn The Cursor objects we may have to keep around for backtracking, though grammars usually ratchet, and also for capturing.
22:51 jnthn Match is only created when first asked for
22:51 timotimo oh, you are right, i was confusing them
22:51 jnthn Though once you ask for one you gotta make the whole tree of 'em beneath it.
22:51 timotimo is that perhaps something that could be eased?
22:51 timotimo make the hash interface of matches a bit more magical?
22:51 TimToady but yeah, point taken, there are obviously some inefficiencies in how we currently generate data that will never be used
22:52 TimToady jnthn: does rakudo call a BUILDALL, or is that also a figment of the spec's imagination?
22:53 TimToady and if .bless is going to call buildall directly, maybe .bless is the actual autogenerated plan
22:53 nebuchadnezzar joined #perl6
22:54 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'
22:54 TimToady (ignoring for the moment the fact that the inliner might be smart enough to do that for us)
22:55 TimToady ((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
22:56 timotimo and even then i think it will only do compile-time-dispatch rather than a full inline
22:56 timotimo but immediate blocks like the ones created in if statements are already being inlined successfully
22:57 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
22:57 jnthn TimToady: https://github.com/rakudo/raku​do/blob/nom/src/core/Mu.pm#L69
22:58 jnthn Quite possibly.
22:58 jnthn Though of course, if we call it bless we have the * legacy to work out
22:58 skids joined #perl6
22:59 jnthn On the other hand, it's just a positional argument and clearly distinguishable from an auto-vivifying proto...
22:59 jnthn s/proto/type object/
22:59 timotimo oh right, the other arguments to bless are all positionals
23:00 TimToady would eventually like to get to the point where simple classes could inline the initialization code directly into the new
23:01 timotimo or even into the caller's frame (with a jit that perhaps puts a guard before it)
23:01 timotimo 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
23:02 TimToady yes, but we'll have to move away from an interpreted BUILDALL to get there
23:03 jnthn *nod*
23:03 TimToady just trying to get us out of a semantic corner where we pretty much have to interpret
23:04 jnthn Well, we can always code-gen a BUILDALL for a class too...
23:04 jnthn That may be a code explosioin of course...
23:04 jnthn But probably not too bad
23:04 TimToady and I'm asking if that codegen'd BUILDALL should just be called bless to begin with
23:05 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
23:05 jnthn Rather than when we're actually in the compiler and can just go code-gen-ing. :)
23:05 jnthn That could be vastly faster, anyway...
23:05 TimToady I suspect we still need the interpreter too
23:05 jnthn Well, there is that...
23:06 jnthn Having the interpreter in Mu
23:06 jnthn And then generating an override where possible.
23:06 jnthn And the interp is the fallback.
23:06 TimToady so it's not bad to attack it interpreter first, but just don't want to get stuck there
23:06 jnthn Yeah
23:06 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"
23:07 jnthn ('cus it'll be generated)
23:07 jnthn Or don't be surprised if one you didn't write magically appears in the method table if you go introspecting...
23:07 TimToady so our earlier advice to tadzik++ to write a wrapper BUILDALL is in jeopardy :)
23:08 jnthn uh-oh :)
23:08 jnthn Well, if you must, you can always callsame up to the interp :P
23:09 * TimToady is now thinking (guiltily) about allowing both a submethod and a method of the same name :)
23:09 jnthn o.O
23:10 jnthn 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
23:10 jnthn If I removed a couple of error checks it already "works" :P
23:10 jnthn eek
23:10 TimToady but it seems...unseemly
23:10 jnthn Which one goes in the method cache? :)
23:10 jnthn Once we start missing that, things get slow.
23:11 TimToady well, the idea was to capture control after the object is completely built, and there are other ways to manage that
23:12 TimToady self.bless(...).postprocesses()
23:12 TimToady postprocesses, my precious!
23:13 japhb_ /me imagines that in Andy Sirkis's voice.
23:13 japhb_ *Serkis
23:18 jnthn .oO( ALLBUILT phaser :P )
23:18 jnthn Time for some rest...'night
23:18 timotimo hm. how about some parametric phasers?
23:19 timotimo like AFTERLINE(20) { ... }
23:19 timotimo that in of itself isn't useful yet. it needs more flexibility
23:19 timotimo here we go: AFTERLINE('foo/bar.pm', 20) { ... }
23:19 panchiniak left #perl6
23:21 * timotimo goes to bed, finally.
23:27 kbaker joined #perl6
23:35 dalek specs: de909c2 | larry++ | S (2 files):
23:35 dalek specs: simplify blessing
23:35 dalek specs:
23:35 dalek specs: The .bless method no longer takes a first candidate argument.
23:35 dalek specs: (Saying how to create the candidate is now the responsibility of the
23:35 dalek specs: representation.)  The BUILDALL method is now gone, so that the compiler
23:35 dalek specs: is free to write a bless submethod that inlines all the creation and
23:35 dalek specs: build logic into an easily inline-able routine.  We will probably
23:35 dalek specs: invent ways to restore the flexibility of the old system as we go on,
23:35 dalek specs: but there's no need to inflict that flexibility on all objects with
23:35 dalek specs: well-known representations, nor on the users trying to create such
23:35 dalek specs: objects.  That this will also make things faster is not undesirable...
23:35 dalek specs: review: https://github.com/perl6/specs/commit/de909c2d57
23:38 TimToady .oO(Mandatory Options Considered Harmful)
23:39 geekosaur how about optional mandates?
23:40 TimToady Step 3: optionally mix in powder of mandate root.
23:40 TimToady Step 4: now mix in the mandate root if you didn't earlier...
23:41 * geekosaur has seen a few recipes like that (granted, there was other evidence that something had originally been in between)
23:46 jferrero joined #perl6
23:52 perigrin "the cry for a mandate root"

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

Perl 6 | Reference Documentation | Rakudo