»ö« 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 elemscurrent 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|774368358Array|782646392» | ||
lizmat | r: my @a; once say @a.WHICH; say @a.WHICH # uh oh | 10:45 | |
camelia | rakudo 9fcbf5: OUTPUT«Array|1529834946Array|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«TrueTrue» | ||
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|-1603668746Hash|-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/QTsCtuDYT3multi-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|432510130Hash|-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«42694269» | ||
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_8pTwo terms in a rowat /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«abbb» | ||
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/1cveyfRNlmShaped 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/rKbdsPr589Unable 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/3r0d7AlLtzUnsupported 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/tlLXMzSCu1Unsupported 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.orgIt's not rakudo.orgIt'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
|