| Time |
S |
Nick |
Message |
| 00:00 |
|
sorear |
hmm |
| 00:01 |
|
sorear |
$perl5string ~ $perl5string doesn't work |
| 00:02 |
|
sorear |
because it's defined as our multi sub infix:<~>($a, $b) { |
| 00:02 |
|
sorear |
and the Rakudo multisub dispatcher doesn't conster foreign objects suitable for 'any' |
| 00:03 |
|
sorear |
rakudo: multi sub foo($x) { say($x); }; foo(pir::new__PS('String')) |
| 00:03 |
|
p6eval |
rakudo 72f914: OUTPUT«» |
| 00:03 |
|
sorear |
rakudo: multi sub foo($x) { say($x); }; foo(pir::new__PS('Hash')) |
| 00:03 |
|
p6eval |
rakudo 72f914: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are::(Any $x)current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 00:03 |
|
sorear |
rakudo: multi sub foo($x) { say($x); }; say(pir::new__PS('Hash')) |
| 00:03 |
|
p6eval |
rakudo 72f914: OUTPUT«Hash[0x53815a8]» |
| 00:03 |
|
sorear |
rakudo: sub foo($x) { say($x); }; foo(pir::new__PS('Hash')) |
| 00:03 |
|
p6eval |
rakudo 72f914: OUTPUT«Null PMC access in invoke()current instr.: 'foo' pc 191 (EVAL_1:81)... call repeated 1 times» |
| 00:04 |
|
sorear |
Rakudobug? |
| 00:05 |
|
pugssvn |
r30495 | lwall++ | [Cursor] lexer generator mislaid a bare . pattern so cursor_fate never called it |
| 00:05 |
|
pugssvn |
r30495 | [Cursor] added .looks_like_cclass method to detect accidental use of P5 ranges |
| 00:05 |
|
pugssvn |
r30495 | [STD] various character classes needed to backslash # |
| 00:05 |
|
pugssvn |
r30495 | [STD] change :tr language to :cc langauge since character classes share it |
| 00:05 |
|
pugssvn |
r30495 | [STD] remove old-school-ish character classes |
| 00:05 |
|
pugssvn |
r30495 | [STD] allow \# in character classes instead of misparsing as unspace |
| 00:06 |
|
pugssvn |
r30495 | [STD] remove unused %*LANG<Trans> |
| 00:06 |
|
pugssvn |
r30495 | [STD] on invalid - in regex, presume we're in an old-school character class |
| 00:06 |
|
pugssvn |
r30495 | [STD] check a normal regex bracket's innards for old-school character class, and warn if found |
| 00:06 |
|
pugssvn |
r30495 | [STD] use ~ for regex brackets to set $*GOAL correctly |
| 00:06 |
|
pugssvn |
r30495 | [STD] clean up recursive panic detection to avoid both false positives and negatives |
| 00:06 |
|
pugssvn |
r30495 | [STD] don't use 'note' to emit a panic inside a suppose |
| 00:06 |
|
pugssvn |
r30495 | [STD] suppress duplicate sorry messages |
| 00:06 |
|
pugssvn |
r30495 | [STD] sorry no longer uses panic in supposition, but dies directly |
| 00:14 |
|
sjohnson |
i had some fun programming in Perl today |
| 00:15 |
|
sorear |
6? |
| 00:18 |
|
|
[Coke] joined #perl6 |
| 00:18 |
|
|
cosimo joined #perl6 |
| 00:18 |
|
|
slavik joined #perl6 |
| 00:22 |
|
|
stepnem joined #perl6 |
| 00:23 |
|
|
yinyin joined #perl6 |
| 00:29 |
|
sjohnson |
sorear: p5 ... writing some interfaces for git status outputs to make my life easier... |
| 00:29 |
|
sjohnson |
i'll try out some more p6 soon once i get through all the apocolypses |
| 00:38 |
|
|
rv2733 joined #perl6 |
| 00:44 |
|
sjohnson |
my knowledge of perl is limited to only doing c00l things with p5 |
| 00:45 |
|
colomon |
you don't have to get through all the apocalypses, you know. |
| 00:46 |
|
sorear |
the apocalypses are mostly irrelevant now for practical purposes |
| 00:46 |
|
sorear |
they're good if you need a more detailed rationale |
| 00:47 |
|
sorear |
although I prefer the flesh version if it's available |
| 00:48 |
|
|
meppl joined #perl6 |
| 00:49 |
|
sjohnson |
not sure what the most complete p5->p6 transition guide is |
| 00:49 |
|
sjohnson |
maybe of your helpful ppl can recommend something for me |
| 00:49 |
|
sorear |
moritz' 5->6 maybe? |
| 00:50 |
|
sorear |
hey, it's even linked from perl6.org |
| 00:50 |
|
PerlJam |
http://perlgeek.de/blog-en/perl-5-to-6/ |
| 00:50 |
|
PerlJam |
mortiz++ |
| 00:51 |
|
PerlJam |
oops, my link has an extra slash at the end. |
| 00:51 |
|
PerlJam |
sjohnson: for specific items, you can ask here when people are active. |
| 00:51 |
|
* sorear |
, having finished the core functionality in blizkost, goes back to hacking his irc client (which is what needed :from<perl5> in the first place, for DBI, Curses, and POSIX) |
| 00:51 |
|
sorear |
which is all the time. |
| 00:52 |
|
snarkyboojum |
sorear++ |
| 00:53 |
|
|
orafu joined #perl6 |
| 00:56 |
|
sjohnson |
thanks |
| 00:57 |
|
sjohnson |
moritz_: typo on word "Aprili" on latest rakudo moscow news page |
| 01:17 |
|
dalek |
rakudo: 3966c62 | (Solomon Foster)++ | src/core/ (2 files): |
| 01:17 |
|
dalek |
rakudo: Straighten out type issues with Real.exp. In the process, add Real * Real, Complex ** Real, and Real ** Complex. |
| 01:17 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]0301dba2546134af5 |
| 01:17 |
|
dalek |
rakudo: 0857098 | (Solomon Foster)++ | src/core/ (2 files): |
| 01:17 |
|
dalek |
rakudo: Remove Complex ** Any and Any ** Complex, as they should no longer be needed. Change Any * Any to convert its arguments to Numeric and call multiply on them then. |
| 01:17 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]f3e1852263f173c10 |
| 01:18 |
|
pugssvn |
r30496 | colomon++ | [t/spec] Additional exp tests using mixed argument types. |
| 01:24 |
|
sorear |
hmm |
| 01:24 |
|
diakopter |
hmm |
| 01:25 |
|
sorear |
rakudo: sub foo(:$bar) {}; foo("bar" => 1); |
| 01:25 |
|
p6eval |
rakudo 72f914: OUTPUT«Too many positional parameters passed; got 1 but expected 0current instr.: 'foo' pc 197 (EVAL_1:80)» |
| 01:25 |
|
sorear |
Is it possible to pass a named argument with weird characters in p6? |
| 01:25 |
|
sorear |
like initial "-" (quite common in perl5 APIs) |
| 01:25 |
|
diakopter |
rakudo: my method foo(:$bar) {}; foo("bar" => 1); |
| 01:25 |
|
p6eval |
rakudo 72f914: ( no output ) |
| 01:26 |
|
diakopter |
rakudo: my method foo(:$bar) {}; foo("bar" => 1, "foo" => 2); |
| 01:26 |
|
p6eval |
rakudo 72f914: OUTPUT«Too many positional parameters passed; got 2 but expected 1current instr.: 'foo' pc 338 (EVAL_1:133)» |
| 01:26 |
|
diakopter |
rakudo: my method foo(:$bar) { say $_; }; foo("bar" => 1); |
| 01:26 |
|
p6eval |
rakudo 72f914: OUTPUT«Any()» |
| 01:27 |
|
* PerlJam |
wonders what class or object that method belongs to |
| 01:27 |
|
sorear |
diakopter: the pair is being bound to 'self' |
| 01:27 |
|
sorear |
PerlJam: none |
| 01:27 |
|
sorear |
my method foo( is sugar for my sub foo(self, |
| 01:27 |
|
sorear |
except that it's valid syntax |
| 01:28 |
|
sorear |
methods in perl 6 are simply subs with a hidden first positional argument |
| 01:29 |
|
snarkyboojum |
sorear: are you working on a Perl 6 port of soric? |
| 01:29 |
|
sorear |
ok now that's just freaky. |
| 01:30 |
|
sorear |
soric is the collective code name for three broken prototypes I've played with |
| 01:30 |
|
snarkyboojum |
oh ok |
| 01:30 |
|
snarkyboojum |
good-o |
| 01:30 |
|
sorear |
#4 is being done in perl6 based on several insights from #3 |
| 01:30 |
|
sorear |
how did you know about soric? |
| 01:30 |
|
sorear |
the name, I mean |
| 01:30 |
|
snarkyboojum |
github |
| 01:30 |
|
snarkyboojum |
not terribly hard to find out :) |
| 01:30 |
|
sorear |
how did I forget :/ |
| 01:31 |
|
snarkyboojum |
github lurkers unite! |
| 01:31 |
|
sorear |
anyway, yes |
| 01:32 |
|
snarkyboojum |
cool, looks interesting |
| 01:32 |
|
sorear |
#3 was going along nicely until I realized that 90% of my code consisted of emulations of the new .* multicall syntax |
| 01:32 |
|
sorear |
at which point I decided to learn perl 6 |
| 01:34 |
|
snarkyboojum |
at which point you decided to help get blizkost going :) |
| 01:34 |
|
snarkyboojum |
nice progression :) |
| 01:37 |
|
|
bradb joined #perl6 |
| 01:38 |
|
colomon |
"will review Solomon Foster's Mandlebrot example, especially with regard to performance" -- woot! |
| 01:38 |
|
diakopter |
phenny: tell pmurias I fixed ur buggo |
| 01:38 |
|
phenny |
diakopter: I'll pass that on when pmurias is around. |
| 01:38 |
|
diakopter |
phenny: tell pmurias by rejiggering the grammar |
| 01:38 |
|
phenny |
diakopter: I'll pass that on when pmurias is around. |
| 01:38 |
|
|
orafu joined #perl6 |
| 01:38 |
|
diakopter |
phenny: tell pmurias good luck :) |
| 01:38 |
|
phenny |
diakopter: I'll pass that on when pmurias is around. |
| 01:44 |
|
|
dalek left #perl6 |
| 01:44 |
|
|
dalek joined #perl6 |
| 01:45 |
|
diakopter |
phenny: tell masak k, yapsi notifications should work now. it would help if I didn't try to load "/yapsilog.com" from botnix.conf and tried "/yapsi.pm" instead. :/ |
| 01:45 |
|
phenny |
diakopter: I'll pass that on when masak is around. |
| 01:53 |
|
|
sorear joined #perl6 |
| 01:55 |
|
sorear |
please don't op me without also giving out an ACL bit |
| 01:55 |
|
sorear |
it... won't last |
| 01:55 |
|
diakopter |
heh |
| 01:56 |
|
diakopter |
we actually don't have access to that :( I need to get TimToady to fill out the freenode form and mail it in |
| 01:57 |
|
diakopter |
so that the channel can get registered again and get an actual "founder" |
| 01:58 |
|
sorear |
I'm really looking forward to IPv6 in the US |
| 01:58 |
|
sorear |
and by extension the end of unstable NATs |
| 01:59 |
|
|
Psyche^ joined #perl6 |
| 02:00 |
|
diakopter |
urgh. silly dalek. |
| 02:01 |
|
diakopter |
it just missed my http://code.google.com/p/csmet[…]urce/detail?r=220 |
| 02:01 |
|
sorear |
alternatively, I could simply move to a country with real internet |
| 02:02 |
|
diakopter |
yapsi: say 5 |
| 02:02 |
|
diakopter |
perlesque: say(4) |
| 02:02 |
|
p6eval |
perlesque: OUTPUT«4» |
| 02:02 |
|
diakopter |
perlesquel: . |
| 02:02 |
|
p6eval |
perlesquel: OUTPUT«Cannot open assembly 'asmbly_1.exe': No such file or directory.Command exited with non-zero status 2real 0.23user 0.01sys 0.01» |
| 02:03 |
|
diakopter |
heh |
| 02:04 |
|
TimToady |
std: /[a-z]/ |
| 02:04 |
|
p6eval |
std 30496: OUTPUT«===[0mSORRY!===[0mInvalid regex metacharacter; for a character class, use <[...]> instead of [...] (and use .. instead of - to indicate a range) at /tmp/0HSYFtJNOt line 1:------> /[a-⏏z]/Unable to parse bracketed regex at /tmp/0HSYFtJNOt line |
| 02:04 |
|
p6eval |
..1:… |
| 02:04 |
|
TimToady |
std: /[aeiou]/ |
| 02:04 |
|
p6eval |
std 30496: OUTPUT«Potential difficulties: This appears to be an old-school character class; please use <[aeiou]> if you mean a character class, or put whitespace inside like [ aeiou ] to disable this warning at /tmp/r4tAr7xqIJ line 1:------> /⏏[aeiou]/ok 00:01 108m» |
| 02:05 |
|
PerlJam |
TimToady++ |
| 02:05 |
|
diakopter |
std: /[ aeiou]/ |
| 02:05 |
|
p6eval |
std 30496: OUTPUT«Potential difficulties: This appears to be an old-school character class; please use <[ aeiou]> if you mean a character class, or put whitespace inside like [ aeiou ] to disable this warning at /tmp/rF4lulyzxZ line 1:------> /⏏[ aeiou]/ok 00:01 |
| 02:05 |
|
p6eval |
..108m» |
| 02:05 |
|
diakopter |
std: /[ aeio u]/ |
| 02:05 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:06 |
|
diakopter |
std: /[aeio u]/ |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«Potential difficulties: This appears to be an old-school character class; please use <[aeio u]> if you mean a character class, or put whitespace inside like [ aeio u ] to disable this warning at /tmp/PTnJmJVgN7 line 1:------> /⏏[aeio u]/ok 00:01 |
| 02:06 |
|
p6eval |
..108m» |
| 02:06 |
|
diakopter |
std: /[aeio u ]/ |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:06 |
|
diakopter |
heh |
| 02:06 |
|
TimToady |
std: /[ \t]/ |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 109m» |
| 02:06 |
|
TimToady |
hmm, that one didn't work |
| 02:06 |
|
diakopter |
std: /[ \\t]/ |
| 02:06 |
|
TimToady |
supposed to recommend \h |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:06 |
|
diakopter |
std: /[ \\\t]/ |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:06 |
|
TimToady |
std: /[ ]/ |
| 02:06 |
|
diakopter |
std: /[\t ]/ |
| 02:06 |
|
p6eval |
std 30496: OUTPUT«===[0mSORRY!===[0mNull pattern not allowed at /tmp/qXb0RC3H5V line 1:------> /[ ⏏]/Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/qXb0RC3H5V line 1:------> /[⏏ ]/Can't call method "_REDUCE" on |
| 02:06 |
|
p6eval |
..unbl… |
| 02:07 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:07 |
|
PerlJam |
std: /[\t ]/ |
| 02:07 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:07 |
|
diakopter |
std: /[\t]/ |
| 02:07 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:07 |
|
diakopter |
std: /[ t]/ |
| 02:07 |
|
p6eval |
std 30496: OUTPUT«Potential difficulties: This appears to be an old-school character class; please use <[ t]> if you mean a character class, or put whitespace inside like [ t ] to disable this warning at /tmp/29NyFiT1G9 line 1:------> /⏏[ t]/ok 00:01 108m» |
| 02:07 |
|
diakopter |
std: /[ t ]/ |
| 02:07 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:08 |
|
TimToady |
std: /[\n]/ |
| 02:08 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:08 |
|
TimToady |
hmm |
| 02:08 |
|
PerlJam |
TimToady: is { $a = 5; say $a; my $a } correct and analogous to { foo; sub foo { say "hi" } } ? |
| 02:08 |
|
PerlJam |
rakudo: { $a = 5; say $a; my $a } |
| 02:08 |
|
p6eval |
rakudo 085709: OUTPUT«5» |
| 02:08 |
|
PerlJam |
rakudo: { foo; sub foo { say "hi" } } |
| 02:08 |
|
p6eval |
rakudo 085709: OUTPUT«hi» |
| 02:10 |
|
|
ash__ joined #perl6 |
| 02:11 |
|
|
ash__ left #perl6 |
| 02:11 |
|
diakopter |
rakudo: { our sub foo { say "hi" } }(foo) |
| 02:11 |
|
p6eval |
rakudo 085709: OUTPUT«hi» |
| 02:12 |
|
* diakopter |
whimpers |
| 02:12 |
|
diakopter |
er, simpers |
| 02:12 |
|
TimToady |
PerlJam: no |
| 02:13 |
|
diakopter |
std: { $a = 5; say $a; my $a } |
| 02:13 |
|
p6eval |
std 30496: OUTPUT«===[0mSORRY!===[0mVariable $a is not predeclared at /tmp/2WwonoU5ya line 1:------> { $a⏏ = 5; say $a; my $a }Variable $a is not predeclared at /tmp/2WwonoU5ya line 1:------> { $a = 5; say $a⏏; my $a }Check failedFAILED 00:01 |
| 02:13 |
|
p6eval |
..1… |
| 02:13 |
|
pugssvn |
r30497 | colomon++ | [t/spec] Unfudge a bunch of comb tests which now work. |
| 02:13 |
|
colomon |
31740 passing tests now. |
| 02:15 |
|
dalek |
rakudo: ed321b4 | (Solomon Foster)++ | src/core/Cool-str.pm: |
| 02:15 |
|
dalek |
rakudo: Fix comb version of the match with take bug fixed earlier today in split. |
| 02:15 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]73d680a152e5de0e4 |
| 02:15 |
|
PerlJam |
TimToady: this is what I expected but, then I also tended to expect { XXX; my XXX } in general to carp. Would it be safe to say that it only carps if XXX is a variable? |
| 02:16 |
|
TimToady |
only functions may be post-declared |
| 02:16 |
|
sorear |
it's kinda like ANSI C |
| 02:16 |
|
sorear |
when an undeclared function is seen, a declaration is automatically generated assuming that it has listop precedence |
| 02:17 |
|
sorear |
so in the common case, postdeclaring works |
| 02:17 |
|
TimToady |
well, all C functions are global, to the first approximation, and the call syntax is relatively unambiguous |
| 02:17 |
|
sorear |
Haskell allows postdeclaration of functions with /any/ precedence |
| 02:18 |
|
sorear |
which makes the parsing algorithm completely insane |
| 02:18 |
|
TimToady |
probably forces multiple passes |
| 02:18 |
|
* diakopter |
murmurs about the insanity defense of accusations of insanity |
| 02:18 |
|
PerlJam |
I understand it, but my brain isn't accepting it for some reason. I used to think that "my XXX" meant than XXX existed from that point forward to the end of the inner-most enclosing scope. Having functions not do that *and* be lexical is bothersome |
| 02:19 |
|
PerlJam |
s/than/that/ |
| 02:19 |
|
sorear |
for a long time I thought it was undecidable, but eventually I came up with an EXPTIME algorithm which tentatively assigns each possible combination of precedences before trying to parse |
| 02:19 |
|
TimToady |
meeting & |
| 02:19 |
|
sorear |
TimToady: In practice, yes |
| 02:19 |
|
diakopter |
std: foo(); { our sub foo { say "hi" } }; |
| 02:19 |
|
p6eval |
std 30496: OUTPUT«ok 00:01 108m» |
| 02:19 |
|
sorear |
TimToady: In theory, the language is not sufficiently self-synchronizing for a multi-pass parser to work |
| 02:20 |
|
sorear |
but the heuristics work ok on real code |
| 02:20 |
|
diakopter |
nobody's created types whose dependency knots can't be untangled? |
| 02:22 |
|
sorear |
diakopter: there are only a finite number of possible untanglings, and you can just check each one for consistency |
| 02:22 |
|
diakopter |
ok. |
| 02:38 |
|
|
bradb joined #perl6 |
| 02:55 |
|
dalek |
rakudo: e16cf45 | duff++ | tools/contributors.pl: |
| 02:55 |
|
dalek |
rakudo: [tools] fix typo and output sorted keys |
| 02:55 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]5d4c4a7592334f89b |
| 02:58 |
|
|
JimmyZ joined #perl6 |
| 03:10 |
|
|
ingy joined #perl6 |
| 03:20 |
|
|
_jaldhar joined #perl6 |
| 03:20 |
|
|
ingy joined #perl6 |
| 03:37 |
|
|
crythias joined #perl6 |
| 03:47 |
|
|
ingy joined #perl6 |
| 03:49 |
|
|
molaf joined #perl6 |
| 03:52 |
|
|
jaldhar_ joined #perl6 |
| 04:04 |
|
dalek |
csmeta: r221 | diakopter++ | trunk/Sprixel/ (5 files): |
| 04:04 |
|
dalek |
csmeta: [perlesque] lots o' fixes :) |
| 04:04 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=221 |
| 04:14 |
|
|
bradb joined #perl6 |
| 04:26 |
|
|
mikehh_ joined #perl6 |
| 04:38 |
|
dalek |
csmeta: r222 | diakopter++ | trunk/Sprixel/ (4 files): |
| 04:38 |
|
dalek |
csmeta: [perlesque] more fixes. stopped using the trampoline for now. |
| 04:38 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=222 |
| 04:40 |
|
|
snarkyboojum joined #perl6 |
| 04:40 |
|
|
ingy joined #perl6 |
| 04:40 |
|
diakopter |
phenny: tell pmurias I can re-enable the trampoline when a possibly-recursive invocation is detected, but the addl cost will be another slot for the return value per callsite in each recursive frame. |
| 04:41 |
|
phenny |
diakopter: I'll pass that on when pmurias is around. |
| 04:41 |
|
diakopter |
that, and I didn't want to have to implement that additional callsite-slot generation tonight :D |
| 04:41 |
|
diakopter |
phenny: tell pmurias that, and I didn't want to have to implement that additional callsite-slot generation tonight :D |
| 04:41 |
|
phenny |
diakopter: I'll pass that on when pmurias is around. I'll have to use a pastebin, though, so your message may get lost. |
| 04:42 |
|
diakopter |
phenny: bleh |
| 04:43 |
|
sorear |
What |
| 04:43 |
|
sorear |
phenny: help |
| 04:43 |
|
phenny |
sorear: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see http://inamidst.com/phenny/ for more general details. My owner is sbp. |
| 04:44 |
|
|
alester joined #perl6 |
| 04:45 |
|
sorear |
ah |
| 04:46 |
|
sorear |
phenny keeps all messages, but pastes any after 4 |
| 04:46 |
|
sorear |
using paste.lisp.org and a hardcoded captcha |
| 04:46 |
|
* sorear |
plugs App::Nopaste |
| 04:53 |
|
|
ash__ joined #perl6 |
| 04:56 |
|
|
jaldhar_ joined #perl6 |
| 05:01 |
|
|
_jaldhar_ joined #perl6 |
| 05:03 |
|
|
ReiniUrban joined #perl6 |
| 05:04 |
|
diakopter |
sorear: "What"? |
| 05:05 |
|
sorear |
diakopter: phenny's comment about a pastebin |
| 05:08 |
|
diakopter |
oh |
| 05:11 |
|
diakopter |
actually... |
| 05:21 |
|
|
meppl joined #perl6 |
| 05:29 |
|
|
[particle]1 joined #perl6 |
| 05:37 |
|
dalek |
csmeta: r223 | diakopter++ | trunk/Sprixel/ (3 files): |
| 05:37 |
|
dalek |
csmeta: more parsing fixes. |
| 05:37 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=223 |
| 05:38 |
|
|
redicaps joined #perl6 |
| 05:41 |
|
diakopter |
sorear: around? |
| 05:41 |
|
|
agentzh joined #perl6 |
| 05:42 |
|
diakopter |
I added a "frame" keyword that snags a ref to the current frame :) |
| 05:44 |
|
sorear |
cute. |
| 05:45 |
|
* sorear |
remembers implementing closures in Pascal using frame pointers and horrible function reference casting |
| 05:47 |
|
* snarkyboojum |
just discovered cd ~- in bash |
| 05:50 |
|
moritz_ |
good morning |
| 05:50 |
|
snarkyboojum |
oh it's just cd - |
| 05:50 |
|
diakopter |
zugh |
| 05:50 |
|
snarkyboojum |
:| |
| 05:50 |
|
snarkyboojum |
mortiz_ o/ |
| 05:50 |
|
snarkyboojum |
moritz_ o/ |
| 05:50 |
|
snarkyboojum |
:) |
| 05:50 |
|
moritz_ |
diakopter: like &?BLOCK? |
| 05:50 |
|
moritz_ |
\o |
| 05:51 |
|
diakopter |
maybe |
| 05:51 |
|
diakopter |
what does &?BLOCK? mean |
| 05:51 |
|
|
bradb joined #perl6 |
| 05:52 |
|
moritz_ |
&?BLOCK is the reference to the current block |
| 05:53 |
|
diakopter |
what does "block" mean.. (what can you do with it?) |
| 05:53 |
|
|
kaare joined #perl6 |
| 05:53 |
|
moritz_ |
block = { ... } |
| 05:54 |
|
moritz_ |
you can store it, invoke it, introspect it |
| 05:55 |
|
sorear |
kinda like RECURSE in FORTH? |
| 05:55 |
|
diakopter |
the keyword I added is "the instance of the current block that represents *this*execution* of the current block, including all locals" |
| 05:55 |
|
sorear |
diakopter: in parrotland we call those CallContexts |
| 05:56 |
|
moritz_ |
and in Perl 6 callframe |
| 05:56 |
|
moritz_ |
(though it's a bit more general) |
| 05:56 |
|
diakopter |
ok |
| 05:56 |
|
diakopter |
what can you do with a Perl 6 callframe? |
| 05:58 |
|
|
viklund joined #perl6 |
| 05:58 |
|
moritz_ |
search outwards, obtain file and line number etc |
| 05:58 |
|
moritz_ |
see S06/The callframe and caller functions/ |
| 06:01 |
|
* diakopter |
is reminded of "what do you get when you guzzle down sweets?" |
| 06:01 |
|
viklund |
"...Eating as much as an elephant eats" |
| 06:03 |
|
snarkyboojum |
would be cool to see Perl 6 on this list http://emerginglangs.com/speakers/ :) |
| 06:03 |
|
snarkyboojum |
and/or Parrot :) |
| 06:04 |
|
diakopter |
parrot ain't a language |
| 06:04 |
|
snarkyboojum |
true, but as an emerging VM :P |
| 06:05 |
|
snarkyboojum |
they're keen to see VM people there too apparently |
| 06:08 |
|
diakopter |
Yeah, I guess since PyPy & Cola are on there. |
| 06:08 |
|
sorear |
Do we *want* to be associated with that crowd? |
| 06:09 |
|
diakopter |
TimToady said that a whole conference-long track dedicated to Perl is enough... and that Perl isn't an emerging language |
| 06:09 |
|
snarkyboojum |
it's not? |
| 06:09 |
|
snarkyboojum |
ok then |
| 06:10 |
|
snarkyboojum |
what crowd is that sorear? |
| 06:11 |
|
diakopter |
the in-your-face lets-debate-whose-favorite-language-is-better crowd? |
| 06:15 |
|
sorear |
yes |
| 06:15 |
|
snarkyboojum |
I didn't think that's what this was about - perhaps I'm just naive :) |
| 06:15 |
|
avar |
the speakers don't sound like the sort that'll be "lets-debate-whose-favorite-language-is-better" |
| 06:16 |
|
avar |
e.g. Rich Hickey and Rob Pike |
| 06:16 |
|
diakopter |
not the speakers; the attendees :P |
| 06:17 |
|
snarkyboojum |
diakopter: programmers will do that regardless won't they? :) |
| 06:17 |
|
avar |
I think you're being too pessamistic |
| 06:17 |
|
avar |
Anyway, would be nice to have Perl 6 there too |
| 06:17 |
|
|
uniejo joined #perl6 |
| 06:22 |
|
dalek |
book: 971d45f | moritz++ | src/subs-n-sigs.pod: |
| 06:22 |
|
dalek |
book: [subs] make that parameter named |
| 06:22 |
|
dalek |
book: review: http://github.com/perl6/book/c[…]a2ade1ff30a91bd80 |
| 06:24 |
|
|
szabgab joined #perl6 |
| 06:32 |
|
|
iblechbot joined #perl6 |
| 06:33 |
|
|
kst joined #perl6 |
| 06:57 |
|
dalek |
yapsi: 133495c | snarkyboojum++ | t/runtime.t: |
| 06:57 |
|
dalek |
yapsi: Test to ensure blocks at the same level as variable definitons don't |
| 06:57 |
|
dalek |
yapsi: trounce variable values. |
| 06:57 |
|
dalek |
yapsi: review: http://github.com/masak/yapsi/[…]810e00b39d29c16f2 |
| 07:31 |
|
|
eternaleye joined #perl6 |
| 07:33 |
|
sorear |
It might be an interesting project to look through MooseX::* on CPAN and see how many apply to Perl6 |
| 07:38 |
|
JimmyZ |
Heh |
| 07:41 |
|
|
snarkyboojum joined #perl6 |
| 07:44 |
|
sorear |
moose has actually diverged quite a bit from perl6 |
| 07:45 |
|
sorear |
we might need to start stealing stuff from them - they've got some cool bits like variable attribute representations |
| 07:46 |
|
viklund |
how much of the divergence is bacause of adjustments to how perl5 works and how much is divergence from discovering "best practices", would be interesting to know... |
| 07:47 |
|
viklund |
what is variable attribute representations? |
| 07:47 |
|
moritz_ |
sorear: re named arguments with weird names: you can always do foo(|%h) |
| 07:48 |
|
moritz_ |
sorear: where %h can has arbitrary keys |
| 07:48 |
|
* moritz_ |
backlogs |
| 07:55 |
|
moritz_ |
Herve++ posted an interesting comment on my blog |
| 07:55 |
|
moritz_ |
he suggested to change the triangle form of reduce from [\+] to [@+] |
| 07:56 |
|
moritz_ |
with the rationale that @ indicates a list-ish return type |
| 07:56 |
|
moritz_ |
I wonder if we could even change to that @[+] to disambiguate infix operators starting with @ |
| 07:57 |
|
moritz_ |
TimToady: what do you think about that? (when you backlog :-) |
| 08:01 |
|
sorear |
viklund: in perl6, attributes are just variables. in Moose, attributes have a meta object with overridable accessor code |
| 08:01 |
|
sorear |
so you can have attributes that do fancy things when written to, etc |
| 08:02 |
|
moritz_ |
you can have that too in Perl 6 |
| 08:02 |
|
sorear |
moritz_: You could hear that behind the noise of "OMGZ METAOPS ARE WRITE ONLY"? |
| 08:02 |
|
viklund |
ahh, yes I knew that, just hadn't heard the phrase before... |
| 08:02 |
|
moritz_ |
if you use a modified storage backend |
| 08:02 |
|
viklund |
sorear: thx |
| 08:02 |
|
moritz_ |
sorear: I try hard to focus on the constructive part of the critic |
| 08:02 |
|
sorear |
I think the divergence is because the Moose cabal has given up on Perl 6 and decided to drop all connection with the Synopses |
| 08:02 |
|
|
bbkr_ joined #perl6 |
| 08:02 |
|
sorear |
but then I'm just a cynic |
| 08:03 |
|
moritz_ |
sorear: for sure the Moose folks chose whatever fits best for Perl 5 |
| 08:04 |
|
sorear |
moritz_: can you give me a short code sample for that? |
| 08:04 |
|
moritz_ |
sorear: and introducing $!foo variables isn't easy in Perl 5 at all :-) |
| 08:04 |
|
moritz_ |
sorear: no |
| 08:05 |
|
moritz_ |
it would have to be some sort of object being passed as the REPR to YourClass.bless |
| 08:05 |
|
moritz_ |
which has FETCH and STORE methods |
| 08:05 |
|
sorear |
$!foo is hard-wired to access the object representation |
| 08:05 |
|
moritz_ |
that do the fancy stuff |
| 08:05 |
|
moritz_ |
yes, but the object representation isn't hard wired |
| 08:05 |
|
sorear |
with pervasive accessors, you get an extra layer of indirection |
| 08:05 |
|
sorear |
which makes this absolutely trivial |
| 08:05 |
|
sorear |
has 'foo' => ( trigger => $SUB ) |
| 08:05 |
|
sorear |
just sets an attribute on the attribute |
| 08:06 |
|
sorear |
which changes code generation |
| 08:06 |
|
sorear |
I'm not following the Perl 6 idea of "our approach must be better because it uses $! variables" |
| 08:06 |
|
moritz_ |
well, you can still use lvalue accessors if that's what you want |
| 08:07 |
|
moritz_ |
and don't use the $!foo variables at all |
| 08:07 |
|
moritz_ |
just like you can also use $self->{foo} in Moose, if you want (iirc) |
| 08:09 |
|
sorear |
how does an lvalue accessor do anything interesting? |
| 08:09 |
|
sorear |
the only way to make lvalues 'interesting' is to tie them |
| 08:09 |
|
sorear |
does perl 6 discard the taboo against ties? |
| 08:09 |
|
moritz_ |
I'm not sure; it's something I forget everytime I read it up because nobody implements it yet |
| 08:10 |
|
moritz_ |
should be in S06 somewhere |
| 08:10 |
|
sorear |
Why isn't it trivial? |
| 08:11 |
|
moritz_ |
ask @Larry :-) |
| 08:11 |
|
moritz_ |
I have no idea |
| 08:12 |
|
moritz_ |
I can't remember how lvalue subroutines work in perl 5 either |
| 08:13 |
|
JimmyZ |
rakudo: say [\+] 1..* |
| 08:13 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:13 |
|
JimmyZ |
rakudo: say [\+] 1..5 |
| 08:13 |
|
p6eval |
rakudo e16cf4: OUTPUT«1361015» |
| 08:14 |
|
JimmyZ |
rakudo: say [\,] 1..5 |
| 08:14 |
|
p6eval |
rakudo e16cf4: OUTPUT«11 21 2 31 2 3 41 2 3 4 5» |
| 08:14 |
|
JimmyZ |
rakudo: say [\, ] 1..5 |
| 08:14 |
|
p6eval |
rakudo e16cf4: OUTPUT«You can't backslash that at line 11, near ", ] 1..5"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 08:15 |
|
JimmyZ |
rakudo: say ([\,] 1..5).perl |
| 08:15 |
|
p6eval |
rakudo e16cf4: OUTPUT«(1, (1, 2), ((1, 2), 3), (((1, 2), 3), 4), ((((1, 2), 3), 4), 5))» |
| 08:15 |
|
JimmyZ |
rakudo: say [@,] 1..5 |
| 08:15 |
|
p6eval |
rakudo e16cf4: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» |
| 08:15 |
|
JimmyZ |
rakudo: say @[,] 1..5 |
| 08:15 |
|
p6eval |
rakudo e16cf4: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» |
| 08:15 |
|
moritz_ |
std: @[+] 1, 2, 3 |
| 08:15 |
|
p6eval |
std 30497: OUTPUT«===[0mSORRY!===[0mNon-declarative sigil is missing its name at /tmp/GLM74EhuSg line 1:------> <BOL>⏏@[+] 1, 2, 3Bogus statement at /tmp/GLM74EhuSg line 1:------> @⏏[+] 1, 2, 3 expecting twigilParse failedFAILED 00:01 |
| 08:15 |
|
p6eval |
..109m» |
| 08:16 |
|
moritz_ |
hm |
| 08:16 |
|
moritz_ |
might be sufficienlty distinct from existing syntax |
| 08:18 |
|
JimmyZ |
-1 |
| 08:18 |
|
moritz_ |
JimmyZ: why? |
| 08:18 |
|
JimmyZ |
[] means array, I don't think need @ again. |
| 08:19 |
|
moritz_ |
but [+] doesn't return an Array either |
| 08:19 |
|
moritz_ |
here the [...] means more "operate on a list", not "return a list" |
| 08:20 |
|
JimmyZ |
it mean [] deals with array, not return array |
| 08:21 |
|
JimmyZ |
that is , it's args should be array. |
| 08:22 |
|
JimmyZ |
std: {+} 'f' => 1, 'd' => 2; |
| 08:22 |
|
p6eval |
std 30497: OUTPUT«===[0mSORRY!===[0mPrefix requires an argument at /tmp/484Obkwpot line 1:------> {+⏏} 'f' => 1, 'd' => 2;Parse failedFAILED 00:01 108m» |
| 08:23 |
|
JimmyZ |
rakudo: [+] @('3' => 1, '4' => 2); |
| 08:23 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Pair'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 08:23 |
|
JimmyZ |
std: [+] @('3' => 1, '4' => 2); |
| 08:23 |
|
p6eval |
std 30497: OUTPUT«ok 00:01 109m» |
| 08:25 |
|
|
kst joined #perl6 |
| 08:28 |
|
|
ive joined #perl6 |
| 08:29 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} }; say [+] @('3' => 1, '4' => 2); |
| 08:29 |
|
p6eval |
rakudo e16cf4: OUTPUT«3» |
| 08:29 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} }; say [\+] @('3' => 1, '4' => 5); |
| 08:29 |
|
p6eval |
rakudo e16cf4: OUTPUT«3 16» |
| 08:29 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:29 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:30 |
|
moritz_ |
JimmyZ: try method Numeric, not Num |
| 08:30 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Numeric() { ~$.value;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:30 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:30 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Numeric() { ~$.value;} }; say [+] @('3' => 1, '4' => 2); |
| 08:30 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Pair'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 08:30 |
|
moritz_ |
hum. |
| 08:31 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:31 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:31 |
|
moritz_ |
colomon: it seems that infix:<+> still uses .Num instead of .Numeric |
| 08:31 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} }; say ([\+] @('3' => 1, '4' => 5)).perl; |
| 08:31 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, 7)» |
| 08:31 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} }; say ([\+] @('3' => 1, '4' => 5)).perl; |
| 08:31 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, 6)» |
| 08:31 |
|
|
vorner left #perl6 |
| 08:31 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:31 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:32 |
|
JimmyZ |
what's the different between self and $.value? |
| 08:32 |
|
moritz_ |
self is the whole pair |
| 08:33 |
|
moritz_ |
but in the example above, you're not doing anything that would caause a call to Num |
| 08:34 |
|
JimmyZ |
using [\,] are the same result, but [\+] not the same result |
| 08:35 |
|
moritz_ |
sure; [\,] has no reason to treat its arguments as numbers |
| 08:35 |
|
JimmyZ |
Oh, so it is. |
| 08:36 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~$.value;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:36 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:36 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:36 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:36 |
|
moritz_ |
it doesn't really call any method on object |
| 08:38 |
|
JimmyZ |
so I don't like [@,] @('3' => 1, '4' => 5) or @[,] @() |
| 08:38 |
|
JimmyZ |
that's duplicate semanteme |
| 08:39 |
|
moritz_ |
there's no reason for the second @(...) at all |
| 08:39 |
|
JimmyZ |
I mean @[] or [@] is duplicate semanteme ;) |
| 08:40 |
|
JimmyZ |
just in my opinion |
| 08:40 |
|
moritz_ |
and I disagree, becaue the @ is about the return value and [] is about the arguments |
| 08:41 |
|
moritz_ |
this is just like saying "I don't like our Num sub sqrt(Num $x) { ... } because Num appears twice" |
| 08:41 |
|
moritz_ |
but they serve different purposes |
| 08:41 |
|
JimmyZ |
I don't think operaters need return type . |
| 08:41 |
|
moritz_ |
well, I guess liking and disliking can't always be rationalized |
| 08:42 |
|
moritz_ |
JimmyZ: they don't, in general, but in the case of triangle reduction we need *something* to distinguish it from the non-triangle form |
| 08:43 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say [\,] '3' => 1, '4' => 5; |
| 08:43 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:43 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] '3' => 1, '4' => 5); |
| 08:43 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:43 |
|
moritz_ |
oh |
| 08:43 |
|
moritz_ |
I think that's a bug |
| 08:43 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say [\,] ('3' => 1, '4' => 5); |
| 08:43 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:43 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say [\,] @('3' => 1, '4' => 5); |
| 08:43 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:44 |
|
moritz_ |
oh |
| 08:44 |
|
moritz_ |
I know why |
| 08:44 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} }; say [\,] '3' => 1, '4' => 5; |
| 08:44 |
|
p6eval |
rakudo e16cf4: OUTPUT«3 13 1 4 5» |
| 08:44 |
|
moritz_ |
you're causing an infinite recursion |
| 08:44 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} }; say [\+] '3' => 1, '4' => 5; |
| 08:44 |
|
p6eval |
rakudo e16cf4: OUTPUT«3 17» |
| 08:44 |
|
moritz_ |
because prefix:<~> calls .Str under teh hood |
| 08:45 |
|
JimmyZ |
>rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:45 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl; |
| 08:45 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:45 |
|
|
dual joined #perl6 |
| 08:46 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say [\,] '3' => 1, '4' => 5; |
| 08:46 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 08:46 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] '3' => 1, '4' => 5).perl; |
| 08:46 |
|
p6eval |
rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))» |
| 08:47 |
|
JimmyZ |
it's strange |
| 08:47 |
|
moritz_ |
I've explained it above |
| 08:47 |
|
JimmyZ |
moritz_: yes, thanks |
| 08:48 |
|
JimmyZ |
rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] '3' => 1, '4' => 5).Str; # wrong thing |
| 08:48 |
|
p6eval |
rakudo e16cf4: OUTPUT«maximum recursion depth exceededcurrent instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)» |
| 08:53 |
|
|
dakkar joined #perl6 |
| 08:59 |
|
|
mikehh joined #perl6 |
| 09:05 |
|
sorear |
Who gets the blame for PseudoPod and POD6 being nearly identical? |
| 09:06 |
|
moritz_ |
Damian and p6l |
| 09:07 |
|
|
slavik1 joined #perl6 |
| 09:07 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.perl; |
| 09:07 |
|
p6eval |
rakudo e16cf4: OUTPUT«[MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new()]» |
| 09:08 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.$val; |
| 09:08 |
|
p6eval |
rakudo e16cf4: OUTPUT«Symbol '$val' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» |
| 09:08 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.val; |
| 09:08 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 09:08 |
|
sorear |
rakudo: role A { multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler; |
| 09:08 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'handler' collides and a resolution must be provided by the classcurrent instr.: 'perl6;Perl6;Metamodel;RoleToClassApplier;_block132' pc 9253 (src/gen/RoleToClassApplier.pir:306)» |
| 09:09 |
|
sorear |
Opinion: this should be legal |
| 09:09 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; does p { say 1; } }; my $list = MyClass.new; $list.p; |
| 09:09 |
|
p6eval |
rakudo e16cf4: OUTPUT«Could not find sub &pcurrent instr.: 'perl6;MyClass;_block46' pc 370 (EVAL_1:150)» |
| 09:10 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; method p { say 1; } }; my $list = MyClass.new; $list.p; |
| 09:10 |
|
p6eval |
rakudo e16cf4: OUTPUT«1» |
| 09:10 |
|
slavik1 |
how do I access a class variable ? |
| 09:10 |
|
slavik1 |
$class.$.var ? |
| 09:10 |
|
sorear |
classes don't have variables |
| 09:10 |
|
slavik1 |
attributes? |
| 09:11 |
|
sorear |
Still not sure what you mean |
| 09:11 |
|
sorear |
Unless |
| 09:11 |
|
sorear |
rakudo: class MyClass { has $.val is rw }; my $list = MyClass.new; $list.val = 5; say $list.val; |
| 09:11 |
|
slavik1 |
class a { has $.blah } ... how do I access that $.blah? |
| 09:11 |
|
p6eval |
rakudo e16cf4: OUTPUT«5» |
| 09:12 |
|
jnthn |
slavik1: The generated accessor method is just called blah |
| 09:12 |
|
slavik1 |
wtf ... |
| 09:12 |
|
sorear |
$.val is sugar for self.val |
| 09:12 |
|
slavik1 |
ok, I think I see it |
| 09:12 |
|
moritz_ |
rakudo: class A { has $.blah; method buh { say $.blah } }; A.new(blah => "fasel").buh |
| 09:12 |
|
p6eval |
rakudo e16cf4: OUTPUT«fasel» |
| 09:13 |
|
sorear |
does anyone here have a position on that roles thing? |
| 09:13 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.per;; |
| 09:13 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'per' not found for invocant of class 'Array'current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 09:13 |
|
* sorear |
is trying to implement an event framework in perl 6 |
| 09:13 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.perl; |
| 09:13 |
|
p6eval |
rakudo e16cf4: OUTPUT«[MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new()]» |
| 09:14 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.val; |
| 09:14 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 09:14 |
|
slavik1 |
rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; @list.val; |
| 09:14 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 09:14 |
|
slavik1 |
wait ... |
| 09:14 |
|
slavik1 |
how do I get the same method to get invoked for a list of classes? |
| 09:15 |
|
slavik1 |
this was in spec I believe |
| 09:15 |
|
slavik1 |
sorear: that looks like the diamond of death |
| 09:15 |
|
slavik1 |
sorear: which one should be invoked in that sutation? |
| 09:17 |
|
sorear |
slavik1: Both of them. .* means "ignore the usual type dispatch rules and just invoke all applicable methods in some order" |
| 09:17 |
|
JimmyZ |
rakudo: augment class Pair { method Str() { ~self;} }; |
| 09:17 |
|
p6eval |
rakudo e16cf4: OUTPUT«Can't augment class Pair without 'use MONKEY_TYPING'current instr.: 'perl6;Perl6;Grammar;add_name' pc 42212 (src/gen/perl6-grammar.pir:374)» |
| 09:17 |
|
sorear |
The kicker is that it *is* the diamond of death in the absense of .* |
| 09:17 |
|
JimmyZ |
rakudo: augment class Paiir { method Str() { ~self;} }; |
| 09:17 |
|
p6eval |
rakudo e16cf4: OUTPUT«Can't augment class that doesn't existcurrent instr.: 'perl6;Perl6;Grammar;add_name' pc 42212 (src/gen/perl6-grammar.pir:374)» |
| 09:18 |
|
jnthn |
sorear: On the role/multi thing, maybe it should work. I suspect if you write a proto in the class it will work. |
| 09:18 |
|
slavik1 |
sorear: oh, nice |
| 09:18 |
|
slavik1 |
perl6++ |
| 09:19 |
|
sorear |
rakudo: role A { proto method handler(); multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler; |
| 09:19 |
|
slavik1 |
can a class know it's own runtime type/name? |
| 09:19 |
|
p6eval |
rakudo e16cf4: OUTPUT«Malformed method at line 11, near "handler();"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 09:19 |
|
sorear |
rakudo: role A { proto method handler() { ... }; multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler; |
| 09:19 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'handler' collides and a resolution must be provided by the classcurrent instr.: 'perl6;Perl6;Metamodel;RoleToClassApplier;_block132' pc 9253 (src/gen/RoleToClassApplier.pir:306)» |
| 09:19 |
|
slavik1 |
so that it would be possible to do what sorear is doing but also output from what class the method is inherited? |
| 09:19 |
|
sorear |
jnthn: Well, I don't want the class to know the names of all legal event names. |
| 09:22 |
|
|
pmurias joined #perl6 |
| 09:22 |
|
pmurias |
hi |
| 09:22 |
|
phenny |
pmurias: 01:38Z <diakopter> tell pmurias I fixed ur buggo |
| 09:22 |
|
phenny |
pmurias: 01:38Z <diakopter> tell pmurias by rejiggering the grammar |
| 09:22 |
|
jnthn |
sorear: Yeah, good point. |
| 09:22 |
|
phenny |
pmurias: 01:38Z <diakopter> tell pmurias good luck :) |
| 09:22 |
|
phenny |
pmurias: 04:40Z <diakopter> tell pmurias I can re-enable the trampoline when a possibly-recursive invocation is detected, but the addl cost will be another slot for the return value per callsite in each recursive frame. |
| 09:22 |
|
phenny |
[Sorry, some messages were elided and lost...] |
| 09:23 |
|
pmurias |
why are messages elided? |
| 09:23 |
|
jnthn |
sorear: I think it's maybe a grey area in the spec, though I'd like it to work. |
| 09:23 |
|
sorear |
because phenny tried to paste the remainder to paste.lisp.org with an outdated captcha key |
| 09:23 |
|
sorear |
it should just be using App::Nopaste |
| 09:24 |
|
sorear |
jnthn: I don't like it all that much because if I misspell an event, nothing will warn me. |
| 09:24 |
|
sorear |
However, my options are rather limited by Rakudo's limited support for the MOP |
| 09:27 |
|
sorear |
I think for now I'll just give my methods names like _handler_FOO_uniquey() and rely on introspection for event dispatch |
| 09:27 |
|
sorear |
With an eye towards moving to a macro & trait based system in the future |
| 09:28 |
|
slavik1 |
if anyone cares, I had my phone HR phone screen with google ... if luck is on our side, there will be a Perl6 binding for MapReduce :) |
| 09:28 |
|
sorear |
Is that better than » ? |
| 09:30 |
|
pmurias |
>> is just map |
| 09:30 |
|
pmurias |
and MapReduce is intended for distributed things while >> is for concurrency on a single box |
| 09:31 |
|
slavik1 |
pmurias: err? |
| 09:32 |
|
pmurias |
sorear: you asked if MapReduce was better than »? |
| 09:34 |
|
sorear |
yes |
| 09:34 |
|
sorear |
[] too |
| 09:35 |
|
|
masak joined #perl6 |
| 09:35 |
|
masak |
oh hai, #Perl6 |
| 09:35 |
|
phenny |
masak: 01:45Z <diakopter> tell masak k, yapsi notifications should work now. it would help if I didn't try to load "/yapsilog.com" from botnix.conf and tried "/yapsi.pm" instead. :/ |
| 09:35 |
|
masak |
wtf ;) |
| 09:36 |
|
moritz_ |
good morning masak |
| 09:36 |
|
moritz_ |
I've already seen a notification for a yapsi commit |
| 09:37 |
|
masak |
ah. snarkyboojum++ |
| 09:38 |
|
jnthn |
oh hai masak |
| 09:42 |
|
pmurias |
std: CALLER |
| 09:42 |
|
p6eval |
std 30497: OUTPUT«===[0mSORRY!===[0mUndeclared name: 'CALLER' used at line 1Check failedFAILED 00:01 109m» |
| 09:42 |
|
pmurias |
std: CALLER::<$foo> |
| 09:42 |
|
p6eval |
std 30497: OUTPUT«ok 00:01 107m» |
| 09:42 |
|
pmurias |
std: CALLER:: |
| 09:42 |
|
p6eval |
std 30497: OUTPUT«ok 00:01 107m» |
| 09:43 |
|
|
riffraff joined #perl6 |
| 09:44 |
|
|
ive joined #perl6 |
| 09:46 |
|
sorear |
#70469 #73034 are duplicates |
| 09:46 |
|
sorear |
also, why do we do this? |
| 09:46 |
|
sorear |
it seems like a premature optimization |
| 09:46 |
|
sorear |
it's been bugrepped three times. |
| 09:47 |
|
sorear |
(this = omitting the pir::newclosure before pir::capturelex in nested sub definitions) |
| 09:47 |
|
|
ive joined #perl6 |
| 09:48 |
|
moritz_ |
sorear: last time somebody (=pmichaud) tried to fix it, spectest broke horribly. I have no idea what his fix was, though |
| 09:49 |
|
moritz_ |
sorear: if you have a patch that fixed it and doesn't break spectest, please share :-) |
| 09:56 |
|
|
gurjeet_ joined #perl6 |
| 09:57 |
|
* masak |
merges #73034 into #70469 |
| 09:57 |
|
sorear |
spectest is still /checking out/ |
| 09:58 |
|
sorear |
rakudo: my @x; my $n; for @x.grep(rx/^ _handler_ $n/) -> $handler { $handler() } |
| 09:58 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 09:58 |
|
sorear |
rakudo: my @x; my $n; for @x.grep(rx/^ _handler_ $n/) -> $handler { $handler(2, 3) } |
| 09:58 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 09:58 |
|
sorear |
oh |
| 09:58 |
|
moritz_ |
@x being empty, and all that |
| 09:59 |
|
sorear |
moritz_: rakudo was locally generating an error at compile time |
| 09:59 |
|
sorear |
however, %_ was bound in lexical scope |
| 09:59 |
|
|
_jaldhar_ joined #perl6 |
| 09:59 |
|
sorear |
and I just remembered that was a known bug |
| 10:00 |
|
|
stepnem joined #perl6 |
| 10:00 |
|
colomon |
moritz_: re [+] using Num ... yes, the grand Numeric conversion definitely isn't done yet. :) |
| 10:00 |
|
sorear |
Method 'perl' not found for non-object |
| 10:00 |
|
sorear |
current instr.: 'trait_mod:<does>' pc 291390 (src/Perl6/Compiler.pir:112) |
| 10:00 |
|
sorear |
yikes |
| 10:00 |
|
moritz_ |
colomon: ok |
| 10:00 |
|
moritz_ |
sorear: some error messages contain .perl output... |
| 10:00 |
|
|
simcop2387 joined #perl6 |
| 10:01 |
|
moritz_ |
sorear: maybe it's throwing an error while trying to build an error message |
| 10:01 |
|
jnthn |
Sounds like it. |
| 10:02 |
|
colomon |
moritz_: BTW, I did fix the split bug yesterday, so the subst call from SVG.pm should work now. |
| 10:02 |
|
pmurias |
what's the state of APL on parrot? (i'm currently reading "A Programming Language") |
| 10:02 |
|
jnthn |
(I know there's a fallback multi for that trait mod that gives an error.) |
| 10:03 |
|
sorear |
s/module/role/ in the role's definition fixed it. |
| 10:03 |
|
moritz_ |
colomon: thanks, I'll try once rakudo compilation is finished |
| 10:04 |
|
pugssvn |
r30498 | pmurias++ | [mildew] fix the building of CORE (one test fails) |
| 10:08 |
|
moritz_ |
colomon++ |
| 10:08 |
|
moritz_ |
and indeed, SVG.pm seems to work fine with master now |
| 10:09 |
|
masak |
\o/ |
| 10:09 |
|
moritz_ |
now on to SVG::Plot |
| 10:09 |
|
jnthn |
\o/ |
| 10:09 |
|
moritz_ |
Method 'Num' not found for invocant of class 'Block' |
| 10:10 |
|
jnthn |
Whatever. |
| 10:10 |
|
moritz_ |
that sound suspiciously like Whatever-currying |
| 10:10 |
|
colomon |
indeed. |
| 10:10 |
|
moritz_ |
:style("fill:{ @.colors[$d % *] }"), |
| 10:11 |
|
moritz_ |
rakudo: <a b c>[-> $x { $x - 1 }] |
| 10:11 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'Int' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 10:12 |
|
moritz_ |
rakudo: say (24 % *).(5) |
| 10:12 |
|
p6eval |
rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 10:12 |
|
sorear |
rakudo: class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local); |
| 10:12 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 10:13 |
|
sorear |
rakudo: class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local); |
| 10:13 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 10:13 |
|
sorear |
is p6eval mangling lexicals? |
| 10:14 |
|
moritz_ |
it should not... why do you think it does? |
| 10:14 |
|
moritz_ |
rakudo: say log10(100) |
| 10:14 |
|
p6eval |
rakudo e16cf4: OUTPUT«2» |
| 10:15 |
|
sorear |
moritz_: rakudo 082caee local blows up on that code. |
| 10:15 |
|
moritz_ |
why do I get an error that &log10 wasn't found? |
| 10:15 |
|
sorear |
if you rename or remove $name, it works. |
| 10:16 |
|
moritz_ |
oh, I remember diakopter hacking something in for safe mode... don't know if that's still active |
| 10:16 |
|
sorear |
can someone with an unpatched rakudo, ideally 082caee, tell me if I'm insane/ |
| 10:17 |
|
sorear |
make spectest is running 3 simultaneous rakudo processes |
| 10:17 |
|
sorear |
how do I stop it? |
| 10:17 |
|
moritz_ |
Ctrl+C |
| 10:17 |
|
sorear |
I have 1 core are < 3*RakudoHeap RAM |
| 10:17 |
|
sorear |
*and |
| 10:18 |
|
moritz_ |
exprot TEST_JOBS=1 |
| 10:19 |
|
moritz_ |
sorear: my build of rakudo HEAD doesn't blow up on class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local); |
| 10:19 |
|
moritz_ |
if that's what you wanted to know |
| 10:19 |
|
moritz_ |
\o/ SVG::Plot now working on master |
| 10:20 |
|
colomon |
moritz_++ |
| 10:21 |
|
moritz_ |
just three changed lines |
| 10:23 |
|
colomon |
hey, you ++'d me for fixing split, and that was just changing one line and adding another. |
| 10:24 |
|
moritz_ |
I wasn't trying to dminish my fixes, just wanted to tell you that master was working pretty well :-) |
| 10:24 |
|
colomon |
:) |
| 10:24 |
|
avar |
does rakudo have an sqlite interface? |
| 10:25 |
|
moritz_ |
avar: masak wrote "Squerl" which uses sqlite... no idea how well it works |
| 10:25 |
|
moritz_ |
std: s[foo]; |
| 10:25 |
|
p6eval |
std 30497: OUTPUT«===[0mSORRY!===[0mMissing assignment operator at /tmp/SfWppLSxKr line 1:------> s[foo]⏏; expecting quantifierParse failedFAILED 00:01 111m» |
| 10:25 |
|
sorear |
just use DBD::SQLite |
| 10:26 |
|
avar |
sorear: maybe if you make your patches public :) |
| 10:26 |
|
sorear |
I did. |
| 10:26 |
|
avar |
oh, where is it? |
| 10:26 |
|
sorear |
Rakudo master. |
| 10:27 |
|
sorear |
A one-line bugfix which allows you to write 'DBI' instead of '::DBI' is still waiting on jnthn though |
| 10:27 |
|
moritz_ |
avar: and blizkost is in the blizkost repo :-) |
| 10:28 |
|
* moritz_ |
currently spectests a patche that implements rx{...} (as opposed to rx/.../) |
| 10:28 |
|
avar |
sorear: what are the relevant commits/tests? |
| 10:28 |
|
avar |
or example program :) |
| 10:28 |
|
sorear |
Blizkost can currently marshal hashes, strings, numbers, coderefs, and arrays(arguments only) |
| 10:29 |
|
jnthn |
rakudo: s[foo]; |
| 10:29 |
|
p6eval |
rakudo e16cf4: OUTPUT«Missing assignment operator at line 11, near ";"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 10:29 |
|
sorear |
avar: examples/ in github.com/jnthn/blizkost |
| 10:29 |
|
moritz_ |
jnthn: I've just seen the error message in rakudo, and wondered if we should add "after s[...]", but decided that we don't need to more awesome than STD.pm |
| 10:30 |
|
avar |
sorear: You you patched blizkost but didn't create some new project? |
| 10:30 |
|
avar |
ah, right, thought it was some new glue |
| 10:30 |
|
sorear |
avar: I more or less took over blizkost. It is my new project |
| 10:30 |
|
moritz_ |
and I think jnthn is glad somebody else takes care :-) |
| 10:31 |
|
avar |
cool:) |
| 10:31 |
|
avar |
I was going to test out rewriting Hailo in Perl 6, but I was always blocking on "oh that'll be a total PITA without modules" :) |
| 10:32 |
|
* jnthn |
is *very* glad somebody else is taking care of Blizkost. sorear++ |
| 10:33 |
|
sorear |
There's a very good chance I'll need to implement arrayref and undef returns before DBI works fully |
| 10:34 |
|
sorear |
however, you can do stuff like my &p5defined = eval ("sub { defined $_[0] }", :lang<perl5>); |
| 10:34 |
|
avar |
Right, or implement a glue module on the p5 side |
| 10:36 |
|
avar |
w 8 |
| 10:39 |
|
avar |
sorear: patch: http://github.com/avar/blizkos[…]d59412d031f049b25 :) |
| 10:42 |
|
|
am0c joined #perl6 |
| 10:45 |
|
masak |
Squerl should still work under alpha. probably not under master without some modifications. |
| 10:59 |
|
|
rv2733 joined #perl6 |
| 10:59 |
|
m6locks |
crap. i got only master |
| 11:09 |
|
|
Su-Shee joined #perl6 |
| 11:23 |
|
|
takadonet left #perl6 |
| 11:27 |
|
masak |
huh. Python has combinations() and permutations() built in: http://docs.python.org/library/itertools.html |
| 11:28 |
|
Su-Shee |
the doc say it's a module. |
| 11:28 |
|
Su-Shee |
hi all. |
| 11:28 |
|
avar |
Will Perl 6 have batteries ?:) |
| 11:28 |
|
avar |
sorear: It's part of the stdlib |
| 11:29 |
|
pugssvn |
r30499 | moritz++ | [t/spec] unfudge passing split :all tests, colomon++ |
| 11:30 |
|
masak |
Su-Shee: I think it's one of them 'core modules'. |
| 11:30 |
|
|
am0c joined #perl6 |
| 11:30 |
|
masak |
ah. what avar said, to the wrong tab-person. |
| 11:31 |
|
Su-Shee |
which means one can easily define whatover one wants to be a core module. :) |
| 11:31 |
|
Su-Shee |
ever |
| 11:31 |
|
|
kst joined #perl6 |
| 11:34 |
|
masak |
well, it seems that that kind of 'core' will be up to distributions of Perl 6, not the spec. |
| 11:36 |
|
Su-Shee |
masak: I like tiny cores. I like adding modules depending on the need. |
| 11:36 |
|
Su-Shee |
and why not make a "security related math libs" distribution or a "gui-all-you-ever-need" distribution.. :) |
| 11:36 |
|
moritz_ |
tiny core... then Perl 6 is not for you :-) |
| 11:36 |
|
masak |
Su-Shee: me too. but I also know I draw the line somewhere. |
| 11:37 |
|
Su-Shee |
I realized that already. ;) |
| 11:37 |
|
masak |
Su-Shee: for example, impoting 'stdio' for IO in C feels silly. |
| 11:37 |
|
Su-Shee |
masak: excellent example I would totally agree. |
| 11:38 |
|
moritz_ |
anyway, I'd welcome some attempts to make DateTime, Date and various container types non-core, but still with a somewhat built-in feeling |
| 11:38 |
|
Su-Shee |
moritz_: from a user's point of view I essentially don't want to "feel" the difference between "is core, is builtin, is cpan" |
| 11:40 |
|
masak |
moritz_: not sure what you mean. what more would it take than putting `use DateTime;` at the top of the program? |
| 11:41 |
|
colomon |
rakudo: say 1i * "3" |
| 11:41 |
|
p6eval |
rakudo e16cf4: OUTPUT«0 + 3i» |
| 11:41 |
|
colomon |
rakudo: say 1i + "3" |
| 11:41 |
|
p6eval |
rakudo e16cf4: OUTPUT«3 + 1i» |
| 11:42 |
|
moritz_ |
masak: integration with other modules or core things... |
| 11:42 |
|
masak |
moritz_: it's the latter thing that concerns me. |
| 11:42 |
|
moritz_ |
for example now that 'now' returns an Instant, I think time() could return a DateTime |
| 11:42 |
|
moritz_ |
(if we need time() at all) |
| 11:43 |
|
masak |
seems that we can't have both 'time' as a builtin and DateTime as non-core. |
| 11:44 |
|
moritz_ |
so... move DateTime and time() both out of core? |
| 11:46 |
|
masak |
well, I'm still a bit doubtful. |
| 11:46 |
|
masak |
wouldn't filetests need DateTime, for example? |
| 11:46 |
|
masak |
those are definitely core. |
| 11:46 |
|
moritz_ |
no, they need Instant only |
| 11:46 |
|
masak |
ok. |
| 11:47 |
|
moritz_ |
maybe I should compile a list of types that could be non-core |
| 11:47 |
|
masak |
I'd like for DateTime to end up as 'almost core', i.e. something that most distributions will want to pull in. |
| 11:47 |
|
moritz_ |
aye |
| 11:47 |
|
masak |
things like timezones and localizations may well be CPAN-style modules. |
| 11:48 |
|
masak |
i.e. not necessarily 'almost core'. |
| 11:50 |
|
|
snarkyboojum joined #perl6 |
| 11:51 |
|
moritz_ |
Set, KeyBag, KeySet, KeyHash # feel like they could be "almost core" |
| 11:54 |
|
|
plobsing joined #perl6 |
| 11:59 |
|
|
takadonet joined #perl6 |
| 11:59 |
|
takadonet |
morning all |
| 11:59 |
|
masak |
takadonet: \o |
| 11:59 |
|
masak |
moritz_: aye. |
| 12:00 |
|
* masak |
would still like to 'flesh out' the specification of those classes to contain a richer set of common operations |
| 12:07 |
|
|
envi^home joined #perl6 |
| 12:08 |
|
pugssvn |
r30500 | colomon++ | [t/spec] All those 0.0s and 2.5s were meant to be Nums -- and now they are again. |
| 12:34 |
|
|
ruoso joined #perl6 |
| 12:42 |
|
colomon |
jnthn: ping? |
| 12:44 |
|
|
SmokeMachine joined #perl6 |
| 12:44 |
|
|
tylerni7 joined #perl6 |
| 12:45 |
|
|
kst joined #perl6 |
| 12:49 |
|
moritz_ |
http://www.perlmonks.org/?node_id=837535 # rir++ for asking the right questions |
| 12:51 |
|
moritz_ |
if you have things to add to my answer, please do so now |
| 12:52 |
|
|
iblechbot joined #perl6 |
| 12:53 |
|
moritz_ |
while I was writing my reply, I realized that proto and cpan differ quite significantly |
| 12:53 |
|
moritz_ |
cpan is push-style: each version is uploaded to pause.cpan.org |
| 12:54 |
|
moritz_ |
while our current approach is pull-style: the meta data is kept central, but the source code isn't kept in one place |
| 12:54 |
|
masak |
*nod* |
| 12:54 |
|
moritz_ |
not sure which approach is preferable in the long run |
| 12:54 |
|
masak |
proto was never meant to be like CPAN. it was created to solve a piece of immediate pain. |
| 12:54 |
|
moritz_ |
I know, you keep repeating that :-) |
| 12:54 |
|
pmurias |
keeping the source code in one place seems very sensible |
| 12:55 |
|
masak |
moritz_: I keep repeating it because I'm constantly surprised about the new things that proto starts to mean to people. :) |
| 12:55 |
|
masak |
I consider that project to be my most successful failure so far. |
| 12:56 |
|
moritz_ |
masak: :-) linux started out as an exploration of i386 architecture |
| 12:56 |
|
moritz_ |
masak: pugs started as an exercise in compiler writing |
| 12:56 |
|
moritz_ |
etc. |
| 12:56 |
|
masak |
aye. start small. |
| 12:57 |
|
pugssvn |
r30501 | pmurias++ | [mildew] avoid duplication of the output method |
| 12:57 |
|
pugssvn |
r30502 | pmurias++ | [mildew] only the C backends load the setting through MildewSOLoader |
| 12:59 |
|
pugssvn |
r30503 | moritz++ | [helpnow] new idea: overview page for proto projects |
| 13:02 |
|
|
tylerni7 joined #perl6 |
| 13:02 |
|
[Coke] |
(most successful failure)++ |
| 13:03 |
|
|
ReiniUrban joined #perl6 |
| 13:04 |
|
masak |
it's still in the README. 'It's only purpose is to help you set up a running environment where you can play with Perl 6 modules with minimal hassle.' |
| 13:04 |
|
masak |
nowadays proto compiles and installs modules, and it can help people create new modules. |
| 13:05 |
|
masak |
I'm not saying that's bad. just not what I had in mind. :) |
| 13:11 |
|
colomon |
has anyone figured out how to output data from inside the core when &say cannot be found? |
| 13:11 |
|
masak |
moritz_: 'blizkost' is a noun; it means 'closeness' or 'proximity' rather than 'close'. just a teeny tiny nit. |
| 13:12 |
|
masak |
colomon: assign a global variable &s and use that. |
| 13:12 |
|
moritz_ |
masak: thanks, fixed |
| 13:16 |
|
pmurias |
diakopter: hi |
| 13:17 |
|
|
[particle] joined #perl6 |
| 13:19 |
|
|
sahadev joined #perl6 |
| 13:20 |
|
colomon |
masak++ |
| 13:20 |
|
masak |
colomon: :) discovered it just the other day |
| 13:20 |
|
colomon |
of course, now that I know more, I've gone from confused to utterly mystified |
| 13:21 |
|
masak |
is it possible to isolate and golf that mystification? |
| 13:21 |
|
[Coke] |
http://merlyn.posterous.com/pr[…]-perl-6-cover-art |
| 13:22 |
|
colomon |
I dunno. |
| 13:22 |
|
|
meppl joined #perl6 |
| 13:24 |
|
colomon |
here's the deal. |
| 13:25 |
|
colomon |
moritz_++ pointed out that arithmetic was still using .Num instead of .Numeric internally. |
| 13:25 |
|
colomon |
as a result of thinking about that a bit, I started adding tests like "1" + 3i to complex.t |
| 13:26 |
|
colomon |
in theory, the way they should work properly now is: |
| 13:26 |
|
colomon |
"1" + 3i dispatches to infix:<+>(Any, Any) |
| 13:26 |
|
moritz_ |
rakudo: say '1' + 3i |
| 13:26 |
|
p6eval |
rakudo e16cf4: OUTPUT«1 + 3i» |
| 13:26 |
|
colomon |
that calls +"1" + +3i |
| 13:27 |
|
colomon |
moritz_: that works now because there is an infix:<+>(Any, Complex) |
| 13:27 |
|
colomon |
I'm trying to get rid of that. |
| 13:27 |
|
colomon |
and (concluding) +"1" + +3i dispatches to infix:<+>(Real, Complex) |
| 13:28 |
|
moritz_ |
but prefix:<+> should already call .Numeric, no? |
| 13:29 |
|
colomon |
moritz_: yes, it does. but the existing versions of infix:<+>(Any, Any) calls .Num on each argument instead. |
| 13:29 |
|
moritz_ |
ok |
| 13:29 |
|
moritz_ |
so that needs fixing too |
| 13:29 |
|
colomon |
the change to use +$a + +$b is only local to my system at the moment. |
| 13:29 |
|
colomon |
thing is, that works great |
| 13:29 |
|
colomon |
afk for sec |
| 13:32 |
|
colomon |
but the exact same approach fails miserably for infix:<**> |
| 13:33 |
|
moritz_ |
rakudo: infix:<**>(Mu, Mu) |
| 13:33 |
|
p6eval |
rakudo e16cf4: OUTPUT«No applicable candidates found to dispatch to for 'infix:<**>'. Available candidates are::(Int $a, Int $b):(Complex $a, Complex $b):():(Num $a, Num $b):(Real $a, Real $b):(Complex $a, Real $b):(Real $a, Complex $b):(Any $a, Any $b)current instr.: '_block14' pc 29 |
| 13:33 |
|
p6eval |
..(EVAL_1:… |
| 13:33 |
|
colomon |
infix:<**>(Any, Any) calls itself recursively 1000 times |
| 13:33 |
|
moritz_ |
so what does $a.Numeric and $b.Numeric return? |
| 13:33 |
|
colomon |
and when I use masak++'s trick to dump the Parrot version of the types involved, it is Perl6Str and Complex all the way down. |
| 13:34 |
|
colomon |
so +Perl6Str seems to return a Perl6Str. |
| 13:34 |
|
moritz_ |
that's wrong. |
| 13:34 |
|
colomon |
well yes. |
| 13:35 |
|
colomon |
what I don't get is why +Perl6Str doesn't work for **, but seems to work fine for + |
| 13:35 |
|
colomon |
(last + is infix:<+>) |
| 13:36 |
|
moritz_ |
and that's for '1' ** 3i, or what? |
| 13:36 |
|
colomon |
moritz_: "1" ** 3i |
| 13:36 |
|
moritz_ |
rakudo: say "1".PARROT |
| 13:36 |
|
p6eval |
rakudo e16cf4: OUTPUT«Perl6Str» |
| 13:37 |
|
moritz_ |
rakudo: say (+"1").PARROT |
| 13:37 |
|
p6eval |
rakudo e16cf4: OUTPUT«Num» |
| 13:37 |
|
moritz_ |
colomon: maybe.... a very stupid precedence issue? |
| 13:37 |
|
colomon |
moritz_: I do believe that must be it! |
| 13:37 |
|
moritz_ |
(+$a) + (+$b) or so? |
| 13:37 |
|
colomon |
moritz_++ |
| 13:38 |
|
colomon |
+$a ** +$b is probably +($a ** +$b) |
| 13:38 |
|
colomon |
that would explain everything. |
| 13:38 |
|
masak |
colomon: can you demonstrate it on p6eval? |
| 13:39 |
|
colomon |
masak: let me think |
| 13:40 |
|
colomon |
masak: behaving that way is spec |
| 13:40 |
|
colomon |
exponentiation has higher precedence than symbolic_unary |
| 13:40 |
|
masak |
o.O |
| 13:41 |
|
* masak |
looks |
| 13:41 |
|
colomon |
or at least, that's what rakudo's grammar has for it. |
| 13:41 |
|
masak |
by blog, S03 agrees with you. |
| 13:41 |
|
moritz_ |
aye |
| 13:42 |
|
masak |
oh right, that's so that -2**4 will mean the Right Thing. |
| 13:42 |
|
masak |
TimToady mentioned that the other day. |
| 13:42 |
|
moritz_ |
for the right value of "right" :-) |
| 13:42 |
|
masak |
well, it means what mathematicians mean by it. |
| 13:43 |
|
masak |
TimToady: should p5=> really remain in the S03 precedence table? |
| 13:46 |
|
colomon |
moritz_++ # bug appears to be fixed! |
| 13:49 |
|
|
ruoso joined #perl6 |
| 13:51 |
|
pmurias |
ruoso: using Regexp::Grammars to replace the haskell m0ld parser seems sane? |
| 13:52 |
|
ruoso |
I never used it, but it being in perl5 is already good enough when compared to the haskell dependency ;) |
| 13:54 |
|
ruoso |
it doesn't support rec descent well... but m0ld doesn't require it... so it's probably a good choice, since it's going to be faster |
| 13:56 |
|
pmurias |
i would be so sure about it being faster but it certainly won't require setting up cabal |
| 13:59 |
|
pmurias |
do you think carefull placing of #line would allow using gdb to debug code spit out by mildew's C backends? |
| 14:02 |
|
pugssvn |
r30504 | moritz++ | [helpnow] draft announcement |
| 14:08 |
|
|
alester joined #perl6 |
| 14:12 |
|
jnthn |
colomon: belated pong (meeting... :-)) |
| 14:12 |
|
colomon |
jnthn: no worries, we actually solved the problem without you. :) |
| 14:12 |
|
colomon |
masak++ and moritz_++ |
| 14:13 |
|
jnthn |
Yay! |
| 14:15 |
|
jnthn |
btw, I'm heading off the Iceland tomorrow, all being well. I'll probably have good connectivity until Monday while in the capital, but may be sketchy at times next week when I head out to the countryside (hopefully). Just a heads up. :) |
| 14:15 |
|
mathw |
Iceland? Hmmm |
| 14:15 |
|
mathw |
Watch out for volcanoes |
| 14:15 |
|
colomon |
:) |
| 14:15 |
|
colomon |
afk # exercising |
| 14:16 |
|
moritz_ |
jnthn: have fun in Iceland :-) |
| 14:16 |
|
* moritz_ |
wonders if NPW is actually cancelled |
| 14:18 |
|
jnthn |
moritz_: Yes |
| 14:18 |
|
jnthn |
moritz_: But since I'd planned to take the week after it having a vacation anyway, I decided to go ahead with the trip. |
| 14:18 |
|
moritz_ |
jnthn: then I hope your weather will be a nice as it is here a the moment |
| 14:19 |
|
moritz_ |
(sunny, 26C) |
| 14:19 |
|
|
JimmyZ joined #perl6 |
| 14:22 |
|
jnthn |
moritz_: ooh, that *is* nice :-) |
| 14:22 |
|
jnthn |
It'll likely be a bit cooler. |
| 14:22 |
|
masak |
jnthn: enjoy Iceland for me! :) |
| 14:22 |
|
moritz_ |
I'll leave $work in a few minutes, buy some foodstuff and then exercise my inline skates |
| 14:24 |
|
moritz_ |
at times I'm very happy for not having fixed (or even defined) work hours |
| 14:25 |
|
[Coke] |
moritz_: same here. though some times I can use the structure that 9-5 woudl provide. =-) |
| 14:25 |
|
moritz_ |
aye. External constraints help not let things slip |
| 14:25 |
|
moritz_ |
decommute& |
| 14:26 |
|
|
KeithWolters joined #perl6 |
| 14:27 |
|
KeithWolters |
should I be able to return from a sub with something like "retturn 0 but true"? |
| 14:28 |
|
masak |
rakudo: sub foo { return 0 but True }; say foo |
| 14:28 |
|
p6eval |
rakudo e16cf4: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'. Available candidates are::(Mu $do-it-to-me, Role $r):(Mu $do-it-to-me, ConcreteRole $r)current instr.: 'infix:<but>' pc 311315 (src/gen/core.pir:0)» |
| 14:29 |
|
masak |
rakudo: role Troo {}; sub foo { return 0 but Troo }; say foo |
| 14:29 |
|
p6eval |
rakudo e16cf4: OUTPUT«0» |
| 14:29 |
|
masak |
KeithWolters: yes. it should work in Rakudo too, but enums (Bool::True in particular) are not sufficiently role-y yet. |
| 14:33 |
|
KeithWolters |
thanks |
| 14:34 |
|
|
rgrau_ joined #perl6 |
| 14:34 |
|
|
[particle]1 joined #perl6 |
| 14:40 |
|
jnthn |
enums are not sufficiently existential in Rakudo yet either... |
| 14:41 |
|
|
envi^home joined #perl6 |
| 14:41 |
|
|
REPLeffect joined #perl6 |
| 14:43 |
|
|
[particle]1 joined #perl6 |
| 14:43 |
|
mathw |
They're not sufficiently named |
| 14:44 |
|
mathw |
rakudo: enum Mode <Binary ASCII>; my $m = Mode::Binary; say $m; |
| 14:44 |
|
p6eval |
rakudo e16cf4: OUTPUT«Can not find sub Mode::Binarycurrent instr.: 'perl6;Perl6Exception;throw' pc 14877 (src/builtins/Seq.pir:28)» |
| 14:52 |
|
|
pmurias joined #perl6 |
| 14:56 |
|
diakopter |
pmurias: hi |
| 14:57 |
|
pmurias |
diakopter: hi |
| 14:58 |
|
|
kst joined #perl6 |
| 14:58 |
|
|
proller joined #perl6 |
| 14:58 |
|
|
justatheory joined #perl6 |
| 14:59 |
|
sorear |
I figured out my problem yesterday |
| 14:59 |
|
pmurias |
diakopter: the catch/try in the trampoline is used for catching the case when next is null? |
| 14:59 |
|
sorear |
It involved perl6 -e ' ... ... ... my $name = 'foo' ... ...' |
| 14:59 |
|
sorear |
sh, I hate you |
| 15:00 |
|
masak |
sorear: I do that one far too often too :) |
| 15:00 |
|
jnthn |
Oh, sh.. |
| 15:00 |
|
jnthn |
:-) |
| 15:00 |
|
colomon |
not ok 6 - increment of undefined variable does not warn |
| 15:00 |
|
colomon |
# got err: "Use of uninitalized value in numeric context\n" |
| 15:00 |
|
colomon |
# expected err: "" |
| 15:01 |
|
colomon |
my $a; $a += 1 |
| 15:01 |
|
colomon |
rakudo: my $a; $a += 1 |
| 15:01 |
|
pmurias |
diakopter: could that be done by an if as it hides exceptions from methods invoked by sprixel code |
| 15:01 |
|
p6eval |
rakudo e16cf4: ( no output ) |
| 15:02 |
|
colomon |
> my $a; $a += 1; say $a; |
| 15:02 |
|
colomon |
Use of uninitalized value in numeric context |
| 15:02 |
|
colomon |
1 |
| 15:02 |
|
colomon |
I thought we'd agreed it should warn in cases like this? Opinions? |
| 15:02 |
|
masak |
omgiblogged: http://use.perl.org/~masak/journal/40333 |
| 15:03 |
|
masak |
colomon: I thought we'd agreed it shouldn't warn in that case. |
| 15:03 |
|
masak |
colomon: it should warn in the `$a = $a + 1` case. |
| 15:03 |
|
masak |
but not in the assignment metaop cases. |
| 15:03 |
|
diakopter |
pmurias: but I stopped using the trampoline anyway |
| 15:05 |
|
colomon |
masak: In that case, how can I check definedness in PIR? :) |
| 15:06 |
|
masak |
dunno. |
| 15:07 |
|
diakopter |
pmurias: but yes, it does hide those exceptions..... lemme fix that. |
| 15:08 |
|
jnthn |
omgthreethirds! |
| 15:08 |
|
pmurias |
diakopter: the trampoline is still used in commited code? |
| 15:08 |
|
diakopter |
yes, but only once |
| 15:08 |
|
diakopter |
it's easy to stop using entirely |
| 15:08 |
|
colomon |
masak: on your blog post, part 2 -- contextuals exist only for the scope they're defined in and any scopes that it calls? I've never quite understood them... |
| 15:09 |
|
masak |
colomon: that's right. |
| 15:09 |
|
diakopter |
pmurias: ok. |
| 15:10 |
|
masak |
colomon: which makes them perfect for when you have a routine at the top, sharing data with all the routines transitively called. |
| 15:10 |
|
colomon |
masak: sweet, yes, masak++ for blogging that. (and thinking to do it.) |
| 15:11 |
|
sorear |
Is there any short way to say git log avar/master..HEAD; git log HEAD..avar/master ? |
| 15:11 |
|
sorear |
I want the symmetric difference |
| 15:11 |
|
colomon |
jnthn: any hints on testing for definedness in pir? I'd like to hack assign_metaop so that it checks to see if the first arg is defined and calls $P0() if not.... |
| 15:11 |
|
masak |
sorear: that might be what '...' does. |
| 15:11 |
|
* masak |
doesn't quite recall, though |
| 15:12 |
|
jnthn |
colomon: Can't you just call .defined? |
| 15:12 |
|
jnthn |
$P1 = $P0.'defined'() |
| 15:12 |
|
jnthn |
if $P1 goto omgyayitsdefined |
| 15:12 |
|
colomon |
jnthn: I dunno, I'm not very good at PIR. I'll give that a try. |
| 15:13 |
|
sorear |
that'll work, except that if $P0 is null it may segfault |
| 15:13 |
|
jnthn |
no it own't |
| 15:13 |
|
jnthn |
it'll give a null PMC access excpetion. |
| 15:13 |
|
diakopter |
afk& |
| 15:13 |
|
jnthn |
colomon: Should work |
| 15:13 |
|
sorear |
and of course it won't work well if $P0 is a non-parrot object |
| 15:13 |
|
colomon |
will it work if I use .param pmc a a.'defined'() instead? |
| 15:13 |
|
jnthn |
sure |
| 15:13 |
|
sorear |
colomon: That changes nothing, so yes |
| 15:14 |
|
jnthn |
The other way is $I0 = defined a |
| 15:14 |
|
jnthn |
if $I0 goto yayitsdeinfed |
| 15:14 |
|
sorear |
jnthn: PARROT_CATCH_NULL is an option |
| 15:14 |
|
sorear |
avar: Still here? |
| 15:14 |
|
dalek |
csmeta: r224 | diakopter++ | trunk/Sprixel/ (3 files): |
| 15:14 |
|
dalek |
csmeta: [perlesque] see if this works. |
| 15:14 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=224 |
| 15:15 |
|
[Coke] |
(parrot nulliness) ISTR there is a ticket that is eligible to go in shortly that will impact that. |
| 15:15 |
|
avar |
sorear: yah |
| 15:15 |
|
avar |
sorear: git remote add avar my-git-url |
| 15:15 |
|
avar |
git diff master..avar/master |
| 15:15 |
|
[Coke] |
https://trac.parrot.org/parrot/ticket/1207 ? |
| 15:16 |
|
pmurias |
diakopter: would i be possible to add an option to sprixel to spit out the disassembled version of the code instead of running it? |
| 15:18 |
|
sorear |
avar: that only shows me patches you've added. |
| 15:18 |
|
sorear |
I want to see all differences, including ones you may have removed |
| 15:18 |
|
sorear |
avar: btw I've already committed your patch |
| 15:20 |
|
avar |
sorear: I don't get what you mean. I just added this: http://github.com/avar/blizkos[…]d59412d031f049b25 |
| 15:20 |
|
avar |
so that's all git dif master..avar/master would show you. I didn't remove anything |
| 15:20 |
|
sorear |
Yes. And. http://github.com/jnthn/blizko[…]d59412d031f049b25 |
| 15:20 |
|
sorear |
avar: git diff master..avar/master will show me ABSOLUTELY NOTHING if you have removed a patch. |
| 15:21 |
|
sorear |
As a rule I don't trust people when they tell me about why their code is safe. It's the same with branches. |
| 15:21 |
|
sorear |
git diff avar/master..master shows me the other side of the story. |
| 15:21 |
|
sorear |
I'd like to only run one command to see both. |
| 15:21 |
|
avar |
well, then alias it in your ~/.gitconfig :) |
| 15:22 |
|
avar |
Anyway, git-cherry-pick is probably what you want for single patches like that |
| 15:22 |
|
|
proller joined #perl6 |
| 15:22 |
|
avar |
Anyway, 'git diff master..avar/master' *will* show you the complete story, it's all the patches on that branch since it diverged. |
| 15:23 |
|
avar |
so a subsequent git merge avar/master is safe, the worst that can happen is a merge conflict because the patches changed something you changed too. |
| 15:23 |
|
sorear |
If you did git reset --hard HEAD^ |
| 15:23 |
|
sorear |
that wouldn't register on git diff master..avar/master |
| 15:24 |
|
sorear |
are you disputing this? |
| 15:24 |
|
colomon |
rakudo: my $a; $a *= 5; say $a |
| 15:24 |
|
p6eval |
rakudo e16cf4: OUTPUT«Use of uninitalized value in numeric context0» |
| 15:24 |
|
colomon |
> my $a; $a *= 5; say $a |
| 15:24 |
|
colomon |
5 |
| 15:24 |
|
sorear |
incidentally, ... works |
| 15:24 |
|
[Coke] |
rakudo: say ... |
| 15:24 |
|
p6eval |
rakudo e16cf4: OUTPUT«No exception handler and no messagecurrent instr.: '&fail' pc 17511 (src/builtins/Junction.pir:489)» |
| 15:24 |
|
avar |
No. I didn't account for reset, anyway if someone was evil like that you'd get a push conflict about a non-fast forward when pushing to github unless you did git push -f |
| 15:25 |
|
[Coke] |
std: say ... |
| 15:25 |
|
p6eval |
std 30504: OUTPUT«ok 00:01 109m» |
| 15:25 |
|
* [Coke] |
rings up masak. |
| 15:25 |
|
masak |
hello? |
| 15:25 |
|
sorear |
masak++ |
| 15:25 |
|
[Coke] |
see last two evalbots? |
| 15:25 |
|
masak |
yeah. |
| 15:25 |
|
masak |
but I see no bug. |
| 15:26 |
|
moritz_ |
well, ... in rakudo is less than awesome |
| 15:26 |
|
masak |
LTA might be the bug, sure. |
| 15:26 |
|
masak |
what would you want the error message to be? |
| 15:26 |
|
[Coke] |
I see a parrot error message. shouldn't rakudo never emit one? |
| 15:26 |
|
* masak |
submits LTA rakudobug |
| 15:26 |
|
[particle]1 |
it's masakworthy! |
| 15:27 |
|
[Coke] |
woot. |
| 15:31 |
|
jnthn |
We already have a ticket on ... saying it probably wants to use leave, not return, so we don't run into issues like the above, fwiw. |
| 15:31 |
|
[Coke] |
*single tear* |
| 15:33 |
|
jnthn |
That error still sucks though, and |
| 15:33 |
|
jnthn |
rakudo: return |
| 15:33 |
|
p6eval |
rakudo e16cf4: OUTPUT«No exception handler and no messagecurrent instr.: '&return' pc 17409 (src/builtins/Junction.pir:416)» |
| 15:33 |
|
jnthn |
Needs fixing for that reason. :-) |
| 15:35 |
|
* [Coke] |
sees that theDamian is giving a rakudo class at yapc::na this year. |
| 15:35 |
|
|
gurjeet joined #perl6 |
| 15:35 |
|
masak |
rakudo: return |
| 15:35 |
|
p6eval |
rakudo e16cf4: OUTPUT«No exception handler and no messagecurrent instr.: '&return' pc 17409 (src/builtins/Junction.pir:416)» |
| 15:35 |
|
masak |
ah, jnthn already did that :) |
| 15:35 |
|
diakopter |
pmurias: it does.. to asmbly_1.exe |
| 15:36 |
|
jnthn |
masak: Well, if you must return to the issue... :-P |
| 15:36 |
|
masak |
:P |
| 15:36 |
|
diakopter |
pmurias: it's in CIL |
| 15:37 |
|
diakopter |
pmurias: into what language would you have it disassembled? |
| 15:37 |
|
masak |
[Coke]: ah, and that bug is already reported: http://rt.perl.org/rt3/Ticket/[…]lay.html?id=57268 |
| 15:37 |
|
diakopter |
pmurias: it's in CIL bytecode I should say. |
| 15:38 |
|
* masak |
reopens that ticket instead of submitting a new one |
| 15:38 |
|
diakopter |
pmurias: it could be disassembled to human-readable CIL with `monodis asmbly_1.exe` |
| 15:38 |
|
diakopter |
that may help |
| 15:39 |
|
diakopter |
pmurias: but otherwise, you'd need something like Reflector, on Windows |
| 15:39 |
|
diakopter |
though I think a very old version of Reflector ran on mono/linux... |
| 15:42 |
|
pmurias |
usr/local/bin/monodis: error while loading shared libraries: libmono.so.0: cannot open shared object file: No such file or directory |
| 15:43 |
|
moritz_ |
looks like it's not properl installed |
| 15:43 |
|
diakopter |
pmurias: you just have to run libtool |
| 15:43 |
|
diakopter |
or whatever it's calls |
| 15:43 |
|
diakopter |
called |
| 15:44 |
|
sorear |
ldconfig ITYM |
| 15:44 |
|
diakopter |
yeah that :) |
| 15:44 |
|
sorear |
libtool is something entirely different |
| 15:44 |
|
dalek |
rakudo: fe59fa8 | moritz++ | src/Perl6/Grammar.pm: |
| 15:44 |
|
dalek |
rakudo: enable rx{...} quoting form. At some point we need a more general solution for these quoting mechanismsn... |
| 15:44 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]bfa76db8ff916beea |
| 15:44 |
|
sorear |
also, add /usr/local/lib to your /etc/ld.so.conf |
| 15:44 |
|
diakopter |
pmurias: sorry :D what sorear said |
| 15:45 |
|
sorear |
note: these two steps must be done in a specific order. Namely, the opposite of the one I listed them in. |
| 15:45 |
|
|
wasy_ joined #perl6 |
| 15:45 |
|
|
wasy_ left #perl6 |
| 15:45 |
|
diakopter |
usually /usr/local/lib is already added in debian/ubuntu, I think. |
| 15:46 |
|
pmurias |
ldconfig worked |
| 15:46 |
|
pmurias |
but monodis segfaults |
| 15:46 |
|
diakopter |
heh; hm |
| 15:46 |
|
|
nihiliad joined #perl6 |
| 15:47 |
|
moritz_ |
disassembling is an evil hacker technique and forbidden in your country! |
| 15:47 |
|
moritz_ |
or so :-) |
| 15:47 |
|
sorear |
diakopter: maybe it is now, I've been running this debian install for about seven years |
| 15:48 |
|
diakopter |
pmurias: does it output anything before it segfaults? |
| 15:49 |
|
pmurias |
yes |
| 15:49 |
|
pmurias |
but CIL won't be helpfull |
| 15:49 |
|
diakopter |
oh :P |
| 15:50 |
|
diakopter |
disassembling to C# is very nontrivial, hence the lack of availability of tools |
| 15:50 |
|
diakopter |
open-source tools, I mean |
| 15:51 |
|
diakopter |
http://blog.coryfoy.com/2006/0[…]oes-work-on-mono/ |
| 15:52 |
|
diakopter |
a very old version ran in linux |
| 15:58 |
|
diakopter |
pmurias: I'd guess you'd have to somehow find one of those old versions of reflector to run it on linux |
| 15:58 |
|
diakopter |
b/c I doubt it runs on it anymore. |
| 15:58 |
|
diakopter |
I haven't tried it lately though. |
| 16:02 |
|
|
chitragupt joined #perl6 |
| 16:04 |
|
|
nihiliad joined #perl6 |
| 16:05 |
|
|
bradb joined #perl6 |
| 16:06 |
|
|
isBEKaml joined #perl6 |
| 16:13 |
|
|
cdarroch joined #perl6 |
| 16:13 |
|
|
cdarroch joined #perl6 |
| 16:15 |
|
|
am0c joined #perl6 |
| 16:17 |
|
|
ashizawa joined #perl6 |
| 16:17 |
|
isBEKaml |
hi #perl6! |
| 16:18 |
|
masak |
hi isBEKaml! |
| 16:18 |
|
isBEKaml |
I feel like looking at a module today... what's already in? :) |
| 16:19 |
|
masak |
isBEKaml: you mean writing one? |
| 16:19 |
|
sorear |
try src/core/*.pm |
| 16:19 |
|
isBEKaml |
masak: no, reading one! ;) |
| 16:19 |
|
masak |
oh! well, what sorear said. |
| 16:20 |
|
masak |
isBEKaml: I can recommend Druid, too. it's a documented, OO board game in Perl 6. http://github.com/masak/druid |
| 16:20 |
|
sorear |
src/core/*.pm isn't exactly modules, but it's the largest body of reusable Perl 6 code we have |
| 16:20 |
|
masak |
sorear: largest? on what do you base that? |
| 16:20 |
|
masak |
the spectest suite is pretty large. |
| 16:20 |
|
masak |
November and GGE are large projects. |
| 16:21 |
|
[particle]1 |
STD.pm is pretty large |
| 16:21 |
|
[particle]1 |
...and that's just one module... |
| 16:21 |
|
diakopter |
_reusable_, sorear said |
| 16:21 |
|
masak |
STD.pm might be the largest reusable piece of Perl 6 right now. |
| 16:21 |
|
sorear |
masak: A weighted function of size and reusability |
| 16:21 |
|
isBEKaml |
YOU_ARE_HERE.pm; a single line module, yay! :D |
| 16:21 |
|
sorear |
STD.pm is huge but it's only good for one thing |
| 16:21 |
|
* diakopter |
agrees |
| 16:22 |
|
masak |
hm. I need to think about the difference there. |
| 16:22 |
|
masak |
STD.pm5 isn't reusable because it's only good for one thing? |
| 16:22 |
|
[particle]1 |
where on earth are the p6 acme modules??!?!!!? |
| 16:22 |
|
masak |
even though that one thing is parsing Perl 6? |
| 16:22 |
|
sorear |
masak: it is reusable. just, less so than stuff like Hash.pm |
| 16:22 |
|
jnthn |
isBEKaml: That's just there to make people think, "wtf?" ;-) |
| 16:23 |
|
colomon |
pir folk: any way to do the equivalent of .?call in pir? |
| 16:23 |
|
jnthn |
Ew! |
| 16:23 |
|
jnthn |
Yes |
| 16:23 |
|
jnthn |
But I'll have to look it up |
| 16:23 |
|
colomon |
maybe there's a better way? |
| 16:23 |
|
sorear |
colomon: src/glue/dispatch.pir |
| 16:23 |
|
jnthn |
See src/glue/dispatch.pir for the thingy to call. |
| 16:23 |
|
sorear |
!dispatch_.? |
| 16:23 |
|
jnthn |
It's got .* in its name. |
| 16:23 |
|
jnthn |
oh, .? |
| 16:24 |
|
|
ash_ joined #perl6 |
| 16:24 |
|
jnthn |
What sorear++ said. |
| 16:24 |
|
sorear |
.? actually does two things |
| 16:24 |
|
colomon |
I've patched assign_metaop to take the value of the op called with no parameters. |
| 16:24 |
|
sorear |
it guards against the method not existing |
| 16:24 |
|
sorear |
and it guards against MMD failing |
| 16:24 |
|
isBEKaml |
jnthn: :). Anyway, I was thinking of PIR code generated when building Rakudo after checking out Parrot... Was that all auto generated? |
| 16:24 |
|
sorear |
if you only want to do one of these things, you can get away with less code |
| 16:24 |
|
isBEKaml |
jnthn: I tried reading them, looked close to heavy metal bytecode.. |
| 16:24 |
|
colomon |
which works great unless there is no version that takes no parameters. |
| 16:25 |
|
sorear |
isBEKaml: Everything in src/gen is autogenerated compiler output. |
| 16:25 |
|
jnthn |
Yup |
| 16:25 |
|
diakopter |
\_o_/ |
| 16:25 |
|
sorear |
There's a fair amount of handwritten (i.e. commented and with sane register names) pir, in src/builtins, src/cheats, and src/glue |
| 16:25 |
|
jnthn |
Pretty much the only hand-written PIR lives in src/builtins/ and src/glue/ iirc. |
| 16:25 |
|
sorear |
oh and src/metamodel |
| 16:26 |
|
isBEKaml |
eww, does anybody ever handcode PIRs? |
| 16:26 |
|
sorear |
Yes |
| 16:26 |
|
sorear |
Look inside your libc sometime, you'll see plenty of assembly there too |
| 16:26 |
|
sorear |
same reason, really |
| 16:27 |
|
sorear |
implementing the entire Perl 6 standard library in Perl 6 has bootstrap issues |
| 16:27 |
|
colomon |
errr, ick. actually I need the sub equivalent of that, if there is such a thing, now that I think about it. |
| 16:27 |
|
sorear |
$P0 = get_hll_global "&my_sub" |
| 16:27 |
|
isBEKaml |
I thought handcoding assembly was so long ago, unless you really need to get close to hardware.. That isn't the case with perl6, right? |
| 16:27 |
|
sorear |
if null $P0 goto not_found |
| 16:27 |
|
sorear |
$P0() |
| 16:28 |
|
colomon |
sorear: in this case &my_sub should exist, just with a different signature than I need to use. |
| 16:28 |
|
sorear |
isBEKaml: Libraries can't just float in mid-air, they need to be anchored to the bare metal *somewhere* |
| 16:28 |
|
ash_ |
isBEKaml: anytime you port say the GCC to new hardware there will always be handcoded assembly, in embedded systems its happens all the time |
| 16:28 |
|
masak |
swimming & |
| 16:29 |
|
jnthn |
isBEKaml: Calling it assembly and thinking the same was as hardware-level assembly is making it out a bit worse than it is though. |
| 16:29 |
|
isBEKaml |
ash_: I can understand embedded systems, yes... |
| 16:29 |
|
jnthn |
isBEKaml: All your objects are garbage collected, don't need to manage calling conventions by hand, etc. |
| 16:29 |
|
ash_ |
pir has a lot of nice things, its a bit above assembly |
| 16:30 |
|
isBEKaml |
jnthn: I didn't mean that way.. I didn't even call them assembly, I said they looked like auto generated bytecode, akin to java bytecodes.. |
| 16:30 |
|
[particle]1 |
isBEKaml: how would you implement infix:<+> in pure perl 6? |
| 16:30 |
|
isBEKaml |
jnthn: sorry if I came out wrong.. |
| 16:31 |
|
sorear |
isBEKaml: Yes, they're evil. We know. |
| 16:31 |
|
sorear |
Are you complaining? |
| 16:31 |
|
sorear |
There's no alternative. |
| 16:31 |
|
ash_ |
[particle]1: I would use a NCI system to call libc to add them together, :P |
| 16:32 |
|
isBEKaml |
sorear: No, not complaining. Just curious why people would still hand-code those bytecodes... |
| 16:32 |
|
sorear |
ash_: How would you implement the NCI in perl 6? |
| 16:32 |
|
[particle]1 |
my platform doesn't have libc :P |
| 16:32 |
|
sorear |
isBEKaml: see [particle]1's responce before last. |
| 16:32 |
|
ash_ |
sorear: thats a different question all together |
| 16:33 |
|
jnthn |
isBEKaml: The hand-written stuff looks rather nicer than the generated stuff. :-) |
| 16:33 |
|
jnthn |
isBEKaml: The overall direction is to write *less* in PIR rather than more, though, that's for sure. |
| 16:33 |
|
[particle]1 |
the generator isn't as smart as the humans yet |
| 16:33 |
|
isBEKaml |
sorear: I'd have thought C, but not assembly.. :) |
| 16:33 |
|
colomon |
isBEKaml: which is why I flounder when I have to break down and write PIR. |
| 16:34 |
|
sahadev |
http://rt.perl.org/rt3/Public/[…]lay.html?id=60672 says: "According to S29, there should be an sprintf directive %C, ...". I looked at S29 (http://perlcabal.org/syn/S29.html), which points to S32-setting-library/IO.pod for printf. But the latter (http://svn.pugscode.org/pugs/d[…]g-library/IO.pod) also doesn't contain any reference to sprintf. |
| 16:34 |
|
sahadev |
what exactly does %C directive do? |
| 16:34 |
|
ash_ |
i'd probably bootstrap a subset of perl6 that can self compile, a subset that can be directly translated to native code, then go on from there |
| 16:34 |
|
TimToady |
sahadev: beats me..complex? |
| 16:34 |
|
moritz_ |
sahadev: it's actually in S32-setting-library/Str.pod |
| 16:35 |
|
sorear |
isBEKaml: Well... we do that. Everything in src/Perl6/ is written in our "C" |
| 16:35 |
|
moritz_ |
The special format directive, C<%C> invokes the target argument as |
| 16:35 |
|
moritz_ |
code, passing it the result string that has been generated thus |
| 16:35 |
|
moritz_ |
far and the argument array. |
| 16:35 |
|
sorear |
As well as the .pm modules in builtins/ and cheats/ |
| 16:35 |
|
sahadev |
moritz_: thanks. found it. |
| 16:35 |
|
TimToady |
moritz_: I don't like @[] because I don't like noun markers attaching themselves to verbs. |
| 16:35 |
|
isBEKaml |
colomon: gee, looks like I'll be learning the way around things here too... :D |
| 16:35 |
|
TimToady |
how *do* we format a complex? |
| 16:36 |
|
colomon |
rakudo: say -1 + 3i |
| 16:36 |
|
p6eval |
rakudo fe59fa: OUTPUT«-1 + 3i» |
| 16:36 |
|
moritz_ |
is there any free format string? :-) |
| 16:36 |
|
TimToady |
rakudo: say -1+3i |
| 16:36 |
|
p6eval |
rakudo fe59fa: OUTPUT«-1 + 3i» |
| 16:37 |
|
TimToady |
what if I don't want to output the spaces? |
| 16:37 |
|
colomon |
rakudo: my $a = -1 + 3i; $a.comb(/\S+/).join.say |
| 16:37 |
|
p6eval |
rakudo fe59fa: OUTPUT«-1+3i» |
| 16:37 |
|
moritz_ |
colomon++ :-) |
| 16:37 |
|
colomon |
;) |
| 16:37 |
|
TimToady |
rakudo: my $a = -1 + 3i; $a.words.join.say |
| 16:38 |
|
p6eval |
rakudo fe59fa: OUTPUT«-1+3i» |
| 16:38 |
|
moritz_ |
or you sprintf $c.re and $c.im |
| 16:38 |
|
TimToady |
:P |
| 16:38 |
|
sorear |
What's the canonical Perl6 way to lift a smartmatcher? |
| 16:39 |
|
jnthn |
rakudo: my $a = -1 + 3i; say "$a.re()+$a.im()i"; |
| 16:39 |
|
p6eval |
rakudo fe59fa: OUTPUT«-1+3i» |
| 16:39 |
|
sorear |
I want to find everything for which { $^a.Str ~~ m/.../ } |
| 16:39 |
|
isBEKaml |
What's a GatherIterator() ? |
| 16:39 |
|
ash_ |
rakudo: my $a = -1 + 3i; say $a.perl; |
| 16:39 |
|
p6eval |
rakudo fe59fa: OUTPUT«Complex.new(-1, 3)» |
| 16:39 |
|
sorear |
Rakudoese for a lazy list ATM |
| 16:39 |
|
sorear |
(subject to change) |
| 16:39 |
|
isBEKaml |
rakudo: my $str="helpoworld".split(/o/,:all); say $str; say $str.WHAT; |
| 16:39 |
|
p6eval |
rakudo fe59fa: OUTPUT«help o w o rldGatherIterator()» |
| 16:40 |
|
sorear |
a GatherIterator looks kinda like an array but can be infinite and is not calculated all at once |
| 16:40 |
|
moritz_ |
and should be called List or Seq or Array or so |
| 16:40 |
|
TimToady |
"everything" seems underspecified |
| 16:40 |
|
sorear |
tokens are only split from that string when you need them |
| 16:41 |
|
sorear |
TimToady: everything is a list of methods. |
| 16:41 |
|
sorear |
currently .grep({ $^a.Str ~~ m/.../ }) but that feels wrong |
| 16:41 |
|
isBEKaml |
sorear: iterator, hmmm... why can I just display it in one fell swoop then? |
| 16:41 |
|
TimToady |
why does it feel wrong? |
| 16:41 |
|
moritz_ |
isBEKaml: because the consumer (here say) iterates it |
| 16:42 |
|
sorear |
TimToady: the point, mostly |
| 16:42 |
|
isBEKaml |
sorear: if that's an iterator, I should only be able to do something like next() until it exhausts itself, right? |
| 16:42 |
|
moritz_ |
sorear: .grep(/.../) |
| 16:42 |
|
moritz_ |
sorear: it will stringify internally anyway |
| 16:42 |
|
moritz_ |
sorear: and .grep does a smart match against its argument anyway |
| 16:42 |
|
|
molaf joined #perl6 |
| 16:43 |
|
isBEKaml |
moritz_: I don't understand the behaviour of "say", maybe I should go look at it again... You're saying it just doesn't do printing stuff, but more than that, like eat a _potentially_ infinite array/seq... :| |
| 16:44 |
|
moritz_ |
isBEKaml: well, how else would it print their contents? |
| 16:44 |
|
moritz_ |
isBEKaml: actually it just calls .Str on its argument |
| 16:45 |
|
TimToady |
each argument, surely |
| 16:45 |
|
moritz_ |
isBEKaml: the the iterator consumes itself to generate the string representation of its argument |
| 16:45 |
|
isBEKaml |
moritz_: so it stringifies whatever is passed to it? |
| 16:45 |
|
sorear |
rakudo: (1, 1, *+* ...).batch(20).say |
| 16:45 |
|
moritz_ |
right |
| 16:45 |
|
p6eval |
rakudo fe59fa: OUTPUT«Confused at line 11, near "(1, 1, *+*"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 16:45 |
|
sorear |
rakudo: (1, 1, *+* ... *).batch(20).say |
| 16:45 |
|
p6eval |
rakudo fe59fa: OUTPUT«11235813213455891442333776109871597258441816765» |
| 16:45 |
|
TimToady |
.Str would insert spaces |
| 16:45 |
|
sorear |
rakudo: (1, 1, *+* ... *).batch(20).Str.say |
| 16:45 |
|
p6eval |
rakudo fe59fa: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765» |
| 16:45 |
|
moritz_ |
isBEKaml: yes |
| 16:46 |
|
TimToady |
rakudo: (1|2|3).Str.say |
| 16:46 |
|
hejki |
rakudo: (1, 1, *-1+*-2 ... *).batch(10).Str.say |
| 16:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«any(1, 2, 3)» |
| 16:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 16:46 |
|
moritz_ |
Whatever currying not yet fully implemented |
| 16:46 |
|
hejki |
rakudo: (1, 1, (*-1)+(*-2) ... *).batch(10).Str.say |
| 16:46 |
|
isBEKaml |
Actually, I got a slightly different output on my local perl6 interpreter. It didn't display the "o"s at all.. |
| 16:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |
| 16:47 |
|
TimToady |
rakudo: (1|2|3).Str.WHAT.say |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«Str()» |
| 16:47 |
|
TimToady |
rakudo: (1|2|3).Stringy.WHAT.say |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«Method 'Stringy' not found for invocant of class 'Integer'current instr.: '!DISPATCH_JUNCTION_METHOD' pc 16732 (src/builtins/Junction.pir:76)» |
| 16:47 |
|
isBEKaml |
rakudo: my $str="helpoworld".strip(/o/,:all); say $str; say $str.WHAT; |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«Method 'strip' not found for invocant of class 'Perl6Str'current instr.: '_block14' pc 29 (EVAL_1:0)» |
| 16:47 |
|
TimToady |
rakudo: (~(1|2|3))WHAT.say |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«Confused at line 11, near "(~(1|2|3))"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 16:47 |
|
isBEKaml |
rakudo: my $str="helpoworld".split(/o/,:all); say $str; say $str.WHAT; |
| 16:47 |
|
TimToady |
rakudo: (~(1|2|3)).WHAT.say |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«help o w o rldGatherIterator()» |
| 16:47 |
|
p6eval |
rakudo fe59fa: OUTPUT«Str()» |
| 16:48 |
|
isBEKaml |
gack.. |
| 16:48 |
|
TimToady |
rakudo: (1|2|3).WHAT.say |
| 16:48 |
|
isBEKaml |
why are the "o"s there? |
| 16:48 |
|
p6eval |
rakudo fe59fa: OUTPUT«Junction()» |
| 16:49 |
|
TimToady |
~ doesn't seem to autothread correctly yet |
| 16:49 |
|
moritz_ |
rakudo: say "helpoworld".subst(/o/, '', :g) |
| 16:49 |
|
p6eval |
rakudo fe59fa: OUTPUT«helpwrld» |
| 16:49 |
|
moritz_ |
isBEKaml: because your build of rakudo is too old |
| 16:49 |
|
moritz_ |
isBEKaml: colomon++ fixed that about a day ago |
| 16:49 |
|
jnthn |
TimToady: It's the Stringy / Str discintion, iirc. |
| 16:49 |
|
isBEKaml |
moritz_: A few days is too old.. :) |
| 16:50 |
|
TimToady |
yes |
| 16:50 |
|
sorear |
Unable to parse blockoid, my favorite error |
| 16:50 |
|
moritz_ |
TimToady: I hope masak is going to correct that as part of his gsoc project |
| 16:50 |
|
TimToady |
rakudo: (+(1|2|3)).WHAT.say |
| 16:50 |
|
p6eval |
rakudo fe59fa: OUTPUT«Junction()» |
| 16:50 |
|
TimToady |
looks like Numeric is right tho |
| 16:50 |
|
jnthn |
Yeah |
| 16:50 |
|
TimToady |
rakudo: (1|2|3).Num.WHAT.say |
| 16:51 |
|
p6eval |
rakudo fe59fa: OUTPUT«Junction()» |
| 16:51 |
|
TimToady |
well, maybe Num is different from Str that way |
| 16:52 |
|
sorear |
it seems that smartmatching against rx// is doing something extremely wrong |
| 16:52 |
|
TimToady |
but perhaps .Num ought to blow up on a Junction, so we can make sure + is calling Numeric |
| 16:54 |
|
jnthn |
Auto-threading methods on junctions plays interestingly with coercions. :-) |
| 16:54 |
|
jnthn |
SomeType(1|2) => Junction of SomeType instances, not SomeType |
| 16:56 |
|
jnthn |
Thankfully though not a problem for |
| 16:57 |
|
jnthn |
sub foo($x as SomeType) { ... } |
| 16:57 |
|
jnthn |
Which will still auto-thread just fine. |
| 16:57 |
|
jnthn |
(Because a junction is not Any) |
| 16:58 |
|
TimToady |
well, maybe Str is just special in having a multi that takes Junction |
| 16:58 |
|
|
spinclad joined #perl6 |
| 16:58 |
|
TimToady |
we have to give the low level stringifier used by say and print a name of some sort |
| 16:58 |
|
TimToady |
and .Str doesn't seem so bad as long as .Stringy provides ~ semantics, which do autothread |
| 16:59 |
|
jnthn |
*nod* |
| 16:59 |
|
jnthn |
I'm not complaining as such, just pointing out the various interesting semantics. :-) |
| 16:59 |
|
lisppaste3 |
sorear pasted "Insane bug w/ rx and for?" at http://paste.lisp.org/display/98544 |
| 17:01 |
|
sorear |
does anyone have a clue what's going on there? |
| 17:03 |
|
TimToady |
it's interpreting it as "go there" instead of "got here"? :) |
| 17:04 |
|
jnthn |
I wish I had a better guess than TimToady... |
| 17:04 |
|
jnthn |
epic wtf. |
| 17:05 |
|
|
kst joined #perl6 |
| 17:05 |
|
ash_ |
if you take out the ~~ rx/./ it says got here twice |
| 17:06 |
|
sorear |
yes, I mentioned that in a comment |
| 17:06 |
|
* [Coke] |
ponders how to setup his dev machine so he can have master and parrot-latest installed simultaneously. |
| 17:06 |
|
moritz_ |
sorear: it's $^a brokenness |
| 17:07 |
|
moritz_ |
sorear: if you use -> $a { ... } instead of { $^a; $^a; } it's all good |
| 17:07 |
|
sorear |
Whaaat |
| 17:07 |
|
sorear |
Hoowwww |
| 17:07 |
|
sorear |
Known? |
| 17:07 |
|
moritz_ |
sorear: there are various bug reports wrt $^a in RT - non of them affects control flow, to the best of my knowledge |
| 17:08 |
|
* sorear |
wants a streaming PIR pretty-printer |
| 17:08 |
|
* moritz_ |
want's production ready Perl 6 now! |
| 17:08 |
|
moritz_ |
and a ponie |
| 17:09 |
|
* ash_ |
wants more time to get nq-nqp working |
| 17:09 |
|
sorear |
Production is ready for Perl 6. |
| 17:09 |
|
* moritz_ |
hands ash_ a round tuit |
| 17:10 |
|
jnthn |
oh ouch, is it somehow added that placeholder to the block twice... |
| 17:10 |
|
moritz_ |
seems like |
| 17:10 |
|
jnthn |
rakudo: for 1,2 { say $^a, $^a } |
| 17:10 |
|
p6eval |
rakudo fe59fa: OUTPUT«22» |
| 17:10 |
|
jnthn |
arse. |
| 17:10 |
|
jnthn |
Well, that explains it. |
| 17:10 |
|
moritz_ |
rakudo: say ({$^a, $^a}).signature.perl |
| 17:10 |
|
p6eval |
rakudo fe59fa: OUTPUT«:(;; Mu $a, Mu $a)» |
| 17:11 |
|
jnthn |
Who implemented this crap... |
| 17:11 |
|
[Coke] |
jnthn: you? |
| 17:11 |
|
* jnthn |
would fix, but his Rakudo build is busted due to patches to try and get it to build on latest Rakudo. |
| 17:11 |
|
jnthn |
[Coke]: :-P |
| 17:12 |
|
[particle] |
s:2nd/Rakudo/Parrot/ |
| 17:12 |
|
jnthn |
Er, yes. |
| 17:12 |
|
jnthn |
:-) |
| 17:12 |
|
* jnthn |
svn ups to get latest Parrot |
| 17:12 |
|
jnthn |
with fixes |
| 17:12 |
|
sorear |
Do I file a bug or... |
| 17:12 |
|
moritz_ |
sorear: please do |
| 17:13 |
|
sorear |
Also, the original manifestation had only one reference to $^a |
| 17:13 |
|
sorear |
this double $^a weirdness came about while trying to debug the first bug |
| 17:13 |
|
sorear |
I don't know if these are the same |
| 17:13 |
|
* isBEKaml |
is svn upping Parrot and git pulling Rakudo to the latest build... |
| 17:14 |
|
sorear |
rakudobug perl ? |
| 17:14 |
|
moritz_ |
@perl.org, yes |
| 17:16 |
|
* moritz_ |
has a working desktop PC again, with enough RAM to build a few copies of rakudo at the same time :-) |
| 17:16 |
|
sorear |
sent |
| 17:16 |
|
moritz_ |
sorear++ |
| 17:17 |
|
ash_ |
moritz_: ooo its always fun getting new hardware |
| 17:18 |
|
moritz_ |
ash_: well, I had the RAM and the machine before, but the power supply unit made "plopp" on the last weekend, and smelled like busted condensators |
| 17:18 |
|
moritz_ |
on that occasion I also ordered a new hard disc :-) |
| 17:19 |
|
|
pacificpelican joined #perl6 |
| 17:20 |
|
[particle] |
...unless your hardware refuses to work, like the case of my new cpu's... |
| 17:20 |
|
sorear |
Condensators! |
| 17:20 |
|
sorear |
rakudo: my $name = "moo"; say "_handler_moo" ~~ m/_handler_ moo/; |
| 17:20 |
|
p6eval |
rakudo fe59fa: OUTPUT«_handler_moo» |
| 17:20 |
|
sorear |
rakudo: my $name = "moo"; say "_handler_moo" ~~ m/_handler_ $name/; |
| 17:20 |
|
p6eval |
rakudo fe59fa: OUTPUT«» |
| 17:20 |
|
sorear |
? |
| 17:20 |
|
sorear |
Is regex interpolation just not implemented yet? |
| 17:20 |
|
jnthn |
NYI |
| 17:21 |
|
jnthn |
bkeeler++ is working on it. |
| 17:21 |
|
slavik |
moritz_: what's your native language? |
| 17:21 |
|
jnthn |
lolspeak |
| 17:22 |
|
jnthn |
;-) |
| 17:22 |
|
sorear |
What's the neatest way to say `startsWith` in rakudo? |
| 17:22 |
|
sorear |
let's see... Len*z*... perl6geek.*de*... |
| 17:22 |
|
sorear |
I've got some guesses |
| 17:22 |
|
jnthn |
Must be .DEnmark! |
| 17:22 |
|
sorear |
er, just perlgeek |
| 17:23 |
|
moritz_ |
~~ /^startsWith/ ? |
| 17:23 |
|
slavik |
moritz_: condenser/capacitor :P |
| 17:23 |
|
moritz_ |
slavik: Perl :-) |
| 17:24 |
|
moritz_ |
slavik: German, actually |
| 17:24 |
|
sorear |
moritz_: NYA. |
| 17:24 |
|
sorear |
NYI. |
| 17:24 |
|
moritz_ |
huh? |
| 17:24 |
|
slavik |
moritz_: I guess condensator is from german? |
| 17:24 |
|
moritz_ |
slavik: yes, actually with s/c/k/ |
| 17:24 |
|
slavik |
which would prolly explain the russian word |
| 17:24 |
|
sorear |
rakudo: my $pfx = "_handler_"; say "_handler_moo" ~~ m/^$pfx/; #moritz_ |
| 17:24 |
|
p6eval |
rakudo fe59fa: OUTPUT«» |
| 17:25 |
|
moritz_ |
oh |
| 17:25 |
|
moritz_ |
substr then |
| 17:28 |
|
sorear |
finally, it works! |
| 17:29 |
|
|
REPLeffect joined #perl6 |
| 17:35 |
|
|
M_o_C joined #perl6 |
| 17:46 |
|
|
SmokeMachine joined #perl6 |
| 17:48 |
|
* [Coke] |
finds mst talking smack in #yapc! |
| 17:56 |
|
|
kst joined #perl6 |
| 18:00 |
|
[Coke] |
yay, I now have an installed stable-parrot and regular parrot and finally build rakudo master again. |
| 18:01 |
|
* [Coke] |
wonders if ./perl6 will ever be renamed ./rakudo |
| 18:01 |
|
isBEKaml |
[Coke]: unstable is regular? :D |
| 18:01 |
|
[Coke] |
er, supported-parrot. |
| 18:02 |
|
[Coke] |
"2.3.0" |
| 18:02 |
|
jnthn |
current instr.: 'perl6;Callable[::T];' pc 13147 (src\builtins\Num.pir:185) |
| 18:02 |
|
[Coke] |
I tend to track parrot-trunk normally; just installed the 2.3.0 tarball separately and modified my rakudo build script. |
| 18:02 |
|
jnthn |
...I think the erros might not be fixed yet. :-| |
| 18:04 |
|
isBEKaml |
[Coke]: oh, I thought you were tracking trunk when you said regular.. ;) |
| 18:05 |
|
* isBEKaml |
wonders how often he should build when updates yied so many changes all in a span of few days.. :| |
| 18:11 |
|
* jnthn |
gets the stage 1 compiler to build and startup on latest Parrot |
| 18:11 |
|
jnthn |
Too bad it explodes as soon as it then tries to parse anything. |
| 18:11 |
|
|
ash_ joined #perl6 |
| 18:25 |
|
jnthn |
OK, Rakudo builds on latest Parrot now, but we has a startup crash. |
| 18:25 |
|
jnthn |
Dinnertime. |
| 18:30 |
|
|
pyrimidine joined #perl6 |
| 18:31 |
|
|
[particle] joined #perl6 |
| 18:53 |
|
|
dakkar joined #perl6 |
| 18:57 |
|
diakopter |
There's More Than One Way To Implement It |
| 19:05 |
|
dalek |
rakudo: c4857ab | (Solomon Foster)++ | src/core/metaops.pm: |
| 19:05 |
|
dalek |
rakudo: Turn on zero-argument versions of infix:<~> and infix:<//>. |
| 19:05 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]e0903c731b13df748 |
| 19:05 |
|
dalek |
rakudo: 4aeb5a2 | (Solomon Foster)++ | src/builtins/assign.pir: |
| 19:05 |
|
dalek |
rakudo: Have $a op= $b call op() to get a value for $a if $a is not defined. |
| 19:05 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]742eaa9a26e352402 |
| 19:05 |
|
dalek |
rakudo: 9d955f2 | (Solomon Foster)++ | src/core/ (2 files): |
| 19:05 |
|
dalek |
rakudo: Be more specific about types for Complex mixed-type math. Change Any, Any versions of the basic math functions to coerce to Numeric (instead of called PIR functions which coerce to Num). |
| 19:05 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]47cc15280ed18ada7 |
| 19:05 |
|
pugssvn |
r30505 | colomon++ | [t/spec] New tests of basic arithmetic mixing Complex and numeric Strs. |
| 19:06 |
|
jnthn |
colomon++ :-D |
| 19:06 |
|
colomon |
Took me quite a while to get all the tests passing again. :) |
| 19:08 |
|
jnthn |
> say "yes, I work with latest Parrot" |
| 19:08 |
|
jnthn |
yes, I work with latest Parrot |
| 19:08 |
|
colomon |
\o/ |
| 19:08 |
|
pugssvn |
r30506 | colomon++ | [t/spec] Turn on two more zero-arg tests which now work. |
| 19:08 |
|
|
colomon left #perl6 |
| 19:08 |
|
[particle] |
say "YES, I CAN HAZ SPEEDUPS!!!" |
| 19:08 |
|
jnthn |
[particle]: It feels...erm...slow. :-| |
| 19:08 |
|
|
colomon joined #perl6 |
| 19:09 |
|
* [particle] |
blames chromatic |
| 19:09 |
|
[particle] |
he's looking forward to benchmarking it |
| 19:10 |
|
jnthn |
erm. |
| 19:10 |
|
jnthn |
The benchmarks...segfault. |
| 19:10 |
|
jnthn |
(one of 'em, anyway) |
| 19:11 |
|
* jnthn |
runs the spectests to see what the fallout is. |
| 19:11 |
|
colomon |
It's probably segfaulting because it's running so incredibly fast it melts your CPU. |
| 19:12 |
|
[particle] |
i wish... parrot cut out the 'hcf' opcode last year, though :( |
| 19:14 |
|
|
ShaneC joined #perl6 |
| 19:15 |
|
colomon |
I think this would be the grfcf opcode... |
| 19:16 |
|
|
ShaneC left #perl6 |
| 19:17 |
|
jnthn |
Down to S04 and things are looking fairly OK. |
| 19:18 |
|
jnthn |
We epic fail S05 though. |
| 19:19 |
|
* moritz_ |
hopes it's not his nqp-rx update |
| 19:19 |
|
moritz_ |
well, other parrot based languages haven't complained yet |
| 19:20 |
|
jnthn |
One fail in S10, but probably not too concerning. |
| 19:20 |
|
jnthn |
S12 and S14 are in great shape. |
| 19:21 |
|
|
pyrimidine left #perl6 |
| 19:21 |
|
jnthn |
I don't actually have latest changes from @other mind, so some of my test fails may well be to do with that too. |
| 19:23 |
|
colomon |
oh, you have the latest tests but not the latest commits? |
| 19:26 |
|
jnthn |
Right. |
| 19:26 |
|
jnthn |
Which means I probably needn't worry too much over having a couple of fails here and there. |
| 19:26 |
|
jnthn |
At this rate, it looks like the only big issue left is going to be why we fail S05 so much. |
| 19:27 |
|
jnthn |
(We pass the majority of test files, but there's a streak of them that we don't.) |
| 19:27 |
|
moritz_ |
and the rest might be due to regex failures in other files (/me hopes) |
| 19:29 |
|
jnthn |
Oh, I think the S05 ones are probably all for the same underlying reason. |
| 19:29 |
|
moritz_ |
that's good |
| 19:30 |
|
jnthn |
(namely, crash in GrammarHOW.compose, investigating.) |
| 19:30 |
|
[Coke] |
jnthn++ |
| 19:33 |
|
|
dual joined #perl6 |
| 19:34 |
|
|
lichtkind joined #perl6 |
| 19:38 |
|
moritz_ |
rakudo: my $x *= 5; say $x |
| 19:38 |
|
p6eval |
rakudo fe59fa: OUTPUT«Use of uninitalized value in numeric context0» |
| 19:39 |
|
|
sahadev joined #perl6 |
| 19:39 |
|
diakopter |
pugs: my $x *= 5; say $x |
| 19:39 |
|
p6eval |
pugs: OUTPUT«0» |
| 19:39 |
|
moritz_ |
that's wrong |
| 19:39 |
|
diakopter |
which? |
| 19:39 |
|
moritz_ |
both |
| 19:39 |
|
diakopter |
heh |
| 19:39 |
|
ash_ |
alpha: my $x *= 5; |
| 19:40 |
|
p6eval |
alpha 30e0ed: ( no output ) |
| 19:40 |
|
ash_ |
alpha: my $x *= 5; say $x; |
| 19:40 |
|
p6eval |
alpha 30e0ed: OUTPUT«5» |
| 19:40 |
|
diakopter |
moritz_: what should it be |
| 19:40 |
|
moritz_ |
diakopter: 5 |
| 19:40 |
|
ash_ |
o.0 |
| 19:40 |
|
diakopter |
why 5 |
| 19:40 |
|
[Coke] |
I would expect 0. =-) |
| 19:40 |
|
ash_ |
yeah, why 5? |
| 19:41 |
|
jnthn |
ESRSLYMAGIC |
| 19:41 |
|
* [Coke] |
grabs some popcorn. this is gonna be great! |
| 19:41 |
|
moritz_ |
because op= treats an undefined value on the LHS specially |
| 19:41 |
|
diakopter |
ESRSLYUNIMPLEMENTABLE |
| 19:41 |
|
moritz_ |
it takes the neutral element for this operation |
| 19:41 |
|
diakopter |
INTHEGENERALCASE |
| 19:41 |
|
jnthn |
diakopter: Just falls out of multi-dispatch. ;) |
| 19:41 |
|
[Coke] |
moritz_: ... my initial reaction is one of revulsion. =-) |
| 19:42 |
|
moritz_ |
and the neutral element is provided by the 0-ary form of the operator, e.g. infix:<*>() |
| 19:42 |
|
ash_ |
thats going to be confusing.... |
| 19:42 |
|
diakopter |
jnthn: that's an easy way of saying, the general case isn't handled. |
| 19:42 |
|
* moritz_ |
likes it |
| 19:42 |
|
jnthn |
diakopter: ? |
| 19:42 |
|
* jnthn |
was a bit surprised by it. |
| 19:42 |
|
moritz_ |
it means you can say things like for @a.kv -> $k, $v { %hash{$k} *= $v } |
| 19:42 |
|
diakopter |
I mean, cases for which there isn't a multi |
| 19:42 |
|
diakopter |
that matches |
| 19:42 |
|
moritz_ |
and DWIM |
| 19:42 |
|
ash_ |
std: my $x *= 4; |
| 19:43 |
|
p6eval |
std 30506: OUTPUT«ok 00:01 110m» |
| 19:43 |
|
jnthn |
diakopter: Sure, well, then you just gotta supply a multi that matches. :-) |
| 19:43 |
|
jnthn |
I think it defaults to undef if there isn't one though |
| 19:43 |
|
* jnthn |
didn't check the patch yet |
| 19:43 |
|
jnthn |
BTW, spectests actually aren't horrifyingly slower, it seems. |
| 19:43 |
|
moritz_ |
s/undef/Any/ |
| 19:43 |
|
jnthn |
moritz_: er, yes. :-) |
| 19:44 |
|
diakopter |
s/er//, no |
| 19:44 |
|
diakopter |
oh wait; heh; nm. |
| 19:45 |
|
moritz_ |
colomon++ # implementing this insanity |
| 19:45 |
|
[Coke] |
jnthn: weren't we hoping for 10% faster? |
| 19:45 |
|
moritz_ |
[Coke]: that's kinda defied by code generation using many, many concatenations, no? |
| 19:45 |
|
moritz_ |
I remember such a mail on parrot-dev |
| 19:46 |
|
[Coke] |
ah, yes. I am reminded to dig into CodeString to see if there was an easy fix there. |
| 19:46 |
|
diakopter |
rakudo: my $a = 'hi'; $a ~= $a; say $a; |
| 19:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«hihi» |
| 19:46 |
|
diakopter |
rakudo: my $a ~= 'hi; say $a; |
| 19:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«Confused at line 11, near "my $a ~= '"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» |
| 19:46 |
|
diakopter |
rakudo: my $a ~= 'hi'; say $a; |
| 19:46 |
|
jnthn |
I have a grammars fix. |
| 19:46 |
|
p6eval |
rakudo fe59fa: OUTPUT«Any()hi» |
| 19:47 |
|
diakopter |
that one needz an empty string |
| 19:47 |
|
[Coke] |
moritz_: looks like it would be pretty easy to convert CodeString to do it the fast way internally. |
| 19:47 |
|
moritz_ |
diakopter: works here, with newest rakudo |
| 19:47 |
|
moritz_ |
[Coke]: then go for it :-) |
| 19:47 |
|
diakopter |
? p6eval should be newest |
| 19:47 |
|
[Coke] |
If someone volunteers to benchmark it, I can craft a patch for that this $evening. |
| 19:48 |
|
diakopter |
unless that was committed in the last hour |
| 19:49 |
|
moritz_ |
diakopter: it was |
| 19:49 |
|
diakopter |
oh :) |
| 19:49 |
|
|
jaldhar joined #perl6 |
| 19:50 |
|
jnthn |
Going for a spectest run now, and then probably I push the update that gets us running on latest Parrot for wider feedback. |
| 19:51 |
|
moritz_ |
jnthn++ |
| 19:52 |
|
ash_ |
nqp: class Foo { has $a }; my $a := Foo.new; $a.a := 3; my $b := $a.a; my $a.a = 4; say($b); |
| 19:52 |
|
p6eval |
nqp: OUTPUT«Redeclaration of symbol $a at line 1, near ".a = 4; sa"current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)» |
| 19:53 |
|
ash_ |
are object variables write-once in nqp? |
| 19:53 |
|
moritz_ |
ash_: has $.a |
| 19:54 |
|
moritz_ |
my $a.a = 4; |
| 19:54 |
|
moritz_ |
ENOSENSE |
| 19:54 |
|
ash_ |
oh, okay |
| 19:54 |
|
jnthn |
$a.a = 4 # works fine |
| 19:54 |
|
moritz_ |
[Coke]: would "compiling rakudo" be a sufficient benchmark? |
| 19:56 |
|
ash_ |
hmmm odd... |
| 19:56 |
|
ash_ |
nqp: class Foo { has $!a }; class Bar { has $a }; class Broke { has $.a }; |
| 19:56 |
|
p6eval |
nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)» |
| 19:56 |
|
[Coke] |
moritz_: absolutely. I guess I can do that myself, huh? =-) |
| 19:56 |
|
ash_ |
it does $!a, and $a okay, but $.a gives me a parse error |
| 19:57 |
|
jnthn |
ash_: NQP doesn't implement that. |
| 19:57 |
|
moritz_ |
ash_: ah, then use $!a |
| 19:57 |
|
ash_ |
oh, okay |
| 19:57 |
|
jnthn |
(Intentionally.) |
| 19:57 |
|
moritz_ |
and write an accessor if you want one |
| 19:57 |
|
ash_ |
so in nqp is "has $a" a mistake? |
| 19:58 |
|
moritz_ |
std: has $a |
| 19:58 |
|
p6eval |
std 30506: OUTPUT«ok 00:01 107m» |
| 19:58 |
|
|
goksie joined #perl6 |
| 19:58 |
|
moritz_ |
ash_: I'm not sure what it is meant to mean... a class attribute maybe? |
| 19:59 |
|
ash_ |
in perl6 the spec says class Foo { has $a } is the same as class Foo { has $.a } (i believe) |
| 19:59 |
|
ash_ |
i was just wondering what it meant in nqp terms |
| 20:00 |
|
moritz_ |
maybe look at the PIR that nqp generates for it |
| 20:00 |
|
[Coke] |
moritz_: oooh. there's a lot of concat going on in CodeString. *glee* |
| 20:03 |
|
|
chitragupt joined #perl6 |
| 20:05 |
|
moritz_ |
[Coke]: is .'emit' a method in CodeString? |
| 20:05 |
|
|
kensanata joined #perl6 |
| 20:05 |
|
moritz_ |
seems like, yes |
| 20:06 |
|
moritz_ |
and that method looks like a hot path to me |
| 20:07 |
|
ash_ |
interesting |
| 20:07 |
|
ash_ |
$a and $!b both act the same, as private variables |
| 20:08 |
|
ash_ |
in nqp |
| 20:08 |
|
[Coke] |
moritz_: yup. I can definitely clean tht up. |
| 20:08 |
|
|
pyrimidine joined #perl6 |
| 20:09 |
|
ash_ |
since they are attributes, they both end up calling " getattribute $P34, self, "$a" " or getattribute $P34, self, "$!b" |
| 20:09 |
|
ash_ |
so functionally, they are equivalent |
| 20:10 |
|
colomon |
actually, op= defaults to failing at the moment if there isn't a 0-arg form of the operator defined. |
| 20:10 |
|
colomon |
patches welcome. ;) |
| 20:11 |
|
ash_ |
hmm, thats odd, one minor difference between the two, one made a find_lex lookup for "self" the other just used self |
| 20:14 |
|
colomon |
(defaults to failing if $a (of $a op= $b) isn't defined, that is.) |
| 20:14 |
|
|
wolv joined #perl6 |
| 20:17 |
|
jnthn |
Hold on tight... :-) |
| 20:17 |
|
|
_buno_ joined #perl6 |
| 20:17 |
|
* jnthn |
pushes |
| 20:20 |
|
dalek |
rakudo: cdd3430 | jonathan++ | src/ (6 files): |
| 20:20 |
|
dalek |
rakudo: A bunch of changes required to make us run under latest Parrot, mostly because we relied wrongly on :method's old semantics of putting things into the namespace, and the 4-argument substr op has gone. |
| 20:20 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]14dad56c28dc86939 |
| 20:20 |
|
dalek |
rakudo: 9d927ac | jonathan++ | build/PARROT_REVISION: |
| 20:20 |
|
dalek |
rakudo: Bump PARROT_REVISION to latest Parrot. |
| 20:20 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]4848849b132cacacb |
| 20:20 |
|
dalek |
rakudo: 6e91b9b | jonathan++ | (10 files): |
| 20:20 |
|
dalek |
rakudo: Merge branch 'master' of git github.com:rakudo/rakudo |
| 20:20 |
|
dalek |
rakudo: review: http://github.com/rakudo/rakud[…]55dcd187ca4b095f4 |
| 20:24 |
|
|
ash_ joined #perl6 |
| 20:31 |
|
lichtkind |
there is no slurp in list context? |
| 20:31 |
|
lichtkind |
ah lines is the command |
| 20:32 |
|
TimToady |
rakudo: say infix:<min>() |
| 20:32 |
|
p6eval |
rakudo c4857a: OUTPUT«Inf» |
| 20:32 |
|
TimToady |
rakudo: say infix:<max>() |
| 20:32 |
|
moritz_ |
there is no inward flowing context at all |
| 20:32 |
|
p6eval |
rakudo c4857a: OUTPUT«-Inf» |
| 20:34 |
|
|
am0c joined #perl6 |
| 20:34 |
|
|
spinclad joined #perl6 |
| 20:35 |
|
[Coke] |
How often do Codestrings have to return their string value more than once, I wonder. |
| 20:36 |
|
moritz_ |
jnthn: rx.t fails here... |
| 20:36 |
|
moritz_ |
Unrecognized backslash sequence: '\e' at line 1171, near "def\" ~~ /c" |
| 20:36 |
|
moritz_ |
probably because pmichaud has removed that stuff from NQP-rx |
| 20:37 |
|
moritz_ |
need to add that to rakudo |
| 20:37 |
|
* moritz_ |
will take a look tomorrow |
| 20:39 |
|
|
_buno_ joined #perl6 |
| 20:43 |
|
jnthn |
moritz_: Here too. |
| 20:43 |
|
jnthn |
moritz_: oh argh...why remove it rather than move it. :-/ |
| 20:43 |
|
jnthn |
moritz_++ |
| 20:44 |
|
|
adamsj joined #perl6 |
| 20:45 |
|
colomon |
moritz_: was just thinking that fixing op= to work fully when op() isn't defined might be a good LHF for your blog project. |
| 20:46 |
|
moritz_ |
colomon: then add it to the pugs repo, misc/helpnow/README |
| 20:46 |
|
moritz_ |
that's where I collect ideas for that project |
| 20:47 |
|
moritz_ |
colomon: I've now closed the masabug wrt op= defaults |
| 20:48 |
|
* moritz_ |
-> bed |
| 20:52 |
|
lichtkind |
good night moritz_ |
| 20:52 |
|
* lichtkind |
added term phaser to index |
| 20:53 |
|
|
justatheory joined #perl6 |
| 20:54 |
|
lichtkind |
jnthn: hej |
| 20:56 |
|
|
chitragupt joined #perl6 |
| 20:56 |
|
jnthn |
lichtkind: hej hej |
| 20:58 |
|
pugssvn |
r30507 | lwall++ | [prior.t] fix parsefail |
| 21:01 |
|
|
[particle] joined #perl6 |
| 21:02 |
|
|
Intensity joined #perl6 |
| 21:03 |
|
pugssvn |
r30508 | lwall++ | [charset.t] fix parsefail |
| 21:03 |
|
|
ReiniUrban joined #perl6 |
| 21:26 |
|
|
k23z__ joined #perl6 |
| 21:28 |
|
|
[particle] joined #perl6 |
| 21:28 |
|
|
alexn_org joined #perl6 |
| 21:31 |
|
|
[particle] joined #perl6 |
| 21:34 |
|
dalek |
csmeta: r225 | diakopter++ | trunk/Sprixel/ (4 files): |
| 21:34 |
|
dalek |
csmeta: [perlesque] try to fix mono's not-quite-as-correct-as-.NET's |
| 21:34 |
|
dalek |
csmeta: Type.IsAssignableFrom(Type t) by creating my own edition. |
| 21:34 |
|
dalek |
csmeta: stop catching exceptions in the reified frame trampoline; test for null instead. |
| 21:34 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=225 |
| 21:35 |
|
|
pmurias joined #perl6 |
| 21:35 |
|
pmurias |
diakopter: sprixel HEAD is broken |
| 21:37 |
|
diakopter |
fixing |
| 21:37 |
|
diakopter |
:) |
| 21:37 |
|
diakopter |
sry |
| 21:37 |
|
diakopter |
(it worked on .NET but not on mono) |
| 21:38 |
|
diakopter |
pmurias: fixed :D |
| 21:38 |
|
dalek |
csmeta: r226 | diakopter++ | trunk/Sprixel/RunSharp/Conversion.cs: |
| 21:38 |
|
dalek |
csmeta: [perlesque] fix |
| 21:38 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=226 |
| 21:41 |
|
diakopter |
pmurias: and yet still I get this: |
| 21:41 |
|
diakopter |
perlesque: my $a = sub (string $b) { say($b ~ $b); return 1 }; my $c = $a.Bind(frame, 'hi'); $c.Exec(); |
| 21:41 |
|
p6eval |
perlesque: OUTPUT«Unhandled Exception: System.MissingMemberException: Cannot find property Bind in _IClosure_2 at TriAxis.RunSharp.TypeInfo.FindProperty (System.Type t, System.String name, TriAxis.RunSharp.Operand[] indexes, Boolean static) [0x00000] in <filename unknown>:0  at |
| 21:41 |
|
p6eval |
..TriAxis.RunSharp… |
| 21:41 |
|
diakopter |
but the same thing works fine in .NET |
| 21:41 |
|
diakopter |
sigh. |
| 21:41 |
|
|
kensanata joined #perl6 |
| 21:42 |
|
pmurias |
diakopter: you commit fix the bug here |
| 21:42 |
|
pmurias |
diakopter: see the daily failing test |
| 21:42 |
|
diakopter |
ok |
| 21:43 |
|
wolv |
are the perlesque .cs files generated from something? they don't look exactly something I'd want to code... :) |
| 21:44 |
|
dalek |
csmeta: r227 | pawelmurias++ | trunk/Sprixel/ (2 files): |
| 21:44 |
|
dalek |
csmeta: failing test with P6capture |
| 21:44 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=227 |
| 21:44 |
|
pmurias |
wolv: you mean the grammar ones? |
| 21:44 |
|
wolv |
yes |
| 21:44 |
|
diakopter |
heh |
| 21:44 |
|
wolv |
(the only ones under Perlesque/ I think?) |
| 21:44 |
|
diakopter |
it's code-gen-gen |
| 21:45 |
|
diakopter |
twice-deferred code |
| 21:45 |
|
diakopter |
input language syntax directly transformed to runtime code, via parameterized codegen, where the compiler action routines themselves are also codegen-d |
| 21:46 |
|
wolv |
ah, thanks |
| 21:46 |
|
diakopter |
wolv: you're the first that understood my explanation of that |
| 21:46 |
|
diakopter |
my (first) explanation, I mean. |
| 21:47 |
|
wolv |
I took that CS course ;) |
| 21:47 |
|
diakopter |
wait, what? |
| 21:47 |
|
diakopter |
what cs course |
| 21:47 |
|
pmurias |
somebody in your uni suggested implementing stuff that way?! |
| 21:48 |
|
diakopter |
heh |
| 21:48 |
|
wolv |
mostly I was joking. but I did read up on all kinds of weird stuff during the compiler course... |
| 21:48 |
|
* diakopter |
hasn't taken a cs course |
| 21:48 |
|
diakopter |
<-- (and it shows) |
| 21:49 |
|
pmurias |
what did you study? |
| 21:49 |
|
wolv |
me? |
| 21:49 |
|
diakopter |
nothing, but I got a degree in business (finance/investments) |
| 21:49 |
|
diakopter |
actually, during college I studied theology/hermeneutics |
| 21:49 |
|
wolv |
by doing nothing? :) |
| 21:50 |
|
diakopter |
yeah; the degree isn't worth much. |
| 21:50 |
|
|
bradb left #perl6 |
| 21:50 |
|
diakopter |
(or anything, at this point) |
| 21:53 |
|
diakopter |
pmurias: actually it's not parsefailing |
| 21:53 |
|
diakopter |
it runs |
| 21:54 |
|
pmurias |
yes |
| 21:54 |
|
diakopter |
the positionals member is not initialized |
| 21:54 |
|
diakopter |
want me to fix it? |
| 21:55 |
|
pmurias |
ok |
| 21:55 |
|
diakopter |
also I need to move the "Catch" in TopLevel.cs up several lines |
| 21:55 |
|
diakopter |
so it doesn't catch that exception |
| 21:55 |
|
pmurias |
you shouldn't catch all exceptions |
| 21:55 |
|
diakopter |
that's what I said |
| 21:55 |
|
pmurias |
the parse ones should inherit from a parse exception subclass |
| 21:55 |
|
diakopter |
yes, someday. |
| 21:56 |
|
diakopter |
here's the error it throws now: |
| 21:56 |
|
diakopter |
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocati |
| 21:56 |
|
diakopter |
on. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Sprixel.Runtime.P6capture.add_positional(P6object pos) in C:\Users\mwilson\Documents\src\csmeta\Sprixel\src\Types\ |
| 21:56 |
|
diakopter |
P6capture.cs:line 11 |
| 21:57 |
|
diakopter |
(fixing and comitting) |
| 21:59 |
|
diakopter |
sigh. |
| 21:59 |
|
pmurias |
? |
| 21:59 |
|
diakopter |
svn up :P |
| 22:00 |
|
pmurias |
i don't do svn up |
| 22:00 |
|
diakopter |
what do you do |
| 22:00 |
|
pmurias |
i use git svn rebase |
| 22:00 |
|
diakopter |
ok |
| 22:00 |
|
diakopter |
:) |
| 22:00 |
|
pmurias |
as i'm not on speaking terms with the svn CLI client |
| 22:01 |
|
diakopter |
lol. |
| 22:03 |
|
dalek |
csmeta: r228 | diakopter++ | trunk/Sprixel/ (3 files): |
| 22:03 |
|
dalek |
csmeta: [perlesque] program exceptions aren't caught as a "parsefail" |
| 22:03 |
|
dalek |
csmeta: fix P6capture to initialize its positionals member. |
| 22:03 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=228 |
| 22:03 |
|
dalek |
csmeta: r229 | diakopter++ | trunk/Sprixel/Main.cs: |
| 22:03 |
|
dalek |
csmeta: [perlesque] disable debug mode |
| 22:03 |
|
dalek |
csmeta: review: http://code.google.com/p/csmet[…]urce/detail?r=229 |
| 22:06 |
|
|
[particle] joined #perl6 |
| 22:06 |
|
|
sahadev left #perl6 |
| 22:13 |
|
diakopter |
wolv: much of that action code can feasibly be extracted out into combinators in only singly-deferred C# |
| 22:13 |
|
diakopter |
so that one could call a routine like c.DescendNewLexicalScope() |
| 22:14 |
|
diakopter |
instead of the 200-character 4 lines |
| 22:14 |
|
wolv |
heh |
| 22:18 |
|
|
pyrimidine left #perl6 |
| 22:29 |
|
|
crythias joined #perl6 |
| 22:45 |
|
|
crythias left #perl6 |
| 22:57 |
|
|
wknight8111 joined #perl6 |
| 22:57 |
|
|
rgrau__ joined #perl6 |
| 23:17 |
|
|
cls_bsd joined #perl6 |
| 23:33 |
|
dalek |
book: 1106aab | chromatic++ | src/basics.pod: |
| 23:33 |
|
dalek |
book: Edited chapter. It looks good. |
| 23:33 |
|
dalek |
book: review: http://github.com/perl6/book/c[…]0b48d5ea93ca080ee |
| 23:35 |
|
|
crythias1 joined #perl6 |
| 23:41 |
|
|
cls_bsd joined #perl6 |
| 23:45 |
|
|
jaldhar joined #perl6 |
| 23:49 |
|
pugssvn |
r30509 | lwall++ | [STD] allow subscripts on regex variables so $x[0] isn't taken as a character class |
| 23:49 |
|
pugssvn |
r30509 | [STD,Cursor] revamp of character class parsing to be more helpful/correct |
| 23:54 |
|
pugssvn |
r30510 | lwall++ | [S03] remove p5=> description since it's not supported in core |
| 23:54 |
|
|
kst joined #perl6 |