»ö« 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! Set by sorear on 4 February 2011. |
|||
00:02
Chillance left
00:29
CBro2007 left
00:34
user_7659 joined
00:35
user_7659 left
00:39
literal joined,
avar joined,
avar left,
avar joined
01:00
noganex_ joined
01:03
noganex left
01:05
drbean joined
01:12
icwiener_ joined
01:16
icwiener left,
tokuhirom left
01:21
icwiener_ left,
dorlamm joined,
buubot_backup left
01:31
dorlamm left
01:40
woosley joined
01:43
dorlamm joined
01:44
buubot_backup joined
01:58
jaldhar joined
01:59
whiteknight left
|
|||
dalek | ecza: 5619c3b | sorear++ | lib/ (5 files): Expose all types of lexicals to runtime fetching |
02:06 | |
wolfman2000 | ...welp. I'm on Lion now. Unfortunately, Xcode 4.1 has already disappointed me | ||
02:09
supernovus joined
02:15
dorlamm left
02:16
supernovus left
03:16
jnthn left
03:20
avar left,
literal left
03:21
thickguy65 joined
03:23
thickguy65 left,
Su-Shee_ joined
03:25
jnthn joined
03:27
Su-Shee left,
avar joined,
avar left,
avar joined,
literal joined,
mathw joined
|
|||
[Coke] | do you use xcode to build rakudo, or just command line devtools? | 03:32 | |
03:50
ixxvil joined
03:51
ixxvil left
03:59
orafu left
04:32
thou__ joined
04:33
cooper left
04:34
cooper joined
04:41
daniel-s joined
04:45
_twitch joined
04:46
daniel-s left,
daniel-s_ joined
04:49
am0c joined,
daniel-s__ joined,
daniel-s_ left
04:52
Tanktalus joined
|
|||
Tanktalus | perl6 -e 'my %h; %h{@*ARGS}>>++; %h.perl.say' a b c b a | 04:53 | |
04:53
_daniel-s__ joined
|
|||
Tanktalus | What values should %h{'a'} and %h{'b'} have? I would think 2, but rakudo thinks 1... | 04:53 | |
04:54
daniel-s__ left,
_daniel-s__ left,
Trashlord left
|
|||
Tanktalus | perl6: %h{<<a b c b a>>}>>++; %h.perl.say | 04:55 | |
p6eval | pugs: OUTPUT«***  Unexpected "{<<" expecting "::" Variable "%h" requires predeclaration or explicit package name at /tmp/OQn8aPKCTw line 1, column 3» | ||
..niecza v7-43-g5619c3b: OUTPUT«===SORRY!===Variable %h is not predeclared at /tmp/G8paAbV0Kr line 1:------> <BOL>⏏%h{<<a b c b a>>}>>++; %h.perl.sayVariable %h is not predeclared at /tmp/G8paAbV0Kr line 1:------> %h{<<a b c b a>>}>>++; [33… | |||
..rakudo f63b82: OUTPUT«===SORRY!===Symbol '%h' not predeclared in <anonymous> (/tmp/vl4G6ppRL3:22)» | |||
Tanktalus | perl6: my %h; %h{<<a b c b a>>}>>++; %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | ||
..pugs: OUTPUT«{("a" => undef), ("b" => undef), ("c" => undef)}» | |||
..niecza v7-43-g5619c3b: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}.hash» | |||
Tanktalus | interesting that pugs is entirely different again :-) | 04:56 | |
moritz | Tanktalus: the indexing of the second %{'b'} seems to happen before the first %{'b'}++ is being evaluated | ||
Tanktalus wonders about submitting a test for this :-) | 04:57 | ||
moritz | nom: my %h; %h{<a b c b a>}>>++; say %h.perl | ||
p6eval | nom: OUTPUT«Contextual $*UNITPAST not foundcurrent instr.: 'nqp;Perl6;Actions;_block3675' pc 76103 (src/gen/perl6-actions.pir:27410) (src/Perl6/Actions.pm:2684)» | ||
moritz | oh, >> not yet implemented | ||
Tanktalus: also, >> (and other hyper ops) are allowed to executed in arbitrary order, and even parallelized | 04:58 | ||
Tanktalus: so you can't rely on getting a 2 anywhere | |||
nom: my %h; %h<a b c b a>.map: -> $x is rw { $x++ }; say %h.perl | 04:59 | ||
p6eval | nom: OUTPUT«get_iter() not implemented in class 'Mu'current instr.: '_block14469' pc 511791 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:3277)» | ||
Tanktalus | I just happened to be reading www.perlmonks.org/index.pl?node_id=459347 (very old), and they claimed that japhy asked here for the syntax for this type of thing, and this is what he got :-) | ||
moritz | :-) | 05:01 | |
Tanktalus | ah well, more a curiosity than anything, wondered if it should be a test, but now is time for sleep. G'night :-) | ||
(Thanks) | |||
moritz | good night | 05:02 | |
moritz would love to sleep too, but sometimes that's not so easy when the baby doesn't sleep either | |||
sorear | why a test? it's not wrong | 05:03 | |
05:04
araujo left
|
|||
TimToady | perl6: my %h; ++«%h<a b c b a>; %h.perl.say | 05:09 | |
p6eval | pugs: OUTPUT«decodeUTF8': bad data: '\171'{("a" => undef), ("b" => undef), ("c" => undef)}» | ||
..rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | |||
..niecza v7-43-g5619c3b: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}.hash» | |||
moritz | it would require slices in hyper context to be lazy. Oh well. | 05:12 | |
niecza: my $x = 5; say ::('$x') | 05:13 | ||
p6eval | niecza v7-43-g5619c3b: OUTPUT«===SORRY!===Cannot make a compile time reference to the semantic root package at /tmp/rbHTaf6mvY line 1 (EOF):------> my $x = 5; say ::('$x')⏏<EOL>Potential difficulties: $x is declared but not used at /tmp/rbHTaf… | ||
moritz | WTF is "the semantic root package"? | 05:14 | |
05:18
woosley left
|
|||
sorear | moritz: :: | 05:28 | |
it's a broken error | 05:31 | ||
the intended trigger case for that message is "class Foo is :: { ... }" | 05:32 | ||
TimToady | "Cannot figure out what :: means there" | 05:46 | |
05:47
thou__ left
05:55
birdwindupbird joined
06:01
simcop2387 left
|
|||
moritz | nom: sub f() { say 'in f' }; ::('&f').() | 06:05 | |
p6eval | nom: OUTPUT«in f» | ||
moritz | am I right in assuming that the & should be required here? | ||
nom: sub f() { say 'in f' }; &::('f').() | 06:10 | ||
p6eval | nom: OUTPUT«Symbol '&('f')' not predeclared in <anonymous> (/tmp/nFqqEhns1L:1)current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)» | ||
06:10
Su-Shee_ is now known as Su-Shee
|
|||
moritz | std: sub f() { say 'in f' }; &::('f').() | 06:10 | |
p6eval | std 516268a: OUTPUT«ok 00:01 121m» | ||
06:13
mkramer1 joined
|
|||
TimToady | ::() is supposed to be a bit dwimmier than Foo::{'&bar'}, so we might make the & optional | 06:13 | |
it certainly shouldn't hurt to have it | |||
06:14
spinclad left
|
|||
moritz | it would make it harder to disambiguate a function and type of the same name | 06:15 | |
TimToady | S10:77 | ||
moritz | S02 doesn't mention bare ::() at all | ||
just $::() and the like (with leading sigils) | |||
06:16
mkramer joined
|
|||
sorear | nom: my class A { method pie() { say 2 } }; ::("A").pie | 06:16 | |
p6eval | nom: OUTPUT«2» | ||
sorear | nom: { my class A { method pie() { say 2 } } }; ::("A").pie | ||
p6eval | nom: OUTPUT«Method 'pie' not found for invocant of class 'Failure'current instr.: '_block1002' pc 100 ((file unknown):26498575) (/tmp/DrZqZjDBD6:1)» | ||
TimToady is under the weather tonight, so should be treated as informative, not normative :) | |||
06:19
mkramer1 left
|
|||
dalek | ecza: 54b5188 | sorear++ | lib/ (3 files): Expose StashCursor system to cgop code |
06:22 | |
06:22
spinclad joined
|
|||
sorear | TimToady: may DYNAMIC be used with variables that lack a * twigil? | 06:23 | |
06:23
wolfman2000 left
|
|||
sorear | TimToady: if so, how to interpret S02:2836 when there is no * to strip? | 06:23 | |
TimToady | well, it's pretty hard to strip a * that ain't there | 06:25 | |
the only question is whether we allow GLOBAL::<$/> and such in the first place | |||
06:26
woosley joined,
soh_cah_toa left
06:31
Jackneill joined
06:35
simcop2387 joined
06:37
Trashlord joined
|
|||
sorear | nom: $A::b = 5; say $A::b | 06:39 | |
p6eval | nom: OUTPUT«5» | ||
sorear | nom: $A::b = 5; say ::('$A::b') | ||
p6eval | nom: OUTPUT«Symbol '$A::b' not foundcurrent instr.: 'rethrow' pc 521246 (src/gen/CORE.setting.pir:146252) (src/gen/CORE.setting:4049)» | ||
sorear | nom: $A::b = 5; say ::('A::$b') | ||
p6eval | nom: OUTPUT«Symbol 'A::$b' not foundcurrent instr.: 'rethrow' pc 521246 (src/gen/CORE.setting.pir:146252) (src/gen/CORE.setting:4049)» | ||
moritz | nom: package A { our $b = 5 }; say ::('A::$b') | 06:40 | |
p6eval | nom: OUTPUT«5» | ||
moritz | nom: package A { our $b = 5 }; say ::('$A::b') | ||
p6eval | nom: OUTPUT«5» | ||
moritz | it's a problem in the declaration code, not in the lookup (afaict) | ||
dalek | kudo/nom: ddf95b3 | moritz++ | src/Perl6/Actions.pm: move detection of indirect name lookups into a method, and check for it in sigiled variables |
06:55 | |
moritz | std: my $x::("foo")::bar | 06:56 | |
p6eval | std 516268a: OUTPUT«ok 00:01 120m» | ||
07:07
wormphlegm joined,
wormphlegm left
07:15
woosley left
07:16
woosley joined
07:20
woosley left
07:21
woosley joined
07:22
woosley left
07:26
woosley joined,
woosley left
07:29
satyavvd joined
07:33
envi left,
mj41_nb joined
07:34
envi joined
|
|||
sorear wonders if DYNAMIC::.keys makes sense | 07:37 | ||
or .keys/:exists/:delete on pseudo-packages generally | |||
07:51
CBro2007 joined
|
|||
moritz | if they resolve to a Stash, why not? | 07:52 | |
sorear | DYNAMIC:: in my WIP doesn't resolve to a stash | 07:53 | |
but rather to a tied object | 07:54 | ||
08:08
araujo joined
08:15
xinming left
08:16
xinming joined
08:18
timbunce joined
08:30
proller__ joined,
proller_ joined,
proller__ left
08:31
daxim joined
08:35
fhelmberger_ joined,
fhelmberger_ left
08:38
woosley joined
08:40
Su-Shee left
08:45
Trashlord left
08:49
wamba joined
08:50
_twitch left
|
|||
moritz | nom: say a:::: | 08:54 | |
p6eval | nom: OUTPUT«Name component may not be null at line 1, near "::"current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)» | ||
moritz | std: a:::: | 08:55 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Name component may not be null at /tmp/oCNRXIRA5V line 1:------> a::⏏::Parse failedFAILED 00:01 117m» | ||
08:58
_twitch joined
09:10
im2ee joined,
domidumont joined
09:12
domidumont left
09:14
Su-Shee joined
09:15
_twitch left
09:17
domidumont joined
09:18
im2ee left
09:20
_twitch joined
09:23
CBro2007 left
09:28
ab5tract joined
09:34
Guest59342 left
09:38
nothingmuch left,
nothingmuch joined
09:48
_twitch left
09:50
_twitch joined
09:56
Alias joined
09:58
spark_ joined
10:01
_twitch left,
woosley left
10:06
_twitch joined
10:09
felher joined
10:14
proller_ left
10:16
_twitch left
10:19
_twitch joined
10:29
CBro2007 joined
10:34
_twitch left
10:36
_twitch joined
10:37
_twitch left
10:39
_twitch joined
10:52
MayDaniel joined
10:57
pernatiy joined
10:59
xinming left
11:01
xinming joined
11:09
kaare__ joined
11:12
c1sung left,
c1sung joined
11:22
MayDaniel left
11:28
bs338 left
11:29
bs338 joined
11:41
am0c left
11:51
JimmyZ joined
11:52
Jackneill left
11:55
satyavvd left
|
|||
takadonet | mornign all | 12:02 | |
moritz | \o takadonet | 12:03 | |
Q: how to generate all permutations of a list with Perl 5? A: perl -le 'print sort { fork ? 1 : -1 } 1..5' | |||
flussence | clever | 12:05 | |
Gothmog_ | fork bomb inclusive ,) | ||
flussence | I've seen a similar trick used to test malloc where it forks, one returns OOM and the other works as normal | 12:06 | |
moritz | Gothmog_: oh come an, 120 processes ain't a fork bomb :-) | 12:08 | |
12:14
_twitch left
12:16
noganex_ left
12:22
_twitch joined
|
|||
moritz | nqp: say('foo'[0]) | 12:35 | |
p6eval | nqp: OUTPUT«f» | ||
moritz | nqp: say('foo'[1]) | ||
p6eval | nqp: OUTPUT«o» | ||
moritz | nqp: say('foo'[0,1]) | ||
p6eval | nqp: OUTPUT«o» | ||
moritz | nqp: say('abc'[0,1,0]) | ||
p6eval | nqp: OUTPUT«» | ||
12:37
kaare__ is now known as kaare_,
hanekomu joined
|
|||
Gothmog_ | moritz: Yeah, but that depends heavily on the size of the list, does it not. ;) | 12:39 | |
moritz | Gothmog_: sure :-) | 12:40 | |
flussence | rakudo: say 1, 2, * * * ... * >= 65535 | ||
p6eval | rakudo f63b82: OUTPUT«122483225681922097152» | ||
huf | surely not. 1..5 has a constant size | ||
flussence | rakudo: say ~( 1, 2, * * * ... * >= 65535 ) | ||
p6eval | rakudo f63b82: OUTPUT«1 2 2 4 8 32 256 8192 2097152» | ||
flussence | wait, that's not right | ||
moritz | you're multiplying the last two items of a the list | 12:41 | |
flussence | rakudo: say ([\*] (1, 2, 3 ... *))[0..10] | ||
p6eval | rakudo f63b82: OUTPUT«12624120720504040320362880362880039916800» | ||
flussence | rakudo: say ~([\*] (1, 2, 3 ... *))[0..10] | ||
p6eval | rakudo f63b82: OUTPUT«1 2 6 24 120 720 5040 40320 362880 3628800 39916800» | ||
flussence | that's the one | ||
moritz | right | ||
moritz not fast enough | 12:42 | ||
flussence | you can do up to 1..8 before you run out of PIDs :) | ||
moritz | aren't PIDs recycled? | ||
flussence | depends how fast they are... | ||
moritz | buubot_backup: eval: my @a; sub DESTROY { push @a, shift }; { bless {} }; \@a | 12:45 | |
buubot_backup | moritz: [bless( {}, 'main' )]DESTROY created new reference to dead object 'main' during global destruction. | ||
12:50
jaldhar left,
jaldhar joined
12:51
spark_ left
12:52
wamba left
13:02
Holy_Cow joined
13:03
Holy_Cow left
13:05
smash joined
|
|||
smash | hello everyone | 13:07 | |
takadonet | smash: hey | 13:10 | |
[Coke] | smash: hola. | 13:13 | |
mberends | this looks wrong to me. Rakudo release 2011-07-21 should be based on Parrot 3.6.0, for which there is tarball that builds ok. According to Rakudo's build/README-parrot-revision, build/PARROT_REVISION gets its contents from parrot_config git_describe, but in the tarball Parrot that returns 0. It leaves me guessing which is the actual git commit for Parrot 3.6.0. | 13:16 | |
13:17
MayDaniel joined
|
|||
moritz | mberends: the configure tools fall back to the parrot version number if `git describe` output is not available | 13:17 | |
mberends | moritz: thanks, I'll try 3.6.0 then :) | 13:18 | |
* and I'll update Rakudo's docs with that valuable tip | 13:19 | ||
13:19
lichtkind joined
|
|||
moritz just noticed that today's release doesn't have a release manager yet :( | 13:19 | ||
dalek | kudo: 495578b | moritz++ | build/PARROT_REVISION: bump parrot version to 3.6 |
13:20 | |
lichtkind | TimToady: do you know when this was ? bigthink.com/LarryWall thanks | 13:21 | |
13:22
Alias left,
xinming_ joined
|
|||
dalek | kudo: 1ebab75 | moritz++ | docs/ChangeLog: changelog |
13:24 | |
13:25
xinming left
|
|||
mberends | moritz: I was just beginning to do the release manager job | 13:25 | |
moritz | mberends: feel free to do that, I don't know how many tuits I'll have today/tonight | 13:26 | |
mberends | ok | ||
moritz | my suggested release name would be Dahut (after dahut.pm.org/ which I find plainly awesome :-) | ||
mberends | that was Rakudo #41 2011-05-19 already | 13:28 | |
moritz | oh | ||
moritz lost track, it seems | |||
mberends | better trawl pm.org some more | ||
13:29
uvtc joined,
drbean left
|
|||
[Coke] | dasn't use albany.pm | 13:30 | |
uvtc | [Coke]: Hi. Thanks for the reply about getting rakudo.org on planetsix yesterday. Did it make it? I don't see the rakudo.org post listed there. | 13:31 | |
[Coke] | I committed it, double checking. | ||
[rakudo.org/feed/] | 13:32 | ||
name = rakudo.org | |||
[rakudo.org/feed/] | |||
name = rakudo.org | |||
[rakudo.org/feed/] | |||
name = rakudo.org | |||
gah. | |||
(it's only in there once.) | |||
mberends | [Coke]: dasn't? | 13:33 | |
[Coke] | archaic (or dialectical) shouldn't. | ||
mberends | ah, ok | ||
[Coke] | dialectal? | ||
Tanktalus | diabolical? | 13:34 | |
[Coke] | uvtc: so, I added it, but it's not showing up. wonder if it's erroring out. | ||
Tanktalus | I know I asked about this last night, but then I went to bed: my %h; %h{<<a b c b a>>}>>++; %h.perl.say | ||
[Coke] | looks like an odd contraction of "dare not" | 13:35 | |
Tanktalus | someone mentioned that rakudo is not wrong to show all three keys, a, b, and c, with value 1. | ||
[Coke] | rakudo: my %h; %h{<<a b c b a>>}>>++; %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | ||
moritz | that was me, I think | ||
mberends | I was thinking of Beijing|Chinese Perl mongers for welcoming jnthn over there | ||
moritz | Tanktalus: see irclog.perlgeek.de/perl6/2011-07-21 for the logs | ||
Tanktalus | I'm just surprised - it's not dwimming very well ;-) | ||
uvtc | [Coke]: I daren't venture a guess -- not familiar with configuring planet. | ||
[Coke] | moritz: makes sense - I suspect it has to create the hash before it incrememts the values. | 13:36 | |
moritz | Tanktalus: not much more was said on the topic - side effects in hypers are a bad idea, and you get what you ask for if you do it anyway - trouble | ||
[Coke] | rakudo: my %h; %h{<<a b c b a>>}; %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«{}» | ||
[Coke] | rakudo: my %h; %h{<<a b c b a>>}=0; %h.perl.say | 13:37 | |
moritz | [Coke]: in addition the slice is not lazy, so it creates all the autovivification proxies before the first ++ is executed | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => Any, "b" => Any, "c" => Any}» | ||
Tanktalus | I guess my only point is that it'll likely confuse people, especially since it was this very channel that gave the original idea ~6 years ago :-) | 13:38 | |
13:39
jaldhar left
|
|||
Tanktalus | I expect that if you didn't already know the answer, most people would assume you'd get 2's for a and b. | 13:39 | |
13:39
jaldhar joined
|
|||
moritz | buubot_backup: sub i { $_++ for @_ }; my %h; i @h{a b c b a}; \%h | 13:40 | |
buubot_backup | moritz: Couldn't match input. | ||
moritz | buubot_backup: eval: sub i { $_++ for @_ }; my %h; i @h{a b c b a}; \%h | ||
buubot_backup | moritz: ERROR: Can't locate object method "c" via package "b" (perhaps you forgot to load "b"?) at (eval 28) line 1. | ||
[Coke] | uvtc: I've pinged the perl webmaster - I have keys to add things to the planet, but no admin rights to see what's failing. | 13:41 | |
moritz | buubot_backup: eval: sub i { $_++ for @_ }; my %h; i @h{<a b c b a>}; \%h | ||
buubot_backup | moritz: ERROR: Can't locate Text/ParseWords.pm in @INC (@INC contains:) at /home/buubot/perl-5.12.3/lib/5.12.3/i686-linux/File/Glob.pm line 152. | ||
moritz | buubot_backup: eval: sub i { $_++ for @_ }; my %h; i @h{qw<a b c b a>}; \%h | ||
buubot_backup | moritz: {c => 1,a => 2,b => 2} | ||
flussence | hyperops are implicitly threaded; you can't expect them to run in any specific order, same as threaded code anywhere else. The only reliable thing you can do in them is pure functions. | ||
Tanktalus | flussence: then maybe >>++ should elicit a warning/error? | 13:42 | |
uvtc | [Coke]: Nice. Thanks, Coke. Wonder if it has anything to do with the recent rakudo.org changeover to WordPress... | ||
flussence | rakudo: my %h; %h{«a b c b a»} = %h{«a b c b a»}».succ; %h.perl.say | 13:43 | |
p6eval | rakudo f63b82: OUTPUT«Method 'succ' not found for invocant of class '' in main program body at line 22:/tmp/4PiYokSEQe» | ||
flussence | rakudo: my %h; %h{«a b c b a»} = 0; %h{«a b c b a»} = %h{«a b c b a»}».succ; %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«Method 'succ' not found for invocant of class '' in main program body at line 22:/tmp/opzNmFtohp» | ||
moritz | Tanktalus: I don't think it's so common to have a list with multiple references to the same mutable object in them | ||
Tanktalus | moritz: if you're counting them it would be :-) | 13:44 | |
flussence | rakudo: my %h = <a b c> X 0; %h{«a b c b a»} = %h{«a b c b a»}».succ; %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | ||
Tanktalus | I've seen the same question on perlmonks more than a few times from new users, while the more experienced ones will already know how to count items idiomatically in perl5. | 13:45 | |
The perl5 idiom works in perl6, it's just not as cool looking. As people get used to hyper operators, this one might take us by surprise :-) | 13:47 | ||
rakudo: my %h; %h{$_}++ for <<a b c b a>>; %h.perl.say | |||
p6eval | rakudo f63b82: OUTPUT«{"a" => 2, "b" => 2, "c" => 1}» | ||
13:47
uvtc left
|
|||
Tanktalus | That's perl5 using perl6 syntax. It works. That's great. I was under the impression that hypers helped here, and the surprise is that they don't. | 13:48 | |
moritz | there are lots of other ways | 13:49 | |
mberends: FYI, I just had a clean spectest run with master on the released parrot | 13:51 | ||
flussence | rakudo: my %h = [<a b c b a>].classify({ $_ }).map(* => +*); %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 22:/tmp/hrufEIcimr in 'List::Bool' at line 1:src/metamodel/RoleToInstanceApplier.nqp in '!STORE' at line 5410:src/gen/core.pm in '!STORE' at line 5430:src/gen/core.pm in main … | ||
[Coke] | what is the method that ... classify. thank you. | 13:52 | |
dalek | kudo: 53a9da1 | moritz++ | docs/announce/2011.07: initial release announcement |
||
flussence | rakudo: my %h = [<a b c b a>].classify({ $_ }).map({ $^k => +$^v }); %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 22:/tmp/fIvi_BLsv7 in 'List::Bool' at line 1:src/metamodel/RoleToInstanceApplier.nqp in '!STORE' at line 5410:src/gen/core.pm in '!STORE' at line 5430:src/gen/core.pm in main … | ||
flussence | bah | ||
mberends | moritz: thanks, still waiting here for the same to finish | ||
moritz | flussence: .kv.map | ||
flussence | rakudo: my %h = [<a b c b a>].classify({ $_ }).kv.map({ $^k => +$^v }); %h.perl.say | ||
p6eval | rakudo f63b82: OUTPUT«{"0" => undef, "1" => undef, "2" => undef}» | ||
flussence | erm. | ||
moritz | flussence: and yes, I've been thinking about a .classify-based solution too | ||
flussence | rakudo: [<a b c b a>].classify({ $_ }).kv.map({ $^k => +$^v }).perl.say | ||
p6eval | rakudo f63b82: OUTPUT«(0 => undef, 1 => undef, 2 => undef)» | ||
flussence | nom: my %h = [<a b c b a>].classify({ $_ }).map(* => +*); %h.perl.say | 13:53 | |
p6eval | nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are::(Mu, Mu %_)current instr.: 'Numeric' pc 469381 (src/gen/CORE.setting.pir:122450) (src/gen/CORE.setting:332)» | ||
flussence | nom: [<a b c b a>].classify({ $_ }).map({ $^k => +$^v }) | ||
p6eval | nom: OUTPUT«Segmentation fault» | ||
flussence | whoops | ||
moritz | rakudo: my %h; %h.push: <a b c b a>; %h = %h.keys Z %h.values>>.elems; say %h.perl | ||
p6eval | rakudo f63b82: OUTPUT«Trailing item in Hash.push in <anon> at line 5481:src/gen/core.pm{}» | ||
moritz | rakudo: my %h; %h.push: <a b c b a> X=> 1; %h = %h.keys Z %h.values>>.elems; say %h.perl | 13:54 | |
p6eval | rakudo f63b82: OUTPUT«{}» | ||
moritz keeps the loop :-) | |||
flussence leaves it for someone else | |||
moritz | rakudo: say (< b c b a> X=> 1).perl | 13:55 | |
p6eval | rakudo f63b82: OUTPUT«("b" => 1, "c" => 1, "b" => 1, "a" => 1)» | ||
flussence | .oO( maybe I should keep at least one working master and one nom locally... ) |
||
moritz | rakudo: my %h; %h.push: (< b c b a> X=> 1); say %h.perl | ||
p6eval | rakudo f63b82: OUTPUT«{"b" => [1, 1], "c" => 1, "a" => 1}» | ||
moritz | rakudo: my %h; %h.push: (<a b c b a> X=> 1); say (%h.keys Z %h.values>>.elems).perl | ||
p6eval | rakudo f63b82: OUTPUT«("a", 2, "b", 2, "c", 1)» | ||
moritz | rakudo: my %h; %h.push: (<a b c b a> X=> 1); say (%h.keys Z %h.values>>.elems).hash.perl | 13:56 | |
p6eval | rakudo f63b82: OUTPUT«{"a" => 2, "b" => 2, "c" => 1}» | ||
flussence | rakudo: my %h = <a b c b a> X=> 1; say {%h.keys Z %h.values».elems}.perl; | ||
p6eval | rakudo f63b82: OUTPUT«{ ... }» | ||
flussence | "...", indeed | 13:57 | |
rakudo: my %h = <a b c b a> X=> 1; say +{%h.keys Z %h.values».elems}.perl; | |||
p6eval | rakudo f63b82: OUTPUT«0» | ||
flussence | so much for golfing it down :) | ||
moritz | rakudo: my %h = (my %).push: (<a b c b a> X=> 1).map: {; .key => .value.elems }; say %h.perl | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => [1, 1], "b" => [1, 1], "c" => 1}» | ||
moritz | rakudo: my %h = (my %).push: (<a b c b a> X=> 1).pairs.map: {; .key => .value.elems }; say %h.perl | 13:58 | |
p6eval | rakudo f63b82: OUTPUT«{"0" => 1, "1" => 1, "2" => 1, "3" => 1, "4" => 1}» | ||
moritz | look, it uses an anonymous variable... and it doesn't work :-) | ||
14:00
benabik joined
|
|||
flussence | rakudo: my %h = <a b c b a> X=> 1; say (%h.keys Z %h.values».elems).hash.perl; | 14:01 | |
p6eval | rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | 14:02 | |
flussence | I wonder why that only adds up to one each... | ||
rakudo: my %h = <a b c b a> X=> 1; say (%h).perl; | |||
p6eval | rakudo f63b82: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | ||
flussence | oh, push is magical | ||
moritz | it is indeed | 14:03 | |
14:03
benabik left
14:05
ZaphrodZenovka joined
14:06
benabik joined
14:09
tewk joined
|
|||
TimToady | 8 | 14:11 | |
lichtkind | TimToady: you mean 2008? :) | 14:12 | |
felher | moritz++ for JSON::TINY and ++ for whoever wrote the corresponding section in the perl6 book. | 14:14 | |
14:15
jaldhar left
|
|||
moritz bows | 14:15 | ||
14:15
jaldhar joined
14:16
Jackneill joined
14:19
orafu joined
14:26
perlhack joined
|
|||
perlhack | i have fun in learning english. | 14:28 | |
:-) | |||
14:28
MayDaniel left
|
|||
moritz | is there a Beijing.pm? | 14:30 | |
(none listed on www.pm.org, but since they had their own workshop...) | 14:31 | ||
perlhack | :-)Beijing.pm ??? | ||
moritz | |||
modules ? | |||
moritz | perlhack: perlmongers group | 14:32 | |
perlhack | oh! i get it. | ||
moritz | |||
daxim | moritz, perlhack, <perlchina.org/> | 14:33 | |
moritz | daxim: that doesn't answer my question in a way I could understand | 14:34 | |
JimmyZ | moritz: perlchina.org is the workshop :) | 14:35 | |
moritz | that still doesn't answer my question :-) | ||
perlhack | Hey hey | ||
China workshop for perl | 14:36 | ||
JimmyZ | moritz: beijing.pm.org/ | ||
daxim | www.flickr.com/photos/shijialee/3939754271/ | 14:37 | |
14:37
wolfman2000 joined
|
|||
dalek | kudo: a73d73c | moritz++ | docs/announce/2011.07: name our release Beijing |
14:40 | |
moritz | mberends: seems the release is going pretty well here... now running (hopefully) final build+spectest run | 14:50 | |
moritz.faui2k3.org/tmp/rakudo-2011.07.tar.gz # please test | |||
mberends | moritz: ok, will test here too. Guessing by the website, perlchina.org (who ran Beijing Perl Workshop) are not connected with beijing.pm.org. | 14:53 | |
14:53
kaare_ left
|
|||
smash | moritz: testing here too | 14:55 | |
moritz | mberends: I hope there's some informal overlap between the two :-) | ||
smash | building on macosx lion, half-way installling xcode | 14:56 | |
moritz | (if anybody thinks it's important enough, feel free to correct the release announcement, I'll make a new tar ball out of it) | ||
mberends | moritz: there's probably a high overlap of membership and workshop attendees | 14:57 | |
flussence | suggestion: have t/spec check out master when it's on nom, same as it does rakudo-master when on master. I keep forgetting to switch it back :( | 14:59 | |
moritz | flussence: ah, I just have two checkouts in different locations :-) | 15:00 | |
mberends | flussence: like you mentioned before, it's time to have two independent directories. | ||
15:01
Jackneill left,
perlhack left
|
|||
flussence | well, after I've run this spectest... :) | 15:02 | |
moritz | meh, spectest-update failed | ||
15:03
wamba joined
|
|||
flussence | why do we rely on perl6 qx() in spectest_smolder? can't we just use the perl5 one, since we need that for the test harness anyway? | 15:03 | |
moritz | eating our own dogfood | ||
flussence | good point | 15:04 | |
dalek | kudo: cc373ff | moritz++ | / (2 files): update release_guide.pod, bump VERSION |
15:06 | |
kudo: 085a4b7 | moritz++ | build/Makefile.in: make spectest_update nonfatal, it fails in the release (because t/spec/ is not a git checkout) |
|||
15:08
kjeldahl joined
|
|||
moritz | please re-fetch your tarballs from moritz.faui2k3.org/tmp/rakudo-2011.07.tar.gz | 15:10 | |
smash | nice, it was able to build rakudo *while* installing xcode | ||
moritz | spectest is running... will push the tags and upload the tarball when I come home and find that all tests have passed | 15:19 | |
15:21
MayDaniel joined
|
|||
moritz | nom: say ::('pi') | 15:27 | |
p6eval | nom: OUTPUT«3.14159265» | ||
15:32
thou__ joined
|
|||
pmichaud | good morning, #perl6 | 15:35 | |
smash | pmichaud: mornin' | 15:36 | |
pmichaud | what's the release status? | 15:44 | |
I'm thinking of making some updates to the announcement | 15:45 | ||
15:45
thou__ is now known as thou
15:47
MayDaniel left,
timbunce left
15:48
_twitch left
15:51
mkramer left
|
|||
pmichaud | Do we want to continue to commit to Parrot release + 2 days, or should we lengthen that a bit? | 15:54 | |
I think we had discussed saying "within four days of Parrot release" | 15:55 | ||
JimmyZ | +1 | 15:57 | |
[Coke] | do we need the time? | 15:58 | |
pmichaud | well, we now have NQP releases involved as well. | 15:59 | |
[Coke] | I think "within a week" gives you plently of slush room if needed. | ||
pmichaud | I could do "within a week", yes. | ||
[Coke] | (I also think that except from a marketing standpoint, it probably doesn't matter too much) | ||
pmichaud | gist.github.com/1097516 # diff of proposed announcement changes | 16:02 | |
gist.github.com/1097518 # announcement text after diff | |||
apologies for not getting to the announcement text earlier... had some events around the house that needed my attention :( | 16:03 | ||
[Coke] hopes everything is ok now. :| | 16:06 | ||
+1 on the announcement. | 16:07 | ||
pmichaud | it was nothing all that bad... just things that kept me afk | ||
16:07
ZaphrodZenovka left
|
|||
[Coke] | no worries. | 16:07 | |
[Coke] has a script now to compare the blocker listed in spectest.data with the actual error message so it will be easier to keep it up to date as nom gets closer. Need to apply the patch on that after dayjob today. | 16:09 | ||
dalek | kudo: 61eef48 | pmichaud++ | docs/announce/2011.07: Revise release announcement a bit. |
16:11 | |
16:14
noganex joined,
_twitch joined
16:17
ab5tract left,
_twitch left,
JimmyZ left
|
|||
dalek | kudo: 9225003 | pmichaud++ | docs/release_guide.pod: Add some release name suggestions for future releases. |
16:22 | |
sorear | good * #perl6 | ||
16:27
daxim left
|
|||
slavik | how is laziness achieved? is there like a object.eval() type thing implemented? | 16:29 | |
smash | moritz: failed on test, t/spec/S19-command-line/dash-e.t | ||
16:31
pernatiy left
|
|||
smash | rakudo: print q[\c[LATIN SMALL LETTER A WITH DOT ABOVE]] | 16:37 | |
p6eval | rakudo 61eef4: OUTPUT«===SORRY!===Confused at line 22, near "]"» | ||
smash | that is the failling test | 16:38 | |
16:39
ZaphrodZenovka joined
|
|||
sorear | slavik: laziness in Perl 6 is restricted to lists | 16:46 | |
slavik | sorear: I mean, in general, how is laziness implemented in a language? | ||
sorear | slavik: every List object contains two internal deques, one of items and one of iterators | ||
slavik: define "laziness", or alternately, choose a language | 16:47 | ||
there are lots of ways | |||
slavik | perl6 list laziness | ||
sorear: what is the simplest type to illustrate it? | |||
sorear | slavik: type? you mean like Any, Int, List, etc? | 16:48 | |
slavik | type == implementation | 16:49 | |
as in, what is the simplest way to illustrate laziness for educational/illustrational purposes? | |||
[Coke] | show a list that would normally go to infinity and peg the CPU/memory. | 16:51 | |
my @a = 1..Inf; say "alive" | 16:52 | ||
rakudo: my @a = 1..Inf; say "alive" | |||
p6eval | rakudo 61eef4: OUTPUT«alive» | ||
[Coke] | (ok, that's not really a list.) | ||
rakudo: say 1..Inf.WHAT | |||
p6eval | rakudo 61eef4: OUTPUT«» | ||
benabik | nom: say 1..Inf.WHAT | 16:53 | |
p6eval | nom: OUTPUT«1..Num» | ||
sorear | slavik: hmm. maybe, mitpress.mit.edu/sicp/full-text/boo...c_Temp_449 ? | ||
benabik | nom: say (1..Inf).WHAT | ||
p6eval | nom: OUTPUT«Range()» | ||
moritz | use ... | 16:57 | |
17:00
mj41_nb left
17:01
benabik left
|
|||
slavik | sorear: thanks, same though I had, cache the thunks, then eval them | 17:03 | |
ie: $cache{<statement>} = undef; to store it and then: $cache{<statement>} = eval <statement>; and return $cache{<statement>} if $cache{<statement>} != undef; | 17:06 | ||
17:07
timbunce joined
|
|||
TimToady | rosettacode.org/wiki/Undefined_valu...ned#Perl_6 <-- kinda funny | 17:12 | |
sorear: arguably we also apply the concept of laziness to context and to exceptions | 17:13 | ||
not to mention autoviv | 17:14 | ||
sorear | also the First Virtue | 17:17 | |
TimToady | We're all very eager to be lazy... | 17:18 | |
17:21
hanekomu left
17:23
jaldhar left
17:25
wamba left
17:27
am0c joined
|
|||
moritz | pmichaud: I don't think anybody except yourself has posting permissions on the new rakudo.org | 17:28 | |
tags for the release pushed | |||
17:29
perlhack joined
|
|||
moritz | upload to github will follow suit | 17:29 | |
17:31
perlhack left,
mj41_nb joined
|
|||
moritz | github.com/rakudo/rakudo/downloads # it's up there | 17:32 | |
smash | moritz++ # release | 17:35 | |
17:35
[particle] joined
|
|||
colomon | moritz++ | 17:39 | |
jdhore | moritz++ | 17:40 | |
szabgab | oh I just came in the right time moritz++ | 17:52 | |
pmichaud | moritz: rakudo.org shows a lot of people with administrative privs (including yourself :) | 18:01 | |
18:04
Zapelius joined
|
|||
moritz | pmichaud: oh, I didn't know that :-) | 18:05 | |
18:07
birdwindupbird left
|
|||
PerlJam | greetings | 18:08 | |
pmichaud | PerlJam has admin privs also :-P | 18:09 | |
PerlJam | er ... for what? | ||
pmichaud | rakudo.org | 18:10 | |
PerlJam | why does someone need a rakudo.org admin exactly? | ||
pmichaud | to help keep the site up-to-date, of course :) | 18:12 | |
PerlJam | So ... I should click on the "update wordpress now" link? ;) | 18:13 | |
pmichaud | PerlJam: if you feel it needs to be done, yes. :) | ||
PerlJam | I have no idea what the ramifications would be and it doesn't feel like a vary harmless action, so ... no. | 18:14 | |
Su-Shee | I'd say a +1 for pmichaud's parenting skills. ;) | 18:15 | |
PerlJam | But ... I do see many comments that could be marked as spam :( | ||
18:17
ciphertext left
18:23
thundergnat joined
|
|||
thundergnat | rakudo: my %h; ++«%h<a b c b a>; %h.perl.say | 18:24 | |
p6eval | rakudo 61eef4: OUTPUT«Rebuild in progress» | ||
PerlJam | What happened to building rakudo in the background so that people don't see that message anymore? | 18:25 | |
TimToady | it's in that unevenly distributed future we keep hearin' about | 18:26 | |
lichtkind | TimToady: was the 8 directed to me? | 18:29 | |
PerlJam is willing to distribute the future a little more evenly if able | 18:30 | ||
thundergnat | rakudo: say 'alive'; | ||
p6eval | rakudo 922500: OUTPUT«alive» | ||
thundergnat | \o/ | ||
rakudo: my %h; ++«%h<a b c b a>; %h.perl.say | 18:31 | ||
p6eval | rakudo 922500: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}» | ||
thundergnat | rakudo: my %h = <a 0 b 0 c 0>; ++«%h<a b c b a>; %h.perl.say | ||
p6eval | rakudo 922500: OUTPUT«{"a" => "2", "b" => "2", "c" => "1"}» | ||
thundergnat | That's the same problem I talked about the other day, except with hashes instead of arrays. irclog.perlgeek.de/perl6/2011-07-15#i_4118614 | ||
It is autivivifying lazily so only the last autovified value makes into into the slot. | |||
moritz | PerlJam: before sorear++'s patch, rakudo always rebuilt in the background | 18:32 | |
thundergnat | If you pre initialize the values, it works as expected. | ||
PerlJam | thundergnat: are you sure the spec says something about a guaranteed order there? | ||
moritz | it does not. | ||
thundergnat | The order doesn't enter into it. | 18:33 | |
PerlJam | thundergnat: it does | ||
moritz | but the compiler is allowed to parallelize | ||
thundergnat | It doesn't | ||
moritz | and the ++ can lead to race conditions | ||
thundergnat | IT tries to aoutovivify several times but only one instance makes it into the slot. | ||
If you pre-declare and it doesn't have to autovivify, it works as expected. | 18:34 | ||
TimToady wonders if autovivify could check to see if someone else got there first, and use that | |||
moritz | but only by chance | ||
not reliably | |||
thundergnat | It is the lazy autovivification that trips it up. | 18:35 | |
moritz | yes, we've understood that now | ||
it still only works by chance | |||
thundergnat | Sorry, beating a dead horse... | ||
TimToady | more specifically, it's idempotency of the dead horse | 18:36 | |
autoviv should really have "guarantee" semantics rather than "create it" semantics | |||
PerlJam | seems like you'd just move the race condition around though | 18:37 | |
(unless you're hand-waving that away under "guarantee" :) | 18:38 | ||
TimToady | depends on how you view the monad | ||
18:39
benabik joined
|
|||
TimToady | the container in question still has to make it look like it's holding a different immutable object when in reality it's implemented as a mutable object | 18:40 | |
so yes, some kind of atomicity is still required | |||
but I don't think we should use "it's parallel, so it's gonna break anyway" as an excuse not to keep all the side effects as well behaved as we can | 18:41 | ||
if it's Too Hard, then we can call it erroneous, but I'm not convinced of that | |||
PerlJam | so ... some kind of "container proxy" that becomes a real container on first use? | 18:42 | |
TimToady | I don't care how, as long as it's "guarantee" rather than overwrite | ||
18:42
benabik left
|
|||
TimToady | and it can still be a lazy guarantee, it just doesn't do anything more the second time | 18:43 | |
18:43
impious joined
|
|||
TimToady | it's more of .FETCH(:create-if-you-need-to) than a .STORE | 18:44 | |
.FETCH(:pretend-it-was-always-there) | 18:45 | ||
for a more "eternal" view of the matter | |||
non-existence is just an optimization for the default :) | 18:46 | ||
moritz | pmichaud: ping | 18:49 | |
18:49
impious left
|
|||
PerlJam | We only really need to pretend under parallelization, otherwise the existing autoviv should work. | 18:49 | |
I wonder if it's more work to pretend than otherwise | |||
18:49
Zapelius left
|
|||
TimToady | to me, the need to possibly marshall hyper side effects is a separate issue for any mutating hyper | 18:50 | |
but the autoviv behavior should not make that impossilbe | |||
*sible | |||
it's like it's confusing two different monads to conflate the two issues | 18:52 | ||
sjn | is there some kind of Changelog file for rakudo? | 18:54 | |
moritz | yes | 18:55 | |
PerlJam | docs/ChangeLog | ||
sjn | ah | ||
thanks | |||
sjn is used to see that file in the root dir | |||
hm. no nom yet, eh | 18:57 | ||
PerlJam | sjn: soon. | ||
sjn can't wait :) | |||
well, I can, but I'd like to express my excitement for when that day comes. :) | 18:58 | ||
TimToady | I note that Perl 5's hv_fetch takes a boolean lval argument for just this reason. | ||
18:58
ggoebel left
18:59
ggoebel joined
|
|||
TimToady | it's not like it's new technology | 18:59 | |
ggoebel | reparrot.blogspot.com/2011/07/when-...llide.html | ||
19:00
stepnem joined
|
|||
ggoebel | wondering if perl6 would be a better candidate than perl5 for M0 | 19:00 | |
PerlJam | C would be an even better candidate I think :) | ||
ggoebel | ;) | ||
moritz | why not in PIR? | 19:02 | |
TimToady | why not an M0 chip? :P | 19:03 | |
PerlJam | know anyone with an FPGA and some chip design experience? ;) | 19:04 | |
flussence | is it possible to do in shaders? :) | ||
PerlJam | moritz: I think the argument is that PIR is neither high-level enough nor low-level enough to pull it off. | ||
moritz: or perhaps it's just "PIR is bad m'kay" | 19:05 | ||
:-) | |||
19:05
birdwindupbird joined
|
|||
TimToady | .oO(when it comes to combining the feature sets of Perl and asm, I always forget whether I want ∪ or ∩) |
19:09 | |
maybe it depends on whether you're counting positive features or negative features... | |||
and I suspect PIR picked the other one... | 19:11 | ||
19:12
stepnem left
19:13
Chillance joined
19:19
stepnem joined,
alester joined
19:24
kaare_ joined
19:32
desertm4x joined
|
|||
[Coke] | rakudo: say "weird science" # because everyone always stops at the first part. | 19:37 | |
p6eval | rakudo 922500: OUTPUT«weird science» | ||
19:38
rlb3_ joined
|
|||
[Coke] | doing m0 in perl6 gives us a slight temporary bootstrap issue. | 19:39 | |
19:39
donri joined
|
|||
TimToady | well, you'd have to just pretend you have native types to begin with | 19:47 | |
[Coke] | I think we already do that. ;) | 19:49 | |
19:51
rlb3_ left
|
|||
sorear | TimToady: hv_fetch has simpler semantics than perl6, for instance it can't express if %foo<a><b> { } non-destructively | 19:52 | |
19:53
Mowah joined
|
|||
TimToady | sure, but we can still improve the idempotency of 'make it be there' | 19:53 | |
even if that has to be recursively defined for nested containers | 19:54 | ||
sjn | could someone suggest to me a good text on the grammars in p6? | 19:55 | |
moritz | sjn: have you already read the chapter on grammars in "Using Perl 6"? | 19:56 | |
sjn | yes | ||
PerlJam | sjn: maybe just ask questions here as things come up? | 19:57 | |
sjn | well, skimmed it :) | ||
sjn takes antother look | |||
PerlJam: will do :) | |||
moritz | perlgeek.de/en/article/ also has a few articles about different aspects of Perl 6 grammars | ||
19:58
Mowah left,
Mowah joined
20:00
benabik joined
|
|||
sjn | moritz: thanks | 20:03 | |
20:18
kaare_ left,
birdwindupbird left
|
|||
pmichaud | moritz: pong | 20:19 | |
20:19
kjeldahl left
|
|||
moritz | pmichaud: I've tried to make the $::('foo') form of indirect name lookups working | 20:21 | |
(link to patch forthcoming) | |||
moritz.faui2k3.org/tmp/indirect-lookup.patch | 20:22 | ||
as you can see, I've left some debug output in | |||
pir::typeof($_<EXPR>) says String when I call it as $::($something) | |||
and the string is $ | |||
(ie the sigil) | 20:23 | ||
and I have no idea at all how $<EXPR> ends up being a String, and not the PAST for $something | 20:24 | ||
benabik | moritz: Are you looking for $<EXPR>.ast ? | ||
20:24
cognominal_ joined
|
|||
pmichaud | string/integer/float literals are allowed to serve as their own PAST, for one. | 20:24 | |
20:24
cognominal left
|
|||
pmichaud | not sure that's what happening here, though. | 20:25 | |
moritz | sorry, $_<PAST>, not $<PAST> | ||
benabik: if $_<EXPR> is a String, calling .ast on it goes BOOM | |||
benabik: which is exactly what's happening here... | |||
benabik | moritz: But $<EXPR> should be a match object… I didn't notice you meant $_<> | 20:26 | |
moritz | benabik: that too should be a Match object here | ||
pmichaud | moritz: looking. | 20:27 | |
moritz | the same code works fine for the ::($something) case | 20:35 | |
which matches with the same 'morename' rule | |||
there $_<EXPR> contains a RPA, and $_<EXPR>[0] the PAST | 20:36 | ||
20:38
Vlavv_ joined
20:40
meteorjay left
20:45
meteorjay joined,
spq1 left
20:47
silug_ joined
|
|||
pmichaud | moritz: something is funky wrong here... still looking | 20:47 | |
tadzik | hello zebras | 20:48 | |
20:49
soh_cah_toa joined
|
|||
moritz | pmichaud: I already had the suspicion that some variable is wrongly bound | 20:49 | |
\o tadzik | |||
pmichaud | even $longname looks suspicious. | ||
moritz | pmichaud: the sigil that I see in the place of $_<EXPR> seems to be the one from the optional parameter $sigil | 20:50 | |
pmichaud | well, there are some action methods that restructure the tree. | ||
if I add _dumper($longname) to the code, it thinks that $longname is a simple String scalar also. | 20:51 | ||
20:52
stephanepayrard_ joined,
cognominal_ left
|
|||
moritz | nqp: say("foo"<bar>) | 20:54 | |
p6eval | nqp: OUTPUT«f» | ||
moritz | and that's how $_<EXPR> evaluates to a true value? | ||
pmichaud | that'd be my guess. | ||
nqp: say(nqp::atkey("foo", 'bar')); | |||
p6eval | nqp: OUTPUT«f» | ||
moritz | that's... creepy | 20:55 | |
benabik | That seems wrong. | ||
pmichaud | looks like that's how Parrot implements get_pmc_keyed on String values | ||
20:55
masak joined
|
|||
masak | yaaaaay! oh hai, #perl6! | 20:56 | |
pmichaud | moritz: | ||
moritz | it... numfies 'bar' to 0, and then indexes? | ||
tadzik | :) | ||
moritz | \o tadzik & masak | ||
pmichaud | if $<args> { | ||
$/.CURSOR.panic("Combination of indirect name lookup and call not (yet?) allowed"); | |||
} | |||
$past := self.make_indirect_lookup($<longname>) | |||
oh, wait, nm. | |||
looking. | |||
masak | is this a known bug? | ||
rakudo: class C { has %!p; submethod BUILD(:%!p) {} }; C.new; say "alive" | |||
p6eval | rakudo 922500: OUTPUT«Null PMC access in invoke() in '!STORE' at line 5410:src/gen/core.pm in '!STORE' at line 5429:src/gen/core.pm in 'C::BUILD' at line 1:src/gen/core.pm in 'C::BUILD' at line 22:/tmp/CVMTCrCvdK in main program body at line 22:/tmp/CVMTCrCvdK» | 20:57 | |
20:57
Mowah left
|
|||
moritz | nom: class C { has %!p; submethod BUILD(:%!p) {} }; C.new; say 'alive' | 20:57 | |
sorear | o/ masak | ||
p6eval | nom: OUTPUT«alive» | ||
20:57
bs338 left,
bs338 joined
|
|||
pmichaud | moritz: the problem is likely that "is_indirect_lookup" | 20:58 | |
is returning true even when $<longname> isn't an indirect lookup | |||
moritz | pmichaud: Actions.pm has 'method name($/) { }' -- what does that do? | ||
pmichaud | it's the action method for the 'name' token, I suspect. | ||
masak submits rakudobug | |||
pmichaud | it probably had some content that jnthn++ later removed (but didn't remove the method) | 20:59 | |
moritz | but what does an empty action method do? nothing? | ||
masak | it tells a zen koan. | ||
moritz | pmichaud: I don't believe it's a false positive in is_indirect_lookup -- when I had those, setting compilation failed pretty early | ||
pmichaud: and that bug is only triggered when I actually do a $::(...) style named lookup | |||
21:01
cognominal_ joined
|
|||
masak | rakudo: class C { has $!p; submethod BUILD(:$!p) {} }; C.new; say "alive" | 21:03 | |
p6eval | rakudo 922500: OUTPUT«alive» | ||
masak | rakudo: class C { has @!p; submethod BUILD(:@!p) {} }; C.new; say "alive" | ||
p6eval | rakudo 922500: OUTPUT«alive» | ||
21:04
stephanepayrard_ left
|
|||
masak | rakudo: class C { has &!p; submethod BUILD(:&!p) {} }; C.new; say "alive" | 21:04 | |
p6eval | rakudo 922500: OUTPUT«alive» | ||
masak | :) | ||
21:06
timbunce left,
markus_ joined
|
|||
masak | moritz++ # BJ release | 21:07 | |
21:07
mj41_nb left
|
|||
moritz | anyway, bed time for me | 21:07 | |
& | |||
21:07
REPLeffect joined
21:08
desertm4x left,
Mowah joined
21:12
timbunce joined
21:17
Mowah left
21:22
timbunce left
21:25
ZaphrodZenovka left,
ZaphrodZenovka joined
|
|||
pmichaud | moritz: + $past := make_indirect_lookup($<desigilname><longname>, ~$<sigil>); | 21:31 | |
should be | |||
$past := self.make_indirect_lookup($<desigilname><longname>, ~$<sigil>); | 21:32 | ||
(missing invocant) | |||
21:32
benabik left
|
|||
pmichaud | phenny: tell moritz see irclog.perlgeek.de/perl6/2011-07-21#i_4149417 | 21:32 | |
phenny | pmichaud: I'll pass that on when moritz is around. | ||
21:41
cognominal_ left
21:42
cognominal joined
21:43
Psyche^ joined,
Patterner left,
Psyche^ is now known as Patterner
21:48
whiteknight joined
21:51
ymasory joined
|
|||
cooper | IO::Socket::IP supports IPv6 for listening, or am i wrong? | 21:55 | |
wrong channel, #perl and #perl6 are too similar | 21:57 | ||
21:57
s1n joined
21:59
masak` joined
22:00
masak left
22:17
markus_ left
22:24
masak` is now known as masak
|
|||
masak | ok, we're having a bit of a craze/mini-project here. | 22:25 | |
when I was in a museum, I accidentally a game from the 1940s. | |||
and tadzik and I are writing an implementation each of it. :) | |||
tadzik | we can play it at the YAPC :) | ||
masak | I'm thinking it might make a good RC article. | ||
yes :) | 22:26 | ||
easily a lightning talk as well. :) | |||
tadzik | troo | ||
masak | it's amazing how consistent the game is wrt race conditions and the like. | ||
tadzik | it was designed by a mathematician | ||
masak | oh, that explains a lot. | 22:27 | |
anyway, we're having fun implementing it. | |||
I'm trying to fit an implementation inside 100 LoC :) | |||
if there's any interest, I might throw the rules up as a gist... | 22:28 | ||
lichtkind | masak: loco | ||
masak | yeah, I guess it's a bit crazy :) | 22:29 | |
phenny: "loco"? | |||
phenny | masak: "crazy" (es to en, translate.google.com) | ||
masak puts together a gist just in case TimToady would want to tackle the problem :) | 22:37 | ||
22:39
drbean joined
22:51
Limbic_Region joined
22:52
alester left
22:56
ymasory left
|
|||
masak | rules of the game: gist.github.com/1098446 | 23:05 | |
(it's kinda strategic and fun to play, too) :) | 23:06 | ||
sorear | masak: does it have to be TimToady? | 23:10 | |
masak | not at all. | 23:11 | |
but he seems to be the one doing RC problems the most :) | |||
sorear | I need one quesiton answered. What should I call it? | ||
oh | |||
masak | "Little Animal Farm", perhaps? | ||
sorear notices gist title | |||
masak | or the polish title, since it's the original. I dunno. | 23:12 | |
sorear | see, yesterday, I thought you were talking about a game based on _Animal Farm_ | ||
masak | there seems to be no relation. | ||
this game would've come before the book. | |||
it's from the 40s. | |||
anyway, anyone is welcome to (1) create the RC article for it, using the gist as a description, and (2) implement the game in any language. :) | 23:13 | ||
I'm "almost" done with my Perl 6 implementation. | |||
just need to get the bargaining right. | |||
'night, #perl6. | |||
23:13
masak left
|
|||
diakopter | boardgamegeek.com/boardgame/17557/super-farmer apparently | 23:14 | |
tadzik | yeah, that's the remake | 23:15 | |
g'night too | 23:16 | ||
diakopter | matematykanety.blox.pl/2010/04/20-m...stein.html | 23:17 | |
23:29
orafu left,
OuLouFu joined,
OuLouFu is now known as orafu
23:30
tokuhir__ joined
23:35
tokuhir__ left,
tokuhir__ joined
23:36
CBro2007 left
|
|||
lichtkind | masak++ | 23:38 | |
sjohnson | diakopter: jQuery is like a breath of fresh air | 23:48 | |
23:53
benabik joined
23:54
whiteknight left
|
|||
diakopter | sjohnson: re: what? | 23:55 | |
sjohnson | you now what jquery is correct? | ||
diakopter | yes | ||
sjohnson | well, it's a breath of fresh air | ||
are you asking in what way? | 23:56 | ||
diakopter | I read you correctly the first time :) | ||
sjohnson | i just did the ajax request code | ||
diakopter | re: is short for regarding | ||
sjohnson | it was like 5 lines, vs something huge and ugly like 40+ lines | ||
oh | |||
oopsies | |||
fixed this weird IE8 issue too | |||
i'm quite impressed with it | |||
diakopter | anyway, I was asking why you mentioned it, and why to me, specifically :) | 23:57 | |
sjohnson | oh, i thought you were the javascript enthusiast here | ||
was curious to hear if you had any opinions on it (in general) | |||
diakopter | years ago | 23:58 | |
sjohnson | oic | ||
diakopter | yep, jquery is quite useful and very widely used | ||
more sites use it than use flash, I read somewhere | 23:59 |