|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 26 July 2010. |
|||
|
00:01
gabiruh joined
00:08
Bucciarati joined
|
|||
| ingy | rakudo: class C { has $.h }; say C.new(h=>'v').perl | 00:17 | |
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => "v")» | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C.new(h=>'v').m | 00:18 | |
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => "v")» | ||
|
00:20
whee joined
|
|||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C().m | 00:20 | |
| p6eval | rakudo 9808d7: OUTPUT«Could not find sub &C in main program body at line 22:/tmp/YzGyxeqMBj» | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C.m | 00:21 | |
| p6eval | rakudo 9808d7: OUTPUT«C» | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C.m(:h('v')) | ||
| jnthn -> sleep | |||
| p6eval | rakudo 9808d7: OUTPUT«C» | ||
| ingy | nite jnthn! | ||
| whee | is p6eval source available somewhere for running elsewhere? | 00:22 | |
| ingy | what is :foo() ? | ||
| I'm wondering how to set :actions and :rule on a parser object before calling .parse() | 00:24 | ||
| Tene | ingy: those are arguments to .parse | 00:25 | |
|
00:28
ruoso joined
|
|||
| ingy | Tene: yeah I know... I was just wondering why they begin with ':' | 00:48 | |
| Tene | ingy: named arguments | 00:49 | |
|
00:49
masonkramer joined
|
|||
| ingy | ok | 00:49 | |
|
00:49
mikelifeguard left,
Eddward joined
|
|||
| Tene | I wonder if you can use .assuming on methods... | 00:49 | |
| sorear | sure | 00:50 | |
| methods are just subs | |||
| whee: the source is available, it's in misc/p6eval in the pugs repo | 00:51 | ||
| whee: if you want to run it elsewhere, you probably will need help from moritz | |||
| ingy | Tene: so is .parse a "class" method? or is there some instance? | ||
| sorear | there's no difference in Perl 6 | 00:52 | |
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C.new().m | ||
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => Any)» | ||
| sorear | every class is an instance of itself | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; C.m | ||
| p6eval | rakudo 9808d7: OUTPUT«C» | ||
| whee | sorear: that sounds like a challenge ;) | 00:53 | |
| ingy | is that a bug then? | ||
| sorear | ingy: no | ||
| C is a perfectly good instance of C | |||
| you can call any method in class C on C itself | |||
| ingy | why does it .perl different? | 00:54 | |
|
00:54
bjarneh joined
|
|||
| Tene | rakudo: my @a = 1..10; my &b = @a.pick.assuming(:repl); say &b(5).perl; | 00:54 | |
| p6eval | rakudo 9808d7: OUTPUT«Method 'assuming' not found for invocant of class 'Integer' in main program body at line 22:/tmp/__25n3Fn0W» | ||
| tylercurtis | ingy: Because .perl generally gives you something you can eval to get the original. | ||
| PerlJam | rakudo: class X {}; say X.WHAT; say X.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«X()X» | ||
| ingy | rakudo: class X {}; say X.WHAT; say X.perl; say X.new().perl | 00:55 | |
| p6eval | rakudo 9808d7: OUTPUT«X()XX.new()» | ||
| ingy | I'm not sure I get it, but it's no big deal | 00:56 | |
| Tene | ingy: the class object is an undefined prototype. It has no storage, and therefore no attributes. | ||
| ingy | Tene: so it's not really an object of itself? | 01:01 | |
| rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C; C.h = 3; say $c.perl | 01:02 | ||
|
01:02
tyru joined
|
|||
| p6eval | rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h in main program body at line 22:/tmp/chNB1qAqId» | 01:02 | |
| ingy | heh | ||
| PerlJam | tylercurtis: use classify(~*) instead of classify({$_}) (golf is fun :) | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C.new; C.h = 3; say $c.perl | 01:03 | |
| p6eval | rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h in main program body at line 22:/tmp/BeWfs1vOSn» | ||
| ingy | grr | ||
| rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C; $c.h = 3; say $c.perl | |||
| p6eval | rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h in main program body at line 22:/tmp/xRfHrbaKa6» | ||
| ingy | rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C.new; $c.h = 3; say $c.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/qKlvdMyBh3» | ||
| Tene | has $.h is rw; | ||
| ingy | rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new; $c.h = 3; say $c.perl | 01:04 | |
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => 3)» | ||
| Tene | or initialize it, .new(:h(3)) | ||
| ingy | that's interesting | ||
| rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(:h(3); say $c.perl | 01:05 | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
| ingy | rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(:h(3)); say $c.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => 3)» | ||
| ingy | rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(h=>3); say $c.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«C.new(h => 3)» | ||
| ingy | => wins :P | ||
| ingy golfs | 01:06 | ||
| tylercurtis | PerlJam++ | 01:10 | |
| PerlJam | tylercurtis: and I *think* that a bare slurp will do the same as slurp(@*ARGS || die) | ||
| so, if you don't mind the slight semantic change ... | 01:11 | ||
| tylercurtis | PerlJam: slurp() appears to require an argument. | ||
| Eddward | Please forgive a stupid question, but what does 'PersonsName++' mean? I'm guessing it's a compliment? | 01:14 | |
| PerlJam | Hmm. I coulda sworn slurp was like lines | ||
| Eddward: karma. yes, it's a compliment. | |||
| tylercurtis | karma PerlJam # presumably one of the bots keeps track of karma. | 01:15 | |
| PerlJam | yeah, but I never remember which one :) | ||
| Eddward | thanks, I was just wondering. | ||
| tylercurtis | And I guess that's not the incantation to find out. :) | 01:16 | |
| Eddward | I've seen it in blog posts and other places too. | ||
| PerlJam | dalek: karma pmichaud | 01:17 | |
| hugme: karma pmichaud | |||
| oh well | |||
| tylercurtis | PerlJam: it appears to be specced to slurp $*ARGFILES by default. multi slurp (IO $fh = $*ARGFILES, Bool :$bin = False, Str :$enc = "Unicode", --> Str|Buf ) | 01:18 | |
|
01:21
masonkramer joined
|
|||
| PerlJam & | 01:24 | ||
|
01:31
snarkyboojum joined
01:37
whee joined
01:39
felliott joined
01:41
mmpf joined
01:44
wormwood joined
02:07
whee joined
|
|||
| colomon | anyone out there tried the new Math::Vector module? | 02:08 | |
| I want to know if it's reasonably put together before I churn out a couple more modules on the same model... | |||
|
02:09
ruoso joined
|
|||
| snarkyboojum | colomon: FYI it's not on modules.perl6.org because poc-projects.list is missing a comma before your Math-Vector | 02:16 | |
| (I'm guessing) | |||
| (at the end of the temporal-utils line) | 02:17 | ||
| tylercurtis | How would one go about getting a commit bit to pugssvn? | ||
| colomon | snarkyboojum++ | ||
| just pushed the commas in the right places. | 02:19 | ||
| tylercurtis: you would ask someone who already had one. | |||
| presuming they remember how to do it. :( | |||
| tylercurtis | colomon: It's that simple? | 02:21 | |
| tylercurtis wants to write spectests for Path so he can try implementing it. | |||
| colomon | pugssvn? you bet. | ||
| we give out commitbits at the drop of a hat. | |||
| but I've not actually done it before, so it may take me a minute to figure out the procedure. | |||
| perigrin drops a hat. | |||
| snarkyboojum | colomon: awesome test suite on Math::Vector :) | 02:22 | |
| colomon | snarkyboojum: I didn't write it, it's from lastofthecarelessmen.blogspot.com/ | ||
| snarkyboojum | colomon: was just comparing those ;) | 02:23 | |
| colomon | He seems to have abandoned it, and I just ported what he had to the latest Rakudo and repackaged it as a standalone module. | ||
| snarkyboojum | colomon: so is this a re-write? | ||
| colomon: ah cool | |||
| colomon | mostly it's a tweak. | ||
|
02:23
tedv joined
|
|||
| snarkyboojum | colomon: is carlins around at all? because I've forked his HTTP::Client module as well | 02:23 | |
| or do I have two different people mixed up :) | 02:24 | ||
| colomon | he had a whole bunch of semi-related stuff in the one Vector package, I'm trying to break it out and make the pieces stand alone. | ||
| I haven't seen carlins any time recently. | |||
| snarkyboojum | oops - I'm mixing people up | ||
| colomon: sweet re breaking it out to a standalone bit | |||
| colomon | tylercurtis: pm me your e-mail address and desired username and I'll add you to pugssvn. (found the page and managed to log in.) | 02:25 | |
| snarkyboojum: does the Math::Vector package look okay to you? If it seems reasonably put together, I can go back into SF's code and crank out Math::Polynomial as well. | 02:27 | ||
| s/crank/break/ | 02:28 | ||
| snarkyboojum | colomon: only had a superficial look/play, but looks nice | 02:30 | |
| tylercurtis | colomon++ | ||
| colomon | tylercurtis: just following au|irc++'s good example. | 02:32 | |
| tylercurtis | colomon: the link in the email was broken, but removing the port number seems to have worked. Who should I contact about that? au|irc? | 02:35 | |
| colomon | tylercurtis: I have no idea who maintains it now. Seems unlikely to be au|irc, but she might know... | 02:36 | |
| tylercurtis | If I add a new spectest that probably isn't implemented yet by anyone, I should fudge it, right? For which implementations? | 03:19 | |
| colomon | rakudo for sure. | 03:22 | |
| I'm not sure if sorear's project is using the fudging system or not. | 03:23 | ||
| I wouldn't worry about pugs, etc.. | |||
| (or perhaps more accurately, I don't worry about pugs, etc, and no one has complained yet.) | 03:24 | ||
| tylercurtis | Thanks. For something like qp{foo} that isn't yet supported by the parser, is '#?rakudo: eval "Rakudo doesn't parse this yet."' the appropriate way to fudge it? | 03:27 | |
| colomon | I've always used #?rakudo skip "Rakudo doesn't parse this yet." | 03:30 | |
| I dont know eval at all. | |||
| (in a fudging context) | |||
| afk # bedtime | 03:32 | ||
|
03:33
bpalmer joined
03:50
sftp left
|
|||
| colomon | back # rocking toddler | 03:52 | |
|
03:54
sftp joined
04:02
sftp joined,
bpalmer joined,
ruoso joined,
wormwood joined,
mmpf joined,
felliott joined,
tyru joined,
bjarneh joined,
Eddward joined,
Bucciarati joined,
gabiruh joined,
Patterner joined,
justatheory joined,
hudnix joined,
rgrau_ joined,
mberends joined,
dual joined,
Trashlord joined,
ethel joined,
dukeleto joined,
ash___ joined,
PacoLinux joined,
molecules joined,
dalek joined,
cono joined,
phenny joined,
saaki joined,
REPLeffect joined,
jjore_ joined,
Leonidas joined,
mathw joined,
jnthn joined,
Snowclone joined,
tylercurtis joined,
Chandon joined,
am0c joined,
eternaleye joined,
sawyer_ joined,
sboyette joined,
perigrin joined,
xinming_ joined,
mj41 joined,
salv0 joined,
dolmen_ joined,
Maddingue joined,
ldd joined,
mulander joined,
hercynium joined,
[particle] joined,
xabbu42 joined,
jww joined,
niko joined,
rgrau joined,
dimid joined,
mtve joined,
krakan joined,
cbk joined,
tewk joined,
frooh joined,
[Coke] joined,
adhoc joined,
cognominal joined,
ingy joined,
lestrrat joined,
s1n joined,
constant joined,
ggoebel joined,
pragma_ joined,
jedai joined,
wolverian joined,
m6locks joined,
szbalint joined,
Juerd joined,
slavik joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
TiMBuS joined,
hugme joined,
cosimo joined,
TimToady joined,
CSJewell joined,
szabgab joined,
cotto joined,
PerlJam joined,
hsb joined,
diakopter joined,
kst joined,
sunnavy_ joined,
sorear joined,
cxreg joined,
au|irc joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
colomon joined,
sbp joined,
lucs joined,
tomaw joined,
itz joined,
frodwith joined,
Grrrr joined,
exodist joined,
_sri joined,
huf joined,
Khisanth joined,
araujo joined,
HarryS joined,
rhr joined,
BinGOs joined,
Tene joined,
avar joined,
pmichaud joined,
allbery_b joined,
moritz_ joined,
yahooooo joined
04:05
REPLeffect joined,
Chillance joined
04:06
Chillance joined,
bpalmer joined,
ruoso joined,
mmpf joined,
felliott joined,
Bucciarati joined,
gabiruh joined,
Patterner joined,
justatheory joined,
hudnix joined,
rgrau_ joined,
dual joined,
Trashlord joined,
ethel joined,
dukeleto joined,
ash___ joined,
PacoLinux joined,
molecules joined,
cono joined,
mathw joined,
jnthn joined,
Snowclone joined,
tylercurtis joined,
Chandon joined,
sawyer_ joined,
sboyette joined,
mj41 joined,
salv0 joined,
dolmen_ joined,
Maddingue joined,
ldd joined,
mulander joined,
hercynium joined,
[particle] joined,
jww joined,
niko joined,
rgrau joined,
[Coke] joined,
cognominal joined,
lestrrat joined,
constant joined,
wolverian joined,
m6locks joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
TimToady joined,
szabgab joined,
hsb joined,
kst joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
colomon joined,
sbp joined,
lucs joined,
tomaw joined,
itz joined,
frodwith joined,
_sri joined,
Khisanth joined,
araujo joined,
HarryS joined,
BinGOs joined,
avar joined,
pmichaud joined,
moritz_ joined,
yahooooo joined
04:08
dalek joined,
Tene_ joined,
frooh_ joined,
Chillance joined,
bpalmer joined,
ruoso joined,
mmpf joined,
felliott joined,
Bucciarati joined,
gabiruh joined,
Patterner joined,
justatheory joined,
hudnix joined,
rgrau_ joined,
dual joined,
Trashlord joined,
ethel joined,
dukeleto joined,
ash___ joined,
PacoLinux joined,
molecules joined,
cono joined,
mathw joined,
jnthn joined,
Snowclone joined,
tylercurtis joined,
Chandon joined,
sawyer_ joined,
sboyette joined,
mj41 joined,
salv0 joined,
dolmen_ joined,
Maddingue joined,
ldd joined,
mulander joined,
hercynium joined,
[particle] joined,
jww joined,
niko joined,
rgrau joined,
[Coke] joined,
cognominal joined,
lestrrat joined,
constant joined,
wolverian joined,
m6locks joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
TimToady joined,
szabgab joined,
hsb joined,
kst joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
colomon joined,
sbp joined,
lucs joined,
tomaw joined,
itz joined,
frodwith joined,
_sri joined,
Khisanth joined,
araujo joined,
HarryS joined,
BinGOs joined,
avar joined,
pmichaud joined,
moritz_ joined,
yahooooo joined
04:09
sunnavy joined,
kloeri left
04:10
sftp_ joined,
pragma_ left,
knewt2 left,
kcwu left,
gabiruh left,
Woody2143 left,
araujo left,
buu left,
Khisanth left,
avar left,
f00li5h left,
shade\ left,
nadim left
04:11
Juerd_ joined
04:12
Juerd joined,
sunnavy joined,
saaki joined,
perigrin joined,
tewk joined,
ingy joined,
cotto joined
04:13
pragma_ joined
04:14
dimid joined,
nothingmuch left
04:15
tyru left
04:17
s1n left,
s1n joined,
cbk joined
04:18
au|irc_ joined,
dalek joined,
Tene_ joined,
frooh_ joined,
Chillance joined,
mmpf joined,
felliott joined,
Patterner joined,
justatheory joined,
hudnix joined,
rgrau_ joined,
dual joined,
Trashlord joined,
ethel joined,
ash___ joined,
PacoLinux joined,
molecules joined,
cono joined,
jnthn joined,
Snowclone joined,
tylercurtis joined,
sawyer_ joined,
sboyette joined,
salv0 joined,
dolmen_ joined,
Maddingue joined,
hercynium joined,
[particle] joined,
niko joined,
rgrau joined,
[Coke] joined,
constant joined,
wolverian joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
TimToady joined,
hsb joined,
kst joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
sbp joined,
tomaw joined,
_sri joined,
Khisanth joined,
araujo joined,
avar joined,
moritz_ joined,
yahooooo joined
|
|||
| pugssvn | r31844 | tcurtis++ | [t/spec] Start adding fudged(for Rakudo) Path tests. | 04:24 | |
|
04:48
ashleydev joined
04:59
molaf joined
05:05
Guest10341 joined
05:06
buu joined
05:11
plobsing joined
05:20
gfx joined
05:35
colomon_ joined
05:47
kaare joined
05:49
meppl joined
05:54
Su-Shee joined
|
|||
| sorear | aaaah bad net day | 06:00 | |
| colomon: here? | |||
|
06:07
uniejo joined
06:26
revdiablo joined
06:39
daxim joined
|
|||
| moritz_ | good morning | 06:40 | |
|
06:43
baest joined
|
|||
| moritz_ | tylercurtis: just sent you another commitbit for pugscode, hadn't finished backlogging yet :-) - just ignore it | 06:46 | |
|
06:47
bpalmer left
|
|||
| tylercurtis | moritz_: alright. :) | 06:47 | |
| moritz_ | tylercurtis: btw new test files don't need fudging - rakudo uses a whitelist to decide which tests to run | ||
| tylercurtis | moritz_: I realized that after I committed it. I'll unfudge it when I work on it some more. | 06:48 | |
| moritz_ | great | 06:49 | |
| sorear | hello moritz | 06:50 | |
| moritz_ | hi sorear | 06:53 | |
|
06:56
slavik joined
07:03
foodoo joined
|
|||
| dalek | ecza: 0fe5cb2 | sorear++ | (3 files): New pass-aware compiler driver |
07:11 | |
| pugssvn | r31845 | azawawi++ | [docs/feather] ran "perl gen.pl in pugs/docs/feather/~" | 07:14 | |
| sorear | rakudo: say Whatever === * | 07:19 | |
| p6eval | rakudo 9808d7: OUTPUT«_block114» | ||
| sorear | rakudo: say Whatever.defined | ||
| p6eval | rakudo 9808d7: OUTPUT«0» | ||
|
07:19
snarkyboojum joined
|
|||
| sorear | rakudo: my $x = *; say $x.defined | 07:19 | |
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| sorear | Does * have a name? | ||
| rakudo: my $x = *; my $y = *; say $x === $y; | 07:20 | ||
| p6eval | rakudo 9808d7: OUTPUT«0» | ||
| sorear | ah, looks like 'Whatever.new' will do | ||
| pugssvn | r31846 | moritz++ | [t/spec] unfudge series tests for Rakudo | 07:21 | |
|
07:22
Ross joined
07:25
timbunce joined
|
|||
| mulander | hi all | 07:27 | |
| 10 failed tests on rakudo make spectest | |||
| www.nopaste.pl/s2p | 07:28 | ||
| I believe all of the tests failed because of the strict networking rules on this host. | |||
| sorear | it's pretty much to be expected that ~10 spectests will fail on any given user's machine | 07:32 | |
| setting up the spectest system is ... not as exact a process as we'd like | |||
| mulander | I see | ||
| well this host dissallows almost any tcp/ip, udp, icmp communication to the outside :) | |||
| sorear | though I don't think I've seen *that* failure before | 07:33 | |
| mulander | that's why I guessed it's the reason for the failure :) | ||
| sorear | rakudo: say Whatever.^parents.Str | ||
| p6eval | rakudo 9808d7: OUTPUT«Any() Mu()» | ||
| snarkyboojum | mulander: those tests should just talk to loopback I think | 07:40 | |
|
07:54
tadzik joined
|
|||
| mathw | o/ | 08:01 | |
| sorear | hi! | 08:02 | |
|
08:02
gfx joined
|
|||
| frettled | ho! | 08:02 | |
| (it's off to work we go) | 08:03 | ||
| tadzik | hey | 08:07 | |
|
08:14
thebird joined
|
|||
| jnthn | morning, #perl6 | 08:22 | |
|
08:22
jww left
|
|||
| mathw | o/jnthn | 08:22 | |
|
08:23
phenny joined
|
|||
| jnthn | o/ mathw | 08:23 | |
| mathw | Exciting times... | ||
| I'm going to try and put together some sort of documentation for Form.pm tonight | 08:24 | ||
| Is last week's release going to be the compiler version for R*, or will there be another one? | |||
| jnthn | mathw: No, it won't be - we'll I guess have a compiler release cut just for R*. | 08:25 | |
| mathw | I thought so, I caught something the other day about fixing something for R* | 08:26 | |
| Just thought I'd check what I should be verifying Form.pm against to make sure it'll work with * | |||
| sorear is testing Whatever currying for niecza | |||
| it's actually a lot simpler to implement than it sounds | |||
| mathw | A lot of things are simpler when you're transforming the AST | 08:27 | |
|
08:27
pmurias joined
|
|||
| pmurias | ruoso: hi | 08:27 | |
| ruoso: do you know where is the repo for v6.pm? | |||
|
08:28
Ross^ joined
|
|||
| cosimo | moritz_: you interested in json 'make test' failures in t/04-roundtrip.t ? | 08:37 | |
|
08:37
snarkyboojum_ joined
08:38
dakkar joined
08:41
zulon joined
|
|||
| moritz_ | cosimo: they are already reported | 08:41 | |
| cosimo: I'm interested in fixes, though :-) | |||
| cosimo | moritz_: cool | 08:42 | |
| moritz_ | afaict they are primarily due to not correctly round-tripped number types | ||
| cosimo | i'll see if got a round tuit | ||
| moritz_ | 1 -> '1' -> 1.0e0 (ie Num) or so | 08:43 | |
| or other types, like Array -> [1,2,3] -> List | |||
| cosimo | moritz_: 4.0 -> '4' but expected is '4/1' | 08:44 | |
| moritz_ | rakudo: ~4.0 | ||
| p6eval | rakudo 9808d7: ( no output ) | ||
| moritz_ | rakudo: say ~4.0 | ||
| p6eval | rakudo 9808d7: OUTPUT«4» | ||
| frettled | jnthn: It just occurred to me that now that we have no ka[mn]elbullar, we're … no-ops! | ||
| sorear | great errors: Failed to resolve lexical &infix:<&infix:<=>> | ||
| moritz_ | rakudo: say 4.0.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«4/1» | 08:45 | |
| dolmen_ | rakudo: say 4e0.perl | ||
| p6eval | rakudo 9808d7: OUTPUT«4» | ||
| dolmen_ | rakudo: say 4.0e0.perl | 08:46 | |
| p6eval | rakudo 9808d7: OUTPUT«4» | ||
| moritz_ | JSON has only one number type | ||
| dolmen_ | rakudo: say 4.0e0 == 4e0 | ||
| moritz_ | I think the correct thing would be not to test the exact type, but just that $got == $expected if $exepcted ~~ Numeric | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| dolmen_ | rakudo: say True | 08:47 | |
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| moritz_ | hugme: add cosimo to json | ||
| hugme hugs cosimo. Welcome to json! | |||
| jnthn | frettled: oh noes! | ||
| dolmen_ | rakudo: multi Str(True) { "True" }; say True; | 08:48 | |
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| dolmen_ | rakudo: multi Str(True) { "True" }; say Str(True); | ||
| p6eval | rakudo 9808d7: OUTPUT«True» | ||
| dolmen_ | rakudo: multi Str(True) { "True" }; say ~True; | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | 08:49 | |
| cosimo | moritz_: thanks, i'll have a look | ||
| dolmen_ | how can I override "~True" ? | ||
| moritz_ | since JSON has only a few data types, it shouldn't be hard to write a custom comparison function | 08:50 | |
| rakudo: Bool does role { method Str() { $.perl } }; say ~Bool::True | |||
| colomon | o/ | ||
| p6eval | rakudo 9808d7: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass in 'infix:<does>' at line 6379:CORE.setting in 'infix:<does>' at line 525:CORE.setting in main program body at line 22:/tmp/vsMNEIdThV» | ||
| moritz_ | \\o | ||
|
08:50
rindolf joined
|
|||
| moritz_ | rakudo: True does role { method Str() { $.perl } }; say ~Bool::True | 08:51 | |
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| moritz_ | dolmen_: seems to require a rakudo patch | ||
| jnthn | moritz_: Mixing in to type object = bad idea. | ||
| dolmen_ | rakudo: True.perl.say | ||
| p6eval | rakudo 9808d7: OUTPUT«Bool::True» | ||
| moritz_ | jnthn: yeah, but the error message could be more awesome :-) | ||
| jnthn | moritz_: I agree. It fails for the wrong reason ATM, I suspect. | 08:52 | |
| sorear | rakudo: say ~True | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| sorear | rakudo: say True | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| moritz_ | rakudo: say True.Str | ||
| p6eval | rakudo 9808d7: OUTPUT«Bool::True» | 08:53 | |
| moritz_ | the method is there already, but the vtable override is missing, it seems | ||
| I suspect it uses the get_string vtable from Integer | |||
|
08:54
snarkyboojum joined
|
|||
| moritz_ | rakudo: say True.Stringy | 08:54 | |
| p6eval | rakudo 9808d7: OUTPUT«Method 'Stringy' not found for invocant of class 'Bool' in main program body at line 22:/tmp/aCjQjsaTbt» | ||
| sorear | moritz_: re. t/0* in rakudo | 08:55 | |
| moritz_: that's basically what test.pl in niecza is | |||
| except I have it as one file due to abysmal O(1) factors in the compiler | |||
| dolmen_ | rakudo: (~True).WHAT.say | 08:56 | |
| p6eval | rakudo 9808d7: OUTPUT«Str()» | ||
| cosimo | rakudo: say ~"a" | 09:00 | |
| p6eval | rakudo 9808d7: OUTPUT«a» | ||
| cosimo | rakudo: say ~"a","b" | ||
| p6eval | rakudo 9808d7: OUTPUT«ab» | ||
| cosimo | rakudo: say ~88.88 | 09:01 | |
| p6eval | rakudo 9808d7: OUTPUT«88.88» | ||
| cosimo | rakudo: say ~88.000 | ||
| moritz_ | rakudo: say ~('a', 'b') | ||
| p6eval | rakudo 9808d7: OUTPUT«88» | ||
| rakudo 9808d7: OUTPUT«a b» | |||
| cosimo | rakudo: say 88.000 + 0 | ||
| p6eval | rakudo 9808d7: OUTPUT«88» | ||
| Su-Shee | german tech news just ordered two pieces on rakudo * on the 29th | 09:02 | |
| mathw | \\o/ | ||
| daxim | ix? | ||
| c't? | |||
| Su-Shee | heise open | ||
| moritz_ | hei.se :-) | 09:03 | |
| daxim | online only? | ||
| moritz_ | Su-Shee: want somebody to proof-read it? :-) | ||
| Su-Shee | moritz_: first of all I need a list of working features and not working features. ;) | 09:04 | |
| moritz_ | rakudo.org/status is a first start | 09:05 | |
| though autovivification mostly works now | |||
| daxim | I want to port stackoverflow.com/questions/203605#2024396 | 09:06 | |
| perl6: for (<あ ご ご>, "\\x{3099}") -> $string { say sprintf '%s $string', $string ~~ /^ \\X $/ ?? 'ok' !! 'nok' } | |||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Unrecognized backslash sequence: '\\x' at line 22, near "{3099}\\") -"» | ||
| ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
| daxim | unicode string escapes, anyone? | 09:07 | |
| colomon | moritz_: when you get the chance, can you look at Math::Vector and Math::Polynomial to sanity check my packaging of the? | 09:08 | |
|
09:08
xabbu42 joined
|
|||
| moritz_ | colomon: I'll try tonight, currently I'm a bit distracted | 09:08 | |
| colomon: but if you let ufo generate your makefiles, there's not much you can screw up :-) | 09:09 | ||
| colomon | thanks. moritz_++ | ||
| Su-Shee | moritz_: so essentially besides details it's macros and threads missing? do I remember that correctly? | ||
| moritz_ | Su-Shee: yes. Just updated the list | ||
| nested packages also often cause confusion | |||
| the implementation is somwhere between non-existant and not-very-robust | 09:10 | ||
| sorear | testing++ not ok 61 - state variables preserve values | 09:12 | |
| mathw | nested packages is weird :) | 09:13 | |
| moritz_ | aye | ||
| sorear | nested packages mostly works in niecza, although I still haven't implemented "class Foo::Bar" syntax | 09:14 | |
| but I think I've figured out most of the finer points of lexical/dynamic packages and phasing | |||
| mathw | the way they currently work in Rakudo seems to me to be entirely odd | 09:15 | |
| But at least you can make them work | |||
| So I didn't have to turn Form into one giant module | |||
| sorear | well, Rakudo uses Parrot nested packages, which are a clone of Perl5 nested packages | ||
| moritz_ added LTM to the not working/known to have problems list | |||
| sorear | going over the R* checklist? | ||
| Su-Shee | what's the best documentation I should link to? | 09:19 | |
| sorear | rakudo: CallFrame | 09:20 | |
| p6eval | rakudo 9808d7: ( no output ) | ||
| sorear | rakudo: Callframe | ||
| p6eval | rakudo 9808d7: OUTPUT«Could not find sub &Callframe in main program body at line 22:/tmp/jzLvH66uDP» | ||
| dalek | ecza: 5fbd666 | sorear++ | (3 files): Implement Whatever codegen |
||
| ecza: a97b2f5 | sorear++ | CORE.setting: Add Whatever class |
|||
| ecza: 07ebf12 | sorear++ | Niecza/Actions.pm: Implement * syntax |
|||
| ecza: 2b3c501 | sorear++ | CORE.setting: Implement True and False (no Bool:: form yet due to STD bug) |
|||
| ecza: fbe2e1f | sorear++ | CORE.setting: Use ?? !! and True/False whenever reasonable in setting |
|||
| ecza: 378b61f | sorear++ | CompilerDriver.pm: Fix niecza_eval treating --aot as always enabled |
09:21 | ||
| ecza: ac8238d | sorear++ | (3 files): Implement whatever currying |
|||
| ecza: 9d1fa25 | sorear++ | test.pl: Tests for whatever currying |
|||
| cosimo | In "rule object { '{' ~ '}' <pairlist> }", what does "~" mean? | 09:22 | |
| and, totally unrelated, | 09:25 | ||
| make spectest_smolder fails w/ error 26... nopaste.snit.ch/22327 | |||
| sorear | cosimo: it actually means '{' <parlist> '}' | 09:27 | |
| but with better error handling | |||
| cosimo | sorear: so "literal1" + "~" + "literal2" + "whatever" is a special case that means any "whatever" between "literal1" and "literal2"? | 09:29 | |
|
09:29
Mowah joined
|
|||
| sorear | yes. | 09:30 | |
| moritz_ | colomon: yes, but it also gives better error messages when it fails | ||
| sorear | also the three tokens can be any regex | ||
| moritz_ | rakudo: 'abb' ~~ /a ~ a b' | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "'abb' ~~ /"» | ||
| moritz_ | rakudo: 'abb' ~~ /a ~ a b/ | ||
| p6eval | rakudo 9808d7: OUTPUT«Unable to parse _block115, couldn't find final a at line 1 in <anon> at line 22:/tmp/I4fJxFCakF in 'Cool::match' at line 2377:CORE.setting in 'Regex::ACCEPTS' at line 5470:CORE.setting in main program body at line 10:/tmp/I4fJxFCakF» | 09:31 | |
| moritz_ | rakudo: 'abb' ~~ /:dba("'a'-delimited string") a ~ a b/ | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "'abb' ~~ /"» | ||
|
09:36
xabbu42 joined
|
|||
| sorear | phenny: ask TimToady what do CallFrame.line and $?LINE mean in your LF-polymorphic model? | 09:42 | |
| phenny | sorear: I'll pass that on when TimToady is around. | ||
| sorear | std: my module CORE; my class Bool { our constant False = 0; } | 09:43 | |
| p6eval | std 31846: OUTPUT«Can't call method "id" on an undefined value at /home/p6eval/pugs/src/perl6/snap/STD.pm line 63011.FAILED 00:01 114m» | ||
| sorear | phenny: tell TimToady STD bug: my module CORE; my class Bool { our constant False = 0; } # Can't call method "id" on an undefined value | ||
| phenny | sorear: I'll pass that on when TimToady is around. | ||
| pmurias | sorear when having class Foo {} in setting i get that | 09:46 | |
|
09:47
envi^home joined
|
|||
| sorear | pmurias: yes, ~same bug | 09:49 | |
| pmurias | i work around that my not defining any globals in the setting | 09:50 | |
| sorear | pmurias: in the setting, $*CURPKG is not initialized; also, 'my' packages don't override $*CURPKG | ||
| which they should | |||
| pmurias | my module CORE should define it | ||
|
09:58
mac joined
|
|||
| mac | hi | 09:58 | |
|
10:00
aesop joined,
jferrero joined
|
|||
| rindolf | Hi mac | 10:00 | |
| szabgab | there were some perl6 questions posted in response to my screencast, if anyone has the time to respond: szabgab.com/blog/2010/07/introducti...files.html | 10:02 | |
|
10:09
xabbu42 joined
|
|||
| moritz_ doesn't see any comments | 10:13 | ||
| rindolf | moritz_: you need to enable JS. | 10:15 | |
|
10:16
lichtkind joined
|
|||
| moritz_ actually agrees that the lines/words/chars thing is not very intuitive | 10:21 | ||
| lichtkind | will be parrot included in rakudo * release? | 10:26 | |
| moritz_ | I think so | ||
| Su-Shee | does it come with some of the modules already? | 10:28 | |
| moritz_ | yes | 10:29 | |
| Su-Shee | which ones? | ||
| moritz_ | wiki.github.com/rakudo/rakudo/whats...nto-rakudo | 10:30 | |
| lichtkind | and whith the pdf book :) | ||
| moritz_ | yes | ||
| lichtkind | moritz_++ thanks | ||
| moritz_ | I can also make the the 5-to-6 PODs available | ||
| lichtkind | Su-Shee++ for her bread post | ||
| moritz_ -> lunch | |||
| Su-Shee | moritz_: you probably should. | 10:31 | |
| moritz_ wonders if he should make a mini-book out of that | 10:34 | ||
| Su-Shee | moritz_: "guide to joy of six" ;) | ||
| lichtkind | i think i found a bug | 10:42 | |
| moritz_ | that happens from time to time | 10:43 | |
| lichtkind | i think i found a bug | ||
| shit | |||
| moritz_ | submit it to rakudobug@perl.org | ||
|
10:43
ldd left
|
|||
| lichtkind | moritz_: not the rt? | 10:44 | |
| moritz_ | lichtkind: sending a mail is the way to open a bug on rt | ||
| lichtkind | allright | 10:45 | |
|
10:47
tuxuday joined
|
|||
| tuxuday | hi all. | 10:47 | |
| yesterday installed parrot/rakudo and played with it. | 10:48 | ||
| wrote sample scripts and all. | |||
| i feel the syntax is bit compilcated. | |||
| i have used perl, 5, that is for nearly 5/6 years. now perl6 | 10:49 | ||
| the learning curve is scary, am not sure its worth. | |||
|
10:49
xinming joined
|
|||
| tuxuday | the work demands writing script in python. - you have no say on that! :( | 10:50 | |
| lichtkind | tuxuday: what especially was hard? | ||
| Su-Shee | it's easier if you continue writing writing perl 5 - just in perl 6 - and just use the stuff which isn't really incredible new. | ||
| and wrap this in proper classes and use methods and essentially you're done. ;) | |||
| tuxuday | the syntax, most of them. | ||
| ex. say "abcdefgh".substr(|@indexes) | 10:51 | ||
| Su-Shee | .oO(I don't even know what | does.. ) |
10:52 | |
| lichtkind | beside of sigils ~ and -> you dont have to change that much | ||
| tuxuday | i don't understand why new syntax, its another learning curve. | ||
| Su-Shee | tuxuday: so use simpler syntax. | ||
| gfldex | perl6 got a syntax because it's not perl5+1 | ||
| tuxuday | so whats the point of new syntax, if i am to use perl5(syntax of course) | 10:53 | |
| gfldex: i buy your point, but the learning curve shouldn't be hard. | |||
| gfldex | why shouldn't the learning curve be hard? | 10:54 | |
| Su-Shee | tuxuday: it isn't, if you really look and just write perl 5 in perl 6. it's really just exchanging the -> for a . | ||
| tuxuday | ex. i could start coding in python/php without much learning. | ||
| Su-Shee | gfldex: because it's annoying and you can't decide wether feature x is actually worthwhile learning it. | ||
| gfldex | be happy with python or php then | ||
| mulander | it's not about memorizing the whole language | ||
| Su-Shee | tuxuday: so simplify your perl 6 code. | 10:55 | |
| mulander | the reference manual and your ide/editor will handle the tricky syntax bits. | ||
| also you are looking at something entirely new | |||
| Su-Shee | that's cute in case of perl 6. ;) | ||
| lichtkind | Su-Shee: | interpolates in a capture (signature) context | ||
| mulander | python also was considered foreign by some people when it first appeared to gain popularity | ||
| Su-Shee | lichtkind: I don't even understand the sentence. | 10:56 | |
| mulander | and about the complexity, look at the haskell syntax - it didn't scare off the hundreds of people sitting on #haskell | ||
| Su-Shee | lichtkind: whatever a capture (signature) context might be.. :) | ||
| tuxuday | su: please refer perlgeek.de/en/article/5-to-6#post_00 | ||
| section Interpolation | |||
| Su-Shee | tuxuday: why did you use the feature if you find its syntax too difficult? | 10:57 | |
| tuxuday | no i didn't, was checking how it affects programmers | 10:58 | |
| you know perl 5 - 6. | |||
| so was checking that url. generally copy-paste-exec stuff. | |||
| some of the new syntax made me raise my brows. | 10:59 | ||
| i kept on doing it, until i came across interpolation stuff. | |||
| then decided its not worth. | |||
| Su-Shee | don't use it, there's plenty of stuff you plainly don't need to write stuff. | ||
| pmurias | mulander: haskell syntax is complex? | 11:00 | |
| mulander | pmurias: pardon the simplification. I know it's based on a simple rule set but for most people not familliar to the language it looks like line noise. | 11:01 | |
| tuxuday | su - not sure. i feel that i will either stick to perl5 syntax or python. | ||
| mulander | I could easilly substitute haskell with erlang, prolog or lisp to make the same case. | ||
| maybe 'foreign' would be a better word than line noise here. | 11:02 | ||
| sorear | pmurias: for several years I was convinced parsing Haskell was Rice-hard. I've recently managed to discover an EXPSPACE algorithm | ||
| Su-Shee | tuxuday: well I am sure and I already used perl 6 that way. | ||
| tuxuday: works perfectly fine and then it's actually a cleaner, newer perl. | 11:03 | ||
| tuxuday | yeah thats the first impression you get. | 11:04 | |
|
11:04
zulon joined
|
|||
| tuxuday | the 'context sensitive' is gone. | 11:04 | |
| Su-Shee | so why don't you just stick with it? it's not that you _have_ to use all features. | ||
| the what? | |||
| sorear | I wonder why nobody ever sees ioccc.org as their first vision of C and permanently regards C as a worthless unreadable language. | ||
| tuxuday | one always use, $/@/% ir-respective of the context in which it is used. | 11:05 | |
| sorear | It seems as though Perl alone is subject to the "All X code is identical" fallacy | ||
| Su-Shee | tuxuday: that's still there? | ||
| gfldex | the context is moved to the operators | ||
| tuxuday | nope its gone in perl 6. | ||
| mulander | I believe tuxuday refers to using arrays in scalar context for example. | ||
| I believe perl 6 uses @ for arrays regardless of the context (also an example). | 11:06 | ||
| gfldex | it does | ||
| what makes the code more readable | |||
| imagine you would have to read the end of a word to tell if it's a verb or noun | 11:07 | ||
| Su-Shee | what does mean "the context is moved to the operators"? | ||
| gfldex | operators know how to handle lists or scalars, depending on LHS and RHS | ||
| look up ~~ | 11:08 | ||
| it's pure magic :) | |||
| baest | perlgeek.de/en/article/5-to-6#post_06 describe contexts | ||
| Su-Shee | and how does that make an @array its arrayishness? | ||
| tuxuday | gfl: that was there in perl5 too. | 11:09 | |
| i mean one/many based on the operator. | 11:10 | ||
| just that they made everything as object in perl6. | |||
| gfldex | it's the other way around | ||
| Su-Shee | anyway. perl 6 always did what I expected it to do. problem solved for me. ;) | ||
| tuxuday | so you can also use @a.elems | ||
| gfldex | an operator will do the right thing no matter if you hand it one or many | ||
| tuxuday | su - nice to hear that. | ||
| gfldex | if you want to force many, you use a hyperoperator | 11:11 | |
| snarkyboojum | I think part of the perceived problem in "syntax" is really related to changed/new concepts underlying "different" syntax in perl 6 c.f. perl 5 | ||
| hence all the comparisons to behaviour or concepts in perl 5 | |||
| Su-Shee | no, it isn't. I find perl 6 extremely difficult and don't know what half of the features are actually good for. | 11:12 | |
| gfldex | perl6 should have been named !perl5 to prevent all that confusion :) | ||
|
11:12
tadzik joined
|
|||
| tuxuday | gfl: may be it should be called as perl at all! :) | 11:12 | |
| snarkyboojum | i.e. once the concepts are understood, the supporting syntax generally makes sense | 11:13 | |
| Su-Shee | snarkyboojum: it would be wonderful if somebody actually explained for us common folks what the new concepts are and what they mean :) | ||
| snarkyboojum | Su-Shee: I agree :) | ||
| lichtkind | Su-Shee: for that i began perl 6 tablet sorry but currently i have to do something else | 11:14 | |
| snarkyboojum | reading the specs, moritz_'s 5 to 6 docs, the perl 6 book, irc logs, pestering the devs in here, lurking in the channel, and writing Perl 6 code are helpful :) | ||
| but it's definitely not all in one place | 11:15 | ||
| gfldex | IMHO the base line is to allow definition of custom operator (even at runtime) and build a languare around it | ||
| Su-Shee | snarkyboojum: I'm doing that since 2000. if you don't constantly read along here, you just don't get "stuff". and that's really bad. | ||
| snarkyboojum | I guess it's in the specs, but they have a tendency to make my head feel funny after a while :P | ||
| Su-Shee: thankfully the rate of change seems to have slowed down, so perhaps documentation will have a better chance to catch up.. I think that's been part of the problem | 11:17 | ||
| Su-Shee | snarkyboojum: unless I see convincing reasons to use feature x or y I don't use it. just for the cool of it, I don't. | ||
| snarkyboojum | Su-Shee: sounds like a good rationale to me.. I do the same - but there's plenty of growing room there for additional expressiveness as competency increases.. it is Perl after all :) | 11:19 | |
| Su-Shee | snarkyboojum: I'm not really the target group for perl 6 anyway. | ||
| snarkyboojum | Su-Shee: why's what? | 11:20 | |
| Su-Shee | snarkyboojum: I just wanted the nicer perl. that's what I have really use for. I'm way too much of a every-day developer to actually need more than just a well crafted basic language. I need "environment" much more - and not features. | 11:21 | |
| gfldex | there are indeed pretty much no bindings yet | ||
| but it doesn | 11:22 | ||
| Su-Shee | snarkyboojum: I would have been fine with let's say the sigil change, a little of the grammars, OO and a little iterator sugar coating. | ||
| gfldex | but it doesn't make much sense to write interfaces when the implementation got so many holes | ||
|
11:22
mscha joined
|
|||
| Su-Shee | snarkyboojum: which is essentially what I use of rakudo. | 11:23 | |
| gfldex | let's see what you will say in 5 years :) | ||
| Su-Shee | gfldex: I will. | ||
| snarkyboojum | Su-Shee: I agree with you - many of the core language features like OO are just clean and lovely to use :) | 11:24 | |
| Su-Shee | snarkyboojum: exactly. | ||
| snarkyboojum: and that's the perl I wished for in 2000. | |||
| snarkyboojum: and last but not least is an interesting question wether the fashion of functional programming stays and if the style of zenlike, tidy, simple code also remains. how does perl 6 fit in there... | 11:28 | ||
| gfldex | very well | ||
| rakudo: my @a = <c B A d>; say @a.sort: *.lc; | 11:29 | ||
| p6eval | rakudo 9808d7: OUTPUT«ABcd» | ||
| Su-Shee | well then you must have read different examples than I did. ;) | ||
| gfldex | this tiny *.lc creates a function for you | 11:30 | |
| and it's quite simply ofc | |||
| pmurias | Su-Shee: so what is the sort of things you can't find an use for? | 11:31 | |
| gfldex | i would even say there is no way to get a list sorted by the lower case of it's values any more simpler | ||
| Su-Shee | pmurias: first, I tried to use everything methods have to offer in terms of parameter handling, because it sounded great and I thought I really needed it. then I realized that it doesn't really improve anything so I use either consistently @_ again or simple, stupid params like foo ($bar, @blubb) and that's essentially it. | 11:33 | |
| huf | i could see heavy use for the named params in poorly-planned code, when you have to patch extra behaviors onto stuff later on :D | ||
|
11:34
rgrau_ joined
|
|||
| huf | but p6 has better stuff for that, from what i gather on this chan | 11:34 | |
| Su-Shee | the point is probably that I code defensively. If I didn't understand something after reading the docs twice, I don't use it. | 11:36 | |
| huf | there are proper docs? | ||
| TiMBuS blinks | |||
| huf | the S* is a bit too thick to be called end-programmer documentation, and the book is a bit too lightweight | ||
| Su-Shee | well the specs and moritz's stuff. | ||
| huf | on the other hand, idling on this channel is a pretty good way to learn ;) | 11:38 | |
| Su-Shee | yeah but there's tons of other things I have to learn and understand. ;) | 11:39 | |
| tuxuday | perl6: say 'hi' | 11:40 | |
| huf | yeah but you get to learn perl a second time! it was immense fun the first time for me, so i'm looking forward to it | ||
| p6eval | pugs, rakudo 9808d7: OUTPUT«hi» | ||
| tuxuday | how can i use evalbot? | 11:41 | |
| tadzik | tuxuday: just like You did | 11:42 | |
| baest | rakudo: say 'Hi tuxuday'; | ||
| gfldex | /query rakudo | ||
| p6eval | rakudo 9808d7: OUTPUT«Hi tuxuday» | ||
| Su-Shee | huf: I'm on my way of abadoning perl entirely, actually. | ||
| tuxuday | rakudo: say 'hi'; | ||
| p6eval | rakudo 9808d7: OUTPUT«hi» | ||
| tadzik | Su-Shee: why so? | ||
| gfldex | err p6eval | ||
| tuxuday | p6eval: say 'hi'; | ||
| tadzik | tuxuday: just use rakudo: | 11:43 | |
| tuxuday | nothing working i tried perl6/rakudo/p6eval | ||
| Su-Shee | tadzik: because the stuff I find interesting is happening elsewhere. | ||
| baest | tuxuday: rakudo worked fine? | ||
| tuxuday | rakudo: say 'hi'; | ||
| p6eval | rakudo 9808d7: OUTPUT«hi» | 11:44 | |
| tadzik | tuxuday: works for me | ||
| Su-Shee | me too? | ||
| tadzik | Su-Shee: and what do You find interesting? | ||
| tuxuday | yeah rakudo works. thx. | ||
| Su-Shee | tadzik: high end web stuff, gui development, microcontrollers & mobile devices... | ||
| tadzik: the upcoming non-blocking/asynch stuff with Node.js for example is very interesting. | 11:46 | ||
| snarkyboojum | perl6: say "or use all p6eval targets" | ||
| p6eval | pugs, rakudo 9808d7: OUTPUT«or use all p6eval targets» | ||
| snarkyboojum | oh you already tried that :) | 11:47 | |
| moritz_ | rakudo: say "-",[+] 2..7,'hello',"does anybody see me?" | 11:51 | |
| p6eval | rakudo 9808d7: OUTPUT«-27» | 11:52 | |
| moritz_ | rakudo: say "-",([+] 2..7),'hello',"does anybody see me?" | ||
| p6eval | rakudo 9808d7: OUTPUT«-27hellodoes anybody see me?» | ||
| moritz_ | lichtkind: works here | ||
| Su-Shee | is there a good example of callbacks somewhere? | 11:55 | |
| moritz_ | Su-Shee: like, map or grep? | ||
| Su-Shee: or File::Find | 11:56 | ||
| ggoebel | Sh-Shee: regarding rakudo.org/status ...it might be worth clarifying that the recent huge drop in number of passing tests is due to a reduction in the number of tests. Colomon can clarify, but if I recall correctly, the same functionality is being tested, it is just doing so with fewer tests. | ||
| Su-Shee | ggoebel: I just need the features and capabilities. | ||
| moritz_ | ggoebel: that's correct, and just shows that test counts are intrinsically meaningless | 11:57 | |
| tadzik | what's happening to that status graph btw? | 11:58 | |
|
11:58
bbkr joined
|
|||
| moritz_ | it's being updated whenever docs/spectest-progress.csv is being updated | 11:58 | |
| Su-Shee | moritz_: no I meant like in GUI programming or JavaScript or the former foo => $subref->() I could use for that.. | 11:59 | |
| tadzik | moritz_: it looks like spectest-progress.csv is gone or something | 12:00 | |
| gfldex | rakudo: sub foo(){say 'foo was called'}; my $a = &foo; $a(); | ||
| p6eval | rakudo 9808d7: OUTPUT«foo was called» | ||
| moritz_ | Su-Shee: I don't really see the difference between callbacks in GUI programing and map/grep/File::Find... or are you talking about the invocation syntax? | ||
| daxim | moritz_, s{<h2>Common things that are known to have problems}{<h2 id="broken">Common things that are known to have problems} | 12:01 | |
| snarkyboojum | tadzik: it's in docs/ | ||
| tadzik | snarkyboojum: see the image on rakudo.org/status | ||
| snarkyboojum | yeah.. I see a graph | 12:02 | |
| moritz_ | daxim: added | ||
| tadzik: huh? it's still in my checkout | 12:03 | ||
| tadzik | snarkyboojum: that's my point, and worries. Doesn't look to promising just before R*, people will probably want to see it to see what's going around | ||
| moritz_: see the downfall in the recent days, on the graph? | |||
| moritz_ | tadzik: yes, that's what ggoebel explained a few minutes ago | ||
| Su-Shee | moritz_: about the syntax. | 12:04 | |
| snarkyboojum | tadzik: I don't understand, I can see the graph - the decrease is related to colomon redoing the trig spectests | ||
| tadzik | moritz_: ah, I see | ||
| yeah, I get it now | |||
| moritz_ | Su-Shee: ok. $thing() or $thing.() or $thing(arguments) | ||
| the . is optional, but I sometimes like it for clarity | |||
| tadzik | it now looks like there are more passes than tests :> | ||
| moritz_ | yeah, counting bug in the .csv file, I assume | 12:05 | |
| Su-Shee | but it has to be a subref? | 12:08 | |
|
12:08
masak joined
|
|||
| masak | oh hai, #perl6! | 12:08 | |
| does anyone have anything concrete to say about this? news.ycombinator.com/item?id=1543982 | |||
| moritz_ | Su-Shee: it has to be something Callable | 12:09 | |
| Su-Shee | moritz_: foo(@bla, .callme($blubb)) ? | ||
| moritz_ | Su-Shee: a sub, a block, or anything that overloads postcircumfix:<( )> | ||
| .callme is the same as $_.callme - I don't know if that's what you want | 12:10 | ||
| masak | oh, and I figured out whence the Mu() in my post came. :) | ||
| rakudo: say "".substr(4).WHAT | 12:11 | ||
| p6eval | rakudo 9808d7: OUTPUT«Mu()» | ||
| moritz_ | $widget.install-callback('onClose', &myCloseHandler); | ||
| masak | I believe I filed a ticket for that. | ||
| snarkyboojum | hi masak! o/ | 12:12 | |
| moritz_ | masak: so you did | ||
| masak | hi snarky! | ||
| I'm almost back to IRC now. | 12:13 | ||
| Su-Shee | moritz_: and 'onClose', myCloseHandler() ? | ||
| masak | being obstructed by silly little things like gonig across the sound to help my dad buy planks. :P | ||
| snarkyboojum | masak: w00t | ||
| moritz_ | Su-Shee: would invoke myCloseHandler(), and pass the result to install-callback | ||
| masak | s/gonig/going/ | ||
| snarkyboojum: I expect to have the Yapsi refactor done in a day or so. after that, we can look at getting Tardis working for the release. | 12:14 | ||
| snarkyboojum | masak: ok :) | ||
| masak | snarkyboojum: I'm still very open to ideas about how to represent things like `my $a = 42; { my $a = 5 }` | 12:15 | |
| during debugging, I mean. | |||
| snarkyboojum | masak: right | 12:16 | |
| moritz_ | color-code blocks and variables | ||
| masak | moritz_: hm. that presupposes showing the code along with the variable values. | 12:17 | |
| perhaps not such a bad idea. | |||
| & # planks | |||
| pmurias | masak: re ycombinator post it's incorrect | ||
| pmurias hopes masak doesn't have to walk the plank | 12:19 | ||
|
12:21
bluescreen joined
|
|||
| moritz_ replied to that hackernews comment | 12:21 | ||
| tadzik | > use File::Find; sub found ($a) { say $a }; find({callback => &found}, 'lib') | 12:24 | |
| get_attr_str() not implemented in class 'Sub' | |||
| ↑ what does he want here? | |||
| moritz_ | tadzik: do you have some .pir files lying around from before your last rakudo update? | 12:25 | |
| tadzik | moritz_: I explicitly set PERL6LIB in here, but I had a problem with test.pirs lying, after make clean; make install they were fine though | 12:27 | |
| works when I run from 2010.07 though, so I guess that's it | |||
| moritz_ | tadzik: point is, whenever you recompile rakudo, you should be throwing away your old .pir files | 12:28 | |
| tadzik | moritz_: from where? | ||
| moritz_ | tadzik: from the rakudo install location, ~/.perl6/lib, and from the directories where your .pm files live | 12:29 | |
| tadzik | ok, I'll keep my eye on this | ||
| mscha | rakudo: say "a a" ~~ m/a a/ ?? "yes" !! "no" | 12:35 | |
| p6eval | rakudo 9808d7: OUTPUT«no» | ||
| mscha | rakudo: say "a a" ~~ mm/a a/ ?? "yes" !! "no" | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "say \\"a a\\" "» | ||
| mscha | rakudo: say "a a" ~~ m:s/a a/ ?? "yes" !! "no" | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "say \\"a a\\" "» | 12:36 | |
| mscha | rakudo: say "a a" ~~ m/:s a a/ ?? "yes" !! "no" | ||
| p6eval | rakudo 9808d7: OUTPUT«yes» | ||
| mscha | mm/.../ and m:flags/.../ not implemented yet? | ||
| moritz_ | mscha: m:modifiers// is something I wanted to work on this week... though :s probably won't be easy to do on the outside | ||
| and yes, mm// is also not yet implemented | 12:37 | ||
| mscha | No big deal, at least there's an easy workaround. | ||
| moritz_ | phenny: tell pmichaud if you provide an API for passing modifiers (like :s and :i) to the regex parser, I'll try to implement mm// and m:i// and rx:i// and the like | 12:38 | |
| phenny | moritz_: I'll pass that on when pmichaud is around. | ||
| moritz_ | phenny: tell pmichaud something like .LANG('Regex', 'nibbler', :%adverbs) or so | 12:39 | |
| phenny | moritz_: I'll pass that on when pmichaud is around. | ||
| moritz_ | on s///, some adverbs work already | ||
| :g, :p, :c, :x, :nth, :samecase (though doesn't imply :i on the regex yet) | 12:40 | ||
|
12:42
patrickas joined
|
|||
| mscha | rakudo: my $s = "Hello, World!"; $s ~~ s:nth(2)/l/p/; say $s; | 12:42 | |
| p6eval | rakudo 9808d7: OUTPUT«Helpo, World!» | ||
| patrickas | o/ perlsixers! | ||
| pmichaud | good morning, #perl6 | ||
| phenny | pmichaud: 12:38Z <moritz_> tell pmichaud if you provide an API for passing modifiers (like :s and :i) to the regex parser, I'll try to implement mm// and m:i// and rx:i// and the like | ||
| pmichaud: 12:39Z <moritz_> tell pmichaud something like .LANG('Regex', 'nibbler', :%adverbs) or so | |||
| pmichaud | moritz_: there's already an api of sorts -- see 'token' and 'rule' | 12:43 | |
| moritz_ | pmichaud: ohh, that's nice | ||
|
12:44
wamba joined
|
|||
| moritz_ | pmichaud: uhm... 'token' and 'rule' just set a contextual, and then call regex_def, which again calls .LANG('Regex', 'nibbler') - so is it the $*METHODTYPE contextual that's being inspected? | 12:45 | |
| patrickas | moritz_ I think I ported most of TheDamian's IO::Prompter to master, care to take a look ? I am sure there are some monstrosities that can be easilly fixed by someone who has an idea about what they are doing (aka not me :-) | 12:46 | |
| github.com/patrickas/io-prompter/co...6b901fc958 | |||
| moritz_ | patrickas: I have to postpone it a bit (too many things going on in parallel), feel free to remind me tomorrow in case I forget | 12:47 | |
| patrickas | moritz_ no problem you're the Boss :) | ||
| moritz_ | my @no_sink = gather loop { | ||
| should probably be | |||
| eager gather loop { | |||
| patrickas | that's the kind of monstrosities I was talking about :-) | 12:48 | |
| moritz_ | thought so :-) | 12:49 | |
| patrickas | there is another one where I could not get !=:= to work :-( | 12:50 | |
| [Coke] | I wonder if perl6 has an unusally high number of people who are at least passingly familiar with more than one natural languae. | ||
| *language. | |||
| moritz_ | patrickas: =:= is kinda broken at the moment | ||
|
12:52
rgrau__ joined
|
|||
| mscha | rakudo: token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<planet>/ | 12:52 | |
| p6eval | rakudo 9808d7: OUTPUT«Useless declaration of has-scoped token in a module; add our or my to install it in the lexpad or namespaceMethod 'planet' not found for invocant of class 'Cursor' in <anon> at line 22:/tmp/lFaMiAgRtp in 'Cool::match' at line 2377:CORE.setting in 'Regex::ACCEPTS' at | 12:53 | |
| ..line 547… | |||
| mscha | rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<planet>/ | ||
| p6eval | rakudo 9808d7: OUTPUT«Method 'planet' not found for invocant of class 'Cursor' in <anon> at line 22:/tmp/BbkebEAr_0 in 'Cool::match' at line 2377:CORE.setting in 'Regex::ACCEPTS' at line 5470:CORE.setting in main program body at line 22:/tmp/BbkebEAr_0» | ||
| patrickas | <&planet> maybe ? | ||
| mscha | rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<&planet>/ | ||
| p6eval | rakudo 9808d7: OUTPUT«» | ||
| mscha | Doesn't complain, but doesn't appear to work either | ||
| patrickas | rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, world!" ~~ /<&planet>/ | 12:54 | |
| pmichaud | rakudo: my token xyz { a }; say 'a' ~~ /<&xyz>/; | ||
| p6eval | rakudo 9808d7: OUTPUT«world» | ||
| rakudo 9808d7: OUTPUT«a» | |||
| patrickas | seems like :i issure | ||
| s/issure/issue/ | 12:55 | ||
| moritz_ | rakudo: say 'a' ~~ /:i A/ | ||
| p6eval | rakudo 9808d7: OUTPUT«a» | ||
| moritz_ | rakudo: say 'a' ~~ /:i 'A'/ | ||
| p6eval | rakudo 9808d7: OUTPUT«» | ||
| moritz_ | seems like :i doesn't descend into '' | ||
| pmichaud | wow, that's.... weird. | ||
| moritz_ submits rakudobug | |||
| mscha++ for finding it in the first place | |||
| pmichaud | (perl 6 syntax, from backscroll) it's worth noting that in many ways syntax was chosen to make things easier for non-perl programmers and not to ease the 5-to-6 transition. | 12:58 | |
| jnthn | pmichaud: fwiw, the :i doesn't descend into interpolated thingies either. | ||
| pmichaud | jnthn: I'm not sure that it should. | 12:59 | |
| moritz_ | I think it shouldn't | ||
| considering that :i is basically lexically scoped | |||
| jnthn | OK, there's a ticket we should reject about it then. | ||
| pmichaud | jnthn: I'm not sure that it shouldn't. :) | ||
| moritz_ | otoh there should be a way to interpolate a string and do case insensitive matching, somehow | ||
| jnthn | pmichaud: :P | ||
| 76500 is the ticket number, anyways :-) | 13:00 | ||
| pmichaud | jnthn: the specification has long been a bit ambiguous on this particular point. | ||
|
13:01
Util joined
|
|||
| pmichaud | moritz_: %REGEX_MODIFIERS is the way that token/rule set (some) modifiers for the regex. | 13:01 | |
| (in src/Perl6/Actions.pm) | 13:02 | ||
| moritz_ | pmichaud: just found it, thanks | ||
| currently <quotepair> constructs PAST in its .ast | 13:03 | ||
| so I guess we can't just copy its .ast, but need to unwrap that PAST again... or maybe not construct it as PAST in the first place, and provide a wrapping function in Actions.pm | |||
|
13:07
molecules_ joined
|
|||
| pmichaud | I'm pretty sure we want <quotepair> to construct the PAST | 13:07 | |
|
13:07
PZt joined
13:08
molecules_ left
|
|||
| moritz_ | and then inspect that PAST to generate %REGEX_MODIFIERS ? | 13:08 | |
| and die on cases like m:i($x)/a/ ? | 13:09 | ||
| pmichaud | well, the s/// construct itself needs to create a new %REGEX_MODIFIERS | ||
| (like token/regex/rule do) | |||
|
13:10
atrodo joined
|
|||
| pmichaud | and then yes, quotepairs would modify that | 13:10 | |
| well, the thing that calls <quotepairs> would modify it. | |||
| moritz_ | right | ||
| so quote:sym<s> passes $<quotepair>.ast to the .subst() call, but previously extracts :i and :s from $<quotepair>.ast and stores them in %REGEX_MODIFIERS | 13:11 | ||
| pmichaud | yes | ||
| moritz_ | then we have an agreement :-) | ||
| pmichaud | or, it always sets %REGEX_MODIFIERS _and_ passes them to the .subst() call. | ||
| rather than trying to figure out which-is-which | 13:12 | ||
| bbkr | how to merge two tickets in RT? | ||
| moritz_ | pmichaud: that's not so easy, because they expect different formats | ||
| pmichaud | ...different formats? | ||
| moritz_ | %REGEX_MODIFIERS wants literals als parrot integers, for example, and .subst wants them as PAST::Val nodes | 13:13 | |
| s/als/as/ | |||
| pmichaud | right, so unpack the quotepair for %REGEX_MODIFIERS (where constant), and leave them as PAST::Val for .subst | ||
| moritz_ | right | ||
| pmichaud | I'm just saying that I don't think it needs to be keyed on modifier name as to which is done... just always do both. | 13:14 | |
| moritz_ | I disagree | 13:15 | |
| I think s:i($x)/// should die at compile time | |||
| because we need to know the value of i at compile time | |||
| whereas s:x($x)/// is totally fine | |||
| pmichaud | I don't mind if we special-case a check on ':i' | ||
| I do mind if we special-case the code gen for ':' | |||
| *':i' | |||
| moritz_ | does the regex engine ignore adverbs it doesn't understand? | 13:16 | |
| pmichaud | yes. | ||
| moritz_ | ok | ||
| pmichaud | (as most methods do) | ||
| [Coke] | merging two tickets in RT: go to the links section on ticket one. enter ticket 2 in merge. submit | 13:17 | |
| also be verrrry careful, no undo. | |||
| pmichaud | ...no undo? I thought I've unmerged tickets before. | ||
| anyway, no harm in being careful :) | |||
| huf | hmm, for is like for LIST BLOCK, right? so how do you pass an existing block to it? | 13:21 | |
| moritz_ | huf: by using map | ||
| bbkr | [Coke]: thanks, merging works | ||
| moritz_ | map &block, @list | ||
|
13:21
ab5tract joined
|
|||
| huf | moritz_: no way to do it with for? since i'd expect for and map to be slightly different | 13:22 | |
| or they arent? | |||
| PerlJam | good morning #perl6 | ||
| moritz_ | huf: they shouldn't be | ||
| PerlJam | huf: they are slightly the same :) | ||
| moritz_ | huf: currently map is lazier | ||
| pmichaud | for and map are essentially the same. | 13:23 | |
| moritz_ | so you might need to write eager map &block, @list for now | ||
| huf | so for is just a different syntax, one that needs the block to be there syntacticallt? | ||
| moritz_ | but only until we get sink context | ||
| right | |||
| pmichaud | I worked on sink context a couple of nights ago and it got... icky. :-( | ||
| I decided it was a bit much pre-R* | |||
| so, I'm not sure about | 13:24 | ||
| moritz_ | right; you probably need to special-case assignment, and maybe other things too | ||
| pmichaud | sub foo() { my $a = (1..10).map({ .say }); }; foo(); | ||
| or, more precisely | |||
| sub foo() { my $a = (1..10).map({ .say }); }; foo(); 1 | |||
| huf | hmm, so what do you call this property of for that it doesnt allow runtime (or even compile time i guess) passing of the block? :) | 13:25 | |
| i'd guess if and friends also have this property | |||
| moritz_ | huf: it's a syntactic form | ||
| pmichaud | huf: 'for' is a statement :-) | ||
| huf: so yes, 'if' and friends also have that characteristics | |||
| there's always for @list { &block(); } | |||
| huf | you havent invented nice names for ALL the concepts? | 13:26 | |
| pmichaud: i dont have a problem with the way this is, i just want to understand the edges | |||
| moritz_ | there's also maybe quasi { for @list {{{ &block }}} } | ||
| not sure if that works | |||
| std: quasi { for @list {{{ &block }}} } | |||
| p6eval | std 31846: OUTPUT«[31m===[0mSORRY![31m===[0mVariable @list is not predeclared at /tmp/b3ZnTG52HU line 1:------> [32mquasi { for @list[33m⏏[31m {{{ &block }}} }[0mCheck failedFAILED 00:01 129m» | 13:27 | |
| moritz_ | std: my (@list, &block); quasi { for @list {{{ &block }}} } | ||
| p6eval | std 31846: OUTPUT«ok 00:01 132m» | ||
| huf | okay, i'll need to go read more documentation | ||
| pmichaud | with | 13:28 | |
| sub foo() { my $a = (1..10).map({ .say }); }; foo(); 1 | |||
| I wonder if it's the fact that the return value is an item that prevents it from being evaluated eagerly somehow. | |||
|
13:29
xinming_ joined
|
|||
| dolmen_ | rakudo: sub foo(Int @a) { [+] @a }; my $a = [1, 2, 3]; say foo($a); # Difference between $a and @a when both contain an array | 13:29 | |
| p6eval | rakudo 9808d7: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional[Int] but got Array instead in 'foo' at line 22:/tmp/RZvLw72NJ2 in main program body at line 22:/tmp/RZvLw72NJ2» | ||
| dolmen_ | rakudo: sub foo(@a) { [+] @a }; my $a = [1, 2, 3]; say foo($a); # Difference between $a and @a when both contain an array | 13:30 | |
| pmichaud | $a isn't an Array of Int there -- it's an Array of Any | ||
| p6eval | rakudo 9808d7: OUTPUT«6» | ||
| moritz_ | pmichaud: I wonder if the fact that you return a variable (and not a value directly) affects eagerness | ||
| pmichaud | moritz_: the problem is that at the point where foo() gets evaluated, we don't know that it's a variable | 13:31 | |
| return only returns values | |||
| (unless the sub "is rw") | |||
| moritz_ | pmichaud: but sink context flows inward | ||
| pmichaud | moritz_: o_O | ||
| do not want() | |||
| there's no "flows inward" here. | |||
| sink context is applied to the thing returned from foo().... it's not that foo() recognizes "oh, I'm sink context". | 13:32 | ||
| moritz_ | hm | ||
| I kinda thought we had that exception for sink context - but I might be wrong | |||
| that's something we can discuss with TimToady and jnthn at YAPC | |||
| jnthn | yay YAPC is soon \\o/ | 13:33 | |
| dolmen_ wonders how to explains sigils to a beginner as $ can contain @ and % too | |||
| PerlJam | dolmen_: beginners don't need to know that :) | 13:34 | |
| moritz_ | dolmen_: it's rather easy. A $ sigil means that you get one iteration when you do for $thing { ... }\\ | ||
| dolmen_: wheres with @ and % you get potentially many iterations | |||
| pmichaud | in php, $ can contain arrays and hashes also, and beginners there don't have a big issue with it :) | ||
| dolmen_ | pmichaud: the issue is how to tell them to use @ and % instead of always $ as they do in PHP | 13:35 | |
| PerlJam | dolmen_: tell them to always use @ for arrays and % for hashes. | 13:36 | |
| dolmen_: When/how would you introduce the idea of "context" to a beginner? | 13:37 | ||
| gfldex | the problem with PHPlings is that they have hashes but call it array | ||
| [Coke] | I wouldn't call it context. it's more like coercion. | ||
| just be sure to distinguish between array and associative array. | |||
| huf | gfldex: nope. they have ordered hashes. | ||
| dolmen_ | rakudo: my $a = <a b c>; map { .say } $a; | ||
| huf | much worse | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "map { .say"» | ||
| [Coke] | (tcl will have the same issue.) hashes are arrays or dicts, and arrays are lists, there. =-) | 13:38 | |
| pmichaud | dolmen_: need comma | ||
| dolmen_ | rakudo: my $a = <a b c>; map { .say }, $a; | ||
| pmichaud | and eager :-) | ||
| p6eval | rakudo 9808d7: ( no output ) | ||
| pmichaud | rakudo: my $a = <a b c>; eager map { .say }, $a; | 13:39 | |
| p6eval | rakudo 9808d7: OUTPUT«a b c» | ||
| PerlJam | dolmen_: note that there's only one value :) | 13:40 | |
| dolmen_ | PerlJam: oh yes | ||
| pmichaud | afk for a bit | 13:41 | |
| dolmen_ | rakudo: my $a = <a b c>; say $a.WHAT; | ||
| p6eval | rakudo 9808d7: OUTPUT«Seq()» | ||
| PerlJam has some swiss chocolate for "breakfast" | 13:42 | ||
| mathw | Good breakfast! | ||
| mscha | Probably a stupid question: how do you dereference an array ref? | ||
| PerlJam | mscha: what's an array ref? :) | ||
| mscha | rakudo: my $a = [1, 2, 3]; for $a { .say; } | ||
| p6eval | rakudo 9808d7: OUTPUT«1 2 3» | ||
| mscha | rakudo: my $a = [1, 2, 3]; for @$a { .say; } | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 22, near "@$a { .say"» | ||
| PerlJam | rakudo: my $a = [1, 2, 3]; for @($a) { .say } | 13:44 | |
| (you were close) | |||
| p6eval | rakudo 9808d7: OUTPUT«123» | ||
| mscha | Thx! | ||
| dolmen_ would like some chocolate for his "quatre heures" (afternoon snack) | |||
| PerlJam | mathw: hey! what happened to your github account? | 13:45 | |
| mathw | I changed it | ||
| I probably should have told someone I suppose | |||
| since it just broke all the URLs for Form | |||
| hmm | |||
| woops :) | 13:46 | ||
| but I thought, better now than later | |||
| github.com/mathw/form now | |||
| PerlJam | you didn't like mattw ? | ||
| mathw | no | 13:47 | |
| I much prefer mathw | |||
| and it's consistent with IRC | |||
| I even have the domain name now :) | |||
| bbkr | are there any tests for list laziness? I wonder if rt.perl.org/rt3/Ticket/Display.html?id=64886 can be closed or does it need another test | 13:49 | |
| moritz_ | bbkr: just add a test that puts a last; after the inner say() | 13:50 | |
| (and don't use say(), but rather an assignment to a variable) | |||
| bbkr | moritz_: ok | 13:51 | |
| moritz_ | rakudo: my $tracker = 0; for 1..10000000 { $tracker++; last }; use Test; is $tracker, 1, 'yay'; done_testing; | ||
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - yay1..1» | ||
| pmichaud | (tests for laziness) wouldn't be valid. | 13:54 | |
| moritz_ | better if we wrote for 1..* { ... }? | 13:57 | |
| pmichaud | (looking at ticket) -- no, I'm guessing the ticket is fine. | ||
| moritz_ | iirc infinite lists are guarantueed not to be eagerly evaluated, unless nessesary | ||
| pmichaud | yeah, that might be better. | ||
|
13:58
Guest23195 joined
|
|||
| pmichaud | the wording in the ticket somehow doesn't follow my notion of 'laziness'. Or, I guess another way of saying it is that 'for' isn't eagerly evaluating its list. | 13:58 | |
| i.e., that's what we're testing for | |||
| but | 13:59 | ||
| 13:51 <moritz_> rakudo: my $tracker = 0; for 1..10000000 { $tracker++; last }; use Test; is $tracker, 1, 'yay'; done_testing; | |||
| tests the laziness of the argument to 'for', not the laziness of the for loop itself. | |||
| moritz_ | right | 14:00 | |
| because the for-loop isn't lazy | |||
| bbkr | rakudo: [+] | 14:02 | |
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "[+]"» | ||
| pmichaud | afk for a bit | 14:04 | |
| bbkr | rakudo: class Foo does Positional[::T] {}; say Foo ~~ Positional # what does this ::T should do? | 14:06 | |
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| dolmen_ | rakudo: use Test; for (map { is $_, 1, 'yay' } [ 1, 2 ]) { last; }; done_testing; # map is not eager, but for is | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
| bbkr | rakudo: role A {}; class Foo does A[::T] {} | 14:07 | |
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===No applicable candidates found to dispatch to for '_block120'. Available candidates are::()» | ||
| dolmen_ | rakudo: use Test; for (map { is $_, 1, 'yay' }, [ 1, 2 ]) { last; }; done_testing; # map is not eager, but for is | 14:08 | |
| p6eval | rakudo 9808d7: OUTPUT«not ok 1 - yay# got: '1 2'# expected: '1'1..1# Looks like you failed 1 tests of 1» | ||
| dolmen_ | rakudo: use Test; for (map { is $_, 1, 'yay' }, ( 1, 2) ) { last; }; done_testing; # map is not eager, but for is | ||
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - yay1..1» | ||
| dolmen_ | rakudo: use Test; for (map { is $_, 1, 'yay' }, 1, 2 ) { last; }; done_testing; # map is not eager, but for is | 14:09 | |
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - yay1..1» | ||
| dolmen_ | for does not seem to be eager | ||
| rakudo: use Test; for (eager map { is $_, 1, 'yay' }, 1, 2 ) { last; }; done_testing; # map is not eager, but for is | 14:10 | ||
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - yaynot ok 2 - yay# got: '2'# expected: '1'1..2# Looks like you failed 1 tests of 2» | ||
|
14:12
xabbu42 joined
|
|||
| dolmen_ | rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { is $n++, 1, 'yay'; $_ }, @input ) { last; }; done_testing; # map is not eager, but for should be | 14:15 | |
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - yay1..1» | ||
|
14:15
atrodo joined
|
|||
| dolmen_ | rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { $n++; $_ }, @input ) { last; }; is $n, +@n; done_testing; # map is not eager, but for should be | 14:16 | |
|
14:16
zulon joined
|
|||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Symbol '@n' not predeclared in <anonymous> (/tmp/gmENvogOuw:22)» | 14:16 | |
| dolmen_ | rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # map is not eager, but for should be | 14:17 | |
| p6eval | rakudo 9808d7: OUTPUT«not ok 1 - # got: '2'# expected: '3'1..1# Looks like you failed 1 tests of 1» | ||
| dolmen_ | rakudo: use Test; my @input = <a b c>; my $n = 0; for (map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # map is not eager, but for should be | 14:18 | |
| p6eval | rakudo 9808d7: OUTPUT«not ok 1 - # got: '1'# expected: '3'1..1# Looks like you failed 1 tests of 1» | 14:19 | |
| dolmen_ | moritz_: that one seems fine | ||
| rakudo: use Test; my @input = <a b c>; my $n = 0; for (eager map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # added explicit eager | 14:20 | ||
| p6eval | rakudo 9808d7: OUTPUT«ok 1 - 1..1» | ||
|
14:27
perlygatekeeper joined
|
|||
| moritz_ | mail.python.org/pipermail/python-de...02306.html first paragraph - au++ got that right from the start :-) | 14:34 | |
| PerlJam | au++ indeed. | 14:35 | |
| I'm quite surprised to see guido loose the reigns like that though. | 14:36 | ||
| I guess even guido can learn something :) | |||
| moritz_ | I kinda don't expect him to hand out commit bits quite as freely as we do | 14:38 | |
| but still, he's moving in that direction | |||
| masak | pmurias: re yc post being incorrect -- I'd be happy to know how, exactly. if I agree, I might post the reply. | ||
| masak logs off and logs in with his own laptop | |||
| patrickas | maybe we should have a bot that auto gives commit bit to anyone who joins the channel :-) | 14:43 | |
| moritz_ | not so easy, requires an email address :-) | 14:44 | |
| patrickas | so many requirements! | 14:45 | |
| PerlJam | Hi! Would you like a commit bit? Send an email to mumble@perl6.org and you'll get one! | 14:46 | |
| How about that? :) | |||
|
14:46
xabbu42 joined
|
|||
| cono | how to recover pwd for pugs svn? ^^ | 14:47 | |
|
14:48
xabbu42 joined
14:49
xabbu42 joined
|
|||
| moritz_ | cono: /msg me your email address, and I can send a re-invitation | 14:51 | |
|
14:52
masak joined
|
|||
| masak | \\o/ | 14:52 | |
| moritz_ | though I usually find them in my ~/.subversion/ directory somewhere :-) | ||
| o/ masak | |||
| masak | it's nice to be back. | ||
| hi from an almost unbearably pretty landscape on the west coast of Sweden. | 14:53 | ||
| cono | masak: oh hai | ||
| masak | I'm sitting in the shade of my parents house, finally back on my own laptop. | ||
| cono: hi! pack/unpack! :) | 14:54 | ||
| cono | moritz_: gnome keyring swollow my password :( | ||
| moritz_ | you shouldn't be sitting your laptop, y'know | ||
| cono | masak: yeah. I can't follow the format line :( | ||
| masak | moritz_: I've been hiking around all over the island for the last four days. I deserve a break :P | ||
| cono | masak: any s/// produce PMC error | ||
| masak commences a long and arduous backlog journey | |||
| cono | m:g/// does not work | ||
|
14:54
ruoso joined
|
|||
| masak | cono: lots to fix. I know. :/ | 14:54 | |
| cono: workarounds are the answer right now. | 14:55 | ||
| cono | Maybe someone help to choose way to follow format string? | ||
| moritz_ | cono: you have mail. You might have to remove a port number from the URL, though | ||
| masak | cono: I'll gladly help; please explain what it is you expect, and how you're getting stuck. | 14:57 | |
|
14:58
pyrimidine joined
|
|||
| masak notices the revert commit f7fdd5120b844c | 14:58 | ||
| moritz_: I'm sorry too :/ | |||
| cono | I tried while $format ~~ s/ ^^ (<[cC]>) // { ... | ||
| also while $format { if ($format ~~ s/// ... | |||
| masak | moritz_: seems first thing we should find out is whether the commit is actually to blame. | 14:59 | |
|
14:59
pwd joined
|
|||
| masak | moritz_: did the spectests show this? I think I ran them, but maybe not all the way through... | 14:59 | |
| cono | after that I tried to do wihle $format ~~ m:g/.../ | ||
| moritz_ | masak: I got some random failures in some of the module loading test | ||
| masak | cono: you can do that with .substr | ||
| moritz_ | cono: s:g/// should work with newest rakudo | ||
| masak | so, spectests, IOW. | ||
| moritz_ | cono: if not, please submit a bug report | 15:00 | |
| masak | moritz_: I'll run the spectests, apply the commit, and re-run the spectests. | ||
| cono | moritz_: ok. Recompiling. Thanks | ||
| masak | moritz_: I also have three new commits that build on the reverted one... :) | ||
| moritz_ | masak: and pls segfaulted - that was my litmus test | ||
|
15:00
patspam joined
|
|||
| masak | moritz_: ok, will test that too. | 15:00 | |
| cono | masak: If it will not working, I will try to do it by substr :) | ||
| masak | cono: that's the spirit! :) | 15:01 | |
| moritz_ | m:g// is known not to work, but I plan to tackle it this week (though maybe not in time for R*) | ||
| masak: sorry for reverting your commit, but working modules were more important to me | 15:02 | ||
| masak | moritz_: I understand fully. | ||
| bbkr | rakudo: my @t = 1; @t ==> @t ==> @t; @t.say # is this correct behavior or a bug (one "1" expected)? | ||
| p6eval | rakudo 9808d7: OUTPUT«1111» | ||
| moritz_ | (it also broke SVG::Plot, and in turn Math::Model - which I need for my YAPC talk :-) | ||
| masak | moritz_: sorry for not testing it properly -- I guess I was a Desperate Perl Programmer there for a while... :P | ||
| moritz_ | np :-) | 15:03 | |
| I guess it's not really the fault of your code, but rather that it exposes a bug somewhere else | 15:04 | ||
| masak | moritz_: let's see, has pmichaud expressed whether he'll build R* off Atlanta, or off HEAD? | 15:05 | |
| PerlJam | probably depends on how much stuff is broken whether it's even an option to build R* off of HEAD :) | ||
|
15:06
Lorn joined
|
|||
| moritz_ | masak: I don't know if there's been a decision yet, but I'd be surprised if he broke the module installer and half of the modules | 15:06 | |
| masak: so I guess there'll be a point release, on which R* will be based | |||
| masak | \\o/ | ||
| bbkr | std: 1, | ||
| p6eval | std 31846: OUTPUT«ok 00:01 116m» | ||
| masak | then I'll keep working on the enums. | ||
| bbkr | rakudo: 1, | ||
| p6eval | rakudo 9808d7: OUTPUT«===SORRY!===Confused at line 22, near "1,"» | ||
| masak | bbkr: I *think* that one's filed. | 15:07 | |
| moritz_ | I know that 1,, is filed | ||
| erm, 1,,2 | |||
| bbkr | it is, i'm checking RT queue on Atlanta build | ||
| masak | I discovered that my enum commits weren't enough for the book. needed .pick on enumerations as well. and then I added a bunch of other things too. | ||
| y'all'll like'em :) | |||
| moritz_ | masak: you can likely move .pick from Hash to EnumMap or some such | 15:08 | |
| masak | moritz_: well, an enumeration object isn't an EnumMap, it has one. | 15:09 | |
| moritz_ | "huh" | ||
| masak | bbkr: good work. | ||
| moritz_: it sounds odd, but it's *really* nice. | |||
| TimToady++ | |||
| moritz_ | masak: an enum is... a type object? | ||
| masak | sort of. | ||
| yes, that's the best description. | |||
| it's an "instance" of a singleton class. | 15:10 | ||
| and it's undefined. | |||
| I wouldn't be surprised if it does Abstraction. | |||
| but I'm not sure of that. | |||
| hm, I see this meme sometimes: blogs.perl.org/users/jesse_thompson...rl-12.html | 15:14 | ||
| not sure what I think about it. | |||
| PerlJam | I tend to think "ick" | 15:15 | |
| moritz_ agrees with chromatic here | |||
| masak | aye. | ||
| PerlJam | Perl 10.07 <-- ubuntu style :) | 15:16 | |
|
15:17
kokajxo joined
|
|||
| PerlJam | I guess it would have to be 510.07 and 610.07 or something if both Perls were to adopt that | 15:17 | |
| mscha | rakudo: for 1,1.5...5 { .say } | 15:18 | |
| p6eval | rakudo 9808d7: OUTPUT«11.522.533.544.55» | ||
| mscha | rakudo: for 1,1.5...^5 { .say } | ||
| p6eval | rakudo 9808d7: OUTPUT«1234» | ||
| mscha | Hmm? | ||
| masak | o.O | ||
| oh. | |||
| [Coke] | if we're stuck with "Perl 6" at this point, I think "<compiler> Perl 6 <version>" is fine, and if they want to say "Perl 5 <12>" with a space, that would also be fine. | ||
| masak | ...^ NYI | ||
| mscha | Ah, sorry. | ||
| cono | rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $1 } | 15:19 | |
| p6eval | rakudo 9808d7: | ||
| ..OUTPUT«Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()… | |||
|
15:20
breinbaas joined
|
|||
| moritz_ | huh. | 15:20 | |
|
15:20
ltyr joined
|
|||
| moritz_ | [Coke]: I guess it will be "Rakudo 2012.07 Perl 6.1.1" or so | 15:20 | |
| PerlJam | [Coke]: | ||
| [Coke]: "stuck with" makes it sound like a bad thing. Do you think that's so? | 15:21 | ||
| cono | moritz_: no PMC error \\o/ | ||
| jnthn | rakudo: my Str $format = "ccc"; while defined($format ~~ s/^^ (c) //) { say $1 } | ||
| p6eval | rakudo 9808d7: | ||
| ..OUTPUT«Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()… | |||
| masak submits rakudobug | |||
| cono | bug again? :( | 15:22 | |
| ok, thank substr :) | |||
| than* | |||
| masak | oh wait | ||
| cono: $0 | |||
| cono | oops :) | ||
| masak | still, | ||
| it shouldn't loop that many times. | |||
| cono | yup ( | ||
| yeah, only 3 times | 15:23 | ||
| moritz_ | rakudo: my Str $format = "ccc"; while defined($format ~~ s/^^ (c) //) { say $format } | ||
| p6eval | rakudo 9808d7: | ||
| ..OUTPUT«ccc� | |||
|
15:23
justatheory joined
|
|||
| PerlJam | I think mscha uncovered a bug. | 15:23 | |
| cono | \\0 I guess | ||
| PerlJam | rakudo: say (^5).WHAT.say | ||
| rakudo: say @(^5).WHAT.say | |||
| p6eval | rakudo 9808d7: OUTPUT«Range()1» | ||
| rakudo 9808d7: OUTPUT«List()1» | |||
| moritz_ | rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $format; last } | 15:24 | |
| p6eval | rakudo 9808d7: OUTPUT«cc» | ||
| PerlJam | rakudo: say 1,1.5 ... @(^5) | ||
| p6eval | rakudo 9808d7: OUTPUT«1234» | ||
| moritz_ | rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $format; last unless $format } | ||
| p6eval | rakudo 9808d7: OUTPUT«ccc» | ||
| cono | solution :) | ||
| moritz_ | rakudo: my Str $format = "ccc"; while say $format ~~ s/^^ (c) // { say $format; last unless $format } | ||
| p6eval | rakudo 9808d7: OUTPUT«1cc1c1» | ||
| cono | moritz_: where is the matched part? | ||
| moritz_ | cono: gone with the wind? | 15:25 | |
| moritz_ -> out | |||
| cono | rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $/.Str; last unless $format } | 15:26 | |
| p6eval | rakudo 9808d7: OUTPUT«Any()<0x5bc7490>Any()<0x5bc7490>Any()<0x5bc7490>» | ||
| [Coke] | PerlJam: I think that Perl 6 vs. Perl 5 is confusing, yes, and we could probably pick a better name if we tried really hard.... but there's no point now, because it's too late. | 15:27 | |
| so, I wouldn't put "stuck with" on our marketing slides, but yes. =-) | |||
| [Coke] wonders why gabor's feed suddenly slammed planet perl six. | 15:28 | ||
| [Coke] guesses retroactive tagging. | |||
| masak | blog feeds are hard. | 15:29 | |
| [Coke] | *head bop* | ||
| ... which looks really wierd as I have no hair. | |||
| masak | :) | 15:30 | |
|
15:31
_macdaddy joined
|
|||
| ltyr | just wondering, anyone heard of the io language? | 15:33 | |
| masak has | 15:34 | ||
| rgrau__ too | |||
| PerlJam too | |||
| masak | _why used to mention it, during the time he inhabited this plane of existence. | ||
| ltyr | any good? | 15:35 | |
| just came across it today | |||
| it's relatively small | 15:36 | ||
| small footprint | |||
| masak | haven't used it any. | ||
| ltyr | i should give it a try | ||
| masak | it looks cute, what with ifs and whiles not being built-ins. | ||
| ltyr | yeah looks cute lol that's the word | 15:37 | |
| rgrau__ | pure OOP prototype based, and with somewhat smalltalk-ish syntax. I liked it, but didn't use for anything useful. install libs was a PITA IIRC | ||
| masak | I can imagine that I would consider it a bad tool for some things after using it for a while. but I don't know what things beforehand. | 15:38 | |
| it's fun to see what different languages use juxtaposition for. it's usually something fairly important. io uses it for the method-invocation dot. | 15:39 | ||
| Haskell uses it for the argument/parameter comma. | |||
| PerlJam | awk uses it for ... string concatenation :) | 15:40 | |
|
15:41
ltyr joined
|
|||
| [Coke] | szabgab++ #screencasts | 15:41 | |
| jnthn | .oO( Perl 6 uses it for ... two terms in a row errors ;-) ) |
15:43 | |
| huf | nested functin calls? | 15:44 | |
| or that's not two terms in a row or that's not allowed anymore? | |||
| jnthn | huf: Yeah, it's used for that two. They're not considered terms by the parser though, but list ops. Thus why it works. :-) | 15:45 | |
| huf | aha! | ||
| jnthn | *too | ||
| masak | jnthn: and many other very useful errors, which are basically 2TIAR errors with DWIM error logic. | ||
| jnthn | masak: Aye, it's quite rare to see a naked 2TIAR error from STD. | 15:46 | |
| masak | std: "quite" "rare" | ||
| p6eval | std 31846: OUTPUT«[31m===[0mSORRY![31m===[0mTwo terms in a row at /tmp/tC8ouElK5b line 1:------> [32m"quite" [33m⏏[31m"rare"[0m expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED 00:01 115m» | ||
| jnthn | :P | ||
| PerlJam | heh | ||
| masak | :) | ||
|
15:47
macroron joined
|
|||
| masak | std: time time | 15:48 | |
| p6eval | std 31846: OUTPUT«[31m===[0mSORRY![31m===[0mTwo terms in a row at /tmp/EbbsnK9hvQ line 1:------> [32mtime [33m⏏[31mtime[0m expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED 00:01 115m» | ||
| jnthn | std: time for beer | 15:49 | |
| p6eval | std 31846: OUTPUT«[31m===[0mSORRY![31m===[0mUndeclared routine: 'beer' used at line 1Check failedFAILED 00:01 115m» | ||
| jnthn | Aww | ||
| jnthn notes that undeclared routines are actually a compile time error now. | 15:50 | ||
| Wonder how many false positives we'll get on that when first putting it into Rakudo. | |||
| jnthn suspects a few. | |||
| masak | std: warn -- time for now | 15:51 | |
| p6eval | std 31846: OUTPUT«ok 00:01 115m» | ||
| jnthn | rakudo: warn -- time for now | ||
| p6eval | rakudo 9808d7: OUTPUT«Could not find sub &now in main program body at line 22:/tmp/D59x0kaRtl» | 15:52 | |
| jnthn | now NYI? | ||
| Or STD out of sync with current DateTime spec? | |||
| masak | I think now still exists. | 15:56 | |
|
15:56
Ross^ joined
|
|||
| masak | but there was something blocking its implementation in Rakudo, IIRC. | 15:56 | |
| [Coke] | (my$i=11;$i++**2..*Z-$i+3,$i,7,$i+8,$i+3)>>.chr.say | 16:00 | |
| rakudo: (my$i=11;$i++**2..*Z-$i+3,$i,7,$i+8,$i+3)>>.chr.say | |||
| p6eval | rakudo 9808d7: OUTPUT«jnthn» | ||
| masak | [Coke]++ | ||
|
16:01
Tene_ joined
|
|||
| jnthn | Well, it has two letters in common with JAPH. :P | 16:01 | |
| masak | std: my$i=11 | 16:02 | |
| p6eval | std 31846: OUTPUT«ok 00:01 117m» | ||
| jnthn | eww | ||
| masak | nah, 't's kosher. the sigil is a wb :) | ||
| so is the '=' | |||
| jnthn | Though not surprising. | 16:03 | |
| ae | |||
| *aye | |||
| [Coke] | æ | 16:04 | |
|
16:04
__sri joined
|
|||
| bbkr | rakudo: class A {}; say (A.new, A.new).sort # is this correct output? | 16:12 | |
| p6eval | rakudo 9808d7: OUTPUT«A()<0x82b09f0>A()<0x82b1170>» | ||
|
16:13
eternaleye joined
|
|||
| masak | bbkr: what would you expect it to sort on? | 16:13 | |
| PerlJam | bbkr: it looks correct to me 0x82b09f0 comes before 0x82b1170 :) | 16:14 | |
| bbkr | masak: IMO this is correct - sort used "~A.new" output, but I want to be sure before taking rt.perl.org/rt3/Ticket/Display.html?id=71258 for tests | 16:15 | |
| masak | bbkr: looking. | ||
| bbkr: the ticket has two parts. the above shows that the first part is fixed. | 16:16 | ||
|
16:16
justatheory joined
|
|||
| bbkr | masak: second part works also | 16:17 | |
| rakudo: | |||
| class A {}; multi sub cmp(A $a, A $b) { 1 }; say (A.new, | |||
| A.new).sort | |||
| p6eval | rakudo 9808d7: ( no output ) | ||
| bbkr | rakudo: class A {}; multi sub cmp(A $a, A $b) { 1 }; say (A.new, A.new).sort | ||
| p6eval | rakudo 9808d7: OUTPUT«A()<0x69f1460>A()<0x6a1d7a0>» | ||
| masak | rakudo: class A { has $.x }; multi sub cmp(A $a, A $b) { $a.x <=> $b.x }; say (A.new(:x(2)), A.new(:x(3)), A.new(:x(1))).sort | 16:19 | |
| p6eval | rakudo 9808d7: OUTPUT«A()<0x73823e0>A()<0x7384300>A()<0x73861e0>» | ||
| masak | er :) | ||
| rakudo: class A { has $.x; method Str { $.x } }; multi sub cmp(A $a, A $b) { $a.x <=> $b.x }; say (A.new(:x(2)), A.new(:x(3)), A.new(:x(1))).sort | |||
| p6eval | rakudo 9808d7: OUTPUT«123» | ||
| masak | \\o/ | ||
| bbkr: yes. it should be taken for tests. | 16:20 | ||
| pugssvn | r31847 | Kodi++ | [t/spec] Fixed some Instant and Duration tests and fudged some for Rakudo. | ||
| bbkr | BTW: how to get class instance memory address that can be assigned to variable? | 16:21 | |
| jnthn | .WHERE | ||
| bbkr | rakudo: class A{}; A.new.WHERE.say | ||
| p6eval | rakudo 9808d7: OUTPUT«130402704» | ||
| bbkr | jnthn: thanks! | 16:22 | |
| pmurias | ruoso: ping | 16:24 | |
| ruoso: where should v6::mildew keep the executable? | 16:26 | ||
|
16:27
mberends joined
|
|||
| masak | mberends! \\o/ | 16:29 | |
| mberends | ahoy, masak? long time no chat for me. | 16:30 | |
| masak | yeah, same here. | ||
| mberends hopes Rakudo * is not delayed as a result | 16:31 | ||
| masak | greetings from sunny Lyr, Orust, Sweden. | ||
| jnthn | masak: Oh, that's why the sun ain't here today. You have it. :P | 16:32 | |
|
16:32
cdarroch joined
|
|||
| masak | we do indeed. but it's heading west fast. | 16:32 | |
| jnthn | o/ mberends :-) | ||
| mberends | yo jnthn! | 16:33 | |
| we must remember #phasers tonight | |||
| Su-Shee | you are not planning a delay, are you? | ||
| PerlJam | no one is planning a delay that I know of. | 16:34 | |
| Su-Shee has written her ass off to get two articles out in time to spread the word of the release. | |||
| mberends | no, happily everyone is keen to stick to the planned date | ||
| Su-Shee | PerlJam: _that_ is a dangerous quote - we call it "noone is planning to build a wall" here in berlin ;) | 16:35 | |
| masak | mberends: thanks for the reminder about #phasers. | ||
|
16:35
tylercurtis joined
|
|||
| PerlJam | Su-Shee: I was about to ++ you for writing your ass off, but now I'm not so sure :) | 16:35 | |
| Su-Shee++ (sorry about your ass ;) | 16:36 | ||
| pmurias | masak: re yc post i think that the post is wrong in that lots of people like grammars without first doing needless formalisation | ||
| Su-Shee | PerlJam: *hehe* well I'll get the stuff finished in time but if it takes a week longer, it doesn't really matter in terms of content. | ||
| unless you suddenly abandon sigils or something. | |||
| masak | pmurias: I think so too. | ||
| jnthn | Ooh, which post? | 16:37 | |
| dalek | kudo: ac8a2ae | (Solomon Foster)++ | src/core/ (4 files): Add Numeric.isNaN, Real.isNaN, Num.isNaN, and Complex.isNaN, and use them to |
||
| pmurias | masak: we did a bit of first to the formalisation the code that do approach at the compiler construction code at uni | 16:39 | |
| masak: and it seems to be a very bad way | |||
| masak: as the ugliness of the formalism gets translated to ugly code | 16:40 | ||
| masak | jnthn: news.ycombinator.com/item?id=1543982 | ||
| moritz_'s answer seems to cover many of these points. | |||
| moritz_++ | |||
| [particle] | colomon++ for isNaN... can i get .sign, too? | ||
| masak | [particle]: there should be one. | 16:41 | |
| [particle] | rakudo: -1.sign.say | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| [particle] | rakudo: 1.sign.say | ||
| masak | [particle]: precedence. | ||
| p6eval | rakudo 9808d7: OUTPUT«1» | ||
| [particle] | ah | 16:42 | |
| masak | rakudo: say (-1).sign | ||
| p6eval | rakudo 9808d7: OUTPUT«-1» | ||
| [particle] | rakudo: say -1.sign | ||
| PerlJam | that gets people every time. | ||
| p6eval | rakudo 9808d7: OUTPUT«-1» | ||
| [particle] | of course. joy! | ||
| PerlJam | It may be one of the first Perl 6 FAQs | ||
| colomon | rakudo: say -1.sign | ||
| p6eval | rakudo 9808d7: OUTPUT«-1» | ||
| masak | [particle]: that works, but not for the reason you might think. | ||
| colomon | right | ||
| it's -(1.sign) | |||
| masak | nod | ||
| pmurias | masak: and i don't that hand writing parsers should be tought at uni | 16:43 | |
| colomon | I can't decide if that is right or horribly, horribly wrong. | ||
| masak | pmurias: why not? | ||
| [particle] | rakudo: say -1.0.sign #curious | ||
| p6eval | rakudo 9808d7: OUTPUT«-1» | ||
| masak | [particle]: what are you trying to prove? :) | ||
| colomon | the crazy thing about -1.sign.say is that it is 1(1.sign.say) | ||
| [particle] | just checking about floats and dots | ||
|
16:43
ashleydev joined
|
|||
| masak | [particle]: well, regardless of precedence, -1.0.sign would give -1 | 16:44 | |
| PerlJam | pmurias: sure it should be taught. You start off with "this way is painful" and you move towards "here are some tools that make it less painful" and hopefully end with "here are some tools that make it fun" | ||
| pmurias | masak: it's the sort of things that people come up by themself | ||
| jnthn | pmurias: I think people understanding the underlying concepts is useful. Teaching them there are tools that make it easier to utilize said concepts also matters too though. :-) | ||
|
16:45
Intensity joined
|
|||
| PerlJam | pmurias: I think you're a victim of a form of confirmation-bias. | 16:45 | |
| [particle] | rakudo: say sign -1 | ||
| p6eval | rakudo 9808d7: OUTPUT«-1» | ||
| jnthn | I disagree with the post though. If you're designing some language to parse, it's likely going to be iterative, in which case having a grammar in an easily modifiable form is helpful. | ||
| PerlJam | pmurias: they'll come up with a hand-tooled parser by themselves *maybe*. Not all CS people have the same experiences. | 16:46 | |
| [particle] | the precedence rules there will lead to the 's/./ / && .reverse' refactor | ||
| masak | why am I getting only failures when running the spectests? | ||
| seems 'use Test' prompts the error 'Could not find sub &Nil' | |||
| anyone else getting this? | |||
| PerlJam | masak: you're getting an older Test.pir from somewhere | 16:47 | |
| masak | I just rebuilt everything. | ||
| jnthn | masak: It may be an installed one. | ||
| (That bit me.) | |||
| masak | maybe I need to hose my ~/.perl6/lib too. | ||
| PerlJam | masak: or at least search it for Test.* | ||
| masak | hm, no Test.pir in there. | 16:48 | |
| going for the installed one. | |||
| pmurias | PerlJam: i don't like the here's the painful way and here's the better way approach | 16:49 | |
| masak | yah, works better now. | ||
| ooc, why should installed dirs trump . ? | |||
| pmurias | PerlJam: it seems like first telling someone to dig a hole with their bare hands and then give them a shovel | ||
| bbkr | rakudo: class Boo { method new() { } }; say Boo.new.WHAT; # why Parcel? (testing rt.perl.org/rt3/Ticket/Display.html?id=72836) | 16:50 | |
| p6eval | rakudo 9808d7: OUTPUT«Parcel()» | ||
| masak | pmurias: isn't that how things generally are tought? | ||
| bbkr: because Nil is a Parcel. | |||
| jnthn | masak: Securiy reasons apparently. | ||
| masak | jnthn: ok. I'm sure you've thought about this. I'd just like to hear the security reason spelled out. | 16:51 | |
| that is, if I have clearance. :) | |||
| jnthn | masak: Denied! | ||
| masak | damn! | ||
| bbkr | masak: oh, so if that's the expected output then this ticket is fixed, right? | ||
| tylercurtis | masak: is . in your PATH? | ||
| bbkr | rakudo: class Boo { method foo() { } }; say Boo.foo.WHAT | 16:52 | |
| p6eval | rakudo ac8a2a: OUTPUT«Parcel()» | ||
| masak | tylercurtis: no. but as a programmer I have bigger control/responsibility over things like that. | ||
| pmurias | masak: i had my Compiler Construction course tought that way | ||
| it wasn't very good | 16:53 | ||
| masak | tylercurtis: in particular, I expect a ./Foo.pm to override and installed Foo.pm | ||
| jnthn | masak: Yes, that's what you want for *development*, I agree. However, for production, I'm told that's a bad idea. | ||
| tylercurtis | pmurias: it seems more like "here's how to write quicksort, but you should usually just use the built-in sorting function if your language provides one". | ||
| jnthn | masak: Somebody who actually groks sysadmin can probably explain it. :-) | ||
| masak | I'm willing to be convinced. | 16:54 | |
| jnthn | masak: I think it's something like, the version in the same directory of the script is more liable to being overwritten in some attack, whereas the globally installed one probably needs root privs to mess with. | ||
| masak: And having somebody replace your DBI with a trojan'd version that mails off whatever passwords are passed to it is probably a not nice thing. | 16:55 | ||
|
16:55
kjeldahl joined
|
|||
| jnthn | (Granted you'd have to have a vuln for that to be done, but security in depth and all that lot.) | 16:55 | |
| masak | jnthn: gotcha. | 16:56 | |
| pmurias | masak: the way i would prefer things to be taught is here's how use a grammar generator and they learn how to write one | ||
| bbkr | rakudo: Rat.^add_method('x', method () {}).x | 16:57 | |
| p6eval | rakudo ac8a2a: OUTPUT«Null PMC access in find_method('x') in main program body at line 22:/tmp/6uXdX3v8xP» | ||
| jnthn | pmurias: To write a grammar, or to write a grammar generator? :-) | ||
| pmurias | grammar generator | ||
| jnthn | bbkr: That ain't going to work out even if it handed back Nil. :-) | ||
| pmurias | writing a grammar generator would be fun | ||
| handwriting a shift-reduce table wouldn't | 16:58 | ||
| bbkr | jnthn: why? if so, should rt.perl.org/rt3/Ticket/Display.html?id=72916 be rejected? | 16:59 | |
| tylercurtis | masak: As well as the security issues, what if you run a script that happens to be written in Perl 6 in lib/Foo/ and the script has a "use Bar;" and you just happen to have a Foo::Bar module in the project you're working on. You probably don't want to override Bar with Foo::Bar. | ||
| masak | tylercurtis: good point. | ||
| jnthn | bbkr: add_method doesn't return anything really, afaik | 17:00 | |
| Tene | masak: the traditional example is with $PATH for binaries. If you have write access to your home directory, and you can trick the sysadmin to cd to your home dir and run 'ls', you could have a binary there that installs a backdoor as the sysadmin's privilege level, removes itself, and then invokes the 'real' ls. | ||
| pmichaud | back again | ||
| jnthn | bbkr: No, Null PMC Access is always wrong | ||
| bbkr: So don't reject the ticket for that | |||
| o/ pmurias | |||
| er | |||
| o/ pmichaud | |||
| masak | pmichaud: \\o | ||
| bbkr | jnthn: ok, leaving unchanged. | ||
| colomon | \\o | 17:01 | |
| jnthn | #phasers in ~ 2 hours? | ||
| masak | pmichaud: I'll have an S26 proposal ready for you Real Soon Now. | ||
| pmichaud | masak: \\o/ | ||
| RT #72916 .add_method really needs to return something. | 17:02 | ||
| pmurias | masak: what were you tought in the "first do it the hard way then the good one way" | ||
| colomon | geez, almost forgot about #phasers | ||
|
17:02
ruoso joined
|
|||
| tylercurtis | masak: On the other hand, explicitly overriding the search path is useful in some cases(although even better in many cases would be being able to say "override the search path for these modules to this place". | 17:02 | |
| pmurias | ruoso: ping | ||
| masak | pmurias: not so much "the hard way" as "the unsugared way". | ||
| bbkr | rakudo: 1/2.''() | ||
| p6eval | rakudo ac8a2a: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected in main program body at line 22:/tmp/q4JqLeCoUY» | ||
| jnthn | pmurias: Nil | 17:03 | |
| gah!!! | |||
| jnthn gives up tab completion | |||
| pmichaud | jnthn: yes, I agree. | ||
| jnthn | pmichaud: Nil I guess | ||
| pmichaud: I'm not going to worry about it though | |||
| pmichaud: When ClassHOW is re-written in NQP we get that for free. | |||
| Tene | any plans to get the R* release mentioned on perl.org etc? | 17:04 | |
| tylercurtis | masak: And if you really want to be able to replace the installed Foo.pm with ./Foo.pm, there's always PERL6LIB="." | ||
| bbkr | rakudo: [[]].''().perl.say | 17:05 | |
| p6eval | rakudo ac8a2a: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected in main program body at line 22:/tmp/IAjyiX0K2V» | ||
| pmichaud | Tene: good thinking, I'll see about contacting the relevant folks. | ||
| PerlJam | presumably since chromatic is re-launching perl.com, it would be good to mention the R* release there too | 17:06 | |
| ingy | greetings | ||
| PerlJam | ingy: greets | ||
| ingy | hi PerlJam | ||
| masak | tylercurtis: aye. I'll probably do PERL6LIB='lib/' and have things in lib/ anyway. | 17:07 | |
| bbkr | rakudo: say ClassHOW.methods(ClassHOW) # RT #73142 | 17:08 | |
| p6eval | rakudo ac8a2a: OUTPUT«Null PMC access in inspect_str() in main program body at line 22:/tmp/9x4OxadasK» | ||
| ingy | how do you define how your class objects stringify/cast? | ||
| mberends | masak: in summary, what are you proposing to do to S26? Remove the impossible bits? | ||
| PerlJam | ingy: $obj.Str() | ||
| ingy | PerlJam: sub Str{} ? | ||
| pmichaud | ingy: you mean the type objects? someday it will be: method Str($self:U) { ... } | ||
| at present we don't have a way to do it. | |||
| ingy | k | ||
| masak | mberends: I promised pmichaud/szabgab to write up a grant proposal for implementing parts of S26 in Rakudo, possibly also updating S26 a bit. | 17:09 | |
|
17:09
justatheory joined
|
|||
| masak | mberends: would be nice to hear if you have any opinions to share from implementing your Pod parser. | 17:09 | |
| jnthn | pmichaud: Also means that we probably don't want our type objects to be a different type to the things they produce as instances. | 17:11 | |
| ingy | masak: I grant you permission to implement S26 :P | ||
| masak | :) | ||
| jnthn | pmichaud: Which is a view I've been converging on anyway. | ||
| pmichaud | jnthn: I don't think that's a requirement, but I'm fine with going that way if it seems righter | ||
| the main purpose of the :U is simply to make sure it doesn't respond that way for .Str on a non-type object | 17:12 | ||
| jnthn | pmichaud: It mostly hangs on if we can get ACCEPTS to reliably work on type objects. | ||
| pmichaud | aye. | ||
| jnthn | pmichaud: Something to try and go over at YAPC. :-) | 17:13 | |
| mberends | masak: It Pod::Parser would be a good post R* hackathon project for Pisa. It's definitely worth getting at least a subset operational, because currently there is no incentive for programmers to include Pod in their Perl 6 code. | ||
| jnthn | pmichaud: 'cus it'll be easier in meatspace and maybe with a whiteboard. :-) | ||
| masak | mberends: I'd like a simple way to get HTML JavaDoc-like output out of a Perl 6 module. | ||
| jnthn | pmichaud: I'm going to have another crack at the role outers bug later on today too. | ||
| PerlJam | jnthn++ | 17:14 | |
| jnthn | Just ran out of energy last night after some hours on it. | ||
| tylercurtis | Does Rakudo support the method name ($self: ) {...} form of method declaration yet? | ||
| jnthn | should do | ||
| You having problems using it? | |||
| masak | tylercurtis: it's been in for a long time, I think. | ||
| tylercurtis | oops. Nevermind. I see my mistake. | 17:15 | |
| jnthn | Phew. :-) | ||
| pmichaud | jnthn: okay. | ||
| jnthn | OK, my hands need a little rest from the keyboard, and I need to do my Russian homework. bbiab :-) | ||
| ruoso | pmurias, pong | 17:16 | |
| ruoso checking if the messages were lost or not | |||
| mberends | masak: it's bitrotted, but the old Pod::Parser also had an HTML emitter, so recovery is likely to succeed. And with a little bit of support from within Rakudo, it will probably perform more efficiently, which was a problem back in the day. | ||
|
17:16
kokajxo joined
|
|||
| masak | mberends: I remember. | 17:17 | |
| ruoso | pmurias, can it store the file alongside with the source? (as the .pmc) | ||
| maybe .pmc.so for the compiled code and .pmc for the code calling the .so | |||
| masak | mberends: but serializing to HTML would not be enough. it'd also need context detection and styles. | ||
| pugssvn | r31848 | colomon++ | [t/spec] Make the NaN tests more thorough. | 17:20 | |
| PerlJam | I started reworking the regexes chapter of the book. I've changed the first example and I wanted some feedback. It's at gist.github.com/492542 | 17:24 | |
| masak | jnthn: it strikes me that the easiest way to solve the Makefile problems on Windows is to not create a Makefile on Windows. | 17:25 | |
| pmurias | ruoso: we could store the compiled code in the .pmc but wouldn't that impact code sharing? | ||
| [Coke] | which makefile problems on windows? | ||
| pmurias | ruoso: how much interop do we need for use v6-mildew to support? | 17:26 | |
| [Coke] has dug through parrot's makefile in the past to windows-friendify things. | |||
| pmichaud | PerlJam: works for me | ||
| I agree... "which makefile problems on windows?" | 17:27 | ||
| my plan thus far this morning has been to keep using makefiles to build things in R* | |||
| pmurias | stuff like sub foo {print $_[0]};use v6-mildew;sub bar {foo("hi\\n") };no v6-mildew; | ||
| ruoso: one thing i'm unsure of is how is the v6 dist assembled | 17:28 | ||
| ruoso: what i currently have working is a modification on the one on CPAN | |||
| ruoso: but i think v6,v6::alpha and v6::mildew should be released separatly as v6::alpha bitrotted a bit and it's installation needs to be forced | 17:29 | ||
|
17:31
markjreed joined
|
|||
| markjreed | rakudo: say [+](2..7),8,9 | 17:31 | |
| p6eval | rakudo ac8a2a: OUTPUT«44» | ||
| markjreed | so functional notation no longer works on list operators. intentional change, or bug? | 17:32 | |
| pmichaud | markjreed: I'm guessing bug. | ||
| markjreed: depends on what the spec currently says. | |||
|
17:34
thepler joined
|
|||
| markjreed | per S03, it should still work as long as there's no whitespace between the operator and the first arg. | 17:34 | |
| pmichaud | then, bug. | ||
| markjreed | I'll file a bug. | ||
| Thanks... | 17:35 | ||
| PerlJam | rakudo: say [+]() | 17:37 | |
| p6eval | rakudo ac8a2a: OUTPUT«0» | ||
| PerlJam | rakudo: say [*]() | ||
| p6eval | rakudo ac8a2a: OUTPUT«1» | ||
| PerlJam | markjreed: where does it say this in S03? | ||
|
17:37
xabbu42 joined
|
|||
| pmichaud | rakudo: say [*](),2,3 | 17:39 | |
| p6eval | rakudo ac8a2a: OUTPUT«6» | ||
| pmichaud | I'd expect that to be "123" and not "6" | ||
| masak | why? | 17:40 | |
| pmichaud | because [*] is a normal list operator | ||
| Tene | PerlJam: why not: my token word { ... } ? | ||
| pmurias | ruoso: re messages were lost? i didn't get any thing on /msg | ||
| masak | pmichaud: does the lack of whitespace matter? | ||
| pmichaud | masak: compare "say(),2,3" and "say (),2,3" | 17:41 | |
| (say is also a listop) | |||
| markjreed | "If there is no whitespace, subsequent parsing depends on the syntactic category of the next item. Parentheses (with or without a dot) turn the list operator into a function call instead" | ||
|
17:41
kokajxo joined
|
|||
| PerlJam | markjreed: thanks. | 17:42 | |
| markjreed | Seems to work for named functions, but not for metaops. | ||
| pmichaud | right, it's undoubtedly a parsing issue for metaops. | ||
| masak | afk | ||
| pmichaud | we should see how STD.pm6 handles the parsing and follow that. | 17:43 | |
| PerlJam | Tene: Well, I was trying to avoid <word=&word> but I guess (<&word>) is easy enough to explain | ||
|
17:43
markjreed left
|
|||
| pmichaud | PerlJam (and others): has anyone taken a look at docs/review-notes.txt ? | 17:44 | |
| PerlJam | pmichaud: briefly. | ||
| pmichaud | explaining &word to non-Perl programmers might be tricky | ||
| <$word> doesn't suffer from that problem. | |||
|
17:44
markjreed joined
|
|||
| markjreed submitted [perl #76758] | 17:45 | ||
| pmichaud | anyone have any strong opinions about how to give release numbers to the R* series? | 17:46 | |
| or what our typical package name would be? | |||
| jnthn | pmichaud: The problem is that the makefiles pls generates don't work on nmake | ||
| pmichaud | jnthn: oh, then perhaps we need to make pls smarter | ||
| jnthn: although in that case I can see the advantage of avoiding make altogether. | 17:47 | ||
| PerlJam | pmichaud: Rakudo-Star-2010.07 (I don't know if that's a strong opinion, but that's what I think about it right now) | ||
| jnthn | pmichaud: Worse, I also discovered that Zavolaj's Makefile doesn't work either. | ||
| pmichaud | PerlJam: .lc, perhaps? | ||
| PerlJam | pmichaud: sure, that works | ||
| jnthn | pmichaud: Which won't be fixed just by fixing please. | 17:48 | |
| uh | |||
| pls | |||
| :-) | |||
| tylercurtis | pmichaud: (Rakudo *), (Rakudo *+1), (Rakudo *+2) ... *; # Not a strong opinion, and somewhat of a joke, but it's a thought. :) | ||
| Tene | * ** *** **** | ||
| PerlJam | ***1 ***2 ***3 ***4 ***5 :) | ||
| Tene | or just go through the ops: *, +, = | ||
| pmichaud | Tene: what happens when we get to &[R*] then ? ;-) | 17:49 | |
| PerlJam | heh | ||
| pmichaud | (i.e., the 'R*' op) | ||
| Tene | Or continue to name it after class literals, *, Int, Str | ||
| Rakudo ClassHOW | |||
| jnthn | By Rakudo *********************** it'll be hard to read which release we're talking about. :-) | ||
| pmichaud | yes, I'm also curious if we want code names for the releases. | ||
| huf | jnthn: surely uou can do '*'x$version_nr | 17:50 | |
| PerlJam | As soon as people make the connection between * and Whatever, we'll get jokes like "Perl 6 ... whatever" | ||
| pmichaud | PerlJam: that will still be better than "Perl 6 ... DNF" | ||
| [particle] | yes, but at runtime that joke will throw an exception | ||
| PerlJam | pmichaud: I'm perfectly happy with rakudo-star-2010.07 and no "code name" (where did the multiple moniker meme come from anyway?) | 17:51 | |
| mberends | I think very few people remember what the code name means. Oslo, when was that again? | 17:52 | |
| [particle] | there's little reason for a code name if a release happens on a defined schedule | ||
| tylercurtis | pmichaud: when we get to &[R*], it's Rakudo R*, which behaves identically to Rakudo *. | ||
| [particle] | if feature completion determines the release date, then a release code name makes more sense | 17:53 | |
| PerlJam | [particle]: we should tell the ubuntu folks that. | ||
|
17:53
Ross^ joined
|
|||
| ruoso | pmurias, I think it would be cool if v6::alpha could be splitted from v6 | 17:54 | |
| pmichaud | in the ubuntu case, it's far easier to search for "lucid" than "10.04", though. | ||
| [particle] | yes, agreed | ||
| PerlJam | (I really have no idea what the ubuntu code names are, I always have to look them up. But I do remember 9.04, 9.10, 10.04, etc.) | ||
| jnthn | pmichaud: I'd go without code names for R* for now. | ||
| imho | |||
| [particle] | in the future, if we need code names for releases, we can lazily evaluate them for the past releases | ||
| PerlJam | [particle]++ | ||
| pmichaud | when I'm looking for a bug report, "screencast ubuntu lucid" is much better for searching than "screencast ubuntu 10.04" | 17:55 | |
| Su-Shee | make butterfly species the code names. | ||
| [particle] | butterflies are for perl 6, we need codenames for rakudo * | ||
| star names. | |||
| pmurias | ruoso: currently v6.pm is a 17 line file which redispatches import | 17:56 | |
| [particle] | rakudo * "james woods" | ||
| PerlJam | pmichaud: really? I just tried it and the results, though different in detail, look comparable. | ||
| [particle] | rakudo * "marilyn monroe" | ||
| kokajxo | caml latin names | ||
| camel* | |||
| Su-Shee | Can I get rakudo * "johnny depp"? :) | ||
|
17:56
plainhao joined
|
|||
| pmichaud | PerlJam: my example was perhaps not the best. But having the extra handle does often make a difference. | 17:57 | |
| [particle] | perl is moving away from the camel, as that's an o'reilly trademark | ||
| ruoso | pmurias, I think fglock wouldn't mind if v6::alpha was shipped as a different module | ||
| pmichaud | also, the camel is more associated with perl 4+5 | ||
| colomon | star names in alphabetical order works for me. | ||
| pmichaud | oooooooh | ||
| star names | |||
| I likey. | |||
| PerlJam | colomon: so ... "rakudo * wolf-359" ? | ||
| pmichaud | "Antares" "Betelgeuse" "Castor" | ||
| PerlJam | rakudo * "sirius" | 17:58 | |
| [particle] | pmichaud: i thought we had talked about that before, that's why i started riffing on it with hollywood stars off the bat | ||
| pmichaud | [particle]: maybe I missed it or wasn't present | ||
| [particle] | i think we start with Arcturus | ||
| huf | use old hollywood stars for a touch of class | ||
| pmurias | ruoso: creating tarballs and showing them to fglock for approval/releasing is a resonable plan? | ||
| colomon | PerlJam: what pmichaud said. | ||
| ruoso | pmurias, yes... | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ }; G.parse('abc', :actions(A)) | ||
| p6eval | rakudo ac8a2a: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 22» | 17:59 | |
| [particle] | it's a summer star (northern hemisphere) and you get to it with the phrase "arc to arcturus" by following an arc of stars in the big and little dippers | ||
| tylercurtis | What's the origin of Rakudo's name? | ||
| [Coke] | (code name)-- -- -- | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; G.parse('abc', :actions(A)) | ||
| p6eval | rakudo ac8a2a: OUTPUT«abc» | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; G.parse('abc', :actions(A.new)) | ||
| p6eval | rakudo ac8a2a: OUTPUT«abc» | ||
| PerlJam | tylercurtis: It's kudos to the sun god Ra | ||
| ingy | \\o/ | ||
| [particle] | there should be a module or utility to convert release dates and code names | ||
| so people can ask rakudo what code name 2010.07 is and vice versa | 18:00 | ||
| pmurias | ruoso: do we need mildew code with v6-mildew to see the surrounding p5 lexicals? | ||
| [Coke] | (wolf 359) there is a Wolf Road here in Albany, NY, kind of a commercial hub. There is ALMOST enough room to put something at 359 Wolf. I want to put in a geek bar or something. | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; $a = A.new; G.parse('abc', :actions($a)) | 18:01 | |
| p6eval | rakudo ac8a2a: OUTPUT«===SORRY!===Symbol '$a' not predeclared in <anonymous> (/tmp/YC5zmZEqZL:22)» | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; my $a = A.new; G.parse('abc', :actions($a)) | ||
| p6eval | rakudo ac8a2a: OUTPUT«abc» | ||
| pmurias | ruoso: is the goal with v6-mildew to allow writing a hybrid program or just a convenient way to run a script? | 18:02 | |
| PerlJam | tylercurtis: really, it's japanese. A contraction of rakuda-do -- way of the camel (or something like that) | ||
| tylercurtis: See rakudo.org/node/18 | |||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { has $v is rw; method r($/) { $.v = ~$/ } }; my $a = A.new; G.parse('abc', :actions($a)); say $a.v | 18:03 | |
| p6eval | rakudo ac8a2a: OUTPUT«Method 'v' not found for invocant of class 'A' in 'A::r' at line 22:/tmp/qzcqyDEObl in 'G::r' at line 22:/tmp/qzcqyDEObl in 'G::TOP' at line 22:/tmp/qzcqyDEObl in 'Grammar::parse' at line 5532:CORE.setting in main program body at line 22:/tmp/qzcqyDEObl» | ||
| pmichaud | tylercurtis: en.wikipedia.org/wiki/Rakudo_Perl#Name | ||
| ingy | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { has $.v is rw; method r($/) { $.v = ~$/ } }; my $a = A.new; G.parse('abc', :actions($a)); say $a.v | ||
| p6eval | rakudo ac8a2a: OUTPUT«abc» | ||
| ingy | ok, that's nice... | ||
|
18:03
isBEKaml joined
|
|||
| ingy | I can keep parse state in my actions object | 18:03 | |
| pmichaud | even better, keep it in your match objects | 18:04 | |
|
18:04
timbunce joined
|
|||
| ingy | pmichaud: I haven't bought into that... | 18:04 | |
| pmichaud | rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { make ~$/ } }; G.parse('abc', :actions(A)).ast.say; | ||
| p6eval | rakudo ac8a2a: OUTPUT«Any()» | ||
| pmichaud | oops | 18:05 | |
| oh, yeah. | |||
| tylercurtis | pmichaud++ PerlJam++, thanks. I actually looked at the wikipedia page and failed to notice that paragraph. | ||
| pmichaud | since it did TOP | ||
| ingy | pmichaud: I'm trying to leave as much p6 out of p6r as possible :) | ||
| pmichaud | ah, okay. | ||
| pmurias | sorear: how can i update stage0 after renaming some modules? | 18:06 | |
| pmichaud | #phasers in.. 52? | 18:08 | |
| ruoso | pmurias, wow... if we could make it see surrounding p5 lexicals it would be JUST AWESOME | ||
| jnthn | pmichaud: *nod* | ||
| pmichaud | okay. time for lunch, then #phasers | ||
| ruoso | pmurias, it certainly wasn't the initial plan, but if it's possible, it certainly is worth it... | ||
| tylercurtis | masak: are you around? | 18:10 | |
| masak | tylercurtis: I think so. | ||
| tylercurtis | Does ufo attempt to detect dependency cycles? | ||
| masak | no. | ||
| sorear | pmurias: make reboot is the safe way | 18:11 | |
| masak | tylercurtis: it's not safe for it to do so, because given the way it finds dependencies, the risk of false positives is high. | ||
| tylercurtis | masak: alright. Thanks. Reading ufo's source is evidently not the solution to my optimization ordering needs for my GSoC, then, although it'll probably help with the sorting part. :) | 18:15 | |
| masak | tylercurtis: detecting cycles using the algorithm from ufo is not only feasible, but simple. | 18:16 | |
| but it doesn't currently do it. | |||
| pmurias | sorear: make: *** No rule to make target `stage0/STD/Actions.pm', needed by `stage0/.stamp'. Stop. | 18:17 | |
| ruoso: so what do we have left in the plan, v6-mildew and Forest::Gtk2? | 18:18 | ||
| ruoso: it might make sense to make the v6-mildew code see the surrounding lexicals | 18:19 | ||
| ruoso | I think in the first version, we make the simpler... | 18:20 | |
| pmurias, and if there's time left we add support for seeing the surrounding lexicals | 18:21 | ||
| pmurias | after Forest::Gtk2? or before that? | 18:22 | |
| tylercurtis | masak: by keeping track of the path from the initial vertex to the current and checking for the current node being in it before now? Or is there a more space-efficient way? | ||
| masak | tylercurtis: hold on. recalling specifics. | 18:24 | |
| ruoso | pmurias, I think it can be after Forest::Gtk2 | ||
| pmurias | releasing Forest::Gtk2 is mostly a matter of thinking how the API should look like | ||
| masak | tylercurtis: right. you have to keep a stack and then check for membership in that stack. just checking for visitedness, is not enough, as can be seen from a diamond A->B->D, A->C->D pattern. | 18:25 | |
| tylercurtis | masak: Thanks. I'll use that approach. If it turns out there's a better algorithm, I'm blaming it on you, okay? ;) | 18:27 | |
| masak | tylercurtis: it's a deal :) | 18:28 | |
| tylercurtis: you abort on the first cycle you find, right? | |||
| tylercurtis | masak: Right. | 18:30 | |
| masak | then it should be enough, and optimal. | ||
| StackOverflow seems to like Tarjan's strongly conncted components algorithm. stackoverflow.com/questions/261573/...cted-graph | 18:31 | ||
| but it seems to be overkill for this particular use case IMO. | |||
| oh wait. that algorithm actually seems pretty close to what we've been discussing. :) | 18:32 | ||
| tylercurtis | It does. :) | 18:34 | |
| pmurias | ruoso: sent a patch to fglock to make v6.pm pluggable | 18:35 | |
| ruoso | cool | 18:42 | |
| mberends | masak: The most practical S26 change that I want to suggest is to also accept a subset of Perl 5 Pod, provided it is enclosed by =pod and =cut (make them aliases for =begin pod and =end pod). | 18:50 | |
|
18:50
lue joined
|
|||
| lue | wello there #perl6 o/ | 18:50 | |
| mberends | helluo! | 18:51 | |
| pmurias | sorear: any idea how to get around that makefile error? | 18:52 | |
| masak | mberends: I'll have to think about that. I think I see whence you're coming, but it also serves to make S26 (and implementations) more bloated, not less. | ||
| masak wonders whether www.reddit.com/user/Dominate_Me_Perl_6 is a net PR win or not :) | |||
| huello! | |||
| pmurias | masak: cycles in a graf just check for grey colored nodes | ||
| frettled | mberends o/ | 18:54 | |
| mberends | \\o frettled | ||
| frettled | masak: that's definitively a net PR win | ||
| lue | .oO(Woah! Only 4 ops!) |
18:55 | |
|
18:55
masak` joined
|
|||
| frettled | and 138 noops! | 18:55 | |
| pmurias | masak: it demonstrates that your PR efforts won over the reddit crowd ;) | ||
| frettled | lue: ironically, the noops are the doers ;) | ||
| lue | last time I was here there were ~14. And we had <100 people here. | 18:56 | |
| patrickas | lue I think there is less need for ops now ... | ||
|
18:57
literal joined
|
|||
| lue | before The Boot, we had 200+ people and 16 ops. | 18:57 | |
| moritz_ | lue: since we have now firm control over the channel via chanserv, we don't have to display our arms | ||
| lue | .oO[ I guess I can finally lop off those stupid limbs then :) ] | 18:58 | |
| [particle] | do we have enough folks with rights? | 18:59 | |
| moritz_ | [particle]: yes | ||
| lue | alright, just wondering what happened. | ||
| [particle] | excellent. | ||
| mberends | reminder: #phasers | ||
| moritz_ | oooh | ||
| forgot that | |||
| frettled | mberends: wozzatforthen? | ||
| mberends | frettled: here, take this /join command and do something with it ;) | 19:00 | |
| frettled | mberends: ooh | 19:01 | |
| lue | or if your client is cool, click here -> #phasers | ||
| frettled | my client is so cool that it won't take clicks from nobody | ||
|
19:02
azert0x joined
|
|||
| patrickas | my client pretends to be cool (changed cursor over the name) but did nothing when I clicked! Such a poser! | 19:03 | |
| isBEKaml | right click and join? :) | ||
| jnthn | pmichaud: #phasers time, if you're about. | 19:04 | |
| isBEKaml | damn, I spoiled the joke! :D | ||
| patrickas | right click and join is for regular clients! all the cool kids just click nowadays :-) | 19:05 | |
| lue | .oO(ooh, I'm on the lost moon of Poosh. This'll be a fun #phasers for me) |
||
|
19:05
nathanchrisman joined
19:06
cono joined
|
|||
| isBEKaml | whoa, I can click too! :) | 19:06 | |
|
19:11
justatheory joined,
alfieANDfred joined
19:14
timbunce joined
|
|||
| lue | rakudo: my postfix:<!>($a) { [*] 1..$a }; say 5! # 120 | 19:15 | |
| p6eval | rakudo ac8a2a: OUTPUT«===SORRY!===Malformed my at line 22, near "postfix:<!"» | ||
| masak | lue: 'sub' | 19:16 | |
| lue | rakudo: sub postfix:<!>($a) { [*] 1..$a }; say 5! # 120 | ||
| p6eval | rakudo ac8a2a: OUTPUT«120» | ||
| masak | rakudo: my sub postfix:<!>($a) { [*] 1..$a }; say 5! # 120 | ||
| p6eval | rakudo ac8a2a: OUTPUT«120» | ||
|
19:16
sjohnson joined
|
|||
| sjohnson | i got kicked out *sad face* | 19:16 | |
| power struggle | 19:17 | ||
| masak | hugme: hug sjohnson | ||
| hugme hugs sjohnson | |||
| sjohnson | heheh | ||
| lue | I love Perl6 every time :) [who knows how much code it would take in other languages] | ||
| pmurias | sjohnson: were did you get kicked out from? | ||
| frettled | sjohnson: the good guys won | ||
| sjohnson | audrey t. | ||
| frettled | sjohnson: nopes, just a nickstealer | 19:18 | |
| patrickas | sjohnson someone pretending to be audery t :-( | ||
| sjohnson | thought she was makin a pugs comeback | ||
| woe are us | |||
| frettled | sjohnson: Audrey's nick is au|irc / au|irc_ | ||
| And she's been making a Perl 6 comeback :) | |||
| masak | au++ \\o/ | 19:19 | |
| sjohnson | #perl6... the source of inexhaustible good news | ||
| new slogan | |||
| patrickas | There can't be enough ++es for au++ ! | ||
| sjohnson | heh. i have a white-belt in perl6 knowledge | 19:22 | |
| lue | .u ✩ | ||
| phenny | U+2729 STRESS OUTLINED WHITE STAR (✩) | ||
|
19:24
whee joined
|
|||
| jnthn | lol...stress out :-) | 19:24 | |
| lue | .u 1F4A9 | ||
| phenny | lue: Sorry, no results for '1F4A9'. | ||
| isBEKaml | .u U+1F4A9 | 19:25 | |
| phenny | isBEKaml: Sorry, no results | ||
| isBEKaml | blah! | ||
| lue | I forgot. phenny hates codepoints >FFFF | ||
| jnthn | Also that one is new in Unicode 6.0. | ||
| lue | 6?!? # does *Perl*6 support it? | 19:26 | |
| frettled | Amazingly, that symbol displayed nicely on my Mac, which is running the previous minor version of MacOS X. :) | 19:27 | |
| lue | must...update....fonts.. | 19:28 | |
| patrickas | lue: for some reason I don't mind my font not being able to display U+1F4A9 :-) | 19:29 | |
|
19:29
arestrrtor joined
|
|||
| lue | Who knows? It could be a secret symbol for entry into the elite sectors of TPF. :) | 19:30 | |
| frettled | lue: it is. | ||
| lue | :D | 19:31 | |
|
19:41
jaldhar joined
19:42
timbunce joined
|
|||
| timbunce | rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; } }; C.alt(); | 19:44 | |
| p6eval | rakudo ac8a2a: ( no output ) | ||
| masak | timbunce: 'say' | ||
| timbunce | I get "Null PMC access in find_method('new')" so I'm happy (or sad) to see nothing, if you see what I mean :) | 19:45 | |
| guess I should clean, pull, and rebuild my rakudo and see if that helps. I trust trunk is in good shape at the moment. | 19:46 | ||
| moritz_ | s/trunk/master/ but yes | ||
| lue | p6eval right now avoids printing errors (IIRC). | 19:47 | |
| timbunce | lue: oh, odd. why? | ||
| moritz_ | lue: no | ||
| lue | so that problem has been fixed? | ||
| moritz_ | rakudo: rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; say $url } }; C.alt(); | ||
| p6eval | rakudo ac8a2a: OUTPUT«===SORRY!===Confused at line 22, near "rakudo: cl"» | ||
| moritz_ | lue: for two weeks, atleast | 19:48 | |
| rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; say $url } }; C.alt(); | |||
| p6eval | rakudo ac8a2a: OUTPUT«d» | ||
| lue | hrm. I didn't notice :) /me stupid | ||
| timbunce | Is "auto::gettext - Does your configuration include gettext...dyld: lazy symbol binding failed: Symbol not found: _libintl_bindtextdomain" from configure normal? | 19:49 | |
| (for parrot) | 19:50 | ||
| pmurias | sorear: should the makefile protect me against breaking stages? | ||
| moritz_ | timbunce: not normal on my system | ||
| jnthn | mberends: ping | 19:53 | |
| mberends | jnthn: pong | 19:54 | |
| jnthn | mberends: Got a moment to advise me on something Makefile-y? | ||
| mberends | yes | ||
| jnthn | LIBSYSTEM = $(shell $(PERL6_EXE) -e 'print @*INC[2]') | ||
| LIBUSER = $(shell $(PERL6_EXE) -e 'print @*INC[1]') | |||
| These are the lines that nmake trips up over | |||
| If I comment them out, then it builds fine | |||
| But of course then can't install. | 19:55 | ||
| For pls makefiles, I guess we can just interpolate those directly in | |||
| (since pls generates the Makefile) | |||
| I'm not quite sure what to do with this one. | |||
| mberends | what about switching to pls? | ||
| lue | hrm, it's not exactly clear how to add different date/time systems (at least in S32). Is there any information how to go about this? | 19:56 | |
|
19:56
ethel joined
|
|||
| moritz_ | lue: just define your own types | 19:56 | |
| lue | ah, ok. Thought it (DateTime) was going to be extensible or something. | 19:57 | |
| [Coke] | rakudo: say '[Coke]--' | ||
| jnthn | mberends: Well, if you're not too attached to the Zavolaj makefile or there's nothing special in it that the one pls generates wouldn't do...? | ||
| p6eval | rakudo ac8a2a: OUTPUT«[Coke]--» | ||
| mberends | jnthn: I'll test pls with Zavolaj on Linux now | ||
| moritz_ | [Coke]++ # release | ||
| jnthn | mberends: OK, thanks. | 19:58 | |
| [Coke] | moritz_: no, that's what I was trying to fix. =-) | ||
| mberends | jnthn: or do we mean ufo? | ||
| jnthn | mberends: This potentially gives me one less thing to have to fix on Windows. | ||
| mberends: pls includes something ufo-like | |||
| mberends: Though it's copy pasta rather than a call out to ufo. | |||
| [Coke] | jnthn: if you still need windows help tomorrow, leave me a note. I can resurrect my wintop. | 19:59 | |
| mberends | jnthn: well ufo is smaller, and gives Zavolaj fewer dependencies | ||
| [Coke] | (it's strawberry perl, but I can test with nmake instead, which should get most of the same issues.) | ||
| jnthn | [Coke]: Thanks! :-) | 20:00 | |
| [Coke] | here's hoping you don't need me. =-) | ||
| jnthn | mberends: fewer dependencies as in...? | 20:03 | |
|
20:03
alester joined
|
|||
| timbunce | jnthn & mberends: the 'print @*INC[1]' tripped me up for a while because I had other dirs in PERL6LIB. Would be best to be able to ask perl6 directly what the right dirs are, rather than assume @*INC[1] and @*INC[2]. (Hopefully pls doesn't have that problem) | 20:04 | |
| mberends | jnthn: I wrongly thunk pls depended on an external ufo | 20:05 | |
| timbunce: I agree, we just have to ask perl6 another way | 20:06 | ||
|
20:07
justatheory joined
20:08
dual joined
|
|||
| alester | Who is releasing Rakudo *? | 20:11 | |
|
20:11
jferrero joined
|
|||
| moritz_ | alester: I hope pmichaud does :-) | 20:11 | |
| alester | Does he/she have an announcement to go with it? | ||
| pmichaud | me | 20:12 | |
| I'm writing the announcement tonight. | |||
| alester | AnythingI can help with? | ||
| moritz_ | pmichaud: nopaste.snit.ch/22351 -- the part that populates %h works, but an :i modifier is ignored - am I dooing something obvious wrong? | 20:13 | |
| pmichaud | it's possible the regex engine doesn't look at %REGEX_MODIFIERS yet for :i | 20:14 | |
|
20:15
HarryS joined
|
|||
| pmichaud | alester: I'll post an advance copy soon -- reviews and patches will be very welcome | 20:15 | |
|
20:16
ashleydev joined
|
|||
| moritz_ | pmichaud: it doesn't respect :s either | 20:17 | |
| $ ./perl6 -e '$_ = "a b cd"; s:g:s/a b/X/; .say' | |||
| a b cd | |||
|
20:17
50UAAF4RK joined
|
|||
| [Coke] | pmichaud: can I close 49171? seems like ROADMAP is a better indicator these days. | 20:17 | |
| pmichaud | [Coke]: +1 | ||
|
20:18
dimid joined
20:19
Bucciarati joined
20:26
jferrero joined,
dual joined,
alester joined,
ethel joined,
jaldhar joined,
whee joined,
cono joined,
nathanchrisman joined,
literal joined,
lue joined,
Ross^ joined,
thepler joined,
kjeldahl joined,
tylercurtis joined,
_macdaddy joined,
breinbaas joined,
patspam joined,
ab5tract joined,
PZt joined,
Util joined,
Guest8689 joined,
bbkr joined,
mscha joined,
tuxuday joined,
pmurias joined,
phenny joined,
slavik joined,
meppl joined,
colomon joined,
buu joined,
au|irc_ joined,
dalek joined,
Tene joined,
frooh_ joined,
mmpf joined,
felliott joined,
Patterner joined,
hudnix joined,
PacoLinux joined,
molecules joined,
jnthn joined,
Snowclone joined,
sawyer_ joined,
sboyette joined,
dolmen_ joined,
Maddingue joined,
hercynium joined,
[particle] joined,
niko joined,
rgrau joined,
[Coke] joined,
constant joined,
wolverian joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
TimToady joined,
hsb joined,
kst joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
sbp joined,
tomaw joined,
Khisanth joined,
araujo joined,
avar joined,
moritz_ joined,
yahooooo joined
20:27
kjeldahl_ joined
20:28
pmichaud_ joined,
jferrero joined,
dual joined,
alester joined,
ethel joined,
jaldhar joined,
whee joined,
cono joined,
nathanchrisman joined,
literal joined,
lue joined,
Ross^ joined,
thepler joined,
tylercurtis joined,
_macdaddy joined,
breinbaas joined,
patspam joined,
ab5tract joined,
PZt joined,
Util joined,
Guest8689 joined,
bbkr joined,
mscha joined,
tuxuday joined,
pmurias joined,
phenny joined,
slavik joined,
meppl joined,
colomon joined,
buu joined,
au|irc_ joined,
dalek joined,
Tene joined,
frooh_ joined,
mmpf joined,
felliott joined,
Patterner joined,
hudnix joined,
PacoLinux joined,
molecules joined,
jnthn joined,
Snowclone joined,
sawyer_ joined,
sboyette joined,
dolmen_ joined,
Maddingue joined,
hercynium joined,
[particle] joined,
niko joined,
rgrau joined,
[Coke] joined,
constant joined,
wolverian joined,
meteorjay joined,
Gothmog_ joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
TimToady joined,
hsb joined,
kst joined,
Eevee joined,
Sanitoeter joined,
felliott__ joined,
sbp joined,
tomaw joined,
Khisanth joined,
araujo joined,
avar joined,
moritz_ joined,
yahooooo joined
20:31
pmichaud_ joined,
jferrero joined,
dual joined,
ethel joined,
jaldhar joined,
whee joined,
cono joined,
nathanchrisman joined,
literal joined,
lue joined,
Ross^ joined,
thepler joined,
tylercurtis joined,
_macdaddy joined,
breinbaas joined,
patspam joined,
ab5tract joined,
PZt joined,
Util joined,
Guest8689 joined,
bbkr joined,
mscha joined,
tuxuday joined,
pmurias joined,
phenny joined,
slavik joined,
colomon joined,
buu joined,
au|irc_ joined,
dalek joined,
Tene joined,
frooh_ joined,
mmpf joined,
felliott joined,
Patterner joined,
hudnix joined,
PacoLinux joined,
molecules joined,
jnthn joined,
Snowclone joined,
sawyer_ joined,
sboyette joined,
dolmen_ joined,
Maddingue joined,
hercynium joined,
[particle] joined,
niko joined,
rgrau joined,
[Coke] joined,
constant joined,
wolverian joined,
meteorjay joined,
p6eval joined,
chitragupt joined,
abrasive joined,
pugssvn joined,
dju joined,
hugme joined,
hsb joined,
Eevee joined,
felliott__ joined,
Khisanth joined,
araujo joined,
avar joined,
moritz_ joined,
yahooooo joined
20:32
HarryS joined
20:33
phenny joined,
shade_ joined
20:34
perlygatekeeper joined
|
|||
| timbunce | pls? Anyone got a link for pls, especially how to create a distro? (It's not mentioned on perl6.org/whatever/ where proto is listed) | 20:35 | |
| moritz_ | timbunce: currently it's a branch in the proto repo. And as long as it's in a branch, I'm reluctant to make a link to it | 20:37 | |
| timbunce | moritz_: fair enough. I want to make a distro for the DBDI stuff. Would you recommend I use pls? | 20:38 | |
| moritz_: it's not urgent | |||
|
20:39
niko joined
20:40
Kodi joined
|
|||
| moritz_ | timbunce: pls and proto are pretty easy... if you have no dependencies, and just normal .pm or .pm6 files (no extra build actions required), you don't need to do anythiing to be compliant with them | 20:40 | |
| dalek | ok: 8b98b2e | duff++ | (23 files): Merge branch 'master' of github.com:perl6/book |
||
| timbunce | moritz_: I depend on zavolaj | 20:41 | |
|
20:41
dalek joined
|
|||
| moritz_ | timbunce: echo zavolaj > deps.proto; git add depds.proto | 20:42 | |
| timbunce | moritz_: ok, thanks. Reading the docs now :) | ||
| moritz_ | timbunce: how is dbdi doing on rakudo master? | 20:44 | |
| timbunce | 'tis grand thanks! | 20:46 | |
| dalek | p-rx: da0c21f | moritz++ | src/Regex/P6Regex/Actions.pm: Quotes should respect :i |
20:48 | |
| p-rx: 120f566 | moritz++ | t/nqp/50-regex.t: add tests for :i and quoted strings |
|||
| PerlJam | I wonder if it might be useful to ship dbdi with R* even though it's not usable for anything. | ||
| dalek | p-rx: a11bb45 | moritz++ | src/stage0/ (3 files): update bootstrap files with :i + quotes fixes |
||
| masak | food & | 20:54 | |
| moritz_ | PerlJam: -1. R* is about being useful | ||
| rt.perl.org/rt3/Ticket/Display.html?id=76758 | |||
| is that valid? | |||
|
20:55
nimiezko joined,
timbunce joined,
drbean joined
|
|||
| jnthn | moritz_: No, I don't think so. | 20:55 | |
| Meta-operators aren't function invocations. | 20:56 | ||
| pmichaud_ | moritz_: note that we won't have a new nqp-rx before R* | ||
| jnthn | Well, they are but not /that/ way. | ||
| moritz_ | pmichaud_: I know | ||
| pmichaud_ | okay, just checking. | ||
| moritz_ | I just don't want to forget fixing stuff :-) | ||
| there'll be a life after R*, I hope :-) | |||
| pmichaud_ | jnthn: S03 is pretty clear that [+] is just a listop. | ||
|
20:57
ashleydev_ joined
|
|||
| pmichaud_ | and parses like a listop | 20:57 | |
| jnthn | pmichaud_: I'm pretty sure Rakudo parses it the same way as STD. | ||
| pmichaud | we should check that then. | 20:58 | |
| jnthn | pmichaud: Though it's possible that we missed something. | ||
| pmichaud | I know that I'd expect say [+](),2,3 to output "123" and not "6" | 20:59 | |
| moritz_ | getting a parse tree out of STD seems non-trivial | ||
| jnthn | Anyway, not urgent for now, but I guess let's leave the ticket open to review. | ||
| pmichaud | er, "023" | ||
|
20:59
ashleydev_ joined
|
|||
| jnthn | pmichaud: OK, that surprises me a bit, I'd figured it was just a list prefix operator | 20:59 | |
| pmichaud | it is a list prefix operator | ||
| and like all list prefix operators, immediate parens treat it like a function call | |||
| jnthn | Ah, OK | ||
| pmichaud | thus say(1),2,3 outputs "1" and not "123" | ||
| jnthn | Then Rakudo musta missed something STD has. | 21:00 | |
| pmichaud | (since 'say' is a listop.) | ||
| jnthn | Or STD is missing something. | ||
| pmichaud | yes, it's entirely possible STD is missing it as well. | ||
| jnthn | oh, I think that may be what the last time of prefix_circumfix_meta_operator:reduce rule is about. | 21:01 | |
| *line | |||
| OK, then I agree, it's a bug | |||
|
21:02
nimiezko joined
21:04
whiteknight joined
|
|||
| colomon | pmichaud: does this look like a reasonably good way of testing iterator speed? gist.github.com/492860 | 21:07 | |
| pmichaud | colomon: just time it using for or map | 21:08 | |
| since that's the common case | |||
| moritz_ | colomon: why do you ++ in the loop? that just adds noise | ||
| pmichaud | I would time it with | ||
| for 1..10000 { 1; } | |||
| again, benchmark the common case | 21:09 | ||
| or even | |||
| for 1..10000 { my $a = $_ + 1; } | |||
| (to make sure it actually does something with the value) | |||
| colomon | rakudo: say [+] 1..10000 | 21:10 | |
| p6eval | rakudo ac8a2a: ( no output ) | ||
|
21:10
grew joined
|
|||
| Tene | rakudo: say [+] 1..100 | 21:11 | |
| p6eval | rakudo ac8a2a: OUTPUT«5050» | ||
| colomon | Tene: it's just too slow. | ||
| Tene | colomon: right | ||
| colomon | pmichaud: is there an easy way to generate a list incorporating an iterator? I'm hoping to test iterator speed without recompiling rakudo a bunch. | 21:14 | |
| pmichaud | colomon: sure (more) | ||
| Range.list is just | 21:15 | ||
| multi method list() { $.iterator.list } | |||
| i.e., if you create an Iterator, then $iterator.list gives you a List using that iterator. | 21:16 | ||
| colomon | great. pmichaud++ | ||
| heh. just occurs to me the 1..* case can be really really fast... | 21:19 | ||
| pmichaud doesn't see it yet. | 21:20 | ||
| colomon | don't have to check for end conditions ever | ||
| pmichaud | oh, right. | ||
| yes | |||
| colomon | more than half the code goes away. | 21:21 | |
|
21:21
lichtkind joined
|
|||
| [Coke] | would anyone be upset if I opened all the RT tickets we have before R*? | 21:21 | |
| pmichaud | [Coke]: okay by me, I think. | ||
| [Coke] | (so that we can easily identify the new ones because they'll be in the new bucket?) | ||
| pmichaud | I think I can get a similar result with a date-based search, though? | ||
| [Coke] | all the *new* tickets, that is. | 21:22 | |
| pmichaud | anyway, I wouldn't be upset. | ||
| [Coke] | pmichaud: it would be kind of a PITA, but yes, you could do that. | ||
|
21:22
justatheory joined
|
|||
| [Coke] bets orelse is low hanging fruit. | 21:23 | ||
| lichtkind | why isnt going web.pm into R* ? | ||
| pmichaud | I bet it's not :-) | ||
| Tene | lichtkind: doesn't run on R*, only on alpha | 21:24 | |
| lichtkind: if it was updated, that would be great. | |||
| lichtkind | Tene: thanks, inded | ||
| [Coke] | rakudo: my @a = <one two>; @a[-1] = 'zero'; @a.perl | 21:26 | |
| p6eval | rakudo ac8a2a: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/Udd9hXZOxN» | ||
| Tene | rakudo: my @a = <one two>; @a[*-1] = 'zero'; @a.perl | ||
| p6eval | rakudo ac8a2a: ( no output ) | 21:27 | |
| Tene | rakudo: my @a = <one two>; @a[*-1] = 'zero'; say @a.perl | ||
| p6eval | rakudo ac8a2a: OUTPUT«["one", "zero"]» | ||
|
21:27
mikehh joined
|
|||
| [Coke] | Yes, I know. I'm checking an RT. :P | 21:27 | |
| PerlJam | The error message is LTA if nothing else | 21:28 | |
| pmichaud | PerlJam: what would you have expected? | ||
| Tene | [Coke]: I expected so. | ||
| pmichaud | rakudo: my @a; say @a[-1]; | ||
| [Coke] | std: my @a = <one two>; @a[-1] = 'zero'; @a.perl | ||
| p6eval | rakudo ac8a2a: ( no output ) | ||
| std 31848: OUTPUT«[31m===[0mSORRY![31m===[0mUnsupported use of [-1] subscript to access final element; in Perl 6 please use [*-1] at /tmp/_S14_hLpVq line 1:------> [32mmy @a = <one two>; @a[-1][33m⏏[31m = 'zero'; @a.perl[0mParse failedFAILED 00:01 118m» | |||
| [Coke] | that one. | 21:29 | |
| PerlJam | pmichaud: that! | ||
| :) | |||
| pmichaud | ah yes, that's a compile-time error that we don't currently catch. | ||
| but there's also | |||
| std: my $x = -1; my @a = <one two>; @a[$x] = 'zero'; | |||
| p6eval | std 31848: OUTPUT«ok 00:01 118m» | ||
| [Coke] | rakudo: IO.WHAT.say | 21:30 | |
| p6eval | rakudo ac8a2a: ( no output ) | ||
| pmichaud | ooc, I wonder if it's worth creating a #perl6-eval channel where p6eval lives (in addition to #perl6) where people can try out eval strings | 21:31 | |
|
21:31
niko left
|
|||
| PerlJam | so we have a place to shunt the noise? | 21:31 | |
| pmichaud | yes, but it can still be public for people who want to watch | ||
| (otherwise it can be done with /query #p6eval) | 21:32 | ||
| [Coke] | colomon: can you review #68140 - your bug report is confusing. | ||
| pmichaud | probably not worth the effort | ||
| [Coke] | phenny: ask colomon can you review #68140 - your bug report is confusing. | 21:33 | |
| phenny | [Coke]: I'll pass that on when colomon is around. | ||
| colomon | [Coke]: looking at it atm | ||
| phenny | colomon: 21:33Z <[Coke]> ask colomon can you review #68140 - your bug report is confusing. | ||
| pmichaud | jnthn: ping | 21:34 | |
| colomon | ./perl6 fdsfsgdsfds.pl | ||
| ===SORRY!=== | |||
| Unable to open filehandle from path 'fdsfsgdsfds.pl' | |||
| jnthn | pmichaud: pong | ||
| colomon | Basically, if you attempt to execute a script that isn't there, that's the message you get. | ||
| pmichaud | jnthn: nm, I think I answered my own question. It was about using 'cd' in Makefiles (appears to work) | 21:35 | |
| colomon | it's a fine message if you know the script isn't there, but it can be confusing if you think it is. | ||
| (what happened to me was the first line of the script I was writing started with an "open" command, but I was trying to run the wrong filename.) | |||
| jnthn | colomon: You'd want more "File 'fjkfjfd.pl' not found" or some such? | ||
| ingy | I only ask this here because you guys are my favorite perl people | ||
| pmichaud | pmichaud@plum:~/star/dist$ perl xyz | ||
| Can't open perl script "xyz": No such file or directory | |||
| [Coke] | colomon: if you can add what you want to see on the ticket, that'd be awesome. =-) | ||
| colomon | Perhaps "Script 'fjkfjfd.pl' not found" | 21:36 | |
| ? | |||
| pmichaud | see above example from 'perl' | ||
| do that. :-) | |||
| [Coke] | the p5 message is fine, I think. | ||
| colomon | ah, yes. | ||
| pmichaud | I'll build it into HLL::Compiler after the release. | ||
| since HLL::Compiler is the place where the exception would need to be handled. | |||
| [Coke] | we have any cygwin users? | ||
| pmichaud | (assign me the ticket, please) | ||
| ingy | nm... I got a rep o protect | 21:37 | |
| dalek | ok: b0708ef | duff++ | (2 files): incorporate fixes from Pm; answer Pm's questions |
||
| [Coke] | pmichaud: assigned. | 21:38 | |
| ... OOOH. time to resurrect the perl6 CLI interface via irc. | |||
| s/perl6/RT/ | |||
| which rt | 21:39 | ||
| ww | |||
|
21:39
kokajxo joined
|
|||
| ingy | hmm ok here goes. How do I set a file level package dynamically in p5? | 21:39 | |
| colomon | pmichaud: just been messing around with int range iters. the sort of obvious Int-based optimizations don't seem to do squat for the timing. | ||
| [Coke] | (though permissions issues would suck.) | ||
| colomon | pmichaud: please don't look into this at the moment, you've got better things to be doing. | 21:40 | |
| I think basically all the slow is coming from the iterator structure itself. | |||
| pmichaud | colomon: a lot of the slow is, yes. | ||
| that's the downside to immutable iterators | 21:41 | ||
| we end up having to make a lot of them | |||
| but batching can improve things a lot | |||
| if RangeIter (or SeriesIter, for that matter) can generate up to 100 elements at a time, we reduce the number of iterators by a factor of 100 | 21:42 | ||
| colomon | I can probably optimize the Int operations a tad (go straight to pir if needed) but don't expect that to gain us more than maybe 5%. | ||
| pugssvn | r31849 | Kodi++ | [t/spec] Instant and Duration tweaks. | ||
| colomon | pmichaud: is there an example somewhere of how that might work? | ||
| pmichaud | colomon: all it means is that instead of an iterator returning ($value, $nextIter) | 21:43 | |
| it would return | |||
| ($value0, $value1, $value2, ..., $nextIter) | |||
| colomon | well, that's easy enough to test for the N=2 case. | ||
| pmichaud | and if it exhausts the iteration, then it doesn't need to supply a $nextIter | ||
| colomon | but I should probably cook noms first. | ||
| pmichaud | basically, .reify returns a parcel containing iterated values (if any), and an iterator to use to get more (if any) | 21:44 | |
| colomon | is there any way to construct a Parcel with N elements? (picturing a when statement with 100 cases to handle the end of the 100 elements at a time case, and that seems very wrong.) | 21:48 | |
| pmichaud | for this test, it would be okay for .reify to return a List with the n elements | 21:49 | |
| well, hmm, not really. | |||
| hrmmmmm | |||
| oh, yes. | |||
| &infix:<,>(|@elems, $nextIter) | 21:50 | ||
| (we can probably improve that a bit at some point) | |||
| jnthn | Yeah, | is not exactly optimized at the moment (wasn't really expecting it to be relied on in a critical path :-)) | ||
| pmichaud | to my thinking, this is really one of those places where optimizing in PIR instead of P6 makes some sense. | 21:51 | |
| but I seem to be swimming against the current there. | |||
| jnthn | pmichaud: Is a Parcel still really an RPA underneath? | 21:55 | |
| pmichaud | subclass of an RPA | ||
| but yes. | |||
| pir::push would work on it. | |||
| jnthn | pmichaud: If so, isn't just my $parcel = pir::new('Parcel'); pir::push($parcel, $value); ... | ||
| Right. | |||
| I don't have a problem with doing things like that. | |||
| pmichaud | that works as long as you're willing to accept that the Parcel isn't a p6opaque | 21:56 | |
| jnthn | Because I expect those we can generalize over VMs later | ||
| It's Q:PIR that gets tricky | |||
| pmichaud | and you also run into problems that $parcel ends up being a Seq | ||
| jnthn | Oh | ||
| And we can't := it because...that does fancy stuff. | |||
| Oh, maybe it'd work. | |||
| pmichaud | but in the final analysis, the point is that at some point low-level manipulations have to be, well, low-level. | 21:57 | |
| jnthn | rakudo: my $x := pir::new('Parcel'); say $x.WHAT | ||
| p6eval | rakudo ac8a2a: OUTPUT«===SORRY!===The opcode 'new_p' (new<1>) was not found. Check the type and number of the arguments» | ||
| jnthn | rakudo: my $x := pir::new__Ps('Parcel'); say $x.WHAT | ||
| p6eval | rakudo ac8a2a: OUTPUT«Parcel()» | ||
| PerlJam | tweets like these make me happy: bit.ly/bFFn6y bit.ly/9uuyNI | ||
| jnthn | PerlJam: :-) | 21:58 | |
| pmichaud | PerlJam: me too. I hope they don't turn around and say "whoa! that was a waste." :-) | ||
| jnthn | pmichaud: (OT) When will you be arriving to Pisa? | 22:01 | |
| Monday? | |||
| pmichaud | scheduled landing is 18h30 iirc | 22:02 | |
| jnthn | OK. | ||
| I expect to make it to the hotel around 15h00 or so | |||
|
22:03
Guest23195 left,
am0c joined
|
|||
| colomon | pmichaud: actually, I think optimizing specialized core low-level iterators in PIR makes perfect sense. | 22:03 | |
| afk # back to cooking | |||
| jnthn | YESSS! | ||
| jnthn gets a beer!! | |||
| pmichaud | jnthn: I'm guessing my hotel will be around 20h00. And I'll undoubtedly want nom. | 22:04 | |
| am0c | o/ o hai | ||
| jnthn | am0c: oh hai! | ||
| pmichaud | grrrrrrrr | ||
| jnthn | pmichaud: You're flying into Pisa? The hotel is like, really really really close to the airport. So if you land on time you may be earlier than that. :-) | 22:05 | |
| pmichaud | jnthn: yes, but I have to get through immigration | ||
| jnthn | pmichaud: In other news...I just made a break-through on the role otuers bug. | ||
| pmichaud: ah, true | |||
| am0c | jnthn: o/ heheh | ||
| pmichaud | jnthn: I'm not EU-citizen-quick-line | ||
| jnthn | pmichaud: Oh, where is your connection? | ||
| pmichaud | LHR, iirc | ||
| jnthn | Ah, OK | ||
| Then yes, you'll do passport control in Pisa. | 22:06 | ||
| pmichaud | what's the best way from airport to hotel? | ||
| jnthn | (If you'd said Frankfurt or some such, then you'd have cleared it there and entered the check-free Schengen zone.) | ||
| pmichaud: Well, given it's a few hundred meters, maybe even on foot. ;-) | 22:07 | ||
| pmichaud | jnthn: yeah, that's what I was thinking also. :) | ||
| jnthn | pmichaud: Only thing is if it's a few hundred meters as the crow flies and an annoying trek in terms of where you can walk. | ||
| colomon | jnthn: \\o/ | 22:08 | |
| pmichaud | google maps says 1.7 km walk | ||
| jnthn | pmichaud: But even so, a taxi that short way to save you the hassle shouldn't cost much. | ||
|
22:08
wamba joined
|
|||
| pmichaud | agreed | 22:09 | |
| I can't believe .gitignore is part of the parrot tarball MANIFEST. Evil. | |||
| lichtkind | sorear: can blizkost do 5.12? | 22:12 | |
|
22:12
hanekomu_9 joined
|
|||
| [Coke] | pmichaud: please open a bug report on that. =-) | 22:13 | |
|
22:22
kokajxo joined
|
|||
| pmichaud | R* should come with 'proto' or 'pls'? | 22:33 | |
| current star repo shows that it comes with 'proto' | |||
| jnthn | pmichaud: Note that pls is a branch in the proto repo | 22:34 | |
| pmichaud: Lsat I looked the script checked that out. | |||
| pmichaud | ah | ||
| yes, pls_rstar_hacks | |||
| jnthn | *nod* | ||
|
22:34
kid51 joined
|
|||
| pmichaud | it doesn't have a README or anything, though. | 22:35 | |
| so what do I need to do to install it? | |||
| or is that dependent on 'ufo'? | |||
| jnthn | No, it doesn't depend on ufo | 22:37 | |
| I think it can just be run "as is" | |||
| pmichaud | ah, it's called 'proof_of_concept' | ||
| that's kinda weird. | |||
| jnthn | Yeah, I asked what it needed before it could be renamed a while back...forget the exact answer. | ||
| (Asked here, let's see if I can find it in the logs.) | 22:38 | ||
| aww, the logs search is LTA it seems | 22:39 | ||
| pmichaud | it doesn't search for words smaller than 4 letters | ||
| Tene | I prefer using grep to search my logs. :) | 22:40 | |
| jnthn | pmichaud: aww | ||
|
22:41
japhb joined
|
|||
| jnthn tries searching for everything he's said to masak :-) | 22:41 | ||
| pmichaud: Can't find it. But essentially it was, iirc, that masak++ wanted to make some Perl 5 wrapper script around it to detect if there was of Perl 6 available (I maybe remember wrong) and some better usage notice and things like that. | 22:44 | ||
| pmichaud: But afaik the actually installing stuff bit is meant to work fine already...if you're not on a platform where the Makefile it writes doesn't work. | 22:45 | ||
| japhb | I've got a Perl Mongers meeting tonight, and a question has come up that a friend and I would like to discuss, but unfortunately we don't have enough time to write tests of our own to answer it: Is there any sense of the comparative performance of a Perl 5 application that uses Moose pretty much to the max, and the equivalent Perl 6 code in Rakudo? This is not meant to start a battle, and I'm specifically talking about an app that is NOT | 22:46 | |
| I/O bound, nor compute bound by tight kernels. I'm talking purely about the cost of the introspection, argument validation, type coersion, and so forth. | |||
| Sorry for the wordiness. | |||
| jnthn | rakudo: role R { method m { say 42 } }; class C does R { }; C.new.m | ||
| p6eval | rakudo ac8a2a: OUTPUT«Could not find sub &say in 'm' at line 22:/tmp/L5ZMIB5w2P in main program body at line 22:/tmp/L5ZMIB5w2P» | ||
| jnthn | > role R { method m { say 42 } }; class C does R { }; C.new.m | ||
| 42 | |||
| <huge beer slurp> | 22:47 | ||
| jnthn timidly runs the spectests | |||
| japhb: Not aware of one. | |||
| japhb: The meta-model is currently not exactly performant. That's one of the reasons it's the Next Big Thing I plan to work on. | |||
| japhb | Basically we'd like to make the argument that it's worth it for people thinking about making the Moose move to try going all the way to Perl 6. I think most would be willing to deal with a moderate loss of performance, but orders of magnitude might be a hard sell .... | ||
| jnthn, ah, thank you. | |||
| jnthn | japhb: One interesting data point I did see once was that Perl 5 + a bunch of Moose modules had equivalent startup time or similar at least startup time to Rakudo. | 22:48 | |
| japhb | That is a good data point indeed. | ||
| jnthn | japhb: Not sure how well it holds today. | ||
| japhb: Moose is no doubt getting better all the time in that sense. | 22:49 | ||
| japhb | One hopes. :-) | ||
| Has Rakudo been doing the same? Is startup time improving, or at least not getting greatly worse? | |||
| jnthn | japhb: Anyway, in the medium term I'm quite comfortable that we're going to be able to do attribute accesses and method dispatch (or at least in terms of locating the method to call, if not actually invoking it) competitive with Moose, and in the maybe not too much longer term better if there's enough type info around. | 22:50 | |
| japhb: The meta-model re-design I'm doing is very deliberately aimed at supporting a gradually typed langauge, as Perl 6 is, rather than a purely dynamically typed one. I hope we can win something notable there. | 22:51 | ||
| japhb | That's great to hear. (on both counts). | ||
| jjore_ | though fwiw, Moose is pretty abysmal right now in performance. I hadn't used Moose for CLI stuff til it happened as part of work. It's shocking how slow startup is. | 22:52 | |
| japhb | I notice your comment about the cost of invoke ... is it significantly slower to do a method call in Rakudo/Parrot than in Moose/Perl 5? | ||
| Tene | japhb: on my system, perl6 -e 1 take 0.9s, and perl -Moose -e 1 takes 0.2s | ||
| so, about 5x | 22:53 | ||
| jnthn | We seem to have slipped badly on startup time of late. Like, a factor of 3 over what we were a while back. | ||
| I wish I knew why. | |||
| japhb | Hmmm. | ||
| jnthn | git bisets on that would be most welcome. | ||
| Tene | japhb: you'll also want to test it on large programs, to see the speed of rakudo's parser. | 22:54 | |
| japhb | True. | ||
| sorear | phenny: tell pmurias any time you rename files you *need* to change the makefile. On a case by case basis, so I can't help you. | ||
| phenny | sorear: I'll pass that on when pmurias is around. | ||
|
22:54
drbean joined
|
|||
| Tene | perl -e 1 is 0.003s on my laptop | 22:54 | |
| japhb | Has anyone already written a Perl 6 port of a sizable Moose-using app or module? | ||
| Tene: nice! | 22:55 | ||
| Tene | so, rakudo to p5moose is 5x, p5moose to p5 is 100x | ||
| japhb | Anything that runs faster than a single frame update of your monitor is Fast Enough. | ||
| Well, for command-line use at least. ;-) | |||
| sorear | good * #perl6 | ||
| jnthn | fwiw, our parsing speed is not unrelated to our method dispatch speed. The nice thing about grammars is the dispatches are on the invocant, and we have plenty of type information about that. | ||
| jjore_ | fwiw, the program I used at diotalevi.isa-geek.net/~josh/100720...akudo2.txt really spends pretty much "all" its time in the rakudo regexp engine and while I ahven't traced it down, some inputs were phenomenally slower to execute against. | 22:56 | |
| sorear | phenny: msg lichtkind blizkost has been tested on 5.10.1 and 5.12.0. It is known to not work on 5.8.9. | ||
| jnthn | Is t\\spec\\S02-builtin_data_types\\declare.t failing for anyone other than me in current Rakudo master, ooc? | ||
| japhb | jnthn, Ah, so your improved meta-model should end up making that dispatch (and thus parsing) significantly faster? | ||
| jnthn | sorear: s/msg/tell/, and morning :-) | ||
| sorear | phenny: tell lichtkind blizkost has been tested on 5.10.1 and 5.12.0. It is known to not work on 5.8.9. | 22:57 | |
| phenny | sorear: I'll pass that on when lichtkind is around. | ||
| sorear | Actually it's 4PM. My sleep schedule has recently gone from "insane" to "indescribable" :( | ||
|
22:58
rgrau_ joined
|
|||
| jnthn | japhb: I'd not like to claim "significant" until I have numbers to back it up. :-) What I can say is that it should often be an array index into a v-table to look most methods up on a grammar cursor, then invoking what comes back, compared to today where we go looking in hashes. | 22:58 | |
| japhb | Still a decent improvement, one hopes. | 22:59 | |
| jnthn | I'd hope so. | ||
| When I'm designing this stuff I'm tending to do it at the level of, "so how many pointer derefs/CPU level ops/C-level function calls will this take" | 23:00 | ||
| For the very core of the model, anyways. | |||
| And for the most optimal cases. | 23:01 | ||
| But grammars are well positioned to be able to be optimal. | |||
| japhb | jjore_, That is an interesting result, if a bit painful. | ||
| jnthn | And hit the fast path a lot of the time. | ||
| japhb | Good! | ||
| sorear | I almost asked there "Why are you talking to yourself" | 23:02 | |
| jjore_ | you can find a conversation about it, apparently on 2010-07-20 based on the URL. | ||
| japhb | jjore_, thanks, looking | ||
| jnthn | sorear: I know that feeling. I got up around 4PM on Saturday. Decided I needed to normalize things a bit, so just didn't sleep on Saturday night. Kinda worked. :-) | 23:03 | |
| sorear | jnthn: According to TimToady, all inter-rule backtracking in Perl 6 is done by having grammar methods return lazy lists of Cursors | 23:04 | |
| How do you feel about thi | |||
| s | |||
| jnthn | sorear: I'm kinda the wrong person to ask - that's more one for pmichaud. It sounds sane at first blush. | 23:05 | |
| kid51 | The instructions on this page rakudo.org/how-to-get-rakudo tell me how to get rakudo -- but they don't tell me how to get Rakudo* on Thursday July 29 | ||
| jnthn | sorear: At the end of the day though, Cursors are objects, lazy lists are objects, and they all have methods. So anything that speeds up method dispatch is very likley going to help the situation. :-) | 23:06 | |
| sorear: I'm not sure how Pm implemented the inter-rule backtracking stuff recently. | 23:07 | ||
| japhb | Thanks everyone for the answers! | 23:09 | |
|
23:10
Kodi joined
|
|||
| pmichaud | pmichaud.com/sandbox/rakudo-star-beta1.tar.gz # a *VERY* preliminary tarball. No docs, no book, modules don't install yet | 23:10 | |
| jnthn | pmichaud: What should it do so far? Build a Parrot and a Rakudo? | 23:11 | |
| pmichaud | basically | ||
| jnthn | pmichaud: And then die? | ||
| OK | |||
| I can at least check it does that | |||
| pmichaud | perl Configure.pl --gen-parrot | ||
| jnthn | pmichaud: my $hack is epic; # for the roles fix | ||
| pmichaud | make | ||
| make rakudo-install | |||
| jnthn | pmichaud: But it works and we can dig down to the real problem. | ||
| Later on. | |||
| pmichaud | dinner calls -- bbiab | 23:12 | |
| jnthn | I'm spectesting now, and down to S06 it's looking decent. | ||
| kk | |||
| sorear | (What should come next in niecza?) | 23:13 | |
| pmichaud | jnthn: can I review the patch? | ||
| pugssvn | r31850 | Kodi++ | [t/spec] More high-precision Instant tests. | 23:14 | |
| jnthn | pmichaud: gist.github.com/493036 | 23:15 | |
| mberends | sorear: I'm interested in applying my former Sprixel spectest fudging harness to niecza, to begin probing what p6 compatibility it is missing. | 23:16 | |
| jnthn | pmichaud: Basically, the issue is not taht the sub's ->outer_ctx is broken, but that lexical lookup follows ctx->outer_ctx | ||
| pmichaud: And that is pointing to something that doesn't end up pointing down to the setting. | |||
| pmichaud: I'm sure now we know that's what it is, we can get down to the real underlying issue, but my feeling is that this will be a fix somewhere in Parrot or set_outer_ctx or so. | 23:17 | ||
| sorear | mberends: niecza has a spectest fudging harness now. I haven't bothered to fudge any spectests yet, mostly because they'd be completely full of such stuff | 23:18 | |
| Kodi | phenny: tell masak gist.github.com/493037 A patch to implement Instants and Durations; please review at your convenience. | 23:19 | |
| phenny | Kodi: I'll pass that on when masak is around. | ||
| sorear | mberends: my current short-term agenda is a rewrite of Test.pm6 to have a ::Builder and more of the nicities of p5 Test::More, like line numbers | ||
| mberends | sorear: did you once write that spectests did not really interest you? | 23:20 | |
| sorear | I may have | 23:21 | |
|
23:24
Kodi left
|
|||
| mberends | sorear: so another direction is towards trying to support some applications, instead of mainly passing tests. niecza may need some additions to its runtime library for that. | 23:25 | |
|
23:26
PerlJam joined,
Util joined,
dukeleto joined,
dalek joined,
pugssvn joined
23:30
pmichaud joined
|
|||
| jnthn | pmichaud: fail | 23:34 | |
| 'make' is not recognized as an internal or external command, | |||
| operable program or batch file. | |||
| pmichaud: That is when I run make | |||
| pmichaud: er, nmake | |||
| After the perl Configure.pl --gen-parrot | |||
| pmichaud: May be that "make" is hard-coded somewhere? | |||
| pmichaud | yeah, it probably is. | ||
| fixing. | |||
| jnthn | OK | 23:35 | |
| pmichaud: Do I have +1 to apply the role outer workaround? | |||
| pmichaud: I know it's horrible, but the bug it works around is more horrible. | |||
| pmichaud | looking | 23:36 | |
| if this patch fixes the problem, I'm even more convinced that the underlying issue is that the mainline's outer is being clobbered or not set up properly somehow. | 23:38 | ||
| jferrero | www.rakudo.org/rss.xml don't work very well... | ||
| pmichaud | jferrero: yes, it's been noted for well over a year but not fixed. :-( | ||
| jnthn | pmichaud: Well, "fixes". But yes. | ||
| pmichaud: Anyway, it takes the preassure off to hunt that bug, and I suspect it'll be a Parrot fix anyway. | 23:39 | ||
| pmichaud | I don't understand the part where @!recapture gets set. | ||
| oh, yes I do. | |||
| you're keeping an array of contexts | |||
| jnthn | Right | ||
| And then twiddling their outer_ctx pointer | |||
| pmichaud | and at the beginning of the mainline, you go back and reset the outers on all of those contexts | ||
| jnthn | Right | 23:40 | |
| The thing is that lexical lookup doesn't actually care about the sub's outer context | |||
| pmichaud | and this happens only for roles | ||
| jnthn | It follows the context's ->outer_ctx pointers | ||
| Right | |||
| pmichaud | right, I know the sub outer context doesn't matter. It's only useful when a sub is invoked. After that, it has no meaning. | ||
| jnthn | I think the issue is this | ||
| We clone the methods so that they capture the role parameters | 23:41 | ||
| They then point to the context (the one I'm capturing to fixup) | |||
| sorear | (note to self: implement protopad-powered roles before the rakudo true fix lands) | ||
| jnthn | But that one doesn't point down to the setting. | ||
| pmichaud | jnthn: right. and I think that's because the code that initializes the roles is occuring before main gets its set_outer | 23:42 | |
| which ought to be happening, like, immediately. | |||
| but something seems to be setting main's set_outer back | |||
| ....I wonder if the real answer is that the block for the mainline needs to be :lexical(0) | |||
| jnthn | I wonder if it's to do with auto-clone. | ||
| Oh, maybe not | 23:43 | ||
| Hm | |||
| pmichaud | I wonder if the outer block is capture_lex on the mainline when we don't want it to be. | ||
| *that* would make a bit of sense. | |||
| jnthn | pmichaud: ooc, where is the set_outer that's meant to be making the link? | 23:44 | |
| pmichaud | UNIT_START | ||
| actually, several places | |||
| but UNIT_START calls &YOU_ARE_HERE | |||
| let me double-check | |||
| ah, it's !YOU_ARE_HERE | 23:45 | ||
| jnthn | pmichaud: The call to !UNIT_START appears to be in a :load sub that's the last thing in the PIR, and thus after all the :load :init blocks that set up roles/classes etc | ||
| pmichaud | !YOU_ARE_HERE gets the mainline block and sets the outer_ctx of the mainline to the outer_ctx of the setting | ||
| jnthn: yes, but I also did one where it happened *first thing* in the PIR | |||
| jnthn | pmichaud: And that didn't fix it either? | ||
| pmichaud | no. | 23:46 | |
| and that surprised me. | |||
| jnthn | Yeah, I remember now. | ||
| Yeah, even more so in light of this workaround. | |||
| colomon | pmichaud: will have full report later, but initial tests suggest 3-4 at a time is ideal for an iterator. (In terms of absolute time off the execution, going from 3 to 4 was better than going from 4 to 7.) | ||
| pmichaud | jnthn: Actions.pm:67 | 23:47 | |
| I'm pretty sure that .loadinit occurs before any role or class .loadinits | 23:48 | ||
| jnthn | pmichaud: oh, I missed that | ||
| Yes, you're right. | |||
| pmichaud | but then when I check the mainline at runtime, it has the wrong outer again | 23:49 | |
| which means something set it back (perhapsthe "outer" block) or the original didn't take. | 23:50 | ||
| anyway, +1 on the patch | |||
| we may need to keep the fixup code in place for a while, and I don't see it causing a major problem for us. I don't like the messiness, but I agree that this is far less troublesome than the bug it fixes. | |||
| and nicely done. | 23:51 | ||
| jnthn | Aye. | ||
| Thanks. It's taken some hours to get it down to this. :-) | |||
| pmichaud | pmichaud.com/sandbox/rakudo-star-beta2.tar.gz | ||
| (should fix the "make" problem) | |||
| jnthn | Fetching. | ||
| Tene | pmichaud: I haven't been following... is that tarball suitable for asking others to test yet? | 23:52 | |
| jnthn | Tene: Maybe a little early yet. | 23:54 | |
| Tene | 'k | ||
| pmichaud | Tene: it doesn't have good instructions or readme yet | 23:55 | |
| I expect to have a better on in ~2h | |||
| *one | |||
| I don't quite have proto and ufo figured out yet | |||
| can I change "proof_of_concept" to be "pls", ooc? | |||
| afk, walk | 23:56 | ||
| dalek | kudo: 7f5c22f | jonathan++ | src/ (3 files): A workaround for the role outer scopes bug. It's not perfect, and it's certainly |
23:57 | |
|
23:58
Psyche^ joined
|
|||
| jnthn | pmichaud: afaiu, you don't need to figure out ufo - the similar makefile generation that pls does is embedded in proof_of_concept already. | 23:58 | |
| It doesn't depend on ufo as such, afaik. | 23:59 | ||