Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-02-29

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:10 ribayr joined #perl6
00:11 [Coke] jnthn++
00:21 jnthn Also, I blug: http://6guts.wordpress.com/2012/02/29/rakudo​-star-2012-02-out-and-the-focus-for-2012-03/
00:22 wolfman2000 joined #perl6
00:28 jnthn On-site $dayjob tomorrow, but got another full day of Perl 6 fun on Thursday, all being well. :)
00:29 att joined #perl6
00:32 jnthn sleep &
00:41 samlh joined #perl6
00:42 havenn joined #perl6
00:54 tokuhirom joined #perl6
00:54 snearch joined #perl6
00:56 sisar joined #perl6
01:08 scott___ joined #perl6
01:12 replore_ joined #perl6
01:16 woosley joined #perl6
01:21 havenn joined #perl6
01:24 sorear Fff.  I missed Araq. ;|
01:26 TimToady they will be back
01:27 [Coke] <charlie brown>I got Araq</charlie>
01:32 sorear masak++ # noting the nieczabugs so I don't have to
01:34 nsnake joined #perl6
01:36 TimToady wow, he already got the last two I mentioned... masak++
01:38 libreofficer joined #perl6
01:42 a2n joined #perl6
01:42 a2n left #perl6
01:44 fsergot joined #perl6
01:44 [Coke] feather slow. wonder if it's au.
01:47 [Coke] phenny, tell Juerd feather1 is really slow right now and it's not me!
01:47 phenny [Coke]: I'll pass that on when Juerd is around.
01:48 [Coke] ooh, maybe it is.
01:48 [Coke] phenny, tell Juerd it was a rogue pugs process, mevermind.
01:48 phenny [Coke]: I'll pass that on when Juerd is around.
01:51 Teratogen nom: 1+1
01:51 p6eval nom e95935:  ( no output )
01:51 Teratogen nom: say 1+1
01:51 p6eval nom e95935: OUTPUT«2␤»
01:51 Teratogen IT WORKS!
01:52 Teratogen SHIP IT!
01:53 geekosaur works for linux...
01:54 sorear strike 1...
01:57 benabik joined #perl6
02:07 TimToady .oO("How many times must I forgive my brother?  Seven times?")
02:09 TimToady decommuting &
02:14 dalek roast: 74401fd | coke++ | S0 (3 files):
02:14 dalek roast: pugs fudge
02:14 dalek roast: review: https://github.com/perl6/roast/commit/74401fddc7
02:14 dalek Pugs.hs: 7fb69dc | coke++ | t/spectest.data:
02:14 dalek Pugs.hs: run fudged tests
02:14 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/7fb69dc176
02:15 wolfman2000 joined #perl6
02:25 xinming joined #perl6
02:30 stepnem joined #perl6
02:37 colomon joined #perl6
02:38 colomon o/
02:39 sorear o/
02:42 samlh joined #perl6
03:01 skids joined #perl6
03:02 sorear samlh: hi
03:06 colomon samlh: any luck?
03:15 [Coke] # 02/28/2012 - niecza++ ; pugs (29.38%); rakudo (99.27%)
03:15 [Coke] "niecza",     20302,     8,   751,  1539, 22600, 23752
03:15 [Coke] "pugs"  ,      5965,     6,  2750,   698,  9418, 23561
03:15 [Coke] "rakudo",     20154,    28,   605,  1864, 22651, 23762
03:18 bbkr joined #perl6
03:18 orafu joined #perl6
03:25 [Coke] b: say 20302*.3-5965
03:25 p6eval b 1b7dd1: OUTPUT«125.6␤»
03:25 [Coke] b: say 20302*.3333-5965
03:25 p6eval b 1b7dd1: OUTPUT«801.6566␤»
03:26 benabik [Coke]: Any particular reason you use b for math?
03:27 [Coke] benabik: shortest compiler name.
03:27 benabik [Coke]: That's a good one.  :-D
03:27 benabik (Also thought of that shortly after I hit enter. :-)
03:45 am0c joined #perl6
03:55 sudokode joined #perl6
04:11 Timbus joined #perl6
04:47 alc joined #perl6
04:58 sudokode joined #perl6
05:03 drbean_ joined #perl6
05:27 localhost joined #perl6
05:39 scott__ joined #perl6
05:57 mucker joined #perl6
05:58 localhost joined #perl6
06:04 s1n joined #perl6
06:11 birdwindupbird joined #perl6
06:23 replore joined #perl6
06:25 moritz o/
06:33 dalek rakudo/nom: 7a58a0d | moritz++ | docs/ChangeLog:
06:33 dalek rakudo/nom: update ChangeLog
06:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7a58a0de2b
06:39 sorear /o
06:54 takesako joined #perl6
07:00 noam joined #perl6
07:04 kaleem joined #perl6
07:08 wtw joined #perl6
07:22 am0c joined #perl6
08:04 havenn joined #perl6
08:32 mucker joined #perl6
08:39 noam joined #perl6
08:45 snearch joined #perl6
08:47 jnthn morning o/
08:48 jnthn wow, short backlog
08:48 mikec good morning
08:55 sorear o/ jnthn
08:55 sorear good morning and welcome, mikec
08:57 moritz jnthn++ # bs branch
08:57 moritz the startup time improvement is really impressive
08:58 moritz and most spectest failures seem to be that code objects come out as the wrong type (Captureproxy)
09:03 moritz and memory usage during compiling the setting is also impressively low
09:05 moritz (now in the order of 1GB, used to be 1.8GB)
09:07 jnthn Yeah, something is certainly adrift with those
09:07 jnthn Gotta madly hack up $dayjob code for much of today, but will see if I can fathom what's going on with it this evening.
09:09 replore__ joined #perl6
09:10 replore__ joined #perl6
09:10 mj41 joined #perl6
09:13 sisar joined #perl6
09:14 sorear o/ sisar
09:14 ab5tract joined #perl6
09:16 jnthn moritz: ooc, does compiling the setting take less time also?
09:16 moritz jnthn: haven't checked yet
09:16 moritz but will do
09:27 woosley left #perl6
09:48 jlaire perl6: say so any(2,3,4) * any(5,6,7) == 14
09:48 p6eval pugs b927740: OUTPUT«*** No such subroutine: "&so"␤    at /tmp/tfroxOngXZ line 1, column 5 - line 2, column 1␤»
09:48 p6eval ..rakudo 7a58a0, niecza v15-2-gd19c478: OUTPUT«True␤»
09:48 jlaire is there a way to know which choices resulted in True?
09:49 * jlaire sighs at http://rosettacode.org/wiki/Amb , most solutions either misunderstand amb or ignore it completely, solving the example in an ad-hoc manner
09:50 moritz jlaire: no.
09:50 jlaire moritz: okay, thanks
09:51 moritz (it's not what junctions are meant for)
09:51 jlaire thought so
09:51 jlaire it just would've been a really convenient way to implement amb
09:52 jnthn nom: ((2,3,4) X (5,6,7)).tree ==> grep { .[0] * .[1] == 14 } ==> say
09:52 p6eval nom 7a58a0: OUTPUT«2 7␤»
09:52 jlaire that's not too bad
09:52 jlaire jnthn++
09:52 moritz though I would s/grep/first/
09:53 jnthn nom: ((2,3,4) X (5,6,7)).tree ==> first -> [$a, $b] { $a * $b == 14 } ==> say
09:53 p6eval nom 7a58a0: OUTPUT«2 7␤»
10:00 dakkar joined #perl6
10:07 noam joined #perl6
10:08 moritz a wish for UI designers: if a menu item is grayed out, I'd like to know *why* I can't use it
10:09 Gothmog_ pious hope
10:10 bonsaikitten how about not crashing on unexpected input? :)
10:12 Gothmog_ pious hope
10:12 felher jnthn++ #blog post and hacking :)
10:17 moritz wow, rakudo star release announcement is on the hackernews homepage
10:17 moritz http://news.ycombinator.com/item?id=3647123
10:19 lestrrat joined #perl6
10:20 moritz jnthn: setting build times: 6m28.066s on nom, 3m28.880s on bs
10:20 moritz nom: say (6 * 60 + 28) / (3 * 60 + 8)
10:20 p6eval nom 7a58a0: OUTPUT«2.06382978723404␤»
10:21 moritz \o/
10:21 jnthn moritz: Is that with or without the pir => pbc step?
10:21 moritz jnthn: with
10:21 moritz jnthn: I did a complete build, then   touch src/core/Mu.pm; time make
10:22 moritz and the times are reported from the last step
10:23 jnthn OK. The pir => pbc step is still glacial compared to how it should be.
10:23 jnthn I think I can improve things there
10:23 jnthn But still, nice improvement. :)
10:23 moritz indeed.
10:23 moritz (that was measured on a 64bit system, fwiw)
10:30 noam joined #perl6
10:37 NamelessTee joined #perl6
10:39 birdwind1pbird joined #perl6
10:44 daxim joined #perl6
10:47 noam joined #perl6
11:06 Psyche^ joined #perl6
11:17 grondilu joined #perl6
11:18 grondilu I fixed rmd160 in my crypto module:  http://s0.barwen.ch/~grondilu/Crypto.pm6
11:26 noam joined #perl6
11:33 Trashlord joined #perl6
12:07 itz joined #perl6
12:28 cognominal perl6: my @a = { :a }; say @a.perl; my %b = :b; @a.push: %b; say @a.perl
12:28 p6eval rakudo 7a58a0: OUTPUT«Array.new({"a" => Bool::True})␤Array.new({"a" => Bool::True}, "b" => Bool::True)␤»
12:28 p6eval ..pugs b927740: OUTPUT«[{("a" => Bool::True),},]␤[{("a" => Bool::True),}, ("b" => Bool::True)]␤»
12:28 p6eval ..niecza v15-2-gd19c478: OUTPUT«[{"a" => Bool::True}].list␤[{"a" => Bool::True}, "b" => Bool::True].list␤»
12:30 cognominal I probably don't understand context, I would not expect %b to be flattened.
12:30 benabik joined #perl6
12:32 au it's not flattened...
12:32 au perl6: my @a = { :a }; my %b = :b; @a.push: %b; say @a[1].WHAT.perl
12:32 p6eval pugs b927740: OUTPUT«::Pair␤»
12:32 p6eval ..rakudo 7a58a0, niecza v15-2-gd19c478: OUTPUT«Pair␤»
12:39 moritz nom: my @a = :a; my %b = :b; @a.push: %b.item; say @a.perl
12:39 p6eval nom 7a58a0: OUTPUT«Array.new("a" => Bool::True, {"b" => Bool::True})␤»
12:39 moritz nom: my @a = :a; my %b = :b; @a.push: %b; say @a.perl
12:39 p6eval nom 7a58a0: OUTPUT«Array.new("a" => Bool::True, "b" => Bool::True)␤»
12:39 moritz cognominal: % generally flattens, just like @
12:41 cognominal yes, I just thought that list context was more different from Perl 5. wrong expectations.
12:41 cognominal strange that it did not bit me long ago.
12:42 noam joined #perl6
12:42 moritz the difference is that  @a[0] = %some-hash  does something sensible
12:42 cognominal nom:  my @a = :a; my @b = :b; my @c = (item  @a, item @b ); say @c.perl
12:42 p6eval nom 7a58a0: OUTPUT«Array.new(["a" => Bool::True, "b" => Bool::True])␤»
12:43 cognominal I should read the specs because I got my expections all wrong.
12:45 tokuhirom joined #perl6
12:45 moritz well, it's also a precedence thing
12:45 moritz my @a = :a; my @b = :b; my @c = (item @a), (item @b); say @c.perl
12:46 moritz nom: my @a = :a; my @b = :b; my @c = (item @a), (item @b); say @c.perl
12:46 p6eval nom 7a58a0: OUTPUT«Array.new("a" => Bool::True, "b" => Bool::True)␤»
12:46 moritz that surprises me though
12:46 moritz nom: my @a = :a; my @b = :b; my @c = @a.item, @b.item; say @c.perl
12:46 p6eval nom 7a58a0: OUTPUT«Array.new(["a" => Bool::True], ["b" => Bool::True])␤»
12:46 moritz that's what I would have expected
12:53 cognominal nom:  my @a = :a; my @b = :b; my @c = ( $(@a), $(@b) ); say @c.perl
12:53 p6eval nom 7a58a0: OUTPUT«Array.new(["a" => Bool::True], ["b" => Bool::True])␤»
12:53 cognominal nom:  my @a = :a; my @b = :b; my @c = ( $@a, $@b ); say @c.perl
12:53 p6eval nom 7a58a0: OUTPUT«===SORRY!===␤Invalid hard reference syntax at line 1, near "@a, $@b );"␤»
12:53 moritz that's supposed to work, but NYI
12:56 cognominal so if it will be just a question of one char, meaning $@a, instead of @a, I am can live with that flattening.
12:57 cognominal I just did not expect it to be the default.
12:58 moritz I think it would be an interesting experiment to get rid of default flattening alltogether
12:59 cognominal this will certainly surprise the perl 5 crowd :)
12:59 tarch joined #perl6
13:00 cognominal but somehow I feel it is a fossil behavior from perl 5.
13:01 Trashlord joined #perl6
13:02 cognominal wrong metaphor, because fossils don't "behave".
13:06 grondilu joined #perl6
13:06 grondilu I have difficulties to understand the 'Buf' type.  For instance, is it a scalar or an array?
13:07 grondilu are there examples of Buf uses somewhere?
13:07 moritz grondilu: it's both
13:08 moritz grondilu: it's a binary string, which can be also used as an array of byte numbers
13:08 grondilu So it is what I need (an array of bytes), but I don't understand how to use it :(
13:08 moritz grondilu: and there are examples of Buf in action in the 2011 advent calendar posts
13:09 * grondilu googles "perl6 2011 advent"
13:09 moritz nom: say Buf.new(65, 68).decode('ASCII')
13:09 p6eval nom 7a58a0: OUTPUT«AD␤»
13:09 moritz nom: say Buf.new(65, 68)[0]
13:10 p6eval nom 7a58a0: OUTPUT«65␤»
13:10 grondilu cool, looks like this is exactly what I need.  Thanks
13:10 moritz nom: say $*IN.read(10)
13:10 p6eval nom 7a58a0: OUTPUT«Buf:0x<4c 61 6e 64 20 64 65 72 20 42>␤»
13:10 jnthn nom: say Buf.new(255, 68).decode('utf-8')
13:10 p6eval nom 7a58a0: OUTPUT«Malformed UTF-8 string␤␤  in method decode at src/gen/CORE.setting:6007␤  in block <anon> at /tmp/eoDmb3NuVt:1␤␤»
13:10 jnthn \o/
13:10 araujo joined #perl6
13:11 moritz grondilu: note that bitwise operations on bufs might not be the fastests (currently implemented in the setting)
13:11 moritz grondilu: though it's quite possible to speed them up
13:12 grondilu doesn't matter much if it's slow.  I can wait for it to get faster.
13:12 grondilu this 2011 advent calendar seems cool.  Any way I could download it for offline read ? (I'm not good in using wget)
13:13 * moritz wonders if Buf should have a .subbuf method just like substr
13:13 moritz grondilu: I'm not aware of it. The posts aren't in a common repository or so
13:16 jnthn You'll get stuff if you go to http://perl6advent.wordpress.com/2011/12/25/ for example
13:16 grondilu nom: say buf8.new(42, 42).decode('ASCII') # testing buf8
13:16 jnthn So can just loop 1..25
13:16 p6eval nom 7a58a0: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&buf8' called (line 1)␤»
13:16 moritz grondilu: rakudo's Buf is in effect a Buf8. It just cheats :-)
13:16 benabik nom: my buf8 $test;
13:16 p6eval nom 7a58a0: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/dWsls7qm8e:1␤»
13:18 grondilu So Buf is basically the closest thing from a perl5 binary string, right?
13:18 moritz yes
13:18 grondilu ok
13:19 sisar joined #perl6
13:30 bluescreen10 joined #perl6
13:30 dalek rakudo/nom: 4726db3 | moritz++ | src/core/Buf.pm:
13:30 dalek rakudo/nom: Implement (not-yet-specced) Buf.subbuf; just likst substr, only for buffers
13:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4726db328d
13:32 [Coke] au: does pugs have Cool yet?
13:33 [Coke] au: followup: where's the best place to add coercion methods like .Int, .Num, .Rat, .Str (and helpers like .gist) ?
13:34 simcop2387 joined #perl6
13:39 moritz pugs: Cool
13:39 p6eval pugs b927740: OUTPUT«*** No such subroutine: "&Cool"␤    at /tmp/datBP4h8aQ line 1, column 1 - line 2, column 1␤»
13:39 moritz that's a clear "no"
13:39 benabik perl6: Any.^parents.say
13:39 p6eval pugs b927740: OUTPUT«*** No such method in class Class: "&parents"␤    at /tmp/n_V2B9sATO line 1, column 1 - line 2, column 1␤»
13:39 p6eval ..niecza v15-2-gd19c478: OUTPUT«Unhandled exception: Unable to resolve method parents in class ClassHOW␤  at /tmp/jBSoX31HrI line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3838 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3839 (module-CORE @ 65) ␤  at …
13:39 p6eval ..rakudo 7a58a0: OUTPUT«␤»
13:40 benabik Well, that was more variety than I expected...
13:40 benabik Any's above Cool anyway, isn't it.  :-/
13:40 moritz aye
13:40 moritz nom: say Str.^parents(:tree)
13:40 p6eval nom 7a58a0: OUTPUT«use of uninitialized value of type Cool in string context␤use of uninitialized value of type Any in string context␤use of uninitialized value of type Mu in string context␤  ␤»
13:41 moritz nom: say Str.^parents>>.gist
13:41 p6eval nom 7a58a0: OUTPUT«␤»
13:41 moritz huh
13:41 jnthn It's that think TimToady spec'd where it excludes types above certain levels.
13:41 moritz nom: say .gist for Str.^parents
13:41 p6eval nom 7a58a0:  ( no output )
13:41 moritz nom: say .gist for Str.^parents(:all)
13:41 p6eval nom 7a58a0: OUTPUT«Cool()␤Any()␤Mu()␤»
13:41 jnthn s/think/thing/
13:41 moritz right
13:42 benabik Is parents non-spec, or is it just NYI in niecza?
13:42 jnthn It's spec.
13:42 moritz benabik: niecza doesn't seem to do any introspection
13:43 moritz or not much
13:43 benabik And pugs's metamodel is just behind the times.  I shouldn't go poking at that, I have enough distractions from my thesis already.
13:43 pernatiy joined #perl6
13:45 * benabik clones pugs.hs anyway.
13:50 tarch_ joined #perl6
13:56 [Coke] pugs: say Int
13:56 p6eval pugs b927740: OUTPUT«Int␤»
13:57 [Coke] ah. must have confused that for:
13:57 [Coke] pugs: say 3.Int
13:57 p6eval pugs b927740: OUTPUT«*** No such method in class Int: "&Int"␤    at /tmp/VMfs0FWvGP line 1, column 5 - line 2, column 1␤»
13:57 [Coke] benabik: hey, now that you can run a spectest...
13:58 benabik [Coke]: I'll get to that as soon as the Platform is done installing.  I apparently haven't used GHC on my new(-ish) laptop
13:59 [Coke] yah, first build takes a while. ;)
14:00 benabik Does pugs run non-installed?
14:02 tarch_ joined #perl6
14:02 benabik errrrr.....  I don't think ghc likes Xcode 4.3
14:03 au pugs does run non-installed
14:03 au and ghc 7.4.1 seem to work OK with Xcode 4.3 (skip the platform)
14:04 benabik Ah.  It's just looking for gcc in the wrong place.  Have to edit some files.
14:05 wolverian xcode-select might help.
14:05 benabik wolverian: Nope.  4.3 removed the /Developer directory entirely, which is where ghc is expecting gcc to be.
14:05 wolverian Surely GHC should be looking for it on $PATH?
14:05 benabik That would be nice.
14:09 au [Coke]: re .gist, there's a .guts primop in src/Pugs/Prim.hs +235
14:09 au re coercion, maybe same file line 215
14:09 au op1 "int"  = op1Cast VInt
14:10 au can just be amended with a "Int" clause. (also see same file, +1891 and +1982)
14:11 havenn joined #perl6
14:11 au an alternative might be hacking Pugs.hs/Pugs/src/perl6/Prelude.pm and compile it in.
14:11 au .
14:12 o_ joined #perl6
14:13 wolverian joined #perl6
14:15 havenn joined #perl6
14:17 benabik So it seems that the Pugs.hs contains a variety of packages in it that all need to be installed before working on Pugs itself?
14:21 au benabik: yes, but those are on hackage
14:22 au "cd Pugs.hs/Pugs ; cabal update ; cabal configure ; cabal build" should install the subpackages
14:22 benabik au: From hackage, not the repo?
14:22 au they're exactly the same
14:23 au (only the Pugs/ subdirectory receives changes at the moment -- of course that may change if e.g. MetaObject/ gets hacked on)
14:23 benabik au: I enjoy doing things the hard way.  :-D
14:24 au well then :)
14:24 benabik I find it helps me understand the system better.
14:24 benabik And I had to completely kill and re-install Platform because apparently my cabal was FUBAR.  At least it worked.
14:24 au yay!
14:27 grondilu Is it me or compiling rakudo gets longer and longer with time?  I guess it's a good thing since it means that more features are added, but still...  It's pretty long and uses a LOT of memory.  I'm afraid one of these days I won't be able to compile it (I already need to add about 500Mo swap).
14:28 benabik grondilu: There's an in progress branch that's already dropped memory usage by 40%.
14:28 grondilu good
14:30 * grondilu failed to install panda again  :(
14:31 grondilu Method 'at_key' not found for invocant of class 'Any'
14:31 grondilu in block <anon> at bin/panda:12
14:31 grondilu I actually never managed to install this :/
14:32 o_ grondilu: I am compiling rakudo too (2mins already). How long does it take usually?
14:33 grondilu I don't know exactly, but at least 10 minutes
14:33 benabik Rakudo is a "go get coffee" compile.
14:33 grondilu :)
14:33 o_ thanks. let me wait then :)
14:34 benabik There's a step that says "This may take a while".  It's not lying.  :-D
14:34 grondilu indeed.  Maybe the message should add.  Stop watching this screen and go do something else.
14:35 grondilu :)
14:35 o_ well, it has finished.
14:36 o_ ... creating makefile
14:48 lumi___ I'm having trouble building pugs with GHC 6.12.3, in pugs-compat
14:48 benabik Hm.  Pugs.hs/t/run_spectests appears to expect a Pugs.hs/Pugs/pugs, which cabal build didn't create.
14:48 au benabik: it's created by "make"
14:48 benabik Ah.  The makefile copes it.  Nevermiend.
14:48 au lumi___: nopaste / gist ?
14:49 benabik That's a lot of "Setting locale failed".  :-/
14:49 au yeah, I think it's kinda linux specific
14:50 lumi___ au: https://gist.github.com/1941307
14:50 au (the LC_ALL=en_US.ISO-8859-1 part, that is)
14:53 dalek Pugs.hs: 6f0ee57 | au++ | pugs-compat/ (2 files):
14:53 dalek Pugs.hs: * Compatibility with modern versions of stm package; lumi++
14:53 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/6f0ee571fd
14:54 au lumi___: try "cabal update ; cabal install"
14:54 benabik [Coke]: Spectest running. :-)
14:55 au (or "cd ../pugs-compat ; cabal install" and resume back in ../Pugs)
14:55 havenn joined #perl6
14:55 mikemol joined #perl6
14:59 whiteknight joined #perl6
15:00 lumi___ au: Still broken, same thing again in Compat.hs
15:01 au hmm. did you install from the "git pull"'d repo or from "cabal update"'d hackage?
15:02 itz joined #perl6
15:02 lumi___ au: Sorry, I misexplained. That fixed Pugs.Compat.Monads, but Pugs.Compat also imports STM so it has the same collision
15:02 au aha
15:02 samlh joined #perl6
15:04 skids joined #perl6
15:04 au lumi___: try the repo version again?
15:04 dalek Pugs.hs: c32e970 | au++ | pugs-compat/src/Pugs/Compat.hs:
15:04 dalek Pugs.hs: * Fix conflict import in Pugs.Compat too; lumi++
15:04 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/c32e970f99
15:06 au (re-uploaded to hackage too)
15:11 dalek Pugs.hs: b5e9ef8 | au++ | pugs-compat/pugs-compat.cabal:
15:11 dalek Pugs.hs: * Release to hackage again
15:11 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/b5e9ef8ef5
15:23 lumi___ au: pugs-compat passes, Pugs fails: https://gist.github.com/1941307
15:24 lumi___ So I fixed that by adding TMVar to the imports in Compat, but then I get something else
15:25 lumi___ au: https://gist.github.com/1941577
15:26 benabik [Coke]: https://gist.github.com/1941582
15:26 au lumi___: ok, try limiting imports from Pugs.AST.SIO
15:26 au src/Pugs/AST/SIO.hs
15:26 tadzik nqp/bs doesn't build on bleed parrot, right?
15:27 au something like "import Control.Concurrent.STM (STM, liftSTM)" and add as needed
15:28 kaare_ joined #perl6
15:32 jnthn tadzik: Right. I'll rectify that shortly though.
15:32 tadzik oh, cool
15:32 jnthn (this evening, or tomorrow at latest)
15:32 moritz the patch should be similarlish to rakudo's commit 7cb10870622f65244502c351a2f0b005c7a23a70
15:33 benabik Cherry-picking that commit might be enough.
15:33 moritz no
15:33 tadzik different repo, different file :)
15:33 jnthn Right :)
15:33 jnthn But given the code I have looks identical to the updated code there...
15:33 benabik Oh, it needs to be done in nqp/bs, rather than rakudo/bs?
15:33 o_ joined #perl6
15:34 moritz benabik: correct
15:37 [Coke] benabik: I get 6 known failures, no passing todos. e.g.: t/spec/integration/99problems-01-to-10.t -  you show that 18 was a TODO pass, but I get:
15:37 lumi___ au: Yay passes! I'll try to commit
15:37 [Coke] not ok 18 - ... even with multi subs # TODO fix by Christmas
15:37 [Coke] #   Failed (TODO fix by Christmas) test (t/spec/integration/99problems-01-to-10.pugs line 149, column 13-73)
15:37 [Coke] #   Expected: 'a b c a d e'
15:37 [Coke] #     Actual: 'a a a a b c c a a d e e e e'
15:38 au lumi++ yay!
15:38 [Coke] (that's with b5e9ef8ef58b22c84c0c86cbb114e311fcd130ec of Pugs.hs and 74401fddc70c81f7a79f11269e2d7f35d216b282 of roast)
15:39 dalek Pugs.hs: 3ec95ac | (Zohar Kelrich)++ | / (2 files):
15:39 dalek Pugs.hs: Fix import conflicts from modern stm
15:39 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/3ec95ac9d3
15:39 benabik [Coke]: I have 7fb69dc1760f1bc20c6b5eed97a59774b5cc588b and 74401fddc70c81f7a79f11269e2d7f35d216b282
15:41 dalek Pugs.hs: 57bc5e9 | au++ | pugs-compat/pugs-compat.cabal:
15:41 dalek Pugs.hs: * Release to hackage again
15:41 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/57bc5e9023
15:41 [Coke] looks like that just misses some changes from au today.
15:42 [Coke] weird.
15:42 benabik [Coke]: Hmmmmm....  Trying to run it by hand gets me the wrong output.
15:42 [Coke] I presume differences in GHC or platform.
15:42 [Coke] benabik: how are you trying to run it by hand?
15:42 [Coke] you need "t/fudgeandrun S05-mass/rx.t", e.g. (with or without the t/spec)
15:42 benabik [Coke]: Oops, forgot to flatten the array.
15:42 [Coke] because the .t file may not be runnable directly.
15:43 [Coke] I typically do "prove -v -e t/fudgeandrun <spectest>"
15:43 benabik [Coke]: I was trying to run the test by typing it into pugs myself.
15:44 benabik So I could see the output.
15:44 [Coke] ah.
15:44 Psyche^ joined #perl6
15:45 benabik I'm running on 7.0.4 on OS X 10.7.3.
15:45 fsergot o/
15:45 marmalade joined #perl6
15:45 tadzik https://gist.github.com/1941829 works for me and passes tests
15:46 tadzik not sure how correct it is, though :)
15:46 tadzik hello fsergot
15:47 [Coke] benabik: I'm on 7.4.1 on mumblelinux.
15:47 tokuhirom3 joined #perl6
15:48 benabik [Coke]: I guess multis got broken somewhere between 7.0.4 and 7.4.1?
15:48 [Coke] https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=111426 looks apply-able.
15:48 thou joined #perl6
15:48 moritz is that the only newly broken test?
15:48 [Coke] benabik: I have no clue. I just started fudging the spectest for pugs a few weeks ago.
15:49 ab5tract joined #perl6
15:50 moritz [Coke]: applying...
15:50 dalek nqp: 7e65c6f | (Mike Small)++ | Configure.pl:
15:50 dalek nqp: Fix build problem in NetBSD. NetBSD's make doesn't look for BSDmakefile. Dyncall manual says to build with -f BSDmakefile. OpenBSD and FreeBSD should be fine as is, since their makes do look for BSDmakefile.
15:50 dalek nqp:
15:50 dalek nqp: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
15:50 dalek nqp: review: https://github.com/perl6/nqp/commit/7e65c6f2db
15:52 colomon so, has someone reserved a Raspberry Pi to test p6 on it?  ;)
15:53 moritz I've decided to wait until the huge rush is over
15:54 benabik Are they shipping outside the UL?
15:54 colomon I haven't officially decided that, but I'm planning on being lazy about trying to order, which probably amounts to the same thing.  :)
15:54 benabik *UK
15:55 moritz benabik: the homepage praises their partners international distribution network
15:56 benabik moritz: Awesome.  I had heard the initial releases would be UK-only.
16:07 Kharec joined #perl6
16:07 Kharec left #perl6
16:14 icwiener joined #perl6
16:24 moritz nom: say given Date.toay { when .month == 2 && .day == 29 {'Happy leap day' }; default { 'such a boring date' } }
16:24 p6eval nom 4726db: OUTPUT«===SORRY!===␤Confused␤at /tmp/ZDZIu9Dvzi:1␤»
16:25 tadzik toay->today
16:25 moritz nom: say do { given Date.toay { when .month == 2 && .day == 29 {'Happy leap day' }; default { 'such a boring date' } } }
16:25 p6eval nom 4726db: OUTPUT«Method 'toay' not found for invocant of class 'Date'␤  in block <anon> at /tmp/OVkoR14w_V:1␤␤»
16:25 noam joined #perl6
16:25 moritz nom: say do { given Date.today { when .month == 2 && .day == 29 {'Happy leap day' }; default { 'such a boring date' } } }
16:25 p6eval nom 4726db: OUTPUT«Happy leap day␤»
16:25 tadzik oh, it's a leap day!
16:27 moritz aye
16:29 cognominal that's the birthday of Sapeur Camember, a antihero of a French comic created around 1890   http://aulas.pierre.free.fr/chr_cam_pro.html
16:30 moritz it was my projected birth day, and I only missed it by 3 days :-)
16:31 TimToady perl6: multi dethunk(&x) { x() }; multi dethunk($x) { $x }; say dethunk 'foo'; say dethunk {'bar'}
16:31 p6eval pugs b927740, rakudo 4726db: OUTPUT«foo␤bar␤»
16:31 p6eval ..niecza v15-2-gd19c478: OUTPUT«foo␤Unhandled exception: Ambiguous dispatch for &dethunk; matched candidates are:␤    Any␤    Any␤  at /tmp/gT2NTXPOJs line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3838 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3839…
16:31 TimToady nieczabug: ^^ doesn't treat & as Callable type
16:32 jnthn what dethunk? :)
16:32 tadzik ;)
16:36 att joined #perl6
16:41 havenn joined #perl6
16:59 jnthn #phasers in 30? If we still phase... :)
17:00 snearch joined #perl6
17:04 TimToady jlaire: I've improved the P6 amb solution somewhat to actually evaluate in unspecified order
17:06 MayDaniel joined #perl6
17:06 TimToady unfortunately it uses hyper, which is not really parallel yet in niecza
17:06 TimToady and not guaranteed to be parallel in any case
17:07 TimToady so I can't handle thunks that do {sleep 1000000}, only thunks that die
17:08 TimToady also, hyper guarantees the returned order, so maybe any(@x).&dethunk would be better
17:08 TimToady (not that any guaruntees parallelism either)
17:09 TimToady I guess we're missing a primitive
17:10 jlaire TimToady: interesting
17:10 jlaire my mini-rant wasn't specifically about the Perl 6 code
17:10 TimToady maybe a hyper in sink context should guarantee parallel
17:11 TimToady I know, but I figgered I could do better than just doing backtracking with lazy lists
17:11 TimToady (and gather does supply a sink context)
17:12 moritz TimToady: I'd prefer it if 'hyper' didn't guarantuee parallelism
17:12 TimToady not even in sink context?
17:13 moritz right
17:13 TimToady or maybe we're missing a context
17:13 TimToady maybe async is really a context
17:14 TimToady and application to a non-hyper, non-junction is just a degenerate case
17:14 TimToady I note that any(@x).&dethunk also works in niecza++
17:15 jnthn It doesn't in nom?
17:15 jnthn Or just not tried it?
17:15 TimToady nom is getting a weird error that I can't figure out how to get rid of
17:15 samlh joined #perl6
17:15 TimToady I thought it was the next out of the X, but maybe not
17:15 jnthn nom: any(1,-2,3,-4).abs
17:15 p6eval nom 4726db:  ( no output )
17:15 jnthn nom: any(1,-2,3,-4).&abs
17:15 p6eval nom 4726db: OUTPUT«===SORRY!===␤Symbol '&abs' not predeclared in <anonymous> (/tmp/MeVuG6dFrd:1)␤»
17:16 jnthn nom: sub abs($x) { $x.abs }; say any(1,-2,3,-4).&abs
17:16 p6eval nom 4726db: OUTPUT«any(1, 2, 3, 4)␤»
17:16 benabik nom: say &abs
17:16 TimToady nom: say any(1,-2,3,-4).&prefix:<abs>
17:16 p6eval nom 4726db: OUTPUT«===SORRY!===␤Symbol '&abs' not predeclared in <anonymous> (/tmp/g3cTO18s6F:1)␤»
17:16 p6eval nom 4726db: OUTPUT«any(1, 2, 3, 4)␤»
17:17 TimToady it's a prefix, not a sub
17:17 TimToady well, it's a prefix sub :)
17:17 jnthn aha
17:18 jnthn So Rakudo doesn't need to work on its abs after all :)
17:19 PacoAir joined #perl6
17:19 TimToady ₐᵣ
17:22 TimToady or how 'bout a junctional thing like each() but specifically unordered parallel dispatch
17:23 TimToady call it race(@x) or some such
17:23 TimToady hmm, I wonder how that could work...
17:24 TimToady probably more general to make it a context like eager and hyper
17:25 TimToady my @x = race for @x { stuff() }
17:25 TimToady then @x shows up in order of stuff() finishing
17:25 TimToady I think I really like that
17:25 jnthn It doesn't promise the order that things will come back?
17:25 TimToady and it's a lazy list in order of finish, so something that never terminates just never adds itself
17:26 jnthn *nod*
17:26 TimToady no, it doesn't
17:26 jnthn Cute :)
17:26 TimToady that's what hyper does
17:26 TimToady and hyper only *allows* parallelism
17:26 TimToady oh, s:1st/@x/@result/ above
17:26 jnthn fwiw, in Parallel Linq in .Net land they do that by default, and you have to explicitly ask for ordering.
17:27 TimToady I think that's the wrong default for mere mortals
17:27 TimToady one could have a 'use race;' of course
17:28 TimToady someone should make the 'racist' joke once, and then we'll just not make that joke anymore...
17:28 jnthn TimToady: Well, it's not the default default. It's the default after you've said .AsParallel() on the iterator in order to opt in to parallel processing.
17:29 jnthn It's not black and white whether anyone would ever make such a joke...
17:29 TimToady well, AsParallel() is a mouthful
17:29 jnthn Of course. Welcome to C#. ;-)
17:29 jnthn (I like it generally, but yeah, it gets wordy.)
17:29 TimToady can I go home now?
17:29 jnthn :)
17:29 jnthn We has just about done his C# for the day and can get back to Perl 6 soon. :)
17:30 TimToady Refrigerator Cat has purz
17:32 jnthn tadzik: Thanks for the patch for bs on bleed Parrot...just trying it out now
17:34 packetknife joined #perl6
17:40 icwiener joined #perl6
17:42 fglock joined #perl6
17:46 dalek nqp/bs: 7e65c6f | (Mike Small)++ | Configure.pl:
17:46 dalek nqp/bs: Fix build problem in NetBSD. NetBSD's make doesn't look for BSDmakefile. Dyncall manual says to build with -f BSDmakefile. OpenBSD and FreeBSD should be fine as is, since their makes do look for BSDmakefile.
17:46 dalek nqp/bs:
17:46 dalek nqp/bs: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
17:46 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/7e65c6f2db
17:46 dalek nqp/bs: 9ff82b3 | jnthn++ | / (36 files):
17:46 dalek nqp/bs: Merge branch 'master' into bs
17:46 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/9ff82b38d8
17:46 dalek nqp/bs: 00c5509 | jnthn++ | src/6model/serialization.c:
17:46 dalek nqp/bs: Patch from tadzik++ to get bs building on bleed Parrot.
17:46 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/00c55099ae
17:47 dalek rakudo/bs: 7a58a0d | moritz++ | docs/ChangeLog:
17:47 dalek rakudo/bs: update ChangeLog
17:47 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/7a58a0de2b
17:47 dalek rakudo/bs: 4726db3 | moritz++ | src/core/Buf.pm:
17:47 dalek rakudo/bs: Implement (not-yet-specced) Buf.subbuf; just likst substr, only for buffers
17:47 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/4726db328d
17:47 dalek rakudo/bs: c077570 | jnthn++ | / (20 files):
17:47 dalek rakudo/bs: Merge branch 'nom' into bs
17:47 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/c07757095c
17:47 dalek rakudo/bs: 136ef41 | jnthn++ | tools/build/NQP_REVISION:
17:47 dalek rakudo/bs: Update NQP_REVISION to one in the NQP bs branch, to ease trying out the bs branch a bit.
17:47 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/136ef41cbd
17:48 dalek specs: 50885ef | larry++ | S02-bits.pod:
17:48 dalek specs: beyond 'hyper' we now have 'race'
17:48 dalek specs: review: https://github.com/perl6/specs/commit/50885ef9b2
17:48 colomon oh noez!~
17:50 TimToady we had nothing like hyper that would guarantee parallel execution without caring about order of results
17:50 TimToady there's no metaop for it, only the contextualizer
17:51 TimToady it's not clear whether .hyper or .race can work either; they'd have to "speak" to the upstream iterator
17:52 TimToady but 'race' is for intentionally installing race conditions :)
17:52 colomon So.... how would you use it?
17:53 colomon @results = race @data>>.mutilate   ?
17:53 icwiener joined #perl6
17:53 colomon and @results[0] is the first result done, no matter which part of @data it comes from?
17:53 TimToady that's one way; I'd use it in http://rosettacode.org/wiki/Amb#Perl_6 to allow some computations to hang
17:54 TimToady race any(@data).mutilate would presumably have the same effect
17:54 TimToady race for @data { .mutilate }
17:55 colomon wouldn't that return a junction? #  any(@data).mutilate
17:55 mikemol TimToady: "guarantee" or "explicitly allow"?
17:55 jnthn I'm dubious about race @data>>.mutilate because >>. immediately does its work since hypers are not lazy
17:55 jnthn I can see how race for @data { ... } is gonna work
17:55 TimToady we already have "explicitly allow" in hyper
17:56 TimToady and it's not enough to do what amb wants
17:56 mikemol So what would 'race' do in a circumstance where the operating virtual machine can't run two code paths in parallel?
17:56 TimToady install a scheduler?
17:57 TimToady most of the modern Erlang/Go-ish things can handle green threads for this sort of thing
17:58 TimToady Go in particular knows when any of its green threads are going to block, I believe, and goes back to the scheduler
17:59 * mikemol does not like RC's description of Amb.
17:59 TimToady no, but the Discussion page is pretty clear on the intent, taken as a whole
17:59 autark joined #perl6
18:00 moritz wow, somebody actually reads those?
18:00 * moritz amazed
18:00 mikemol Haha...In 2008, I raised a similar concern to the one I was about to raise. "http://rosettacode.org/wiki/Amb#Perl_6"
18:00 TimToady it was enough for me to make the Perl 6 solution handle dying thunks, anyway, even if we can't handle non-termination yet
18:01 mikemol gahg
18:01 samlh joined #perl6
18:01 mikemol "Can we assume, for the purposes of the task, that the pseudo-randomness of "random" numbers available on PCs without external assistance qualify as non-deterministic? --Short Circuit 22:47, 22 March 2008 (MDT)"
18:01 TimToady the literature alluded to seems to want to deal with non-termination
18:02 TimToady a *.pick isn't going to do that
18:02 TimToady it could be a bonus think, of course
18:02 * jnthn dinner &
18:02 TimToady but it alerted me to the fact that P6 is missing a primitive
18:03 TimToady (race might or might not be that missing primitive, but it's close to it)
18:04 TimToady in any case, to implement the user-friendly race in terms of async {} is likel to require collaboration of the iterator guts somehow
18:04 TimToady *ly
18:09 TimToady iterators need a .munch_async or a setting that makes .munch spawn threads, or some such
18:10 TimToady well, just doctoring .munch is not enough, since you need to gather/take the munches in order of finish
18:11 moritz rakudo's List.map doesn't use gather/take at all, iirc
18:13 birdwindupbird joined #perl6
18:13 TimToady the gather/take would be implied by the race; not sayin' there's necessarily one there already
18:14 TimToady but somehow that info has to get into the guts of the iterator(s)
18:16 TimToady it really only needs to spawn threads for anything thunky; values in the list can just be collected and returned first, maybe with .pick(*) to randomize their order
18:18 TimToady but as specced, hypers and junctions are considered implicitly thunky insofar as they can be used to invoke bits of code
18:19 TimToady map is thunky, hence for is also thunky
18:21 TimToady but race probably needs to be a bit macro-y to tell things in its scope to do all that
18:21 TimToady hence it is currently specced only as a contextualizer
18:22 TimToady that is, the AST passed to the 'race' macro might need some fixups to make it work right
18:23 moritz heh. Work for masak++ :-)
18:23 TimToady one could view 'race' as a mini-pragma that changes the interpretation of parallelizable things
18:24 mikemol That's mostly what I was thinking a moment ago.
18:24 TimToady maybe 'hyper' too; though eager can be done just by slurping the list
18:24 * [Coke] suggests go instead of 'race' to mimic do
18:26 * TimToady squints
18:27 * [Coke] wonders if that's a Bones reference! ;)
18:28 * TimToady raises an eyebrow
18:29 glass joined #perl6
18:29 TimToady #phasers is even quieter than last week...
18:31 icwiener joined #perl6
18:53 localhost joined #perl6
19:03 masak #perl6! \o/
19:04 masak well, #phasers being quiet is quite understandable. it's not like we've had any big releases lately...
19:04 masak I can't think of a single one, actually.
19:05 fsergot masak! \o/
19:06 masak today's autopun spotting: http://news.ycombinator.com/item?id=3648001
19:06 fsergot masak: What is #phasers for?
19:12 daxim /set fsergot +stun
19:13 birdwindupbird joined #perl6
19:13 fsergot daxim: :)
19:15 fsergot I just want to know what is the purpose of this channel. :)
19:17 jnthn fsergot: It's mostly an attempt at a weekly Perl 6 implementor's status/discussion meetup.
19:17 jnthn It sometimes works well, though in recent weeks seems to have been a bad fit with everyone's schedule.
19:18 fsergot jnthn++ thank You! :)
19:28 masak jlaire: that's how I felt about http://rosettacode.org/wiki/Amb too when I looked at it.
19:28 masak I only peeked at the Perl 5 and Perl 6 solutions, and neither felt like they had understood the actual cl
19:29 masak s/cl/challenge/
19:29 masak maybe the article simply needs a better explanation, detailing what counts as a proper solution.
19:29 masak here's my take on it:
19:29 masak my $x = amb <2 3 4 5>;
19:29 masak my $y = amb <4 5 6 7>;
19:30 masak assert $x * $y == 14;
19:30 masak # congratulations, you now find yourself in a universe where $x == 2 and $y == 7
19:30 mj41 joined #perl6
19:30 masak this is *exactly* what people (wrongly) expect out of junctions.
19:30 benabik A sort of self-winnowing any?
19:31 masak yes, you could say.
19:31 masak it's a Prologesque backtracking-y thing.
19:33 havenn joined #perl6
19:33 TimToady here's a start on http://rosettacode.org/wiki/Collections#Perl_6
19:34 pernatiy joined #perl6
19:35 TimToady masak: I understood the challenge, but there are different bits of it, and implementing an autothreading type outside of Any was not my top priority
19:35 TimToady and also, Haskell cheated with lazy lists, so why not Perl 6?  :)
19:36 benabik nom: class Amb is Mu {}; say Amb.^parents(:all)
19:36 p6eval nom 4726db: OUTPUT«Mu()␤»
19:36 skids joined #perl6
19:37 masak TimToady: you may have understood the challenge -- I'm not questioning that -- but the Perl 6 code on that page does *not* "Define and give an example of the Amb operator."
19:37 masak which was my point.
19:39 TimToady well, it defines *an* amb operator, and the task just got demoted to Draft for being unclear anyway :P
19:39 TimToady maybe you only looked at the first amb solution I put up, which didn't define an operator
19:40 masak from the talk page: "The important feature of Amb is backtracking via capturing the continuation."
19:40 TimToady which is what lazy lists do, which is what it returns
19:40 au sub amb (*@c) { gather @c».&dethunk } # looks good, actually
19:41 TimToady the problem, noted above, is that hyper requires order on the results, and doesn't actually guarantee threading
19:41 TimToady hence the newly specced 'race' contextualizer
19:41 TimToady the 'turn this iterator into a set of asyncs' contextualizer
19:41 TimToady and return things in any order
19:42 masak maybe I'm too attached to the way the real 'amb' operator actually hides itself, just like backtracking in regexes hides itself.
19:42 TimToady then we can handle non-termination
19:42 masak that, to me is what's nice about it.
19:42 masak so I don't like the Xlf stuff, which just inserts itself everywhere.
19:42 TimToady maybe you are, but that's just an exercize in lazy junctions, once we have the correct primitives
19:42 masak looking forward to that.
19:43 * TimToady doesn't suppose that the current autothreader is lazy
19:44 TimToady it'll need to be for the 'each' pseudojunction as well
19:45 masak moritz: is your birthday in three days?
19:47 masak TimToady: I agree with the talk page about non-determinism being a red herring.
19:47 TimToady I note that ordinary junctions could be based on a race when some of the values are likely to be longer running than others
19:48 masak <TimToady> my @x = race for @x { stuff() }
19:48 masak missing parens?
19:48 TimToady it is kind of a red herring, but it's easy enough to throw a .pick(*) onto the literal values that we know don't need thunking
19:49 TimToady missing do?  missing gather? race is a statement_prefix? ....
19:50 * TimToady is more interested in the semantics than the syntax for the moment
19:52 masak "I've only created Perl 6, not proved it correct" *scnr*
19:53 * TimToady waves tentacles^Whands
19:54 masak here's nothingmuch's post on amb, which I *think* was where I first read about it: http://blog.woobling.org/2009/​08/abstracting-ambiguity.html
19:54 masak nothingmuch++
20:01 TimToady for the record, I'd be fine with an amb junction, it's basically just an unordered, nullable, lazy each variant, in my mind
20:01 TimToady (with threading to handle non-terminators)
20:03 TimToady it would be nice to be able to write sleepsort in terms of race though
20:04 masak TimToady: my $x = amb 1..100; say "OH HAI"; assert $x == 100; # in your opinion, how many "OH HAI" are output?
20:06 masak I don't see how amb could be defined in Perl 6, since Perl 6 doesn't portably expose continuations to the user.
20:08 havenn joined #perl6
20:11 TimToady I read the talk page there as singularly uninterested in forcing implementation via continuations
20:19 TimToady 'sides, 'say' is a side effect, so you can expect it to blow up the universe  :)
20:27 itz whats the min amount of memory (phy+swap) needed for a build? I'm a cheapskate with hw and the OOM killer keeps kicking in
20:28 Tene itz: jnthn's boudned serialization work is planned to dramatically reduce the memory requirements for compiling rakudo
20:28 TimToady nonetheless, niecza is much likelier to work on a small machine in the near term
20:29 timotimo joined #perl6
20:29 itz ok I'll try more swap and if that fails niecza
20:29 itz actually I should try niecza anyway
20:36 preflex_ joined #perl6
20:46 moritz on 64 bit, rakudo currently needs 1.8GB of virtual memory to build
20:46 moritz down to ~1.1G in a development branch
20:47 MayDaniel joined #perl6
20:48 fsergot joined #perl6
20:49 havenn joined #perl6
20:57 integral joined #perl6
21:00 cognominal in nom, is there the equivalent of tying a hash?
21:00 cognominal probably, but I have forgotten.
21:00 jnthn my %hash := MyCustomHashType.new(); # is a way
21:00 benabik Creating a class that does Associative and using my %not-a-hash := ...  what jnthn said
21:02 cognominal ok, I forgot that was a class. bet time probably.
21:04 cognominal *bed
21:05 bluescreen10 joined #perl6
21:06 Tene rakudo: class Foo { }; my %h := Foo.new(); %h<a> = 1;
21:06 p6eval rakudo 4726db: OUTPUT«Type check failed in binding␤  in block <anon> at /tmp/I8uJ2ZqnJD:1␤␤»
21:06 jnthn rakudo: class Foo does Associative { }; my %h := Foo.new(); %h<a> = 1;
21:06 p6eval rakudo 4726db: OUTPUT«Method 'at_key' not found for invocant of class 'Foo'␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1199␤  in block <anon> at /tmp/nkrCzkXbLC:1␤␤»
21:06 jnthn It needs to do Associative to bind to something with % sigil.
21:07 Tene I was curious if the output would indicate what role it needed to do.
21:09 jnthn No, it appears bind failure errors suck.
21:24 fhelmberger_ joined #perl6
21:29 colomon joined #perl6
21:41 Chillance joined #perl6
21:57 araujo joined #perl6
21:57 araujo joined #perl6
21:59 dalek rakudo/bs: 3e25c39 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
21:59 dalek rakudo/bs: Fix accidental reliance on closure semantics when we're intentionally taking a static code ref. The upshot was that many parameter traits and various bits of generic instantiation didn't work out. This was the source of the vast majority of the busted spectests; now the bs branch seems to be down to O(10) spectest files with issues.
21:59 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/3e25c3900d
22:00 sECuRE joined #perl6
22:01 sECuRE i just downloaded rakudo star 2012.02 and i’m wondering whether there’s an easy way to install modules yet (just like cpan)? i’m interested in String::CRC32 which I found on http://modules.perl6.org/
22:06 [Coke] jnthn++ !
22:07 [Coke] sECuRE: I think the answer is "panda"
22:08 sECuRE [Coke]: thanks, that seems to be what i’m looking for
22:08 sECuRE unfortunately, the tests of String::CRC32 fail :/
22:09 sECuRE the message i’m getting is: http://p.nnev.de/2386
22:09 sECuRE however, the sub exists: https://github.com/cosimo/perl6-string-c​rc32/blob/master/lib/String/CRC32.pm#L42
22:12 jnthn Interesting...
22:12 jnthn In the middle of hunting another issue at the moment, will look at that in a bit...
22:12 sECuRE is the file maybe missing a package declaration? or is that not necessary in perl 6 anymore? :)
22:13 sECuRE the UsingPerl6-draft.pdf is not very verbose about that part unfortunately
22:13 jnthn Well, my guess first guess was gonna be that it was missing "our" declarations...
22:13 jnthn nom: module Foo { our sub bar() { say 42 } }; Foo::bar()
22:13 p6eval nom 4726db: OUTPUT«42␤»
22:13 jnthn nom: module Foo { our multi bar() { say 42 } }; Foo::bar()
22:13 p6eval nom 4726db: OUTPUT«Could not find symbol 'Foo::&bar'␤  in block <anon> at /tmp/bpK6Dt3NSn:1␤␤»
22:13 jnthn Bingo.
22:13 jnthn That's a bug.
22:14 sECuRE heh, alright
22:14 sECuRE will you take care of it or should i report it somewhere?
22:14 geekosaur *blink* and no tests for that?
22:14 jnthn I'm kinda surprised this didn't surface much sooner.
22:15 jnthn sECuRE: Please drop a mail about this to rakudobug@perl.org
22:15 sECuRE ok
22:16 jnthn I'll take care of it, but a ticket to remind me to do so is helpful :)
22:16 sECuRE sure
22:16 jnthn Thanks!
22:16 jnthn And sorry for the bug, it's almost certainly my fault...
22:16 sECuRE is "multi keyword leads to sub not being found" a subject which makes you remember the issue?
22:16 sECuRE (i’m not that accustomed to perl6 terminology yet)
22:18 jnthn That's fine.
22:19 sECuRE sent
22:19 jnthn Thanks.
22:20 jnthn [Coke]: I think I just found the root cause of a bunch more of the issues also. :)
22:21 ashleydev abs() operator: ≈
22:22 ashleydev for assignment
22:23 ashleydev my $x ≈1..4;
22:24 sECuRE left #perl6
22:26 tadzik good evening :)
22:27 dalek rakudo/bs: 0d0e062 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:27 dalek rakudo/bs: Fix handling of overriding postcircumfix:<( )>. Seems to fix the much, if not all of the rest of the spectest bustage.
22:27 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/0d0e062653
22:27 jnthn o/ tadzik
22:28 Tene jnthn: nice work; this is really great to see happening.
22:29 tadzik jnthn: was the patch correct? I mean, correct, not working :)
22:29 tadzik I don't really grok the continuations stuff, I just shotgun-coded that one
22:29 jnthn tadzik: Yeah, I think I'd have written it exactly the same.
22:29 tadzik great
22:30 jnthn Tene: Thanks, I'm happy to be getting there with this chunk of work. :)
22:30 jnthn tadzik: If you fancy running spectest on the bs branch, I'd be interested to see the results.
22:30 tadzik jnthn: I'm on it
22:30 jnthn tadzik: Also, in the bs branch prove --exec=perl6 t\pod fails a bunch
22:30 tadzik oh damnit
22:31 tadzik also: make podtest
22:31 jnthn tadzik: I did nothing to the Pod stuff yet. (mroe)
22:31 jnthn A lot of the serialization stuff will likely want to go away.
22:31 tadzik probably
22:31 * jnthn checks they pass on master
22:32 jnthn well, the R* release I have sat built here anyway...
22:32 jnthn yeah, all pass
22:32 * tadzik wonders if podtest is either in 'make test' or in 'make spectest'
22:32 * jnthn wears a guilty look
22:32 jnthn tadzik: make test
22:32 tadzik cool
22:32 jnthn I'd really like Pod tests in the spectests.
22:33 tadzik I may poke that during GPW
22:34 jnthn tadzik: Actually, the way you've written it, it looks like it should mostly just work.
22:34 tadzik you mean the Pod stuff?
22:34 tadzik (in rakudo)
22:35 jnthn Yeah.
22:35 jnthn I was expecting to find a bunch of stuff I needed the twiddle in Perl6::Pod, but no.
22:35 tadzik strange
22:35 * tadzik builds to see the failures
22:35 tadzik maybe the errors will ring a bell
22:36 jnthn It's curious. They're *parse* failures it seems
22:36 tadzik oh gods
22:36 jnthn And they don't all fail.
22:36 tadzik I mean, Horray, I can't wait to debug those!
22:36 jnthn But 03 is just
22:36 jnthn ===SORRY!===
22:36 jnthn Confused
22:36 jnthn at t\pod\03-abbreviated.t:1
22:36 tadzik I'm wondering how many more Qregex will trigger :)
22:40 jnthn All the places we've cheated on LTM, of course... ;)
22:40 tadzik jnthn: ehh, cannot reproduce
22:40 tadzik https://gist.github.com/1945085
22:41 jnthn huh, in bs branch?
22:41 tadzik yep
22:41 tadzik git pull says "Already up-to-date."
22:41 jnthn Lemme do a clean build.
22:43 tadzik wow, that's something I haven't seen before
22:44 tadzik https://gist.github.com/1945102
22:44 jnthn No, they still fail here :(
22:44 tadzik huh
22:44 tadzik let _me_ do a clean build :)
22:44 jnthn yowser
22:45 tadzik well, I think I did, but I'll double-check
22:47 jnthn The other failures are odd too
22:47 jnthn not ok 3 -
22:47 jnthn #      got: '$this = 1 * code('block');
22:47 jnthn # $which.is_specified(:by<indenting>);'
22:47 jnthn # expected: '$this = 1 * code('block');
22:47 jnthn # $which.is_specified(:by<indenting>);'
22:47 jnthn I...can't spot the difference.
22:47 tadzik trailing ws?
22:48 jnthn huh, when I write it to a file it comes out differently
22:48 jnthn #      got: '$this = 1 * code('block');
22:48 jnthn # $which.is_specified(:by<indenting>);'
22:48 jnthn # expected: '$this = 1 * code('block');
22:48 jnthn #
22:48 jnthn # $which.is_specified(:by<indenting>);'
22:49 jnthn tadzik: Oh, I wonder if this could be about line endings
22:49 jnthn yes, it is.
22:50 jnthn If I convert one of the failing test files to UNIX line endings, they pass
22:50 jnthn And my Rakudo Star build was Made On Linux, which means the files in it are UNIX line endings too
22:50 jnthn So, nothing to do with bs.
22:50 tadzik horray
22:50 tadzik I proceed with spectest then
22:51 lue joined #perl6
22:51 lue hello world! o/
22:51 jnthn o/ lue
22:52 jnthn tadzik: Yeah. Mebbe we can try and hunt the Win32 line ending issues in Erlangen when we can look over it together.
22:52 jnthn tadzik: was https://gist.github.com/1945102 from bs or master?
22:53 wolfman2000 joined #perl6
22:53 tadzik jnthn: bs
22:53 tadzik lue: hi!
22:53 jnthn ugh
22:53 tadzik maybe it's a matter of TEST_JOBS=3?
22:54 jnthn Also it's in reuse_continuation
22:54 tadzik eww
22:54 tadzik maybe my patch isn't correct after all :)
22:54 jnthn Which we know changed recently
22:54 tadzik aye
22:55 jnthn Well, memory corruption can affect anything, but given we know reuse_continuation is new, it seems reasonably likely it's something to do with that switch.
22:55 jnthn Next up: fixing backtrace printing.
22:58 masak 'night, #perl6
22:59 tadzik 'night masak
22:59 masak 'branoc :)
23:00 tadzik :)
23:01 NamelessTee joined #perl6
23:06 thou joined #perl6
23:08 dalek rakudo/bs: 08832fd | jnthn++ | src/core/Backtrace.pm:
23:08 dalek rakudo/bs: Update backtrace printer to cope with the fact that NQP has code objects these days.
23:08 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/08832fdfcc
23:08 dalek rakudo/bs: 5518546 | jnthn++ | src/Perl6/BacktracePrinter.pm:
23:08 dalek rakudo/bs: Toss a BacktracePrinter class that dates back to the pre-nom days, or heck knows how long. Sure wasn't in the Makefile...
23:08 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/55185463ca
23:08 dalek rakudo/bs: 2d91ccc | jnthn++ | src/core/Backtrace.pm:
23:08 dalek rakudo/bs: Windows users want the end trimmed of their backtraces too. :-)
23:08 dalek rakudo/bs: review: https://github.com/rakudo/rakudo/commit/2d91ccc2d2
23:08 tadzik Files=616, Tests=22108, 1052 wallclock secs (10.11 usr  2.12 sys + 1593.93 cusr 137.98 csys = 1744.14 CPU)
23:08 tadzik ...before those three :)
23:09 jnthn tadzik: That's all passes?
23:09 tadzik nah
23:09 tadzik I'll just paste the entire thing
23:09 jnthn What fails?
23:09 jnthn Thanks.
23:09 tadzik https://gist.github.com/1945260
23:09 tadzik one test, it seems
23:10 wooden joined #perl6
23:10 wooden joined #perl6
23:10 tadzik that's absolutely awesome
23:11 tadzik I now wonder how can we precompile modules to have them fast, and not painful, as in "mismatched version of xxx.pm" or something
23:13 jnthn tadzik: Does that one repeatably explode?
23:13 jnthn runs here
23:13 * jnthn tries it with a debug malloc
23:14 jnthn Nope. No fail.
23:15 tadzik yeah, reliably
23:15 tadzik https://gist.github.com/1945286
23:16 tadzik https://gist.github.com/1945286#comments gdb backtrace
23:20 jnthn Aha!
23:20 jnthn If I stick a for 1..1000 { ... } around the test file body I can trigger it too
23:23 tadzik hehe
23:24 tadzik those 16 GBs or RAM of yours...
23:27 lue .oO(16 GiB? Wow.)
23:27 jnthn tadzik: Goodish news - it's looking somewhat golfable.
23:28 tadzik cool
23:28 tadzik you'll have to put it in for 1..1000000 {} then ;)
23:30 colomon joined #perl6
23:31 jnthn tadzik: https://gist.github.com/1945434
23:31 jnthn tadzik: Does that trigger it for you?
23:32 tadzik yes
23:32 jnthn Same here.
23:33 jnthn What what, it's the "but".
23:33 jnthn I guess.
23:34 tadzik I think I'm going to go to bed. Do you want a linux shell for testing?
23:35 jnthn tadzik: No, I get it reliably on this box too with the thing I gisted.
23:35 tadzik ok, cool
23:37 tadzik good night!
23:38 jnthn 'night!
23:41 colomon o/
23:49 noam__ joined #perl6
23:50 jnthn Aha. That code actually segfaults in nom branch too, not just in b
23:50 jnthn *bs
23:53 jnthn aha!
23:55 TimToady aha!
23:58 aindilis joined #perl6

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

Perl 6 | Reference Documentation | Rakudo