Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-07-21

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo