»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released! Set by diakopter on 6 September 2010. |
|||
00:02
redicaps left
00:03
risou left
00:10
XaRDaX left
00:11
c1sung joined
00:18
M_o_C joined
|
|||
masak | 'night, #perl6 | 00:22 | |
00:22
masak left
00:33
M_o_C left
00:36
M_o_C joined
00:37
M_o_C left
00:45
rgrau_ joined
00:46
envi left
00:47
lichtkind joined
|
|||
sorear | it's doing something broken with say(1), warning about "bare say" | 00:47 | |
lichtkind | rakudo: my @a = 1..9; elems @a | ||
p6eval | rakudo : ( no output ) | ||
lichtkind | rakudo: my @a = 1..9; say elems @a | ||
p6eval | rakudo : OUTPUT«9» | 00:48 | |
lichtkind | rakudo: my @a = 1..9; say @a | ||
p6eval | rakudo : OUTPUT«123456789» | ||
lichtkind | rakudo: my @a = 1..9; say + @a | ||
p6eval | rakudo : OUTPUT«9» | ||
00:48
sftp left
00:50
envi joined
|
|||
lichtkind | is there still minmax function? | 00:51 | |
rakudo: my @a = 1..9; say @a.min | 00:52 | ||
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = 1..9; say @a.ax | ||
p6eval | rakudo : OUTPUT«Method 'ax' not found for invocant of class 'Array' in main program body at line 22:/tmp/7hdqgDCn3d» | ||
lichtkind | rakudo: my @a = 1..9; say @a.max | ||
p6eval | rakudo : OUTPUT«9» | ||
lichtkind | rakudo: my @a = 1..9; say @a.minmax | ||
p6eval | rakudo : OUTPUT«123456789» | ||
lichtkind | rakudo: my @a = 1..9; my ($a,$b) = @a.minmax; say $a | 00:53 | |
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = 1..9; say scalar @a | 00:57 | |
p6eval | rakudo : OUTPUT«Could not find sub &scalar in main program body at line 22:/tmp/duOAQFBAjL» | ||
lichtkind | rakudo: my @a = 1..9; say $ @a | ||
p6eval | rakudo : OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 22, near "$ @a"» | ||
lichtkind | rakudo: my @a = 1..9; say $@a | 00:58 | |
p6eval | rakudo : OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 22, near "$@a"» | ||
00:58
_twitch joined
01:00
QinGW joined
01:02
tylercurtis joined,
icwiener_ joined
01:03
icwiener left
01:06
Chillance left
|
|||
lichtkind | rakudo: my @a = [2..4],1..9;my @b = @a[0];@b[1]=9; say @a[0;1]; | 01:08 | |
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = [2..4],1..9;say @a[0;1]; | ||
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = [0..4],1..9;say @a[0;1]; | ||
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = [0..4];say @a[0;1]; | 01:09 | |
p6eval | rakudo : OUTPUT«Any()» | ||
01:09
tylercurtis left
|
|||
lichtkind | rakudo: my @a = [0..4],2;say @a[0;1]; | 01:09 | |
p6eval | rakudo : OUTPUT«2» | ||
01:09
jrockway left
|
|||
lichtkind | rakudo: my @a = [0..4],[5..9];say @a[0;1]; | 01:09 | |
p6eval | rakudo : OUTPUT«5 6 7 8 9» | ||
lichtkind | rakudo: my @a = [0..4],[5..9];say @a[1]; | 01:10 | |
p6eval | rakudo : OUTPUT«5 6 7 8 9» | ||
lichtkind | rakudo: my @a = [0..4],[5..9];say @a[0][1]; | ||
p6eval | rakudo : OUTPUT«1» | ||
01:11
jrockway joined
|
|||
lichtkind | rakudo: my @a = [0..4],[5..9];my @b = @a[0];@b[1] = 11; say @a[0][1]; | 01:11 | |
p6eval | rakudo : OUTPUT«1» | ||
lichtkind | rakudo: my @a = [0..4],[5..9];my @b = @a;@b[1] = 11; say @a[1]; | 01:12 | |
p6eval | rakudo : OUTPUT«5 6 7 8 9» | ||
dalek | odel: b930a23 | diakopter++ | / (2 files): [dotnet] port the first 200 lines of Cursor.pir to P6Objects.pm (Regex::Cursor in nqp) |
01:23 | |
diakopter | a decent-sized commit | 01:24 | |
01:26
rgrau_ left
01:46
_twitch left
01:50
tylercurtis joined
02:00
impious left
02:06
whiteknight left
02:13
tylercurtis left
02:14
tylercurtis joined
|
|||
masonkramer | just learned how MAIN() turns its signature into a command line interface. That's just great | 02:23 | |
02:27
tylercurtis left
02:30
molaf_ joined,
molaf left,
tylercurtis joined
02:34
ch3ck3r joined
02:38
ch3ck left
|
|||
masonkramer | is it possible to alias a role's method to a different symbol? | 02:50 | |
in the case of a conflicting role | 02:51 | ||
nevermind, I guess declaring in-class and disambiguating that way allows you to compose the two conflicting roles, and after that it's easy to alias | 02:53 | ||
03:00
satyavvd joined
03:05
ggoebel left
|
|||
lichtkind | rakudo: my @a = 1..9; say ~ @a | 03:14 | |
p6eval | rakudo : OUTPUT«1 2 3 4 5 6 7 8 9» | ||
colomon | rosettacode translation of p5 mandelbrot script: gist.github.com/706079 | ||
I don't know how to post to rosettacode.... | |||
lichtkind | rakudo: my @a = 1..9; say ? @a | 03:15 | |
p6eval | rakudo : OUTPUT«Bool::True» | ||
lichtkind | rakudo: my @a = 0; say ? @a | 03:16 | |
p6eval | rakudo : OUTPUT«Bool::True» | ||
colomon | rakudo: my @a; say ?@a | ||
p6eval | rakudo : OUTPUT«Bool::False» | ||
03:18
tylercurtis left
03:20
tylercurtis joined,
tylercurtis left
|
|||
lue | lichtkind: how's about this motto, based on what you said a while ago: "Perl 6: the only wall is Larry." | 03:21 | |
lichtkind | lue: :) | 03:22 | |
lue: the only wall is larry himself :) | |||
lue: but you motto is far more positive | 03:23 | ||
lue: want to have a look at www.perlfoundation.org/perl6/index....ble_tablet ? | 03:25 | ||
the wiki has to be replaces the syntax is very whacke in some ways | 03:28 | ||
lue | The wiki software is weird to work with, you mean? | 03:34 | |
lichtkind | yes i actually replace certain underscores (made by the autoformater before)to spaces to get certain text italic like already marked | 03:40 | |
thats absurd | |||
03:40
redicaps joined
|
|||
masonkramer | rakudo: rule bugfinder { \w+ :: \w+ }; | 03:57 | |
p6eval | rakudo : OUTPUT«===SORRY!===:: not yet implemented at line 22, near " \\w+ };"» | ||
masonkramer | rakudo: rule { :: } | 03:58 | |
lue | your bugfinder worked, masonkramer. | 03:59 | |
p6eval | rakudo : OUTPUT«===SORRY!===:: not yet implemented at line 22, near " }"» | ||
masonkramer | I love it when things work | 04:00 | |
std: rule { :: } | |||
p6eval | std a194beb: OUTPUT«ok 00:01 119m» | ||
masonkramer | niecza: rule { :: } | ||
p6eval | niecza fe78c53: ( no output ) | ||
masonkramer | niecza: (my rule a { :: }).WHAT | 04:01 | |
p6eval | niecza fe78c53: ( no output ) | ||
04:01
cdarroch left
|
|||
lue | rakudo: say log(3); say 3.log; | 04:07 | |
p6eval | rakudo : OUTPUT«1.098612288668111.09861228866811» | ||
lue | rakudo: say 3.ln; say ln(3); | ||
p6eval | rakudo : OUTPUT«1.09861228866811Could not find sub &ln in main program body at line 22:/tmp/Gpuv7MYL_U» | ||
04:10
Limbic_Region left
|
|||
masonkramer | std: rule colons { :: }; | 04:18 | |
p6eval | std a194beb: OUTPUT«ok 00:01 119m» | ||
masonkramer | is there a licensing issue which prevents the book from being shipped as a pdf | 04:23 | |
TheHarlot | right... and going to go through the various S\d+ now. | 04:25 | |
04:26
Bzek joined,
Bzek_ left
|
|||
PerlJam | masonkramer: what book? "Using Perl 6"? | 04:31 | |
04:38
meppel joined
04:39
meppl left
|
|||
TheHarlot | oh right... I think we are at nearly a level that Howtos can start appearing on Perl 6 | 04:40 | |
04:44
meppel left
|
|||
lue | Is there a way to round to a certain number of decimal places in Perl 6? (i.e. round 3.523498934 to 3.5235) | 05:09 | |
05:11
cookys joined
|
|||
PerlJam | lue: $number.fmt('%.4f') | 05:17 | |
lue | .oO(who doesn't love printf?) |
05:18 | |
lue doesn't. | |||
rakudo: say 3.592.fmt('%.1f') | 05:20 | ||
p6eval | rakudo : OUTPUT«3.6» | ||
lue | rakudo: say (3.592, 2.332).fmt('%.1f') | ||
p6eval | rakudo : OUTPUT«3.6 2.3» | ||
lue | rakudo: say ( [+] (((2.ln**$_)/($_!)) for 0..$_) for 0..2).join("\n").fmt('%.6f') | 05:21 | |
p6eval | rakudo : OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
lue | Hm. I'll have to round manually I guess. | 05:22 | |
PerlJam | rakudo: 3.141592653589.round.say | 05:23 | |
p6eval | rakudo : OUTPUT«3» | ||
PerlJam | rakudo: 3.141592653589.round(0.0001).say | 05:25 | |
p6eval | rakudo : OUTPUT«3.1416» | ||
05:25
_kaare joined
|
|||
lue | rakudo: say ( [+] (((2.ln**$_)/($_!)) for 0..$_) for 0..2).round(0.000001).join("\n") | 05:32 | |
p6eval | rakudo : OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
05:48
sftp joined
05:52
starcoder left
05:56
starcoder joined
|
|||
sorear | good * #perl6 | 06:01 | |
06:01
Patterner left
|
|||
sorear | Why does Perl 6 have so many numeric types? | 06:04 | |
sorear plans to only have Num until someone comes up with a very good reason for complicating it | 06:06 | ||
06:06
sftp_ joined,
broquaint left,
sftp left,
broquaint joined
|
|||
sorear | masonkramer: you need a 'say' in p6eval commands | 06:07 | |
niecza: say (rule { :: }).WHAT | |||
p6eval | niecza fe78c53: OUTPUT«» | ||
sorear | that is odd. :/ | 06:08 | |
niecza: say ?("ax" ~~ / [ a y | a x ] /) | |||
p6eval | niecza fe78c53: OUTPUT«Bool::True» | 06:09 | |
sorear | niecza: say ?("ax" ~~ / [ a :: y | a :: x ] /) | ||
p6eval | niecza fe78c53: OUTPUT«Bool::False» | ||
sorear | :: is working, even if I can't get regexes to print | ||
06:12
sftp_ left
|
|||
sorear | Scary error messages: "Useless redeclaration of variable $Any()" | 06:14 | |
06:15
Psyche^ joined,
Psyche^ is now known as Patterner
06:16
starcoder left,
starcoder joined
|
|||
diakopter | sorear: heh | 06:27 | |
sorear: loading the setting twice? | 06:29 | ||
sorear | diakopter: $Any(), not Any | ||
06:30
kjeldahl joined
|
|||
sorear | that's '$' ~ the stringifcation of an undefined value | 06:30 | |
06:57
kjeldahl left
|
|||
dalek | ecza: 76aaa2c | sorear++ | v6/ (2 files): [v6] fix $x += 1 |
07:05 | |
ecza: 9e9fcd1 | sorear++ | v6/tryfile: [v6] fix $foo.=method |
|||
ecza: c0d8a49 | sorear++ | v6/tryfile: [v6] fix listops and indirect object syntax |
|||
07:07
plobsing left
07:09
PZt joined
07:11
araujo left
07:31
lichtkind left
07:42
xinming left
07:43
xinming joined
07:50
satyavvd left
07:51
_kaare left
07:58
colomon left
07:59
colomon joined
08:00
wtw joined
08:14
baest joined,
justatheory left
08:15
antani joined
08:16
antani left
|
|||
diakopter | moritz_: 'morn | 08:21 | |
moritz_ | oh hai diakopter | 08:22 | |
what's up? | 08:24 | ||
diakopter | nohmuchk | 08:29 | |
porting pmichaud's .pir to nqp | |||
Cursor.pir | |||
into P6Objects.pm in 6model | |||
moritz_ | sounds like useful work, but maybe not so much fun | ||
diakopter | actually I'm enjoying it quite nicely | 08:30 | |
moritz_ | 'o/ | 08:31 | |
tadzik | o/ | ||
diakopter | oo I think I just got indirect method invocation working | 08:32 | |
moritz_ wonders if $obj.:=method makes sense... probably not very much | 08:33 | ||
sorear | $obj.:=method, how would that parse? | ||
hello diakopter, moritz_ | |||
moritz_ | sorear: just like $obj.=method, but with binding instead of assignment | ||
sorear | that doesn't parse, currently. I' | 08:35 | |
08:35
nine joined
|
|||
sorear | m not sure it should - metamacros are a slippery slope | 08:35 | |
dalek | ecza: 429442c | sorear++ | v6/tryfile: [v6] fix "$foo.method" |
||
08:40
_kaare joined
|
|||
moritz_ | "Clarification: I didn't mean to imply that a Rat would be sufficient | 08:43 | |
for Duration, but rather that it would probably suffice for | |||
dimensioned values to have a RatBag of units, each with a RatBag of | |||
dimensions, rather than NumBags. SBags might be too restrictive. | |||
" | |||
moritz_ regrets having brought the issue to p6l in the first place | |||
sorear | moritz_: I'd like to kill Duration and Instant | 08:46 | |
08:46
zby_home joined
|
|||
sorear | I'd also like to kill Complex, and Int, and Rat, and FatRat doubly so, and all of this "dimensional analysis" and "numeric ladder" nonsense | 08:46 | |
Num is the one true CORE:: numeric type | |||
moritz_ thinks that Rat is *very* useful | 08:47 | ||
sorear | if somebody wants a Rat, fine, we have excellent overloading support | ||
moritz_ | it lets people write things like loop (my $x = 0; $x <= 10; $x += 0.1) { ... } without being surprised by FP accuracy limitations | 08:48 | |
that avoids a lot of FAQs, which is a good thing IMHO. | |||
08:49
kjeldahl joined
|
|||
sorear | my intuition is that suppressing the obvious FAQ makes the problem surface later in more confusing contexts | 08:50 | |
waterbed theory | |||
I seem to remember there being some early (for me, so Mar-ish) FP acccuracy discussion here, and I tried to make a trivial demonstration | 08:51 | ||
and failed, because of Rat | |||
that's the only time Rat has ever made a success/failure difference in my Perl6ing | |||
maybe I'm just bitter | |||
moritz_ | sorear: it made a very real difference in one of my applications | 08:52 | |
sorear: I was creating axis labels in SVG::Plot | |||
and with nums I'd get floating point inaccuracies, and had a label like 1.02E-16 instead of 0 | 08:53 | ||
and then Rakudo switcht to Rat literals by default, and my problem went away | |||
I was very glad | |||
I think that'll happen to more people than just me | |||
sorear | ok. | 08:54 | |
sorear wants to fight spec bloat; only features that are actually useful should go in! | 09:01 | ||
moritz_ | +1 | ||
sorear | How much would it hurt if out-parameters had to be annotated at call-sites? e.g. $obj.method(out $foo) | 09:03 | |
s/out/rw/ | |||
dalek | ecza: 571d549 | sorear++ | v6/tryfile: [v6] fix #OK processing |
||
09:10
xinming_ joined
09:13
xinming left
09:18
f00li5h joined
09:20
dakkar joined
09:23
_kaare left
09:26
daxim joined
09:29
araujo joined,
araujo left,
araujo joined
|
|||
sorear | aaaa say(1) is heisenbugging on me | 09:36 | |
09:37
pnu left
09:40
_kaare joined
09:41
pnu joined
09:45
zby_home left
|
|||
moritz_ | sorear: fwiw perlgeek.de/images/blog/labels-combined.png left: with rats right: with Num | 09:47 | |
sorear | thanks | 09:49 | |
moritz_ should blog more often with images generated by p6 :-) | |||
tadzik | hello again | 09:56 | |
moritz_: humans like images :) | |||
09:56
agentzh joined
10:07
QinGW left
10:10
am0c^ joined
10:11
tzhs joined,
am0c joined
10:16
nothingmuch joined
|
|||
sorear | 71m 30s 76.36% | 10:21 | |
10:24
tadzik1 joined
|
|||
tadzik1 | is there a possibility I've been banned on feather? | 10:25 | |
I typo'ed my password thrice, and now I can't connect | |||
daxim | gannonbanned! | ||
sorear | Symptoms? | ||
a | |||
tadzik1 | just before I decided to copy my ssh key | ||
moritz_ | tadzik: I can log in just fine | 10:26 | |
sorear | yep, you're banned | ||
DROP all -- samorzad.nat.student.pw.edu.pl anywhere | |||
tadzik1 | can you fix me? | ||
sorear | sudo iptables -L output | ||
looks like just fail2ban | |||
tadzik1 | seems so | ||
or I need to prove I'm the real tadzik? :) | 10:27 | ||
sorear | I'm reading documentation now | 10:28 | |
it looks like people are only banned for 10 minutes | 10:29 | ||
so try again now | |||
wait, no | |||
moritz_ | a German howto says I should run iptables -D fail2ban-ssh -s $IP -j DROP | 10:32 | |
sorear | iptables howto? or fail2ban? | ||
if the latter, do it | |||
moritz_ | fail2ban | ||
iptables: Bad rule (does a matching rule exist in that chain?). | 10:33 | ||
sorear | I know how to manually administer iptables but I have no clue if I'd break fail2ban by doing so | ||
moritz_ | but the rule is gone | ||
sorear | moritz_: 10 minute timeout | ||
moritz_ | sorear: probably :-) | ||
tadzik: please try again :-) | |||
sorear | from 'sudo fail2ban-client get ssh bantime' --> 600 | ||
tadzik1 | yay works | ||
thank you folks | |||
sorear | and set an authorized_keys | ||
tadzik1 | doing so now | 10:34 | |
10:34
tadzik1 left
|
|||
tadzik | back here :) | 10:34 | |
10:48
daxim left
10:52
ggoebel joined
10:55
redicaps left
11:00
_xiaomo_ joined
11:05
nothingmuch left
|
|||
tadzik | can one build the new Rakudo with --gen-parrot w/o an internet connection? It always runs git fetch, even if you have a good revision alredy there, doesn't it? | 11:32 | |
11:32
meppl joined
|
|||
sorear | I suspect not | 11:33 | |
but --gen-parrot doesn't do much | |||
just install Parrot manually, it's a totally standard configure-make-make install process | |||
tadzik | yeah, but it tries to download it every time it seems | 11:34 | |
moritz_ | tadzik: if you have built the parrot of a good revision, it shouldn't try to download | ||
tadzik | Maybe I'd look into it when I get home | ||
moritz_ | whoa | 11:35 | |
RELEASE_2_10_0-388-gf0aa28e | |||
nearly 400 commits since the release on Tuesday? | |||
hm, maybe the branch merges counted all the commits in the branches too | |||
sorear | bah. | 11:38 | |
found the root of the say(1) bug | |||
niecza: say ("(a)" ~~ / '(' ~ ')' <alpha> /).dump | |||
p6eval | niecza 571d549: OUTPUT«#<match from(0) to(3) text((a)) pos([]) named({})>» | ||
sorear | the <alpha> named capture is being lost | ||
and I suddenly remember I never had a good design for captures in ~ in the first place :/ | 11:39 | ||
sorear -> sleep on it | |||
11:50
bbkr left
11:51
masonkramer left,
masonkramer joined
12:04
icwiener_ left
12:19
kanishka joined
12:20
hax left
12:23
_xiaomo_ left,
agentzh left
12:26
amkrankruleuen joined
12:29
orafu left,
orafu joined
12:30
agentzh joined
12:33
bluescreen joined
12:34
bluescreen is now known as Guest52024
12:36
timbunce joined
12:58
tzhs left
13:02
Alias_ joined,
tzhs joined
13:05
Alias__ left,
masonkramer left
13:07
gavv\w left
|
|||
colomon | rakudo: say (1...*-1).WHAT | 13:10 | |
p6eval | rakudo : OUTPUT«List()» | ||
colomon | thank the maker | ||
moritz_ | colomon: I think you made it yourself :-) | 13:11 | |
colomon | we broke the spec, but Rakudo still works, luckily | ||
currying must be broken for list ops, or something | 13:12 | ||
moritz_ | rakudo: say 1 ... *-1 | ||
p6eval | rakudo : OUTPUT«12» | ||
moritz_ | that's funny | ||
but it's correct | |||
rakudo: say (1 ... *)[^10] | 13:13 | ||
p6eval | rakudo : OUTPUT«12345678910» | ||
colomon | moritz_: when TimToady changed the spec to make 1..*-1 explicitly return a WhateverCode, he didn't carve out an exception for 1...*-1 | ||
moritz_ | uhm. The series op never curried. | 13:14 | |
colomon | but 1...*-1 has to work differently, else 1...*>10 won't work | ||
the Range op never curried, either | |||
moritz_ | so, what's the problem? that the spec doesn't say that ... doesn't curry? | 13:15 | |
colomon | moritz_: the spec classes ... with .. in terms of currying | ||
but ... cannot curry at all. | |||
moritz_ | then the spec is wrong | ||
agreed. | 13:16 | ||
colomon | this probably represent the real reason .. shouldn't be allowed to curry WhateverCode arguments -- we will get FAQs for the rest of eternity why @a[1..*-1] works, but @a[1...*-1] doesn't. | 13:17 | |
though I guess @a[1...*] was already problematic | 13:18 | ||
moritz_ | well, one way or another we'll get FAQs | ||
there's no way a sequence can curry within a subscript, but not otherwise, without going completely bananas | 13:19 | ||
13:19
Patterner left
|
|||
moritz_ | why isn't section on currying in S03? it's operators that are curried, after all | 13:20 | |
colomon | I dunno. | ||
13:21
MayDaniel joined,
Alias_ left
13:23
_kaare left
|
|||
colomon | anyway, I'm changing the autocurrying code to explicitly except ... and ...^, even though it doesn't seem to be called in those cases. | 13:23 | |
takadonet | morning all | ||
colomon | o/ | 13:24 | |
and I guess I'll patch the spec, too, though I'm sure TimToady++ can do it better. | 13:25 | ||
moritz_ already works on a spec patch | |||
colomon | \o/ | 13:26 | |
then I won't work on a spec patch | |||
just code. | |||
moritz_ | what's ... called now? sequence? | ||
colomon | yes | 13:27 | |
13:27
gavv\w joined
|
|||
colomon | rakudo: say 1..*>10 | 13:27 | |
p6eval | rakudo : OUTPUT«Bool::False» | ||
colomon | :\ | ||
rakudo: say 1..(*>10) | |||
p6eval | rakudo : OUTPUT«_block124» | ||
colomon | I fear we have unleashed chaos... | 13:28 | |
moritz_ | do we have a ticket for the first case? | ||
dalek | ecs: dd9966d | moritz++ | S02-bits.pod: [S02] do not autocurry sequence operators at all |
||
colomon | moritz_: I don't know. Is it wrong? | 13:30 | |
rakudo: say +(1..*) | |||
p6eval | rakudo : OUTPUT«-9223372036854775808» | ||
colomon | ah, so effectively we have a ticket, I think. | ||
moritz_ | I don't see why (1..*)>10 shouldn't autocurry over the whole expression | 13:31 | |
13:31
MayDaniel left
|
|||
takadonet | Since Text-Tabs-Wrap is mostly complete , just need some exporting finished and about 3 tests left to pass, What module she I work on next? Any suggestions? | 13:31 | |
13:32
sftp joined
13:33
lidden joined
13:35
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
colomon | moritz_: because 1..* doesn't autocurry | 13:35 | |
moritz_ | oh | ||
moritz_ forgot | |||
maybe the numeric value of a code object should really fail() | |||
colomon | I dunno, but it's not relevant here, is it? | 13:36 | |
(1..*)>10 should return True | |||
13:37
vxz joined
|
|||
moritz_ | right | 13:37 | |
moritz_ hates the parrot vtables | |||
13:38
plainhao joined
13:45
dual left
13:47
redicaps joined
13:51
ggoebel left
13:59
plainhao left,
plainhao joined
14:02
ggoebel joined
14:05
ggoebel left
|
|||
rokoteko | which synopsis was considering fail, Failure objects and $! ? | 14:05 | |
moritz_ | S04 probably | ||
14:06
masak joined
|
|||
masak | oh hai, #perl6! | 14:06 | |
14:06
Yorick_ joined
|
|||
rokoteko | great found it thank, moritz_ ! | 14:06 | |
moritz_ | oh hai masak | 14:07 | |
masak++ # November release | |||
flussence facepalms at my own stupid p5 code | |||
14:08
lichtkind joined
|
|||
flussence | I just made one script run in 1 second instead of 20... by passing a single array by reference instead of normally. | 14:08 | |
14:08
nine left
|
|||
flussence | and given that it needs to be run once each for about 10000 DB rows... | 14:09 | |
flussence blames PHP | |||
shortcircuit | colomon: Rosetta Code is much like any other mediawiki (including Wikipedia itself). Step 1) Create an account. Step 2, Find an Edit link where you want to make a change. | ||
14:11
Yorick_ left
14:15
ggoebel joined
14:17
ggoebel left
14:22
wamba joined,
wamba left
14:23
wamba joined,
wamba left,
wamba joined
|
|||
masak | sorear: I'd be very interested in trying out an implementation where only Num remained standing among the numeric types, as you propose. | 14:24 | |
maybe I'll patch Rakudo locally to get a feel for it. :) | |||
14:26
fhelmberger joined
|
|||
dalek | kudo: 731a832 | colomon++ | src/Perl6/Actions.pm: Explicitly mark the sequence operators as fully not curried, even though in practice their precedence seems to block currying at the moment anyway. |
14:29 | |
jnthn wonders when we'll start seeing releases of Masak Perl 6 | |||
;) | |||
masak | whatever it'll be like, it'll have no Duration type. | ||
and Darren Duncan will probably hate it. provided he knows about its existence. | 14:30 | ||
jnthn | Heh. :) | ||
We might steal that patch for Rakudo... ;) | |||
My impression is that Duration so far seems to have caused many headaches, but not solved a huge deal. | 14:31 | ||
moritz_ | currently Duration doesn't have any methods or operations on its own | 14:32 | |
the current spec implies that we could make it a subtype of Rat | |||
jnthn | Note that subtypes aren't nominal | ||
So with no extra constraints, a Rat would happily serve as a Duration and it'd really just be a label. | 14:33 | ||
moritz_ | s/subtype/subclass/ | ||
jnthn | Unless there was a where clause enforcing some more. | ||
Oh. | |||
I thought you meant subset | |||
14:33
fhelmberger left
|
|||
moritz_ | basically the specs says that it must ~~ Real | 14:33 | |
jnthn | Which I guess would be...well...useless. :) | ||
lichtkind | is it true that p6 has no builtins? | 14:34 | |
moritz_ | lichtkind: no | ||
lichtkind | but i thought its all objects | ||
jnthn | It's all lambdas too :) | ||
;) | |||
moritz_ | it's just that built-in subs aren't special in any way | ||
so you can lexically override them, or add multis, or do whatever you can do with user defined subs too | 14:35 | ||
flussence | I think Duration/Instant should just be dropped, and let units of measurement be something for someone else to implement. | ||
lichtkind | they dont have own namespace | ||
thats what i meant | |||
THANK YOU both | |||
14:35
wtw left
|
|||
moritz_ | flussence: +1 | 14:35 | |
lichtkind: note that in Perl 6, nearly all subroutines don't live in namespaces, but in lexical scopes | 14:36 | ||
jnthn | flussence: +1 | ||
moritz_ | lichtkind: and built-in subs notionally live in an outer scope of the user program | 14:37 | |
14:37
anned joined
|
|||
lichtkind | yes i mean own names space in the sense that $Package::a is not the same as Package::a() | 14:38 | |
flussence considers implementing the metric system in p6 | 14:39 | ||
lichtkind | i try to phrase it more precise | ||
14:40
Axius joined
|
|||
mkramer1 | Don't drop Durations because obnoxious posters on p6l have obnoxious bikeshedding ideas | 14:40 | |
moritz_ | mkramer1: that's not the real reason | ||
mkramer1: the reason is that during the non-bikesheddy parts of the discussion we discovered that Duration doesn't have any behaviour that Rat doesn't have | 14:41 | ||
14:41
anned left
14:42
anned joined
|
|||
colomon | except for being a distinct type | 14:42 | |
mkramer1 | rakudo: say (now - now).WHAT; say (1-1).WHAT; | ||
p6eval | rakudo : OUTPUT«Duration()Int()» | ||
mkramer1 | different behavior | ||
that is useful | |||
14:43
lichtkind left
|
|||
colomon | but I have to say, while walking this morning, I came to the conclusion that it's probably not worth the hassle to have in the spec at this point. | 14:43 | |
mkramer1 | There is no way to get that behavior if it's not specced | ||
colomon | (Duration, that is.) | ||
14:43
redicaps left
|
|||
mkramer1 | you can't "write a module" to replace the behavior defined on a built-in type (Instant) | 14:43 | |
moritz_ | mkramer1: just like there's no way to distinguish 0 meters and 0 kg | ||
if you just store a number | 14:44 | ||
mkramer1 | time is special | ||
moritz_ | is it? how so? | ||
mkramer1 | It comes up in all computing | ||
kg and meters do not | |||
14:44
agentzh left
|
|||
moritz_ | depends what you compute | 14:44 | |
most of my scripts don't deal with times at all | |||
colomon | mkramer1: I beg to differ. Certainly my work has meters, never ever duration. | 14:45 | |
$work, I mean. | |||
mkramer1 | Do you time your scripts? benchmark them? log timestamps? | ||
colomon | time, yes, but never duration | ||
moritz_ | mkramer1: if I do, I usually do it with the 'time' built-in | ||
shell built-in, that is | |||
but often my scripts just convert text files | 14:46 | ||
14:46
lichtkind joined
|
|||
takadonet | is it me or rakudo takes a lot longer to compile? | 14:46 | |
14:46
kjeldahl left
|
|||
mkramer1 | anyway, I don't like the premise of your argument | 14:46 | |
colomon | certainly do not need a Duration type to deal with benchmarks | ||
mkramer1 | "It's not useful to me, therefore let's cut it" | ||
moritz_ | mkramer1: that's not at all what I said | ||
mkramer1 | "Darren Duncan is annoying, let's cut it" | ||
flussence | if it's worth doing, it's worth doing properly. | ||
moritz_ | I said it offers only very little value over using a number directly | 14:47 | |
mkramer1 | you're probably right | ||
14:47
lichtkind left
|
|||
colomon | to be precise, the major purpose of Duration, as defined, is to keep you from doing things with it that you could do with a "real" number. | 14:48 | |
moritz_ | colomon: actually that part is now gone from the spec | 14:49 | |
TimToady++ for it | |||
colomon | what exactly does the spec say now? | ||
moritz_ | In numeric context a C<Duration> happily returns a C<Rat> or C<FatRat> | 14:50 | |
representing the number of seconds. | |||
Numeric operations on durations return C<Duration> where that makes | 14:51 | ||
sense (addition, subtraction, modulus). The type returned for other | |||
numeric operations is unspecified; | |||
they may return normal numeric | |||
types or they may return other dimensional types that attempt to | |||
assist in dimensional analysis. | |||
flussence | .oO( Measurement.new(files => "100K", seconds => $t2 - $t1).rate.say ) |
||
colomon | then I stand by my statement. | ||
14:51
anned left
|
|||
colomon | yes, you can say Duration * Duration now, and what it does is return a non-Duration numeric type, right? | 14:52 | |
moritz_ | currently it dies | 14:53 | |
but Duration ** Real returns a non-Duration number | |||
colomon | there you go. that's a real meaning to the Duration type. | 14:54 | |
moritz_ | rakudo: say (1/2).Capture | ||
mkramer1 | his point, and I agree, is that you should be able to Duration * Duration | ||
p6eval | rakudo : OUTPUT«Capture()<0xb5651a0>» | ||
moritz_ | rakudo: say (1/2).Capture.perl | ||
p6eval | rakudo : OUTPUT«\("numerator" => 1, "denominator" => 2)» | ||
mkramer1 | the spec now allows that | 14:55 | |
so it's fine | |||
the spec isn't getting in the way and you get extra behavior at no cost | |||
colomon | my point being that you do gain the information that the resulting number in these operations is not a Duration. | ||
moritz_ | sub f(*%x) { say %x.perl }; f(|(1/2).Capture) | ||
rakudo: sub f(*%x) { say %x.perl }; f(|(1/2).Capture) | |||
p6eval | rakudo : OUTPUT«{"numerator" => 1, "denominator" => 2}» | ||
colomon | that's a reason for Duration. but I'm inclined to think it's not a good enough reason for Duration. | 14:56 | |
mkramer1 | When so many people that I respect share an opinion, I'm tempted to take that opinion | 14:57 | |
14:58
Guest52024 left
14:59
Guest52024 joined
|
|||
moritz_ | ugh. Subtyping a numeric type sucks. | 15:00 | |
s/Subtyping/Inheriting from/ | |||
colomon | moritz_: are you trying that somewhere? what are the issues? | ||
15:00
tzhs left
|
|||
moritz_ | colomon: I tried it locally | 15:00 | |
class Duration is Rat { # a few constructors here } | 15:01 | ||
jnthn | rakudo: class Foo is Num { }; say Foo | ||
p6eval | rakudo : OUTPUT«Foo()» | ||
moritz_ | how do I implement prefix:<->(Duration $x) ? | ||
jnthn | rakudo: class Foo is Num { }; say Foo.new | ||
p6eval | rakudo : OUTPUT«0» | ||
moritz_ | jnthn: first problem: how do I build a Foo with value 3.0e0 ? | ||
jnthn | rakudo: class Foo is Num { }; say Foo.new(3.0e0); # curious | 15:02 | |
p6eval | rakudo : OUTPUT«flattened parameters must be a hash or array in main program body at line 22:/tmp/AClSQyBc55» | ||
jnthn | meh | ||
moritz_ | second problem: how do I dispatch Foo + Foo to Num + Num? | ||
do I have to create two Nums, add them, and create a new Foo? | 15:03 | ||
even those Foo is Num? | |||
that seems So Wrong | |||
jnthn | moritz_: The answer is that you want to box a native num into a Foo | ||
moritz_: 6model has a box primitive that's just for that | 15:04 | ||
colomon | mkramer1: perhaps the biggest thing weighing against Duration as a type in my head is that it's really only a fraction of the correct solution. If you're really serious about that sort of thing, you're going to want to have (say) meters per second, seconds squared, etc. too. And having just a Duration class doesn't get you any closer to that. | ||
jnthn | (Falls quite neatly out of repr poly) | ||
moritz_: But it's a nuisance-ish at the moment | |||
moritz_ | jnthn: hm. | ||
colomon | moritz_: right, I forgot about that. Yes, it's a nightmare. | ||
moritz_ | jnthn: but if Num can already do the boxing/unboxing for me, why do I ahve to redo it in the subclass? | 15:05 | |
jnthn | That's not what I said. | ||
moritz_ | oh | ||
jnthn | When you write 3.0e0 the compiler is generating code to box that into a Num object | ||
15:06
dual joined
|
|||
jnthn | It's not that you need to do antyhing *in* the subclass | 15:06 | |
You need to get a native value boxed to the subclass | |||
masak | std: class Foo { our Int method foo() {} } | 15:14 | |
p6eval | std a194beb: OUTPUT«ok 00:01 120m» | ||
masak | rakudo: class Foo { our Int method foo() {} } | 15:15 | |
p6eval | rakudo : ( no output ) | ||
jnthn | rakudo: class Foo { our Int method foo() {} }; say "lived" | ||
p6eval | rakudo : OUTPUT«lived» | ||
15:15
ggoebel joined
|
|||
jnthn | phew | 15:15 | |
:) | |||
masak | jnthn: what happens if there's a return type both after 'our' and after '-->' in the siggie? | ||
jnthn | masak: Suspect a compile time error. | 15:16 | |
masak: We don't really do return type checks yet though | |||
masak: So I suspect the compiler mostly just drops 'em. | |||
masak | nod. | 15:18 | |
that's the feeling I get when using them :) | |||
trying to compensate with tests and rigour. | 15:19 | ||
jnthn | rakudo: sub foo returns Int { }; say &foo.returns | 15:21 | |
p6eval | rakudo : OUTPUT«Int()» | ||
jnthn | ah, ok | ||
It gets as far as stashing 'em away. | |||
flussence | Is there any way to figure out type constraints from a class's ^attributes? | 15:22 | |
jnthn | .type on the meta-attr | 15:23 | |
moritz_ | rakudo: class A { has Int $!x; }; say ~ A.^attributes(:local)[0].^methods(:local) | 15:24 | |
p6eval | rakudo : OUTPUT«Method 'methods' not found for invocant of class '' in main program body at line 22:/tmp/Fjd_G7JGdJ» | ||
flussence | yeah, I tried ^methods before... :( | ||
moritz_ | rakudo: class A { has Int $!x; }; say ~ A.^attributes(:local)[0].type | ||
flussence | .type is what I wanted though :) | ||
p6eval | rakudo : OUTPUT«Int()» | ||
masak looks forward to the day when it's possible to tread bravely on the turtles, all the way down | 15:25 | ||
15:29
florz joined
15:33
Axius_ joined
15:34
Axius left
15:53
Axius_ left
16:00
jfried left,
Axius joined
|
|||
jnthn | masak: Wish I had an nqpnet evalbot in here to show you. :P | 16:00 | |
masak | jnthn: me too. let's make one. | ||
jnthn | +1 | 16:01 | |
But now it's time for me to decommute :) \o/ | |||
masak | :) | ||
16:08
tylerni7 joined,
Axius left
16:10
alester left
16:11
MayDaniel joined,
Trashlord joined,
Axius joined
16:15
ggoebel left
16:16
ggoebel joined
16:17
alester joined
16:19
Axius left
16:23
risou joined,
kanishka left
16:25
kjeldahl joined
16:26
am0c left
16:29
spq1 joined,
dconway joined,
dconway left
|
|||
PerlJam does a double-take | 16:32 | ||
That couldn't have been The Damian. He doesn't IRC for sanity's sake. | 16:33 | ||
masak | perhaps we'll never know. | ||
16:33
lowrr joined
16:34
lowrr left
|
|||
masak | maybe it's a QM thing. he can chat for sufficiently small periods, on the order of fractions of a minute. :P | 16:34 | |
16:34
PZt left
|
|||
colomon | dconway's info claims he's damian conway... | 16:47 | |
takadonet | well he was here for only 8 sec... | 16:49 | |
colomon | and wait, was that his sanity or ours? ;) | ||
PerlJam | perhaps a little of both | ||
masak | or... for the sanity of the fabric of reality...? | ||
Trashlord | hey guys | 16:50 | |
masak | Trashlord! \o/ | 16:51 | |
Trashlord | :) | ||
16:51
mila__ joined
16:53
justatheory joined
16:55
mila_ left
|
|||
Trashlord | mila is a beautiful name | 16:55 | |
it means "dear" in russian | |||
PerlJam | what does jovovich mean then? :) | 16:56 | |
or cunis? | |||
PerlJam quickly exhausts his known milas | |||
Trashlord | it's kunis | 16:57 | |
and I don't know about those | |||
I just saw a list of names on wikipedia | |||
"mil" means dear | 16:58 | ||
masak | I'm more used to the masculine "mily". my grandma used to say that a lot when we were talking in Russian. | ||
Trashlord | so, for girls, it's mila | ||
16:59
wamba left
|
|||
masak | "милы", I guess. always feels wrong to transcribe Slavic. | 16:59 | |
argh! now it happened again! I wish I understood why git does this. | 17:02 | ||
I did "git status". it didn't say my branch was ahead of origin/master. | |||
then I pulled -- git pull origin master -- and it seems to have sucked in 1 commit. | 17:03 | ||
next time I did 'dit status', it said "Your branch is ahead of 'origin/master' by 1 commit." | |||
how can it suddenly be ahead of origin/master if all I did was update *to* origin/master? | |||
17:06
hercynium joined,
PZt joined
|
|||
sorear | good * #perl6 | 17:13 | |
masak: the git pull did a merge, and the "1 commit" is the merge | 17:14 | ||
moritz_ | masak: "your branch is ahead" means you have a local commit. When you pull, zou still have a local comit | ||
sorear | masak: git log master...origin/master to see the 1 commit | ||
masak | sorear: I see no merge in the git log. it sais "Fast-forward". | ||
sorear: when I do that, it comes out empty. | |||
moritz_: I have no local commit. | 17:15 | ||
sorear | masak: did you use all three dots? | ||
masak | oops, no. | ||
now colomon's commit falls out. | |||
the one that arrived with the 'git pull origin master'. | 17:16 | ||
colomon | wait, what? | 17:25 | |
(just saw my name) | 17:26 | ||
masak | colomon: just having trouble understanding git, is all. | 17:30 | |
I remember running into this issue before, and not getting any insight then either. | 17:31 | ||
anyone here speak Japanese? is this gentletwitterer asking about a HTML parser for Perl 6? twitter.com/VienosNotes/status/5672328935510016 | |||
TimToady | "I wonder if there's a Perl 6 HTML parser" | 17:32 | |
17:36
mssm joined
|
|||
masak | there are plenty of half-baked Perl 6 XML parsers out there. | 17:38 | |
maybe blizkost is the best shot for parsing HTML in Perl 6 today. | |||
sorear | masak: listening to moritz++ talking from real world experience, it's pretty clear niecza needs at least Num + Rat | 17:39 | |
and once I've committed to more than one type of CORE:: numeric thing, supporting Int doesn't seem like a stretch | 17:40 | ||
masak | nod. | ||
I must confess to never having had a pressing need for Complex. | 17:41 | ||
perhaps it sits just at the edge of the set of useful core numeric types. | |||
I definitely wouldn't want Quaternion, for example. | |||
colomon | I think the thing about Complex is you probably don't need it, but if you do, it's nice to have it in the core. | 17:42 | |
sorear | the current typology of numbers is wrong, though, I think | ||
it feels horribly inconsistant | |||
we have Int, Num, and Rat | |||
but Int isn't int; it's int | bigint | 17:43 | ||
it would be better if we consistanly discriminated (Fix, Int, Num, Rat) | |||
or consistantly didn't (Num, and maybe have some low-level .nrepr method) | |||
vargaz++ mono++ I file a bug that mono --aot Program.exe doesn't actually do anything, and less than 24 hours later it gets closed with a commit | 17:45 | ||
now installing the latest mono 2.9 - this should shave nearly a second off tryfile.exe load time | 17:46 | ||
TimToady | native types are not derived types; they're subset types | ||
17:46
solarion joined
|
|||
sorear | I did not mean to suggest that they were. | 17:46 | |
TimToady | you used the word "isn't" :) | ||
Trashlord | yes you did | 17:47 | |
sorear | I imagine class Int { has int $!value } | ||
TimToady | though now that I look at it, you could not have been implying inheritance anyway... | 17:48 | |
sorear | except, no, it's has int | bigint $!value | ||
I don't think we have a good word for boxes-a | |||
TimToady | you're wearing the wrong hat | ||
Int is an abstraction from the user's viewpoint | |||
sorear takes it off and looks at it blankly | |||
TimToady | Int is any integer they care to name | ||
whereas int32 is a convenient interface to that portion of the world that only knows how to store 32 bits | 17:49 | ||
it's also likely to be faster than Int in some cases, unless boxing overhead gets too high | 17:50 | ||
it's much like the grapheme abstraction; we're trying to let the user not think about implementation most of the time | 17:52 | ||
but give the user the chance to do lower-level things in hot code | |||
boxing/unboxing is the spot where we have to bridge between how the user wants to think and how the CPU wants to think | 17:53 | ||
17:55
dakkar left
|
|||
sorear | *lightbulb* subset Int of Num where { * % 1 == 0 } | 17:56 | |
this solves the my Int $foo = 5.0 problem | |||
TimToady | this disconnect is much smaller for Num vs num, I'll grant you, since most people are trained to have a category "floating point" in their head | ||
diakopter | TimToady: but.. what if it's *all* "hot code"? :P | ||
TimToady | diakopter: oh, you mean like in an interpreter? :) | ||
diakopter | rightyo | ||
TimToady | where the user can put anything into their hot loop | 17:57 | |
sorear now thinks of all numeric types as being subsets of Num(eric) | |||
TimToady | yes, well, that will certainly cause you to go insane in a P5ish sense :) | ||
sorear | the worst is when I run a profiler and no sub is using more than 2% of the time so I have to improve everything | 17:58 | |
17:59
Trashlord left
|
|||
TimToady | I would like to believe that such a result merely means the profiler doesn't know how to slice the problem space right to show you what to improve | 17:59 | |
but that's only partially true | |||
18:03
mssm left
|
|||
TimToady | instead of thinking of Int as int | bigint, I would prefer to think of Int as a bigint that can come very close to the performance of int for "typical" integers that would normally fit into a single native integer representation of some size or other | 18:06 | |
if that turns into a union internally, that's an implementation detail | 18:07 | ||
18:09
lichtkind joined
|
|||
TimToady | different computer languages have different ways of forcing programmers to think like machines; in Perl 6 we're trying to get away with letting the user not think like a machine by default, but with performance escapes | 18:09 | |
18:10
cdarroch joined,
cdarroch left,
cdarroch joined
18:11
icwiener joined,
mavrc joined
|
|||
TimToady | that approach will, of necessity, stress our optimization skills | 18:11 | |
masak | and our implementors. | 18:13 | |
slavik1 | TimToady: I can think in Perl :P | ||
masak | but yes, that's the path that Perl has set down on. | ||
TimToady | also, we have not yet explored the space of pragmatic sublanguages that assume things standard Perl doesn't | ||
slavik1 | and with grammars and junctions, I am starting to think in Perl6 | ||
and am upset that there is no complete Perl6 implementation | 18:14 | ||
TimToady | as are we all :) | ||
slavik1 | I especially miss the zip operator ... | ||
TimToady | eh? we have that | 18:15 | |
slavik1 | not in Perl5 | ||
TimToady | ah, you didn't say that part | ||
moritz_ | List::MoreUtils has a zip function iirc | ||
slavik1 | TimToady: not part of standard Perl5 :P | ||
TimToady: I will invent a time machine, and go back to before 5.8 was released and kick you for not inventing the zip operator :P | 18:16 | ||
hercynium | slavik1: perhaps it could be done with Devel::Declare :) | ||
PerlJam | slavik1: CPAN is part of "standard Perl 5" as far as I'm concerned. | 18:18 | |
TimToady | when you said "no complete Perl6 implementation" I assumed you were talking about incomplete implementations, not Perl 5 | 18:21 | |
lichtkind | rakudo: my %dev = a => 1, b => 2; my @a = %b; say + @a; | 18:25 | |
p6eval | rakudo : OUTPUT«===SORRY!===Symbol '%b' not predeclared in <anonymous> (/tmp/0SAyVltEWF:22)» | ||
lichtkind | rakudo: my %dev = a => 1, b => 2; my @a = %dev; say + @a; | ||
p6eval | rakudo : OUTPUT«2» | ||
lichtkind | rakudo: my %dev = a p5=> 1, b p5=> 2; my @a = %dev; say + @a; | ||
p6eval | rakudo : OUTPUT«Could not find sub &b in main program body at line 22:/tmp/71iYL0z8sl» | ||
lichtkind | i think the right answer is 4 | ||
rakudo: my %dev = (a p5=> 1, b p5=> 2); my @a = %dev; say + @a; | 18:26 | ||
p6eval | rakudo : OUTPUT«Could not find sub &b in main program body at line 22:/tmp/uJOLwebgZo» | ||
lichtkind | jnthn: does rakudo know of p5=> ? | 18:27 | |
sorear | p5=> doesn't exist | 18:28 | |
lichtkind | sorear: anymore? | 18:29 | |
sorear | lichtkind: see specs commit 5ace2bd3 | ||
I am thinking of | 18:33 | ||
class NumBase { has polynum $!value }; subset Int of NumBase where ...; subset Num of NumBase where ...; subset Rat of NumBase where ... | 18:34 | ||
thoughts? | |||
(polynum may or may not have distinct values for #e1 and #i1 | |||
) | |||
jnthn | (pragmatic sublangauges taht assume things...) NQP is just that. :) | 18:37 | |
lichtkind | sorear: you know hwy there were removed? | 18:38 | |
sorear | Parse error | ||
18:38
molaf_ left
|
|||
lichtkind | oh shit | 18:39 | |
TimToady | lichtkind: since p5=> was only for the use of a p5-to-p6 translator, such a translator can always add a definition if it wants to | ||
lichtkind | sorear: you know why there were removed? | ||
masak | lichtkind: what TimToady said. | 18:40 | |
lichtkind | TimToady: thanks im actually glad it was removed it was one of the more quirky things ive seen | ||
sorear | s/there were/that was/ ? | ||
lichtkind | sorear: these type of kommas, I came from outside some min ago my brain still is thawing | 18:41 | |
and bad news is i will stay here for longer now :) | |||
just pulled the specs git | 18:42 | ||
still bit new to this but willing to learn | |||
18:43
imax_ joined
18:46
timbunce left
18:48
ggoebel left
18:52
lidden left
18:53
timbunce joined,
ulla joined
18:55
ggoebel joined
|
|||
sorear | What's the Perl 6 equivalent of "${var}_append"? | 18:55 | |
PerlJam | sorear: "{$var}_append" | ||
moritz_ | $var ~ "_append" | 18:56 | |
tadzik | good evening | 18:57 | |
masak | "$var[0]_append" :) | ||
18:57
newbie joined
|
|||
PerlJam | ($var,"_append").join | 18:58 | |
masak | [~] $var, "_append" | ||
sorear | WOAH | 18:59 | |
diakopter | ? | ||
sorear | time mono tryfile.exe -e '2 + 2' --> 0.680 s | ||
from 2.2s | |||
diakopter | how? | ||
sorear | vargaz++'s bugfix | ||
TimToady | \o/ | ||
sorear | I was expecting about a half second improvement | 19:00 | |
colomon | nice | ||
diakopter | sorear: how big are the .so | ||
collectively | |||
I think one option is to statically link them, even | 19:01 | ||
lichtkind | excuse me but who is in charge of the chatbots hereß | ||
sorear | 9.59 MB | ||
diakopter | I don't know who's in control of the 'lichtkind' bot ;) | ||
moritz_ | lichtkind: which bot? | ||
masak | sorear: nice! | 19:03 | |
nom & | |||
19:03
masak left
|
|||
lichtkind | moritz_: i just want a new bot function | 19:05 | |
moritz_: just put a msg here if the wiki changes | 19:06 | ||
diakopter | ah | 19:07 | |
19:09
newbie left
19:10
imax_ left
|
|||
lichtkind | since the wiki has an rss feed it should be simple lie adding one url to watch | 19:13 | |
thatswhy i ask who is in charge of these bots | |||
sorear | lichtkind: every bot has a different admin | 19:15 | |
pick a bot and I'll tell you who runs it | |||
lichtkind | i just need the functionality, so maybe best a present admin | ||
sorear | If you don't want to pick an existing bot, you'll need to start a new one | 19:16 | |
flussence | say I was crazy and wanted to make "'15m/s'.SI" DWIM ...how could I define that .SI method for strings? | 19:17 | |
lichtkind | i just meant i take one bot of which the admin is currently present | ||
sorear | flussence: augment class Str { method SI() { ... } } | ||
lichtkind: what do you mean by "the wiki" | 19:18 | ||
lichtkind | www.perlfoundation.org/perl6 | ||
sorear: you are an admin? | 19:23 | ||
sorear | I am an admin of many things | ||
But not the TPF wiki | |||
19:24
envi left
|
|||
lichtkind | sorear: yes i would know that, i mean admin of a chatbot | 19:25 | |
diakopter | sorear: lichtkind is wanting www.perlfoundation.org/feed/workspa...%20Changes monitored by dalek | ||
lichtkind | yes | 19:26 | |
diakopter | rss2 | ||
I wrote a botnix plugin for it at one time | |||
it got disabled/deleted somewhere along the way | |||
sorear | lichtkind: what part of "there is more than one chatbot here" don't you get | 19:28 | |
diakopter: thanks | |||
lichtkind | diakopter: how much effort it would be to add this to dalek? | 19:32 | |
diakopter | not much effort from me :) I think sorear enjoys that kind of pain, so he's volunteering to do it | ||
lichtkind | it would be a great help, especially i now write a lot in the wiki | 19:35 | |
diakopter | yep; iirc you're the reason I wrote it before | 19:36 | |
dalek | lek-poller: ad9fd17 | sorear++ | common.pm: Make timeouts overridable per plugin |
19:41 | |
lek-poller: 450c516 | sorear++ | modules/local/tpfwikilog.pm: Change tpfwikilog to perl6 / #perl6 and use new API |
|||
lichtkind | sorear: that was all? | 19:42 | |
sorear | yes | ||
and I've restarted the running instance of dallek-poler | |||
tpf perl6 wiki updates should be reported here now | 19:43 | ||
want to test? | |||
lichtkind | yes thank you very much | ||
dalek | tpfwiki: Herbert Breunung | Perl 6 Index Tablet | 19:47 | |
tpfwiki: www.perlfoundation.org/perl6/index....dex_tablet | |||
lichtkind | it work \o/ | 19:49 | |
dalek doesnt know my real name but i dont need so much ++ | 19:50 | ||
dalek | tpfwiki: Herbert Breunung | Perl 6 Index Tablet | 19:53 | |
tpfwiki: www.perlfoundation.org/perl6/index....dex_tablet | |||
19:55
plobsing joined
|
|||
lichtkind | sorear++ | 19:56 | |
dalek | tpfwiki: Herbert Breunung | Perl 6 Delta Tablet | 19:58 | |
tpfwiki: www.perlfoundation.org/perl6/index....lta_tablet | |||
TimToady | without a subject line, that's kinda noisy | 19:59 | |
diakopter | true. I wanted to reduce the poll interval and do de-duping at one point | 20:00 | |
lichtkind | TimToady: yes but there are no subjects in socialtext | 20:02 | |
id wish there were some like mediawiki | |||
TimToady | with other dalek messages, one can figure out whether one is interested without clicking on every entry | 20:03 | |
sorear | I can hook it up to the karma converter at some point | ||
lichtkind | maybe extract a diff from the wiki to display a line of conent? | 20:04 | |
diakopter | since the feed is actually so verbose, with some WWW::Mechanize or even less magic lwp, one can grab the number of changed lines or something. | ||
TimToady | a diff line would be better than nothing | ||
diakopter | or yeah, some magic text summary | ||
lichtkind | and maybe even make 1 line out of that 2 now | ||
TimToady | the name of the enclosing section might also be helpful | 20:05 | |
lichtkind | just the first but linked like the second | ||
sections are lines starting with ^ | |||
TimToady | just trying to keep the signal/noise ration high here... | 20:06 | |
with only the info above, most people will not click the link | 20:07 | ||
which makes it noise for them | 20:08 | ||
lichtkind | yes | ||
flussence | while on that subject, the git commit messages could probably fit into two lines too... | ||
I'm pretty sure github will accept the abbreviated commit ID as well as the full sha1 | 20:09 | ||
TimToady | I don't mind multiple lines if they're informative | 20:14 | |
20:15
muixirt joined
|
|||
TimToady | and they're easy for me to skip as a chunk since I hilight dalek messages in blue | 20:15 | |
and I usually write the git checkin message knowing it'll show up here | 20:16 | ||
s/checkin/commit/ | |||
PerlJam | one of these days I'll need to write a script for irssi that redirect bot messages to another window. | ||
muixirt | erm, 'perl6 -v' segfaults | 20:17 | |
PerlJam | muixirt: not for me. | 20:18 | |
TimToady | what version of perl6 are you running...oh wait... | ||
muixirt | HEAD (just pulled) | ||
the good news is: it's a little bit faster | 20:19 | ||
PerlJam | segfaults are always fast | 20:20 | |
muixirt | PerlJam: lol | ||
TimToady | not if caused by unchecked malloc :) | ||
20:20
wamba joined
|
|||
muixirt | PerlJam: I meant Rakudo Perl 6 is slightly faster | 20:22 | |
tadzik | gil.di.uminho.pt/users/smash/rakudo-bench.html sometimes | 20:23 | |
I was excited by the gc_ms2_faster_list merge in Parrot, but sadly I don't see any speedup (using time) | 20:24 | ||
...wait, my `which parrot` says /usr/bin/parrot | |||
PerlJam | tadzik: I didn't do any rigid timings, but it seems subjectively faster to me and that's all that matters :) | 20:25 | |
tadzik | PerlJam: looks like I messed my installation up while installing Parrot not from --gen-parrot | ||
muixirt | tadzik: is that link supposed to work? | ||
tadzik | . o O ( --gen-parrot-exciting -- pulls the lastest Parrot available, not the one in PARROT_REVISION ) | 20:26 | |
muixirt: worksforme | |||
muixirt | reload worked | ||
tadzik feels like implementing --gen-parrot-exciting | 20:28 | ||
20:28
Chillance joined
20:32
dju left
20:42
wamba left
|
|||
takadonet waits on tadzik results.... | 20:44 | ||
20:44
plainhao left
20:45
wamba joined
20:47
masak joined
|
|||
masak | ahoy! \o/ | 20:47 | |
takadonet | masak: yo | 20:48 | |
jnthn | o/ masak | ||
tadzik | hi masak | ||
masak | auto-fed, happy that it's weekend, 800% slower Justin Bieber in headphones. time to start hacking :) | 20:49 | |
jnthn | auto-fed? | 20:50 | |
colomon | 800% slower Justin Bieber?! | ||
masak | :) | ||
jnthn: I ate food that I had cooked myself. | |||
colomon: soundcloud.com/shamantis/j-biebz-u-...800-slower | |||
colomon | but... why? | 20:51 | |
masak | I didn't know who Justin Bieber was before that. frankly after finding out, I'm not too impressed. but this slowed-down song... wow! | ||
it's like angel song. | |||
colomon | I hear. | ||
tadzik | I wonder if I should listen to the original | 20:52 | |
jnthn | NO NO NO NO NO | ||
masak | once can't hurt. it's quite different. | ||
even knowing that they're the same song at different speeds, it's hard to tell. :) | |||
tadzik | takadonet: wanna help? | 20:54 | |
takadonet | tadzik: about to leave work :( | 20:55 | |
tadzik | ah, alright | ||
so, anyone willing to help with implementing --gen-parrot-exciting? :) | |||
lichtkind | sorear: did you change anything on the bots or can I help? | 20:56 | |
tadzik | wklej.org/id/422227/ is what I mangled so far, for some reason #42 is checking out Rakudo's master rather than Parrot's master | ||
masak | hah! the annoying "Your branch is ahead of 'origin/master' by 1 commit." went away after I did 'git fetch origin master' and 'git push origin master' (either of which did nothing). I can't tall which one it was that helped, but I'll know next time ;) | 21:00 | |
tadzik: git looks upwards until it finds a .git/ directory. | 21:01 | ||
tadzik: if it checks out Rakudo, it must mean you're in the Rakudo repo, but not in the Parrot repo. | |||
TheHarlot | oh... dear... sweet... merciless... Eris. | ||
masak | TheHarlot: Justin Beebz? :_ | ||
TheHarlot | Justin Bieber... I will kill... | ||
masak | :) | ||
tadzik | masak: but it usually works just fine, when it checks out $req | ||
($rev?) | 21:02 | ||
jnthn | TheHarlot: Remember to kill 800% slower. ;) | ||
TheHarlot | masak, Justin has a similar role in my mind as Nickelback and Avril Latrine. Crappy music, that now that the states have picked it up, will dominate 1/3 of the Canadian air waves, thanks to CRTC' retardation. | ||
21:03
Guest52024 left
21:09
timbunce left,
timbunce_ joined
|
|||
colomon | You could do what I do, and just grab select shows from CBC Radio 2 St. John's. | 21:09 | |
masak | TheHarlot: I don't often have occasion to be distressed at that kind of music, because I don't willingly enter contexts where that kind of radio station is on. | ||
rakudo: '[36][38][43]'.trans(/\[(\d+)\]/ => {chr($0)}) | 21:11 | ||
21:11
Jake_ joined
|
|||
p6eval | rakudo : ( no output ) | 21:11 | |
masak | rakudo: say '[36][38][43]'.trans(/\[(\d+)\]/ => {chr($0)}) | ||
p6eval | rakudo : OUTPUT«[38][38][43]» | ||
masak | there's a skipped test that expects '$&+' here. | 21:12 | |
did we even figure out a way to make closures get the right $/ in this situation? | |||
TheHarlot | masak, colomon: yeah, I do not go out and look for those bad stations. However it does bring up painful childhood memories... oh... dear sweet merciless Eris... my mind is jumping back to Trooper and Celion Dion. | ||
masak | I know the question arose for .subst, but it's the same problem with .trans, it seems. | ||
21:12
Jake_ left
|
|||
TheHarlot | masak, was that the main issue with what I was trying to do the other day? | 21:13 | |
masak | TheHarlot: url? | ||
TheHarlot | oh... it was something I was asking in the channel. It brought up the note about having run() be called with multiple arguments. | 21:14 | |
masak | I vaguely remember without the assistance of the IRC logs :) | 21:15 | |
might have been the same issue, yes. | |||
21:15
risou left
|
|||
cosimo | good $evening, perl6! | 21:16 | |
masak | cosimo! \o/ | ||
rakudo: $_ = '$123'; tr/$123/X\x20\o40\t/; .say | |||
cosimo | i have a nice question for you | ||
p6eval | rakudo : OUTPUT«===SORRY!===Confused at line 22, near "tr/$123/X\\"» | ||
masak | cosimo: oh? | 21:17 | |
jnthn | It's amazing how coming back to a bug a week later that you spent half an hour on without results gets it solved in 5 minutes... | ||
tadzik | oh hi cosimo | ||
cosimo | what's the equivalent perl6 of this ruby snippet pastebin.com/xLTeXFzT ? | ||
masak | jnthn: you should have solved it a week later from the beginning! :P | ||
jnthn | ...in other news, it's a bad idea to try and put something in a package...if it's the thing that defines packages. :P | ||
cosimo | tadzik: hallo | ||
masak | cosimo: .^add_method, looks like. | 21:18 | |
cosimo | masak: mmh | ||
masak | jnthn: oh ouch :) | ||
cosimo: I'm sure there's working code somewhere to look at for that. | |||
cosimo | masak: what about the .send() | ||
jnthn | masak: Yeah. knowhow NQPStash and my knowhow NQPStash are kinda a big difference. :) | 21:19 | |
masak | cosimo: you can get at specific methods with .^can and then just call them normally. | ||
cosimo: where 'normally' means 'as subs' :) | 21:20 | ||
jnthn | s/methods/dispatchers/ ;) | ||
masak | oh right. | ||
one day I'll learn :) | |||
jnthn | (with .^can) | ||
cosimo | I found a few examples, but all of them use $obj.^add_method | 21:24 | |
is it possible to ClassName.^add_method ? | |||
21:25
muixirt left
|
|||
cosimo | something like: 'ClassName.meta.add_method(xxx, sub { somecode });' | 21:25 | |
jnthn | cosimo: They mean the same thing. | ||
But yes, you can ClassName.^add_method too | |||
cosimo: Note that $obj.^add_method is adding not just to the object, but to the class. | |||
cosimo | jnthn: ok, so ClassName.^add_method is valid | 21:26 | |
jnthn | Yup | ||
cosimo | but ClassName.meta.^add_method doesn't exist. right? | ||
21:26
wooden joined,
wooden left,
wooden joined
|
|||
cosimo | sorry, that should have been ClassName.meta.add_method, without ^ | 21:26 | |
jnthn | ClassName.^add_method('foo', method () { ... }) | 21:27 | |
is the same as | |||
ClassName.HOW.add_method(ClassName, 'foo', method () { ... }) | |||
cosimo | aha | ||
jnthn | So .HOW is I guess sorta the equivalent to .meta | ||
cosimo | so "HOW" == "meta" | 21:28 | |
jnthn | Note .HOW is a macro, not a method | ||
masak | someone explain to me how come github.com/perl6/roast/blob/master...ans.t#L230 can be unskipped. o.O | ||
jnthn | It gets the meta-object | ||
So I guess so :) | |||
masak | I ran that code above and it doesn't even parse in Rakudo. | ||
jnthn | std: tr/$123/X\x20\o40\t/; | 21:29 | |
p6eval | std a194beb: OUTPUT«ok 00:01 118m» | ||
jnthn | Ain't $123 $/[123] ? | ||
masak | don't think so. | ||
jnthn | Oh no | ||
You're in a derived langauge inside tr/// | |||
masak | right. | ||
jnthn | (one that I guess gives $ another meaning) | ||
masak | it's just literal strings in there. | 21:30 | |
on the left side, at least. | |||
21:30
icwiener left
|
|||
jnthn | aha | 21:30 | |
masak | but... how can this run? | ||
jnthn | std: tr/$123/X\x20\o40\t/; | ||
p6eval | std a194beb: OUTPUT«ok 00:01 118m» | ||
jnthn | gah | ||
rakudo: tr/$123/X\x20\o40\t/; | |||
p6eval | rakudo : OUTPUT«===SORRY!===Confused at line 22, near "tr/$123/X\\"» | 21:31 | |
jnthn | I...really have no idea. :) | ||
masak | oh! | ||
it's a block. | |||
jnthn | It *is* skipped. :) | ||
masak | and there's a #?rakudo skip on the whole block. | ||
jnthn | The block is skipped. | ||
:P | |||
masak | phew. | ||
jnthn | ;) | ||
masak | sanity restored. | ||
masak indents the contents of that block | |||
people: always brush your teeth. always indent. | 21:32 | ||
jnthn | ...indentures? | 21:33 | |
masak slaps jnthn with a pun stick | |||
but yeah. maybe that's how my brain works. scary. :) | |||
diakopter | oh good jnthn still awake | 21:35 | |
masak | jnthn: before diakopter snatches you, do you have any insightful opinion on $/ in closures to .subst and .trans? | 21:37 | |
jnthn | masak: I'm sure I've watched multiple conversations on that which ended without a solid conclusion... | ||
masak | yeah. same here. | 21:38 | |
jnthn | masak: Generally, pmichaud_ made any points I had, but probably better than I coulda put them... | ||
masak | :) | ||
21:38
amkrankruleuen left
|
|||
masak | jnthn: do you think things as spec'd today are inconsistent and unimplementable, or is the reason $/ doesn't work in such closures purely a temporary Rakudo limitation? | 21:39 | |
jnthn | masak: My recollection has been that's it has been more of an issue of "what to implement" than having blockers on implementing it. | 21:40 | |
masak | well, the desired behavior seems clear to me. | ||
it's the implementation of that behavior that I'm curious about. | 21:41 | ||
jnthn | masak: IIRC it comes down to | ||
'bddr'.subst(/d/, { $/.Str.succ }) | |||
How do we get the $/ set right in that block? | |||
Considering that at compile time we've no idea that block will end up used by .subst | 21:42 | ||
21:42
takadonet left
|
|||
jnthn | (e.g. we may pass a block to something that then uses it in .subst, or we may pass a sub ref to subst, or something) | 21:42 | |
So we can't just say "it has a parameter $/" | |||
tadzik | masak: are you into this Ambient music? | ||
masak | tadzik: not besides Justin Beebz 800% :P | 21:43 | |
tadzik | :> | ||
masak | jnthn: right. | ||
tadzik | seemed quite ear-pleasant, if done right | ||
cosimo | please help... why 'method printthem (@args) {say @args}' complains about type check failed? | 21:44 | |
masak | jnthn: and we don't want to start special-casing the arguments of .subst and .trans, because that's agains Perl 6 philosophy. | ||
cosimo | i tried various combinations, Array of Any, Array of Int, etc... but none worked | ||
tadzik | cosimo: and what are you passing? | ||
masak | cosimo: because you didn't pass in an array? :) | ||
jnthn | cosimo: How are you calling it? | ||
Did you want *@args ? | 21:45 | ||
masak: (special-casing) right, exactly | |||
cosimo | printthem(1,2,3,4) | ||
tadzik | that's 4 arguments | ||
(parameters) | |||
masak | arguments. | ||
cosimo | yes, but I want (anything really here) | ||
tadzik | you want *@args probably, a slurpy params | ||
jnthn | rakudo: say 1 ~~ Positional | ||
p6eval | rakudo : OUTPUT«0» | ||
jnthn | cosimo: @ sigil means "one argument that does the Positional role" | 21:46 | |
cosimo | "*@args" ? | ||
jnthn | cosimo: You want *@args which is for variadic args. | ||
cosimo | jnthn: so it works with printthem(@my_args) | ||
jnthn | @args means it expects aisngle array-ish thing | ||
21:46
mavrc left
|
|||
jnthn | cosimo: Right | 21:46 | |
cosimo: For your usage you want method printthem(*@args) { ... } | |||
masak | jnthn: I vaguely recall something about $/ being bound to $OUTER::/ by default. but I guess that doesn't solve anything, because it's $CALLER::/ we'd need in this case. | ||
jnthn | masak: er | 21:47 | |
Maybe | |||
cosimo | makes sense. sorry, i know it's stupid questions, but I've been away for a bit too much :) | ||
jnthn | oh, yeah | ||
:) | |||
masak | or something. | ||
sorear | I currently implement $/ as a contextual | ||
jnthn | Right, 'cus it's called by .subst | ||
masak | right. | ||
sorear | so, $/ means $CALLER::/, $CALLER::CALLER::/, ... until it finds one | ||
masak | sorear: seems to me that road is treacherous in general, but right in these two cases. | ||
IIUC, Perl 6 wanted to move away from $/ and similar vars being global. | 21:48 | ||
sorear | I agree it's pretty suboptimal | 21:49 | |
but it's the best idea I've had so far | |||
masak | at least you have a solution. | 21:52 | |
sorear | the problem with $/-as-contextual is that it prevents the compiler from optimizing if ($foo ~~ /foo/) into if ($foo.index('foo')) { | 21:53 | |
21:53
oha joined
|
|||
masak | I don't know whether I should modify those tests to have an explicit -> $/ signature, as I've seen some people do with .subst -- thus admitting defeat to our inability to think up an all-the-way design that makes this work without the explicit signature. | 21:54 | |
or whether I should leave the tests as they are and just not implement that part -- thus admitting defeat to our inability to implement things as they are spec'd now. | |||
sorear | the regression tests need to test the stuff apps use | ||
otherwise they're useless | |||
masak | well, since this ain't implemented, no application currently uses it. | 21:55 | |
I can implement .trans closures that don't make use of $/ | |||
there's one or two tests for that. | |||
22:13
saaki joined
22:16
spq1 left
22:20
hercynium left
|
|||
dalek | odel: 2e58221 | jonathan++ | dotnet/runtime/Runtime/Ops/ (2 files): [odd] Line-endings oddness. |
22:22 | |
odel: fc4d3ce | jonathan++ | dotnet/runtime/Metamodel/ (2 files): [dotnet] Be a little bit more late-bound in a couple of places to break some circularities. Thankfully, not anywhere in hot paths. |
|||
odel: 5d5adc8 | jonathan++ | / (2 files): [dotnet] [common] Add an NQPStash type which is a smarter than just a hash. Use it for implementing packages instead. Hopefully, this will make various broken things Just Work. |
|||
lichtkind | moritz_: could it be that github repo of the book is broken? | 22:25 | |
masak | lichtkind: works over here: github.com/perl6/book | 22:32 | |
sorear | Where should I get feedback on my subset Int idea? | ||
lichtkind | masak: i pulled it 3 times and got everytim a dump | ||
masak | sorear: p6l? | ||
masak hides | |||
lichtkind: a dump? | |||
as in, Data::Dumper? | |||
22:33
MayDaniel left
|
|||
lichtkind | masak: sh.exe.stackdump | 22:33 | |
sorear | masak: I forgot to specify useful feedback. | 22:34 | |
masak | sorear: oh! tricky. | ||
jnthn | rakudo: Foo::bar(); module Foo { our sub bar() { say "ok" } } | ||
p6eval | rakudo : OUTPUT«Could not find sub &say in 'Foo::bar' at line 22:/tmp/gPIXjGQR_n in main program body at line 22:/tmp/gPIXjGQR_n» | ||
jnthn | rakudo: Foo::bar(); module Foo { our sub bar() { "ok".say } } | ||
p6eval | rakudo : OUTPUT«ok» | 22:35 | |
jnthn | rakudo: Foo::bar(); module Foo { our $x = 42; our sub bar() { $x.say } } | ||
p6eval | rakudo : OUTPUT«Null PMC access in find_method('say') in 'Foo::bar' at line 22:/tmp/27KYPHDIJs in main program body at line 22:/tmp/27KYPHDIJs» | ||
jnthn | While NPMCA is of course Rakudo bug, I assume the answer is not 42 because we don't set $x until the module block runs? | ||
nqp: Foo::bar(); module Foo { our $x := 42; our sub bar() { say($x) } } | 22:36 | ||
p6eval | nqp: OUTPUT«Null PMC access in get_string()current instr.: 'print' pc 92616 (gen/nqp-grammar.pir:5883)» | ||
jnthn | heh. | ||
Oh, grr. I mis-read the test I was looking at... | |||
masak | ISTR that bug is in RT somewhere. | 22:37 | |
masak looks | |||
hm. seems not. | 22:39 | ||
masak submits rakudobug | 22:40 | ||
22:40
ulla left
|
|||
masak | rakudo: Foo::bar() | 22:42 | |
p6eval | rakudo : OUTPUT«Can not find sub Foo::bar in main program body at line 1» | ||
masak | rakudo: Foo::bar(); module Foo {} | ||
p6eval | rakudo : OUTPUT«Can not find sub Foo::bar in main program body at line 1» | ||
masak | rakudo: Foo::bar(); module Foo { our sub bar {} } | ||
p6eval | rakudo : ( no output ) | ||
22:42
molaf joined
|
|||
masak | rakudo: Foo::bar(); module Foo { my $x; our sub bar {} } | 22:42 | |
p6eval | rakudo : ( no output ) | ||
masak | rakudo: Foo::bar(); module Foo { my $x; our sub bar { $x.say } } | ||
p6eval | rakudo : OUTPUT«Null PMC access in find_method('say') in 'Foo::bar' at line 22:/tmp/VdqTXnSwXR in main program body at line 22:/tmp/VdqTXnSwXR» | ||
masak | rakudo: module Foo { my $x; sub bar { $x.say }; bar } | ||
p6eval | rakudo : OUTPUT«Any()» | 22:43 | |
masak | rakudo: module Foo { my $x; our sub bar { $x.say }; bar } | ||
p6eval | rakudo : OUTPUT«Any()» | ||
masak | rakudo: module Foo { our $x; our sub bar { $x.say }; bar } | ||
p6eval | rakudo : OUTPUT«Any()» | ||
masak | huh. | ||
jnthn: why does that even run? how do we get away with using the Foo:: namespace before declaring the module? | 22:45 | ||
std: Foo::bar(); module Foo {} | |||
p6eval | std a194beb: OUTPUT«===SORRY!===Undeclared name: 'Foo::bar' used at line 1Check failedFAILED 00:01 118m» | ||
masak | that's a separate bug, methinks. | ||
22:45
am0c joined
|
|||
jnthn | masak: Good question... | 22:46 | |
masak: I know the answer for NQP. For Rakudo...oddness. | |||
masak | rakudo: Foo::bar(); module Foo { sub bar { say "OH LOL" } }; say "alive" | ||
p6eval | rakudo : OUTPUT«Can not find sub Foo::bar in main program body at line 1» | ||
masak | rakudo: Foo::bar(); module Foo { our sub bar { say "OH LOL" } }; say "alive" | ||
p6eval | rakudo : OUTPUT«Could not find sub &say in 'Foo::bar' at line 22:/tmp/CbD1qOdpQf in main program body at line 22:/tmp/CbD1qOdpQf» | ||
22:46
kjeldahl left
|
|||
masak | rakudo: Foo::bar(); module Foo { our sub bar { "OH LOL".say } }; say "alive" | 22:46 | |
p6eval | rakudo : OUTPUT«OH LOLalive» | ||
masak submits rakudobug | |||
22:48
molaf left
22:51
perlygatekeeper left
|
|||
tadzik | oh, Perl Dancers have their Advent Calendar too. Speaking of which, any volunteers for the next articles? | 22:54 | |
the first one gets One Free Karma and a banana! | 22:55 | ||
22:55
timbunce_ left,
wamba left
|
|||
tadzik | (they're fleeing!) | 22:59 | |
22:59
Limbic_Region joined
|
|||
masak | tadzik: if it's not already clear, I'm volunteering for this year's Advent Calendar. | 23:00 | |
oha | time ago i used .invert on an Enum, but now it seems not working anymore. is there another way? | ||
tadzik | ++masak | 23:01 | |
masak | :) | ||
oha: could you be more specific? | |||
oha | masak, hi. Enum Foo ( A => 1 ); %oof = Foo.invert; | 23:02 | |
masak | that's Foo.enums.invert nowadays. | ||
see S12 for the whole scoop. | 23:03 | ||
oha | ty masak | ||
masak | np oha | ||
lichtkind | i got Could not load oplib `perl6_ops'-- any idea? | 23:05 | |
masak | lichtkind: wrong installed Parrot version? | 23:06 | |
lichtkind | 2.10 and also this rakudo was for 2.10 | ||
i actually trief both rakudo | |||
star and the 35 | 23:07 | ||
masak | then I have no idea; sorry. | 23:12 | |
23:12
alester left
|
|||
masak | all I can say is that it works here. | 23:12 | |
dalek | odel: 8c3ca76 | jonathan++ | common/NQP/NQPSetting.pm: [common] Need to have a .defined method if we're gonna call one. |
23:13 | |
odel: 51fb629 | jonathan++ | dotnet/compiler/ (2 files): [dotnet] First cut at getting our subs working. A few fixes in code-gen and PAST::Block.namespace handling along the way. Also our subs still need to be fully qualified with a namespace for now (since foo() is still assuming lexical always). |
|||
lichtkind | masak: i installed now the laze apchakge for R* works now | 23:14 | |
jnthn | (laze apchakge)++ | 23:15 | |
masak | I don't know what "laze apchakge" means, but sounds like good news. | ||
23:19
justatheory left
|
|||
jnthn | std: { our sub six ( ) { say "ok 6" } }; six() | 23:19 | |
p6eval | std a194beb: OUTPUT«Potential difficulties: &six is declared but not used at /tmp/f45rjCWfA3 line 1:------> { our sub six⏏ ( ) { say "ok 6" } }; six()ok 00:01 122m» | ||
jnthn | rakudo: { our sub six ( ) { say "ok 6" } }; six() | 23:20 | |
p6eval | rakudo : OUTPUT«ok 6» | ||
jnthn | niecza: { our sub six ( ) { say "ok 6" } }; six() | ||
p6eval | niecza 571d549: OUTPUT«===SORRY!===Package subs NYI at /tmp/9BTYOe1_KO line 1:------> { our sub six ( ) { say "ok 6" } ⏏}; six()Potential difficulties: &six is declared but not used at /tmp/9BTYOe1_KO line 1:------> { our sub six⏏ ( ) { say | ||
.."ok 6"… | |||
jnthn wonders if that six() call should work... | 23:21 | ||
TimToady | shouldn't | ||
jnthn | nqp: { our sub six ( ) { say "ok 6" } }; six() | ||
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 2358 (src/Regex/Cursor.pir:232)» | ||
jnthn | nqp: { our sub six ( ) { say("ok 6") } }; six() | ||
p6eval | nqp: OUTPUT«ok 6» | ||
jnthn | Naughty, naughty Parrot nqp. | ||
:) | |||
TimToady: This means I...don't have a test to fix. \o/ | |||
diakopter | yay | 23:22 | |
jnthn | nqp: { our sub six ( ) { say("ok 6") } }; GLOBAL::six() | ||
p6eval | nqp: OUTPUT«ok 6» | ||
jnthn | TimToady: ^^ is that OK? | ||
TimToady | see S06:455 | 23:23 | |
yes, that should work | |||
jnthn | Thanks | ||
TimToady | so should OUR::six() | ||
jnthn wonders if that's the bit he read recetly... | |||
TimToady | and &*six() should work in this case, since it's in GLOBAL | 23:24 | |
dalek | tpfwiki: Herbert Breunung | Perl 6 Variable Tablet | ||
tpfwiki: www.perlfoundation.org/perl6/index....ble_tablet | |||
TimToady | and &* looks there at the end | ||
jnthn | TimToady: *nod* | 23:25 | |
TimToady: I don't have that "look in global" failover working just yet. | |||
TimToady | and eventually we can declare a CANDO failover as well | ||
jnthn | TimToady: OOC, $*foo := 42; # does this install a $foo in global? | ||
dalek | odel: d6ea428 | diakopter++ | / (5 files): [odd] apparently I'm still git-clueless |
||
odel: 58a09a6 | diakopter++ | / (3 files): Merge branch 'master' of github.com:jnthn/6model |
|||
lichtkind | i lost my head , what is the word for to put into another contex? | ||
context | 23:26 | ||
TimToady | jnthn: no, it merely rebinds whatever $*foo is existing | ||
jnthn | TimToady: Sorry, I was unclear. I mean if no $*foo is found in the dynamic scope. | ||
TimToady: And we failover to looking in GLOBAL | |||
TimToady | no, I think we should require GLOBAL:: for that | ||
jnthn | TimToady: Me too. :) | ||
masak | today, I've tried to patch .trans for handling regexes. giving up for the day -- it was more complicated than I imagined it would. | 23:28 | |
time to blog about the unexpected overwhelm fail. :) | 23:29 | ||
23:30
oha left
|
|||
lichtkind | is @@() gone too? | 23:33 | |
masak | think so. | 23:34 | |
jnthn | lol | ||
masak | it's now **@ | ||
lichtkind | no you kidding | ||
masak | lichtkind: that's what I got from greeping 'git log' for specs. | 23:35 | |
lichtkind | i searched some syn and didnt found @@ | 23:36 | |
masak thank you | 23:37 | ||
TimToady | masak: that will be very difficult unless you know how to hook into the LTM implied by .trans | ||
masak | TimToady: yeah. | 23:38 | |
TimToady | espcially since rakudo doesn't really do LTM yet | ||
masak | TimToady: the current .trans impl does it right for constant strings. | ||
jnthn | The current Rakudo does LTM right in some cases for constant strings. :) | ||
masak | TimToady: but... I found I had to special-case regexes, and then there were a lot of "interesting" corner cases across the boundary. | 23:39 | |
jnthn | (e.g. in the context of proto regexes) | ||
masak | I think I'd be better off attacking the problem after hiding some of that complexity first. | ||
essentially runtime-polymorphing on constant strings and regexes. | |||
dalek | odel: 0210b86 | jonathan++ | t/nqp/11-subs.t: [t] Correct and uncomment a test. |
23:40 | |
odel: 38cad29 | jonathan++ | t/nqp/24-module.t: [t] We now pass 24-module.t. |
|||
ecs: f648072 | TimToady++ | S02-bits.pod: it's illegal to assign/bind a non-existing dynvar You must use the GLOBAL:: package explicitly in this case. |
|||
tpfwiki: Herbert Breunung | Perl 6 Lookup Tablet | 23:41 | ||
tpfwiki: www.perlfoundation.org/perl6/index....kup_tablet | |||
jnthn | Up to 39 nqp-rx test files passing :) | ||
lichtkind | TimToady: may i know why you changed @@ ? | ||
TimToady | it was ugly, and we didn't really need it | 23:42 | |
frettled | ETOOMANYKANELBULLAR | ||
jnthn | You can have too many? | 23:43 | |
frettled | I can only shove one into my mouth at a time. | ||
jnthn | Mouths are too small... | ||
diakopter | any git knowbodies around? | ||
TimToady | here are two of them stacked --> @ | ||
frettled | Okay, I admit that that is the problem. | ||
diakopter: what does your body need to know? | 23:44 | ||
diakopter | frettled: so I've got these commits.. | ||
that I can see in gitk | |||
(and their changes (almost entirely additions) are still reflected locally in their files) | 23:45 | ||
frettled | Oh, dear, a TCL/TK GUI. | ||
diakopter | disregard that line | ||
:) | |||
jnthn | TimToady: Thanks for spec clarification :) | 23:46 | |
diakopter | how would I push just these 4 commits | ||
even though TortoiseGit thinks they're already pushed | |||
TimToady | did you look at the tortoise underneath? | 23:47 | |
diakopter | yeah, but he referred me further down like you did | ||
frettled | what about the elephants above? | ||
23:47
envi joined
|
|||
diakopter | they were too flat to distinguish | 23:48 | |
frettled | diakopter: on a serious note: I'd wimp out and git clone a new local repository, copy the four changed files into that one, git commit -a and git push. | ||
it's probably the quickest and easiest way | |||
and with little mess | |||
diakopter | I've done that a couple of times already | 23:49 | |
and I already have plenty of other local changes that I ignore with every commit | |||
frettled | I don't believe git is meant to solve that particular problem for you, unless you create and manage your own branches. | ||
diakopter | yes. something I haven't yet learned [how] to do. | ||
frettled | diakopter: book.git-scm.com/3_basic_branching_...rging.html | 23:50 | |
diakopter | thanks | 23:51 | |
frettled | Mind you, I'm most certainly not an expert, so my advice may be slightly suboptimal. | ||
23:51
bluescreen joined
|
|||
flussence | git branch -m <current branch> <some new name>; git checkout -t origin/<current branch>; git merge <new branch name>; should clear things up. | 23:51 | |
23:51
bluescreen is now known as Guest2242
|
|||
frettled | flussence: but is there an easy way to say that just a few select files are part of that particular branch? | 23:53 | |
frettled hasn't found a way of doing that yet. |