Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-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:00 sorear trying to code nested loops without a working last / next / redo is a bit interesting
00:00 sorear it's like Pascal :(
00:12 Trashlord joined #perl6
00:12 pugssvn r31777 | Kodi++ | [S32/Temporal] Reverted DateTime back to being mutable. I think we ought to make a big change like this only after reaching some kind of consensus to do so, not least because I just implemented a lot of mutating methods!
00:12 pugssvn r31777 |
00:12 pugssvn r31777 | Note that += and friends need only the *container* on the LHS to be mutable, not the value—'$x += 1' should be allowed whether $x holds an Int, a Date, or a DateTime.
00:27 ash_ sorear: nested loops without last/next/redo end up with lots of conditionals, which makes me sad :-(
00:27 jjore_ Hi, got my speed improvement report at http://diotalevi.isa-geek.net/~josh/100720/timing-rakudo2.txt
00:27 jjore_ apparently at the fastest, it goes 2.65x as fast. Thanks pmichaud++
00:28 jjore_ Since a year ago this was taking hours or never finished, this is now a distinct improvement.
00:29 jjore_ anywya, it's time for Seattle.pm &
00:32 jnthn Good to hear we've improved, even if it's still hardly fast. :-)
00:45 eternaleye joined #perl6
00:50 skids joined #perl6
01:11 masonkramer joined #perl6
01:14 ingy phenny: tell masak I removed ./t/ from the PERL6LIB in the Makefile that ufo generates. TestML doesn't need it anymore, and it wasn't really "standard".
01:14 phenny ingy: I'll pass that on when masak is around.
01:16 ingy crap. ufo seems busted.
01:18 diakopter ls ..
01:18 ingy rakudo: if 'sbdfksjdh'.IO !~~ :e { say "OK" }
01:18 p6eval rakudo 278366: OUTPUT«OK␤»
01:19 ingy hmm
01:19 ingy maybe my rakudo is stale
01:19 diakopter rakudo: if '..'.IO !~~ :e { say "OK" }
01:19 p6eval rakudo 278366:  ( no output )
01:19 diakopter rakudo: if '.'.IO !~~ :e { say "OK" }
01:19 p6eval rakudo 278366:  ( no output )
01:19 ingy Method 'IO' not found for invocant of class 'Str'
01:20 ingy that's what I get locally
01:20 Tene diakopter: shouldn't that be just ~~?
01:20 Tene rakudo: if '.'.IO ~~ :e { say "OK" }
01:20 p6eval rakudo 278366: OUTPUT«OK␤»
01:21 ingy diakopter: http://github.com/masak/ufo/commit/f3e6cdd645b6a3dbd493564c4206460b69837976
01:21 ingy our rakudo's must be old
01:22 Tene yes
01:22 ingy or, at least mine is
01:25 ingy What are the delivery goals for Rakudo *?
01:26 ingy I have the feeling it will feel old, a few hours after release!
01:27 pmichaud if it took you a month to arrive at that conclusion, I think we're okay :-)
01:28 ingy hahaha
01:28 ingy pmichaud++
01:29 ingy pmichaud: I handed my printed/signed waiver document to gwall to give to you. Please make sure that happens when you see her.
01:29 pmichaud will do.
01:30 pmichaud I suspect I'll see her in the next 45 minutes or so.  :-)
01:30 ingy \o/
01:30 ingy pmichaud: I expect a commit bit in 46 mins
01:31 pmichaud that partially depends on the oscon wireless, I'd wager.  Or I could tether via my phone :-)
01:31 colomon pmichaud: I just got a segfault with a very simple (but repetitive) bit of p6.
01:31 colomon :(
01:31 ingy ufo works for me again \o/
01:35 pmichaud colomon: what's the bit of p6?
01:35 colomon something like for 1e10 ... 1 -> $i { $i.say; }
01:35 colomon (it's 30000 lines back in my backscroll.)
01:36 plobsing joined #perl6
01:36 pmichaud it's probably making too many gc-ables
01:37 pmichaud currently the series operator eats memory when iterated
01:37 sorear the Parrot GC recurses on the C stack when marking objects
01:37 pmichaud (at least that's my suspicion)
01:37 sorear so if you nest objects more than about 6,000 deep you get a segfault (i386 linux)
01:37 sorear our iterators are linked lists
01:38 sorear they create a nesting level of objects for each item iterated
01:38 colomon sorear: but "for" shouldn't be keeping them.
01:38 colomon but yeah, I guess if they don't GC fast enough they effectively will be keeping them, eh?
01:38 pmichaud "for" isn't keeping them, but the GatherIter is.
01:38 sorear for is well-established to leak memory, since we don't have sink context yet
01:39 pmichaud and that too
01:39 pmichaud since for goes through a ParrotIter at the moment.
01:40 pmichaud (sink context isn't really an issue -- we can emulate that at any point)
01:43 pmichaud colomon: ooc, does it fail if you use 'map' instead of 'for' ?
01:43 colomon map with .eager or .munch or something?
01:43 pmichaud just map
01:43 pmichaud yeah, with eager.
01:44 pmichaud or try .munch
01:44 pmichaud .munch probably makes more sense
01:44 pmichaud or repeated shift
01:44 pmichaud or even... (gasp)   try sink  :-P
01:44 colomon .sink works?
01:44 pmichaud not .sink
01:44 pmichaud prefix sink
01:44 colomon \o/
01:45 pmichaud sink (1e10...1).map({ .say })   # or something like that
01:46 pmichaud anyway, the current list implementation isn't guaranteed not to leak memory yet.  But at least the API isn't one that forces us to have an implementation that leaks memory :-)
01:46 pmichaud afk, heading to oscon
01:46 colomon will report what happens when it happens.  :)
01:48 colomon oh, that was fast.
01:48 colomon seg fault in about 20,000 iterations.
01:49 colomon actual code was something like sink (1e10 ... 1).map(-> $i { $i.say })
01:49 drbean joined #perl6
01:50 sorear same issue
01:51 sorear the input list is building up to segfaulty lengths
01:57 snarkyboojum joined #perl6
02:01 nimiezko joined #perl6
02:08 pmichaud yes, we likely need to clean up either gather or series or both a bit to avoid holding all of the objects.
02:09 nimiezko joined #perl6
02:14 sorear pmichaud: I still blame CallContext.
02:15 jnthn That recursive marking of CallContexts has caused us issues before too.
02:17 snarkyboojum joined #perl6
02:17 sorear Parrot-land doesn't understand the fact that nulling registers after their lifetime ends is the difference between O(n) and O(1) memory usage
02:17 sorear and my explaining skills suck too much
02:20 sorear au|irc: I'm having a great deal of trouble adding a regex compiler to niecza; I feel as though I have the wrong factoring somewhere, or I'm not looking at a problem in the right way
02:21 sorear rakudo: Mu.^methods.Str
02:21 p6eval rakudo 278366:  ( no output )
02:21 sorear rakudo: say Mu.^methods.Str
02:21 p6eval rakudo 278366: OUTPUT«BUILDALL new Bool say print item WALK defined BUILD clone perl WHICH Capture CREATE PARROT bless WHENCE WHERE notdef ␤»
02:23 sorear rakudo: say Any.^methods(:local).Str
02:23 p6eval rakudo 278366: OUTPUT«Seq grep none values can reverse keys uniq isa map classify kv min max flat pick first minmax does rotate join Numeric elems end reduce Str all list postcircumfix:<{ }> postcircumfix:<[ ]> at_key pairs one ACCEPTS at_pos sort any␤»
02:23 dalek niecza: f0e814f | sorear++ | rxwork.pl:
02:23 dalek niecza: rxwork: Inside a regex, use raw iterator subs for added optimizability
02:23 dalek niecza: review: http://github.com/sorear/niecza/commit/f0e814f500d51416db221bad70545eeacf90bd14
02:23 sorear rakudo: say Cool.^methods(:local).Str
02:23 p6eval rakudo 278366: OUTPUT«ceiling cotanh comb unpolar trim-trailing atan ord acos eval chop tanh atanh cosec chars roots uc ucfirst substr tan log10 from-radians cos fmt bytes pred acosec sinh asinh Numeric cosech trim asec trim-leading chr acotanh floor sech asech rand truncate round rindex sqrt asin
02:23 p6eval ..split…
02:29 timbunce joined #perl6
02:29 dalek niecza: 03f7ce1 | sorear++ |  (2 files):
02:29 dalek niecza: Implement Mu.bless, Any.flat
02:29 dalek niecza: review: http://github.com/sorear/niecza/commit/03f7ce1cb3ca92f335e49f875ec798f209138891
02:34 tylercurtis joined #perl6
02:38 agentzh joined #perl6
02:39 justatheory joined #perl6
02:42 felliott joined #perl6
02:42 felliott joined #perl6
02:44 drbean joined #perl6
02:55 tedv joined #perl6
03:12 colomon rakudo: say (1...100).grep({ $_ %% 2 }).grep({ $_ %% 3 }).perl
03:12 p6eval rakudo 278366: OUTPUT«Cannot resume dead coroutine.␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2528:CORE.setting␤  in main program body at line 22:/tmp/eJhgHd3XUU␤»
03:13 colomon rakudo: say (6, 12 ... 96).perl
03:13 p6eval rakudo 278366: OUTPUT«(6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96)␤»
03:14 justatheory joined #perl6
03:27 nbrown joined #perl6
03:27 jaldhar joined #perl6
03:33 drbean joined #perl6
03:36 synth joined #perl6
03:50 snarkyboojum joined #perl6
03:54 au|irc sorear: sleeping on it might help. :)
03:56 DemoFreak joined #perl6
03:57 sorear au|irc: I'm exactly in the middle of my normal wake cycle
03:57 au|irc ah. power napping on it then :)
03:57 au|irc what's your TZ nowadays, btw?
03:57 sorear PDT.
03:59 au|irc mm nice sleep-through-noon nocturnal hacking cycle.
04:10 sorear Does anybody read p6c these days?  It's starting to look like our designated troll prison
04:26 * tylercurtis reads it.
04:28 [Coke] joined #perl6
04:28 [Coke] blah! Hopefully the rakudo release will go smoother than the parrot one.
04:29 [Coke] parrot 2.6.0 is now available for you to play with. Here's hoping there's no suprirses for the release. =-)
04:45 dalek niecza: 3963e68 | sorear++ |  (3 files):
04:45 dalek niecza: Stop relying on !slots, SPOT lexicals into Decl
04:45 dalek niecza: review: http://github.com/sorear/niecza/commit/3963e68c05822629deaae8a6c4e28b37d4d62a71
04:45 dalek niecza: f0c3f28 | sorear++ |  (2 files):
04:45 dalek niecza: Pass lexical types directly to CodeGen instead of using (lextypes)
04:45 dalek niecza: review: http://github.com/sorear/niecza/commit/f0c3f28ca8a1022d5b346f59a58226b4b5957e15
04:45 dalek niecza: 1334694 | sorear++ | CgOp.pm:
04:45 dalek niecza: No longer need to use lextypes in CgOp foo_lex
04:45 dalek niecza: review: http://github.com/sorear/niecza/commit/1334694786e1ffb5c0b6f01f797f299599c9eb9e
04:49 markjreed joined #perl6
04:50 markjreed what's the best way to initialize a derived attribute in a class?  I want the default new, CREATE, and BUILD to do their thing and then take over and initialize some other attributes based on the ones passed in.
04:54 [Coke] joined #perl6
04:55 sorear markjreed: There is no default BUILD
04:56 sorear BUILD runs after standard processing, and is entirely yours to implement
04:57 markjreed If you define a BUILD, then the auomatic paramater iniialization from named parameters doesn't happen anymore except for parameters explicitly declared on BUILD.
05:04 sorear That sounds like a bug
05:05 markjreed It seems to follow what I'm reading in S12.
05:06 markjreed However, it also prevents initialization to defaults...
05:07 markjreed And that's a bug...
05:09 markjreed rakudo: class Foo { has $.bar = "baz"; }; say Foo.new.bar
05:09 p6eval rakudo 278366: OUTPUT«baz␤»
05:10 markjreed rakudo: class Foo { has $.bar = "baz"; submethod BUILD{}}; say Foo.new.bar
05:10 p6eval rakudo 278366: OUTPUT«Any()␤»
05:16 Mowah joined #perl6
05:16 timbunce joined #perl6
05:31 synth joined #perl6
05:35 dalek niecza: cf25c36 | sorear++ | CgOp.pm:
05:35 dalek niecza: Remove lexget and lexput as user facing ops
05:35 dalek niecza: review: http://github.com/sorear/niecza/commit/cf25c36e515f95851080b7b4b4271838bab7a846
05:35 dalek niecza: a8fb8a5 | sorear++ |  (4 files):
05:35 dalek niecza: Do not require aux stacks to be predeclared
05:35 dalek niecza: review: http://github.com/sorear/niecza/commit/a8fb8a5159db699f80541b3186bbcf0f3acfca99
05:35 dalek niecza: b861595 | sorear++ |  (4 files):
05:35 dalek niecza: Unify aux and let
05:35 dalek niecza: review: http://github.com/sorear/niecza/commit/b861595f584cb071fd7ab35e2dd0df482c49028a
05:35 dalek niecza: 3aa3ff8 | sorear++ |  (3 files):
05:35 dalek niecza: Kill off lextypes for good
05:35 dalek niecza: review: http://github.com/sorear/niecza/commit/3aa3ff8803fa636d9e4b9b9d1be83a74d3dfd603
05:36 exodist joined #perl6
05:51 Su-Shee joined #perl6
05:52 pmichaud 04:55 <sorear> markjreed: There is no default BUILD
05:52 pmichaud S12 seems to indicate otherwise.
05:52 pmichaud S12:614 and S12:800
05:52 pmichaud explicitly mention "default C<BUILD>"
05:53 pmichaud (perhaps I'm misunderstanding sorear++'s comment.)
05:53 sorear I was speaking from memory, not with a copy of S12 open next to me
05:53 sorear so I automatically concede this
05:56 wolo joined #perl6
06:06 justatheory joined #perl6
06:06 LionMade0fLions joined #perl6
06:08 dalek rakudo: 3176182 | pmichaud++ | build/PARROT_REVISION:
06:08 dalek rakudo: Bump PARROT_REVISION to latest Parrot release.  Frozen until #31 release.
06:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3176182a41c5615d74af18a621c6f974b0dd99cc
06:11 uniejo joined #perl6
06:11 pmichaud interestingly, the "double gather" bug might not be a problem with gather.
06:11 pmichaud rakudo: (gather { for (1,2,3,4,5).grep(* > 2).list { take $_ if $_ ~~ { $_ < 5 } } }).say;
06:11 p6eval rakudo 278366: OUTPUT«34␤»
06:14 moritz_ rakudo: say <a b c>.kv.kv.perl
06:14 p6eval rakudo 278366: OUTPUT«Cannot resume dead coroutine.␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2528:CORE.setting␤  in main program body at line 22:/tmp/ap4qCsJ32q␤»
06:16 pmichaud I agree it shows up when gather is used.
06:16 pmichaud but if I write the gathers directly (as opposed to in a sub/method), it works just fine.
06:16 baest joined #perl6
06:17 moritz_ it shows up when the *same* gather/take is used twice in a lazy list
06:17 moritz_ which you don't achieve when writing a gather/take directly
06:18 pmichaud okay, that's possible.
06:18 pmichaud looking.
06:18 moritz_ rakudo: say <a b c>.map({$_}).map({$_})
06:18 p6eval rakudo 278366: OUTPUT«abc␤»
06:18 pmichaud .map doesn't use gather, so it's not relevant.
06:18 moritz_ ok
06:18 pmichaud this is interesting
06:18 pmichaud consider:
06:19 pmichaud gather { @list.map({ take $_ if $_ > 2 }) }
06:19 pmichaud should the statement in the gather be considered to be in sink context?
06:19 pmichaud I guess gather must impose sink context on its block.
06:19 moritz_ probably
06:21 pmichaud ohhhhhhhhhh
06:21 pmichaud I think I see the problem.
06:21 pmichaud the gather statement isn't properly cloning its block.
06:22 pmichaud oh wait, that's probably not it.
06:22 pmichaud grrrr
06:22 sorear what was the first version to have this bug?
06:22 pmichaud hard to say -- it's been mixed up with general closure problems from the beginning.
06:30 pmichaud PGE does something weird with its coroutines here... I'll try the same thing here.
06:49 synth joined #perl6
06:52 pmichaud aha, it's a Parrot Coroutine bug
06:52 pmichaud filing trac ticket
06:53 moritz_ damn, a bit too late to get into the parrot release :/
06:53 pmichaud no problem, easy workaround.
06:53 pmichaud PGE inadvertently worked around the bug for years :-)
06:54 timbunce what's the perl6 way to find what modules have been loaded (ie like keys %INC in p5)?
06:54 pmichaud timbunce: I don't think one has been officially spec'd.
06:54 pmichaud Rakudo might have a way, though.
06:54 timbunce that would be handy
06:54 moritz_ rakudo: use Test; say %LOADED.perl;
06:54 p6eval rakudo 317618: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
06:55 moritz_ timbunce: try %Perl6::Module::Loader::LOADED
06:55 pmichaud %LOADED appears to ... yeah.
06:55 pmichaud perhaps that should be a contextual or PROCESS:: variable.
06:55 pmichaud or GLOBAL::
06:55 pmichaud or something.
06:56 pmichaud it might be interesting to distinguish "what modules have been loaded"  versus "what modules have been loaded in the current lexical scope"
06:58 timbunce say %Perl6::Module::Loader::LOADED.perl; says Method 'perl' not found for invocant of class 'Hash'
06:58 pmichaud it's a Parrot native hash and not a Perl 6 Hash :-|
06:58 pmichaud (so it doesn't have a .perl method)
06:58 pmichaud I suspect that needs to be reworked a bit.
06:59 pmichaud (the whole LOADED part)
06:59 timbunce how can I see the contents?
07:00 pmichaud might try casting it
07:00 pmichaud say  (CREATE_HASH_FROM_LOW_LEVEL %Perl6::Module::Loader::LOADED).perl;
07:00 pmichaud obviously that's not going to be standard Perl 6 :-|
07:00 pmichaud but it might work for now
07:01 timbunce yeah! it did. pmichaud++
07:02 sorear au|afk|lunch: ping
07:07 dalek niecza: f4addf6 | sorear++ |  (6 files):
07:07 dalek niecza: Upward type inference for let
07:07 dalek niecza: review: http://github.com/sorear/niecza/commit/f4addf6d170223bfcc86fc0622a329a7173ab3ab
07:07 dalek niecza: f2668ba | sorear++ | CodeGen.pm:
07:07 dalek niecza: Remove dup and swap fossils
07:07 dalek niecza: review: http://github.com/sorear/niecza/commit/f2668ba3c01b4b4b3c692c0a339196090a844c34
07:07 daxim joined #perl6
07:07 [particle]1 joined #perl6
07:10 moritz_ fun. I had to reboot my currently-being-upgraded debian box, and now I have neither mouse nor keyboard in X
07:11 mathw Morning
07:15 sorear pmichaud: What did PGE use coros for?
07:15 pmichaud restarting after a successful match
07:15 moritz_ backtracking?
07:15 moritz_ ah
07:16 pmichaud i.e., the code would .yield() a successful match, and invoking the coroutine would then backtrack and find another successful match
07:16 whiteknight joined #perl6
07:16 pmichaud great, the workaround that works for PGE appears not to work for Rakudo.
07:16 pmichaud :-(
07:16 mathw :(
07:17 pmichaud probably due to the intermediate exception handler.
07:19 zulon joined #perl6
07:20 * sorear wonders when we'll see perl6 parsers nearly as fast as perl5's
07:20 * sorear sets the bar at 5,000 lines per second on his computer
07:23 au|irc sorear: pong
07:26 sorear au|irc: How much would it hurt your goals if the code generator were modified to generate CLR assembly directly, instead of horribly-low-level C#?
07:26 au|irc seeing I have no intrinsic goals, the answer would be not at all :)
07:26 au|irc and I get to learn one more language! (CLR assembly)
07:26 pmichaud +1
07:27 pmichaud au|irc++
07:27 au|irc :)
07:27 * pmichaud really likes the "au" nick.  It's.... golden.
07:27 au|irc why, thank you *smile*
07:28 * mathw thinks that's an excellent attitude
07:29 mathw People shouldn't be scared of learning another language
07:29 sorear or, to be more precise, I'd like to see a STD-level parser which can process a file of similar size and statistical properties to STD.pmc in under 30 seconds
07:31 masak joined #perl6
07:31 sorear 63,500 lines, 1,600,000 bytes, minimal whitespace
07:31 masak god morgon, #perl6!
07:31 phenny masak: 20 Jul 21:54Z <dolmen> tell masak I have committed my Temporal spec patch
07:31 sorear perl5 requires 1.9 seconds
07:31 phenny masak: 20 Jul 23:48Z <Kodi> tell masak http://gist.github.com/483792 I actually think I got the day-name stuff right the first time. At any rate, this time, DateTime-strftime.t works fine for me. If you get that problem again, try double-checking that you're using the right strftime.pm (or strftime.pir).
07:31 phenny masak: 01:14Z <ingy> tell masak I removed ./t/ from the PERL6LIB in the Makefile that ufo generates. TestML doesn't need it anymore, and it wasn't really "standard".
07:31 sorear you have 30.
07:31 masak ingy++
07:31 masak Kodi: I'll apply and spectest.
07:31 au|irc mathw: well it could be scary, but it gets better with practice... it's called "desensitization treatment" or something :)
07:31 sorear o/ masak
07:31 au|irc greetings masak :)
07:32 masak hello all you lovely butterflies.
07:32 mathw au|irc: :)
07:32 mathw Morning masak
07:36 Su-Shee left #perl6
07:39 diakopter sorear: plz zpl pzl use this for assemblygen: http://github.com/jbevain/cecil
07:39 masak zlp!
07:40 diakopter istr reading somwehere it's the most efficient to operate and expedient to adopt of them..
07:42 diakopter "of them" referring to 1. Microsoft's System::Reflection::Emit 2. libraries wrapping (1), such as runsharp, 3. metalanguage environments wrapping runsharp, such as perlesque ;), and 4. Mono's Cecil
07:43 diakopter the github fork of cecil is supposed to contain a refactor-for-more-lightness branch somewhere or it's already merged
07:45 au|irc sorear: re the perf point, seems a large fraction of time are in the CursorBase::_tangle_edges => CursorBase::_elem_matches codepath
07:45 au|irc # http://audreyt.org/niecza-nytprof/nytprof/
07:45 * au|irc wonders if inlining would help a bit with 539,205 calls
07:46 diakopter heh
07:47 diakopter at that point you might just package custom JIT logic for Mono to enforce such things
07:48 diakopter speaking of shipping a custom Mono...
07:48 timbunce au|irc: looking at that profile I could give some suggestions for what might help
07:48 au|irc ah, the author of the fabulous nytprof is here :) hi timbunce :)
07:49 * timbunce waves
07:49 moritz_ niecza: say 1
07:49 p6eval niecza : OUTPUT«1␤»
07:49 moritz_ hum, does not report the version yet :(
07:50 * pmichaud thinks more about Rakudo's double-gather bug and suddenly says... wtf?!
07:50 * au|irc coheres and entangles back to timbunce
07:50 pmichaud I need a walk
07:50 pmichaud bbiaw
07:50 moritz_ niecza: say 1
07:50 au|irc o/ pmichaud
07:50 p6eval niecza 3aa3ff8: OUTPUT«1␤»
07:51 diakopter pmichaud is walking at 1 am
07:51 diakopter take a torch
07:51 * au|irc listens to timbunce re: what might help
07:51 masak ingy's blog post made a splash on Twitter.
07:51 timbunce au|irc: try avoiding unpacking the args: return $_[0] eq $_[1] if length($_[1]) == 1;
07:52 masak can we just keep making good noise like this up until the R* release? kthxbai
07:52 masak we can take turns... :)
07:52 diakopter ^Z&
07:52 sorear au|irc: nytprof doesn't work very well on my computer, btw
07:53 timbunce sorear: in what way?
07:53 * timbunce guesses windows
07:53 masak diakopter: I read that and went, "hm, meta-sleep?" :)
07:54 tadzik joined #perl6
07:54 sorear timbunce: linux; every single clock I choose, including MONOTONIC, seems to wind up ticking backward
07:55 timbunce are you in a vm or freebsd? (perhaps best to take this to #nytprof)
07:55 sorear no, and no
07:56 sorear au|irc: what did you run?
07:56 mathw masak: ingy's blog post was very cool :)
07:57 sorear timbunce: can you explain the not-adding-up of that profile?
07:57 au|irc sorear: just the standard settiing compilation
07:57 masak mathw: it was.
07:57 timbunce mathw: got a url?
07:57 masak mathw: it matches a sentiment I've had for some time, but it says it better than I would have.
07:57 mathw timbunce: http://blogs.perl.org/users/ingy_dot_net/2010/07/rakudos-really-really-release-ready.html
07:58 masak mathw: I thought when pmichaud made the R* announcement almost a year ago, "heck, we're ready *now*"
07:58 masak I didn't think (but should have) "give us a year and we'll be awesome" :)
07:59 timbunce sorear: can you be more specific? (the 37.9 vs 21.7)
07:59 pugssvn r31778 | audreyt++ | * timbunce++ suggests we avoid unpack the args on the hottest codepath.
07:59 pugssvn r31778 |   This alone should save 2~3% of runtime for STD.
08:00 sorear timbunce: 37s vs 2s
08:00 pmichaud pmichaud@plum:~/rakudo$ ./perl6
08:00 pmichaud > (1,2,3,4,5).grep(* > 2).grep(* < 5).say
08:00 pmichaud 34
08:00 sorear timbunce: nevermind, though; I misunderstood the run
08:00 moritz_ rakudo: (1,2,3,4,5).grep(* > 2).grep(* < 5).say
08:00 p6eval rakudo 317618: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
08:00 pmichaud p6eval fail, apparently.
08:01 dukeleto is p6eval running from a non-installed parrot?
08:01 masak pmichaud++
08:01 sorear timbunce: I thought it was a startup-shutdown test and was baffled as to why the dominating startup code was only 4%
08:01 moritz_ dukeleto: it probably just has problems rebuilding parrot automatically
08:01 moritz_ dukeleto: it's installed
08:01 pmichaud > say <a b c>.kv.kv.perl
08:01 pmichaud (0, 0, 1, "a", 2, 1, 3, "b", 4, 2, 5, "c")
08:02 moritz_ \o/
08:02 moritz_ ship it!
08:02 * pmichaud decides to run 'make spectest' first before shpping.
08:02 pmichaud *shipping
08:02 pmichaud and I still want my walk.  :)
08:03 moritz_ you can walk while spectesting :-)
08:03 masak ooh, an edit war in the spec!
08:03 pmichaud yes, I noticed the edit war.
08:04 masak for once I don't immediately dismiss the discussion on p6l about it.
08:04 pmichaud I think that's our first :)
08:04 masak aye.
08:04 masak it's an important issue.
08:04 masak I don't know exactly where I stand re it.
08:04 pmichaud I'm biased towards immutable, myself.
08:04 * moritz_ too
08:04 masak certainly persisting a DateTime object to a database is easier when... yeah.
08:04 pmichaud but I've basically ignored the entire thread until now
08:05 pmichaud after going through the problems with cursors and iterators and lists and .... I've decided that immutability will forevermore be my good friend.
08:05 masak next sensible step seems to be to dicuss immutability with Kodi++.
08:05 masak he's the one doing Actual Commits to Rakudo's Temporal right now.
08:06 masak oh, and making dolmen not feel run over is important, too.
08:06 masak dolmen++
08:06 mberends joined #perl6
08:06 pmichaud mberends: o/
08:06 sorear phenny: tell diakopter Cecil appears to be a .NET assembly.  I can only use tools with file-based interfaces pre-bootstrap (since I'm running on the p5vm), and ilasm seems to beat gmcs
08:06 phenny sorear: I'll pass that on when diakopter is around.
08:07 mberends o/ pmichaud
08:07 phenny mberends: 19 Jul 18:46Z <tylercurtis> ask mberends pmurias tells me you started work on a Perl 6 to LLVM compiler at some point. How far did you get? Still working on it at all? Is it available somewhere?
08:07 phenny mberends: 20 Jul 20:47Z <masak> tell mberends when I remove (Cool-)Str.bytes, t/spec/S32-io/IO-Socket-INET.rakudo fails 10 tests. sure enough, src/core/IO/Socket.pm contains the only use of .bytes in the whole Rakudo code base right now. I'd like to confer with you re what to do with it.
08:07 masak \o mberends
08:07 frettled mberends \o/
08:07 masak EONEINAPPROPRIATEUSEOFBYTES
08:07 pmichaud I should rephrase my earlier comment.
08:07 mberends good *, #perl6
08:07 pmichaud I'm *strongly* biased towards immutable.
08:07 frettled All the cool people are here today!
08:08 masak I'm surprised I still have 'Net connectivity today. apparently my provider has a charitable definition of "one week of surf time".
08:08 pmichaud okay, definitely walk time
08:08 pmichaud bbiab
08:09 frettled masak: I must confess that I've not actually read the changelogs much lately, what is the edit war about?
08:09 masak frettled: right. so.
08:09 masak frettled: Kodi is making (good) changes to Rakudo's Temporal right now.
08:09 mberends masak: I'd like to confer about .bytes and IO this evening, away from $work
08:09 masak as in, making spectests pass and implementing missing functionality.
08:09 masak mberends: goodie.
08:10 masak mberends: I'll be traveling this evening. I can make no guarantees about my availability.
08:10 frettled masak: That's really nice!  (Kodi++)
08:10 masak frettled: dolment is arguing for changing the spec to immutable DateTimes.
08:10 xabbu42 joined #perl6
08:10 masak frettled: I told him "prepare a patch and I'll apply it"
08:11 frettled Oh.  Aha.
08:11 mberends masak: np, later this week is also fine
08:11 masak frettled: I didn't tell him "apply a patch", but forgiveness applies in this case :)
08:11 frettled masak: Well, you said those words, just not in that order, and not merely those words :)
08:11 masak mberends: basically though, there needs to be a .Buf converstion in there somewhere.
08:11 masak mberends: I could just change it and hope for the best, but I'd like to make sure it works, too.
08:12 masak mberends: this is a great test for what my grant work is about.
08:12 mberends masak: yes. we must find out exactly where is the right point to convert
08:12 masak frettled: :)
08:12 masak mberends: it's a read, right?
08:12 mathw masak: I think we're much readier now for an R*-type release. The thing is, I think it's going to lead to enormous pressure from outside to make things go fast.
08:12 masak mberends: then the read should probably be binary.
08:12 frettled masak: thanks for the heads-up, pmichaud's comments made much more sense to me now :)
08:13 masak frettled: thanks for allowing me to summarize things :)
08:13 masak I hope both Kodi and dolmen will read this backlog.
08:13 frettled no problemo, camarada
08:13 mberends masak: a web server would read from a file and write to a socket. But a web client such as LWP would do exactly the opposite, so we should think about all the cases.
08:14 masak nodnod
08:15 jkva joined #perl6
08:15 mberends nice wishlist item from #dbdi : auto-compile modules to .pir and auto-refresh the .pir file if the source (.pm|.pm6) has a newer timestamp. Something to put on the post-R* discussion table in Pisa.
08:16 frettled mberends: not to forget that we'll probably have people implementing stuff that reads and writes from a socket, not necessarily the same one.
08:16 * frettled settles for stating the obvious.
08:16 * frettled is, after all, Grand Master.
08:17 mberends frettled: some of us need to be told the obvious, some of the time
08:17 mathw mberends: That's a good wishlist item for me :)
08:17 Juerd Going to migrate feather2 now.
08:18 frettled mberends: I believe there's a captaincy available in the Order of the Bleeding Obvious, should you want one.
08:18 mberends frettled: obviously I don't
08:18 frettled ooh, nice one :)
08:20 frettled mberends: But back to your suggestion: that's solved with a nice Makefile and issuing the appropriate make command at the appropriate time.  So when should the make command run?
08:20 meppl joined #perl6
08:20 dalek niecza: 2841e81 | au++ | STD_REVISION:
08:20 dalek niecza: * Updating STD_REVISION to r31778 for STD.pm's perf gains.
08:20 dalek niecza: review: http://github.com/sorear/niecza/commit/2841e815795f4951a7b75738b88d4be5ee4fa685
08:26 azert0x joined #perl6
08:28 sorear au|irc: are you planning to continue chasing STD.pm perf?
08:28 dalek rakudo: ac0987c | pmichaud++ | src/Perl6/Actions.pm:
08:28 dalek rakudo: Fix double-gather bug.
08:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ac0987ce1842194acb613428b6aabcaa476bbce9
08:28 sorear au|irc: also, I'm releived to see that profile and see that niecza itself barely even registers :)
08:28 au|irc \o/
08:29 au|irc truthfully, I don't have a plan :)
08:29 au|irc I just saw you mentioning STD.pm perf and thought nytprof might help...
08:30 sorear I spent a few days with NYTprof a while back and managed to make STD.pm about 30% faster in total
08:30 au|irc cool!
08:30 sorear It's still 600 times slower than the Perl 5 parser
08:31 sorear 2% here 2% there isn't going to bridge the gap
08:31 au|irc wouldn't it be cool if a project can take STD.pm6 and compile it to low-level CIL assembly
08:31 au|irc oh wait, there is such a project :)
08:32 sorear that's actually my original goal.
08:32 thebird joined #perl6
08:33 pmichaud rakudo: say 1  # working yet?
08:33 p6eval rakudo 317618: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
08:33 au|irc so the bridge will be gapped naturally, then :)
08:33 sorear I'm expecting to get up into the 20-50x slower range once the parser is complete enough and there are some basic optimizations
08:34 sorear but.  I can only try and see
08:34 au|irc :)
08:36 tadzik hmm, my perl6 executable stopped working after pulling: http://wklej.org/id/367077/
08:36 sorear I might be able to take advantage of Parrot's lack of working threads and beat Rakudo to working data-parallel »«
08:36 sorear :)
08:36 sftp joined #perl6
08:36 salv0 joined #perl6
08:36 Lorn joined #perl6
08:36 cognominal joined #perl6
08:36 pjcj joined #perl6
08:36 c1sung joined #perl6
08:36 Tene joined #perl6
08:36 sukria joined #perl6
08:36 dimid_ joined #perl6
08:36 mikehh joined #perl6
08:36 dukeleto joined #perl6
08:37 sorear assuming Chandon++ doesn't beat me to it, of course
08:37 au|irc sorear: interesting. does STD.pm6 itself uses parallelizable techniques?
08:37 au|irc or do you just mean userland code in general
08:38 timbunce sorear: I looked through the nytprof report and couldn't see anything worth noting. I figured someone had done some polishing. It's always possible there are logic bugs causing too much work, or places where caching would help, but they're certainly beyond me.
08:39 pmichaud sorear: I very much look forward to steali...^W learning from your experiences.  :)
08:39 sorear au|irc: userland code in general
08:40 au|irc "Implementation is the sincerest form of flattery." - L Peter Deutsch
08:41 moritz_ tadzik: you need to rebuild parrot, and reconfigure and rebuild rakudo
08:41 tadzik moritz_: I pulled, perl Configure.pl --gen-parrot, make and make install
08:41 moritz_ tadzik: the parrot release implied a bump in the bytecode version number
08:42 * Juerd wishes that people would tgz their disused build trees.
08:42 moritz_ tadzik: try rm -rf parrot parrot_install and then again
08:42 tadzik ok
08:43 frettled Juerd: deduplication FTW :)
08:43 masak sorear: p6c a troll prison? all I see is RT ticket emails.
08:43 Juerd frettled: ext3 doesn't do that :)
08:43 Juerd frettled: But the main problem is the sheer number of files. It makes every backup tool really slow.
08:43 frettled Juerd: and that's not the only think ext3 doesn't do :(
08:44 sorear Juerd: I have occasionally ben tempted to write a cron job to kill all the .o files on my system.  I wonder how much collateral damage it would do.
08:44 Juerd Even without gz, a tar would be so much faster to copy around.
08:44 zulon joined #perl6
08:44 Juerd You don't realise that having so many small files is a problem until you make backups or want to move everything over to a new box
08:44 frettled Juerd: loopback-mounted filesystems :)
08:45 sorear Wait.  What's the cool FS these days?
08:45 frettled sorear: WAFL and ZFS, still.
08:45 moritz_ sorear: btrfs
08:45 Juerd frettled: No, that'd be counter productive because then you'll be diffing huge files. Just tar those things that aren't in active use :)
08:45 sorear I thought it reverted back to extN after the Reiser backlash
08:46 * moritz_ finds that he has a public_html/pugs/ and goes wtf and rm -rf
08:46 frettled moritz_: btrfs isn't cool yet, IMHO, since it's not stable
08:46 Juerd moritz_: Oh, removing is even better :)
08:46 moritz_ ah, that was probably my old git mirror
08:46 moritz_ which is now on github anyway
08:46 mathw frettled: but when it is stable... :D
08:46 frettled Juerd: I don't think you'd be diffing huge files any more than with tarballs.
08:47 Juerd Yeah, we have old mirrors, old checkouts, and old everything all over the filesystem :)
08:47 frettled mathw: I have a bridge to sell you ;)
08:47 Juerd frettled: If the mtime doesn't change, you don't have to diff anything.
08:48 frettled Juerd: the idea is to use loopback-mounted filesystems for build trees.  When you're done, you're done, and there's a binary blob of a file that you _don't_ diff and don't necessarily move again.  It's huge, it's hopefully a sparse file and treated efficiently as such, and easier to move around than a zillion small files.
08:49 pmichaud ...I have '.imc' files in my feather dir?!?!?!
08:49 Juerd frettled: But when you do write to it again, the huge blob changes.
08:50 frettled Juerd: but you still don't diff it
08:50 Juerd frettled: big never changing blobs > real build dirs > big changing blobs
08:50 moritz_ frettled: the problem is not the lack of technology, but the lack of care
08:50 frettled moritz_: mmm
08:50 frettled Hmm, but there are merely 4.2 million files in /data on feather6 :)
08:50 pmichaud I fear the mental image of huge changing blobs is too much for my brane at 02h00
08:50 frettled s/6//
08:51 Juerd frettled: Sparse files aren't faster, by the way. They just take up less space.
08:51 moritz_ people could just rm -rf the stuff they haven't used for 3 months, or tar and then rm
08:51 frettled Juerd: that's kind of the point (taking up less space)
08:51 Juerd Using up space is not the issue here.
08:51 frettled moritz_: yup
08:51 Juerd Having a gazillion tiny files is
08:51 moritz_ svn doesn't help there :-)
08:51 Juerd Not really, no
08:52 Juerd I deleted 4 GB of /home/*/.ccache yesterday
08:53 Juerd Ooh, nice system load on feather1 now :)
08:53 frettled How long does the backup take, anyway?
08:54 moritz_ Juerd: I'm doing a du -sch /home/*, and plan to publish the results later on
08:54 frettled Juerd: 9-10 processes in blocking wait
08:54 Juerd frettled: A full backup takes 4,5 hours
08:54 moritz_ then I should rather abort it soon :-)
08:54 Juerd frettled: An incremental backup takes almost an hour
08:54 pmichaud yeah, I'm deleting some old svn checkouts too
08:55 frettled Juerd: and what do you use for backups?
08:55 Juerd Great!
08:55 Juerd frettled: dump
08:55 frettled Juerd: aha.
08:55 frettled Juerd: try rdiff-backup or BackupPC?  All backups are incremental.
08:55 Juerd Hah.
08:55 Juerd No thanks :)
08:55 Juerd Those are enormous resource hogs. I prefer to continue to actually use the system while backups are being made.
08:56 Juerd Again, storage is not an issue at all.
08:57 Juerd A single full backup with dump is generally faster than an incremental backup with rdiff-backup, and backuppc is much worse in many respects.
09:00 frettled At work, I think a single incremental backup with rsync (which is, performance-wise, comparable with rdiff-backup) takes around 6.5 hours for around 27.2 million files.
09:01 frettled The performance penalty is negligible on our hardware, but that's probably because it's a mid-range SMB RAID system.
09:03 * moritz_ has reduced his home dir to 541 files now (42M)
09:03 Juerd Thanks
09:03 moritz_ not having a pugs checkout helps immensely :-)
09:04 Juerd Damn. I copied feather3 again, when I should have copied feather2
09:04 Trashlord oh no
09:04 Juerd That was really weird, seeing "feather2" boot, and seeing all kinds of feather3 stuff.
09:05 moritz_ I hope that feather2 is pretty light (at least in comparison to feather1)
09:05 Juerd It certainly should be :)
09:05 masak ingy++'s post made Reddit! http://www.reddit.com/r/programming/comments/crybo/rakudo_stars_really_really_release_ready_porting/
09:06 masak zulon++
09:06 * moritz_ upvotes
09:06 snarkyboojum joined #perl6
09:06 zulon hey, it's me
09:06 zulon !
09:06 zulon hi
09:06 moritz_ hi :-)
09:06 zulon thanks for the upvotes
09:06 masak snarkyboojum! \o/
09:07 snarkyboojum hi masak o/
09:07 Juerd Oh, here's what happened: dump reads the fs itself, but I gave the path of a mounted filesystem (which in itself is okay). I had feather3 mounted on /mnt, and then feather2 on /mnt too. In Linux itself, this means /mnt is feather2. Dump however reads the mount table and apparently uses the *first* entry rather than the last.
09:07 moritz_ oh wow
09:07 Juerd Oh well, shouldn't take long to do it again.
09:08 moritz_ btw I read the perl 5.13.3 release announcement, and was kinda surprised to see my name in it. I don't even remember what patch I submitted :-)
09:08 frettled Juerd: oh
09:08 masak "patch amnesia"
09:08 Juerd Oh, wow, copying the real feater2 took er, 3 minutes.
09:09 Juerd s/feater/feather/
09:09 moritz_ it doesn't really hold much data beside the system itself
09:09 moritz_ like, one or two pugs checkouts a few small git repos
09:10 Juerd frettled: Anyway, the incrementals taking an *hour* means the downtime of feather1 will be at least an hour too, when it's being moved.
09:10 rgrau joined #perl6
09:10 moritz_ (and the pugs checkouts don't contain any built files)
09:10 pmichaud time for sleep -- bbiaw
09:11 dalek joined #perl6
09:11 Juerd Sleep well :)
09:11 au|irc g'㊰ pmichaud :)
09:11 pmichaud rakudo:  (1,2,3,4,5).grep(* > 2).grep(* < 5).say;  # ready yet?
09:11 p6eval rakudo ac0987: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
09:11 hugme joined #perl6
09:11 pmichaud ENOTYET
09:11 Juerd feather2 login:
09:11 Juerd That's better.
09:11 Juerd perl6.org works again, so it's up :)
09:12 tadzik http://wklej.org/id/367085/
09:12 moritz_ hugme is also back
09:13 Juerd tadzik: Wicked prompt! :)
09:13 tadzik what do I need to do to die in the outer scope?
09:13 tadzik Juerd :)
09:13 moritz_ tadzik: in rakudo, you currently can't
09:13 tadzik oh
09:13 moritz_ you need to set a flag, and then after the try block check that flag, and die again
09:13 frettled Juerd: so it can't be done without a downtime?  Hmm.  :-/
09:14 tadzik yeah, that's what I thought about
09:14 moritz_ hugme: hug frettled
09:14 * hugme hugs frettled
09:14 Juerd frettled: No
09:14 Juerd frettled: The downtime will be at least the time it takes to build an incremental backup.
09:15 frettled moritz_: tee-hee
09:15 Juerd And that's mostly influenced by the number of inodes in use
09:15 Juerd So that's why I'd like it if this were reduced. A lot. :)
09:15 frettled I can see that :)
09:18 sorear pff, just delete a few user accounts
09:21 Juerd I'm tempted
09:21 masak Dave Whipp suggests a 'conjugate' method on Complex.
09:21 Juerd Only a part of the users are still active
09:21 masak I'd argue that that's a case where the method might make sense on Real, too. (identity opration)
09:21 Juerd my ncdu is still running. 2.8 million files so far.
09:22 masak either that, or one chooses consistency over convenience, and forces promotion to Complex.
09:22 moritz_ masak: if you argue that way, 1.re and 1.im should also work
09:22 moritz_ so I'm in favor or keeping it in Complex
09:22 masak moritz_: aye.
09:23 masak moritz_: thing is, his use case presupposes that it work on non-Complex, too.
09:23 masak so at least his expectations are aligned with Work Everywhere.
09:23 Juerd (That's a lot. feather2 has 63460 files for 1.4 GB and feather1 has 49 GB in use)
09:24 Juerd (So I'd expect the number of files to be around 2.2 M)
09:25 Juerd Haha. On feather2, most disk space is used by apt's cache :)
09:25 moritz_ I do try to keep it up-to-date once in a while, but I seldom apt-get clean
09:25 Juerd That's okay
09:26 Juerd I'm doing apt-get clean on feather now; Will kill >4 GB
09:26 moritz_ (and apt-get clean is my first reflex when a debian box goes out of disk space)
09:26 Juerd Same here :)
09:27 tadzik if my module is a module literally, not a class, how do I call its methods? Let's say I have 'module Foo::Bar' in the .pm file, now calling Foo::Bar.function() says 'method function not found for non object', Foo::Bar::function() fails even funnier. What is the right way?
09:28 moritz_ tadzik: Foo::Bar::function should work if you defined it as 'our sub function () {...}'
09:28 tadzik it's sub function is export {}
09:28 moritz_ add an our() to it
09:28 moritz_ or import it, and just call function()
09:28 moritz_ erm, 'our', not our()
09:29 moritz_ sorry
09:29 tadzik oh, it's even not exported
09:29 moritz_ Foo::Bar.thing is only supposed to work on classes
09:29 tadzik Confused at line 16, near "my %a = Co"
09:29 tadzik my %a = Config::INI::parse: $test1;
09:29 masak phenny: tell Kodi this spectest run looks good. might be I should've run 'make install' last time, because this time I got "Unable to find module 'DateTime::strftime' in the @*INC directories." and 'make install' fixed that.
09:29 phenny masak: I'll pass that on when Kodi is around.
09:29 tadzik ok, works with parens
09:30 tadzik the last : was confusing it
09:30 moritz_ masak: uhm, spectesting should work without 'make install'
09:30 dakkar joined #perl6
09:30 moritz_ rakudo: say @*INC.perl
09:31 p6eval rakudo ac0987: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
09:31 masak moritz_: it should.
09:31 masak moritz_: here's what I see: lib/DateTime/strftime.pm is used by one of the spectests.
09:32 masak moritz_: with an unmodified PERL6LIB, @*INC points to the installed location of that module.
09:32 masak it does not point to lib/ in the Rakudo dir.
09:32 masak hence, 'make install' makes a difference.
09:32 masak not saying it should be that way, just that it is.
09:32 moritz_ that's something that has annoyed me for quite some time
09:32 moritz_ lib/ should come before the installed location
09:33 su_penguin joined #perl6
09:33 masak does the test harness pass in the rakudo dir's lib/ ?
09:33 moritz_ nope
09:33 masak because what I observed countraindicates th... oh, good.
09:33 masak maybe it should.
09:33 moritz_ right
09:37 dalek joined #perl6
09:40 cjk101010 joined #perl6
09:41 masak spectesting, I got failed tests in t/spec/S29-context/die.rakudo and t/spec/S29-context/exit.rakudo. I'll go out on a limb and assume those are unrelated to Kodi++'s Temporal patch.
09:42 sorear ok, I now have all the important pre-refactors done
09:43 * moritz_ rebuilds parrot and rakudo on the p6eval server, again
09:43 masak phenny: tell Kodi patch pushed. Kodi++
09:43 phenny masak: I'll pass that on when Kodi is around.
09:43 moritz_ rakudo: 1
09:43 p6eval rakudo _: OUTPUT«../p/bin/perl6: error while loading shared libraries: libparrot.so.2.5.0: cannot open shared object file: No such file or directory␤»
09:48 dalek rakudo: c412170 | (Kodi Arfer)++ |  (7 files):
09:48 dalek rakudo: Temporal goodness.
09:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c41217098254bc2ed05fffdc8b0be821b269b0a7
09:48 dalek niecza: 4aabaad | sorear++ |  (3 files):
09:48 dalek niecza: Compile the kernel as a separate assembly in preparation
09:48 dalek niecza: review: http://github.com/sorear/niecza/commit/4aabaad07040fcf96e8e2b20034a15b840213ba9
09:48 dalek niecza: 83afb45 | sorear++ | C (2 files):
09:48 dalek niecza: Implement CPS conversion (more precisely, partial A normal form) as a
09:48 dalek niecza: pre-codegen pass
09:48 dalek niecza: review: http://github.com/sorear/niecza/commit/83afb454c027d0d6659e478c2183084782685931
09:49 masak Juerd: I'm down to 304M in my home folder. biggest things in there are some rakudo/parrot install that I use for November et al.
09:51 tadzik masak: you're the November guy?
09:52 moritz_ rakudo: say 42
09:52 p6eval rakudo ac0987: OUTPUT«PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.␤␤PackFile header failed during unpack␤»
09:52 moritz_ WTF?
09:53 tadzik moritz_: you have to do what you told me to do :)
09:53 tadzik rm -r parrot_install and again, from the beggining
09:53 tadzik * beginning
09:54 moritz_ tadzik: and I thought I did. Which is why I'm surprised now
09:54 tadzik mysterious release
09:57 masak tadzik: yes, one of two/three.
09:57 Juerd masak: Thank you
09:57 tadzik masak: http://november-wiki.org/ has some broken links, they're pointing to e.g. /perl6 and this redirects (?) to /edit/perl6 which is forbidden
09:57 Juerd Oh, heh, there are some people that never read their feather mail, and don't forward it either
09:58 masak tadzik: :( sad to hear it. I don't have the energy to work on November at present.
09:58 masak tadzik: I'm happy the site runs at all. either I or someone else should adopt November and fix up all the small glitches/cases of bitrot.
10:00 pugssvn joined #perl6
10:00 salv0 joined #perl6
10:01 Juerd Almost a million emails in audreyt's maildir. Let's see if that's cron or spam.
10:02 au|afk|dinner please feel free to rm them either way... it's not like I can backlog through ~1Mi mails :)
10:02 au|afk|dinner Juerd++ # tireless sysadminning through the years!
10:04 Juerd au|afkForReal: If it's cron, I want to remove it *and* do something about it :)
10:04 Juerd Bezig met het lezen van .... 97750/986945 (9%)
10:04 Juerd This'll take a while. afk
10:09 gbacon joined #perl6
10:17 tadzik what happened to perl6-users ML?
10:17 moritz_ it exists.
10:18 tadzik does it? Can you supply a link or something?
10:18 tadzik Haven't seen it on lists.perl.org or anywhere
10:19 moritz_ http://www.nntp.perl.org/group/perl.perl6.users/
10:19 moritz_ just no postings to it this month, it seems
10:25 pmurias joined #perl6
10:31 dalek joined #perl6
10:34 masak ENOTENOUGHPERL6USERS
10:37 cono masak: enot (russian) - racoon (eng) :)
10:44 mathw There seems to have been an upswing in here lately...
10:48 cono does rakudo have any stuff for pack data to binary data (like pack, unpack in p5) ?
10:48 cono did not found pack & unpack in Str.pm
10:49 masak cono: wow. learn something every day. :) In Esperanto it's (of course) "lav-urso". :P
10:49 sorear cono: no.
10:49 masak mathw: what time-scale "lately"?
10:50 cono Any idea how to make binary protocol in rakudo now?
10:52 masak cono: if you mean binary I/O, I'm working on it.
10:52 masak cono: there's partial functionality already. please break it and poke me about it.
10:53 mathw masak: last few days
10:54 masak mathw: au++ is back. R* nears. there's a release tomorrow.
10:54 mathw exactly
10:54 mathw I'm not saying I'm surprised by it
10:55 mathw Just contrasting it against ENOTENOUGHPERL6USERS
10:56 masak mathw: who in here are *using* Perl 6, or have been in the past few days? I count you, and ingy. :P
10:56 mathw so that's two
10:56 mathw yay! two!
10:56 mathw timbunce has as well I believe
10:57 masak three.
10:57 mathw R* is going to trigger interest I believe
10:57 mathw we will see more people
10:57 Tene masak: I was helping a co-worker with a Perl 6 program for work the other day.
10:57 mathw followed immediately by pressure to make Rakudo go faster
10:57 masak for the purpose of the count, writing Perl 6 code in Rakudo doesn't count. :)
10:58 masak Tene: ok, nice; that's four if we don't count your co-wo and five if we do :)
10:58 masak we probably shouldn't, since co-wo isn't on #perl6 (I suppose).
10:59 Tene Not right now he's not.  Looks like he's in #parrot, though.
11:00 masak he's probably afraid to get punched in the nose.
11:00 masak not everybody is happy about their clown nose.
11:00 mathw but we're the Friendliest Place On The Internet(tm)
11:00 * mathw -> noms
11:00 Tene #parrot has never been anything but friendly to me.
11:01 masak yes, #parrot is friendly.
11:01 masak #perl, both on freenode and on irc.perl.org, are odd channels to enter when one is used to the tone here in #perl6.
11:02 pmurias #perl on freenode is friendly
11:03 pmurias #perl on irc.perl.org is not a help channel
11:04 masak pmurias: I had a slightly non-positive brush with #perl on freenode in association with http://use.perl.org/~masak/journal/39861
11:04 cono masak: I have something like: class Record { has $!record_id; has $!length; has $!msg; method binary { ... }; }; And I need to make something pack("LLC*", record_id, length, msg);
11:05 masak pmurias: but maybe that was just asking for a fight, I dunno.
11:05 masak cono: you're in luck! that's in the direct path of my GSoC work.
11:05 masak cono: thing with .pack is that it produces a Buf, not a Str.
11:05 masak and Buf hasn't been completely implemented yet.
11:06 masak cono: but it's really nice to know that someone plans to make use of it :)
11:06 cono ic
11:06 cono Yeah, I need it :)
11:06 masak cono: you'll notice in the spec that .pack is somewhat under-spec'd. so I'd be happy to discuss it with someone who is used to the Perl 5 version.
11:06 masak nom &
11:07 Tene http://rakudo.org/status/ -- looks like there's a huge drop in passes recently?
11:07 cono I only foudn tthat pack and unpack is in Str
11:07 alexm joined #perl6
11:08 ChrisB joined #perl6
11:08 cono maybe pir have something like pack already?
11:13 colomon Tene: I removed something on the order of 10,000 tests from the spec test last week.
11:13 Tene Ah, trig?
11:13 colomon yes
11:14 colomon trig gets more done with fewer tests now.  :)
11:19 jnthn o/ folks
11:20 cono rakudo: use MONKEY_TYPING; class MyTime { has $!time; method ago { time-$!time }; }; augment class Int { method minutes { MyTime.new(time=> self*60 ) }; }; my Int $x = 5; say 5.minutes.ago
11:20 p6eval rakudo c41217: OUTPUT«1279709745␤»
11:20 cono wanna this feature in p6 :) (steal from ruby)
11:21 colomon \o
11:21 wallberg joined #perl6
11:22 alexm rakudo: my regex num { \d+ }; say 10 ~~ / <num> /;
11:23 p6eval rakudo c41217: OUTPUT«Method 'num' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/ThLFa6hx9d␤  in 'Cool::match' at line 2352:CORE.setting␤  in 'Regex::ACCEPTS' at line 5449:CORE.setting␤  in 'infix:<~~>' at line 401:CORE.setting␤  in main program body at line
11:23 p6eval ..22:/tmp/ThLFa6hx9d␤»
11:23 Tene That's extremely distasteful to me.
11:23 Tene I really hate stuffing weird shit like that in the core classes.
11:24 alexm i've been trying szabgab prestool examples and can't get the regex working, any ideas?
11:24 alexm http://github.com/szabgab/prestool/blob/master/slides/perl6.txt#L385-389
11:24 jnthn rakudo: my regex num { \d+ }; say 10 ~~ / <&num> /;
11:24 p6eval rakudo c41217: OUTPUT«10␤»
11:25 alexm jnthn: great, so it was lacking the &
11:25 moritz_ alexm: there was a change recently of how regexes are looked up
11:26 moritz_ <&num> doesn't create a named capture though; if you want that, you need <num=&num> (yes, that's ugly. Yes, that's going to get fixed, eventually)
11:26 alexm i'm planning a perl6 presentation next Thu for Barcelona.pm and was trying to getting started
11:27 moritz_ alexm++
11:27 alexm moritz_: i read the latest perl6book pdf and the examples there are also outdated then
11:27 moritz_ alexm: yes, I know. It's fixed in the repository, but the PDF is outdated
11:27 alexm no wonder i was hammering my head ;)
11:28 moritz_ sorry about that
11:28 tadzik alexm: I had a a presentetion on Warsaw.pm few days ago :)
11:29 tadzik people amazingly turned from "ha! ha! Perl 5.20 will come out before Perl 6 even happens!" to "So, we're celebrating Rakudo Star next week, aren't we?"
11:29 alexm moritz_: don't worry, i knew i could get help on this channel but i wanted to fight it a little first
11:29 masak cono: at least .unpack shouldn't be in Str.
11:30 Juerd au|afkForReal: http://juerd.nl/i/3458d0fd0af74bb43337c0c2009b4260.png  Disabling cron job
11:30 cono masak: method unpack, but sub unpack maybe, dunno...  or in Buf
11:30 Juerd au|afkForReal: Oh, ignore previous. That was a single occurrence
11:30 masak cono: sub unpack should accept a Buf; not a Str.
11:31 Juerd http://juerd.nl/i/94d5003c0ea598d19a6ea298984f426f.png  Any volunteers for fixing this on feather1?
11:31 alexm tadzik: care to share your slides? i'd like to mix some of gabor's examples with others
11:31 tadzik alexm: sure, but they're in Polish :)
11:31 tadzik still want? :)
11:31 alexm tadzik: no problem, google translate rocks in catalan too ;)
11:31 cono masak: maybe method Buf::unpack ?
11:32 tadzik alexm: Not sure if Google Translate can handle pdf, but there you go: http://tjs.azalayah.net/moje.pdf
11:35 moritz_ rakudo: say ?(3 ~~ 0 ... 4)
11:35 colomon pmichaud++
11:35 p6eval rakudo c41217: OUTPUT«1␤»
11:36 alexm tadzik: http://translate.google.cat/translate?hl=ca&amp;sl=pl&amp;tl=ca&amp;u=http%3A%2F%2Ftjs.azalayah.net%2Fmoje.pdf :)
11:36 tadzik oh, nice :
11:36 tadzik :)
11:37 tadzik images are missing though. I'm looking at an english translation and it isn't bad
11:38 tadzik watch out, it traslates 'my' to 'We'
11:39 alexm tadzik: could it be possible to have the beamer source files, so i can translate the whole presentation? i really like it
11:39 Juerd Is there any reason why I shouldn't rm -rf /home/*/.cpan/build on feather1?
11:39 tadzik alexm: sure
11:39 tadzik my LaTeX sucks though, I was learning it by writing this presentation :)
11:40 tadzik alexm: http://wklej.org/id/367135/
11:40 tadzik alexm: want images too?
11:41 alexm tadzik: sure
11:41 tadzik gimme a sec
11:41 alexm tadzik: what about pushing to github and /me forking?
11:41 kensanata joined #perl6
11:41 tadzik hmm, can be
11:41 tadzik not a bad idea. Give me another sec then :)
11:41 alexm your call, tadzik, what's easier for you
11:42 tadzik makes more sense, so I'll go this way
11:43 jnthn tadzik: Nice slides! :-)
11:43 tadzik jnthn: thanks :)
11:43 * jnthn could follow quite a bit of it
11:44 tadzik alexm: http://github.com/tadzik/Perl6-slides I hope I didn't forgot any images
11:44 jnthn The Polish rendering of "sigil" is cute :-)
11:45 alexm tadzik: forked, thanks a lot! :)
11:46 tadzik jnthn: what do you mean?
11:47 envi^home joined #perl6
11:47 tadzik alexm: oh, the everything is a reference exapmle could be better, turned out that people didn't see nothing special in the new way. Choose something more obfuscated in Perl 5 and show how Perl 6 beatifully handles it ;)
11:47 daxim he thinks the word zmiennej is the bee's knees
11:48 jnthn Ah, I guessed "prefix zmiennej" = sigil?
11:49 dalek joined #perl6
11:49 jnthn Oh, it's just "variable prefix" or so.
11:49 tadzik yep
11:49 tadzik you can always say "przedrostek", which is almost literally "prefix"
11:50 moritz_ (looks like "prefix steak" to me :-)
11:50 tadzik but I guess "przedrostek" is more cryptic even for Polish Perlists than "sigil"
11:51 masak TimToady: Mark J. Reed is right: smartmatch on Range checks containment in that Range in Rakudo.
11:51 masak TimToady: even the spec says so.
11:51 masak TimToady: S03:3539
11:51 tadzik hmm, I feel tempted to check the specs for this BUILD thing
11:51 moritz_ masak: TimToady was talking about series, not ranges
11:51 moritz_ rakudo: say 3 ~~ 1..4
11:51 masak ohohoh!
11:51 p6eval rakudo c41217: OUTPUT«1␤»
11:51 moritz_ rakudo: say 3 ~~ 1...4
11:52 p6eval rakudo c41217:
11:52 p6eval ..OUTPUT«011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…
11:52 moritz_ rakudo: say 3 ~~ (1...4)
11:52 p6eval rakudo c41217: OUTPUT«0␤»
11:52 masak rakudo: say 3.14 ~~ 1..4; say 3.14 ~~ 1...4
11:52 jnthn tadzik: And for foreigners guessing their way through Polish. :-)
11:52 moritz_ rakudo++
11:52 p6eval rakudo c41217:
11:52 p6eval ..OUTPUT«1␤0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…
11:52 masak er.
11:52 moritz_ masak: watch your precedence (don't know if rakudo gets that right)
11:52 tadzik jnthn: yep :)
11:52 masak rakudo: say 3.14 ~~ 1..4; say 3.14 ~~ (1...4)
11:52 p6eval rakudo c41217: OUTPUT«1␤0␤»
11:52 masak moritz_: I suspect that is right.
11:52 masak but it will surprise people.
11:53 Juerd Is there any reason why I shouldn't rm -rf /home/*/.cpan/build on feather1?
11:53 moritz_ well, smartmatching against a series is stupid, more often than not
11:53 moritz_ Juerd: no. And please also do it for .cpanplus/build/
11:53 masak TimToady wrote in A03 that there's no way not to surprise someone sometimes re precedence.
11:53 Juerd moritz_: Good one
11:53 Juerd 1;0 root@feather:/home/audreyt/Maildir# rm -rf cur new tmp
11:53 Juerd Still running...
11:54 Juerd feather's load is exploding :)
11:54 alexm tadzik: i got a weird "LaTeX Error: File `camelia' not found." message but the PDF is build ok, it seems
11:54 tadzik alexm: are you compiling with pdflatex?
11:54 moritz_ masak: I think that mark reed did something wrong when testing with rakudo (or used a horribly outdated rakudo)
11:54 tadzik I believe I pushed camelia to GH
11:54 moritz_ alexm: camelia is also in the pugs repo, in misc/
11:55 alexm tadzik: you're right, pdflatex builds fine, i was trying plain old latex ;)
11:55 daxim on tadzik's GH filename is camelia.png, not camelia, is that significant?
11:55 tadzik daxim: no, it should go like this
11:55 tadzik you just give latex the name, not the extension
11:56 moritz_ if you leave out the extension, and there are multiple files, latex picks the best
11:56 alexm moritz_: thanks, the logo is already on tadzik's repo
11:56 tadzik (I'm quite allergic to the word 'extension', but anyway)
11:56 moritz_ ie .eps for latex, .pdf for pdflatex etc.
11:56 moritz_ you *can* also provide the full name
11:58 grondilu joined #perl6
11:59 grondilu apt-get install perl6 ?   :-(
11:59 tadzik not yet I'm afraid
11:59 Leonidas grondilu: it would rather be called rakudo
11:59 tadzik but you might have rakudo
12:00 moritz_ fedora has a package for rakudo
12:00 moritz_ gerd++
12:00 Leonidas it is in experimental (an ancient version, though)
12:00 tadzik oh, by the way, moritz_, you can add CRUX in the list of distributions having rakudo in repos, to the Rakudo README
12:00 grondilu apt-cache search raduko gives nothing (and I'm on Sid )
12:00 tadzik rakudo
12:00 moritz_ tadzik: have a link to it?
12:00 tadzik moritz_: sure
12:00 Leonidas grondilu: as said, it is only in experimental, not in sid
12:01 tadzik moritz_: http://crux.nu/portdb/index.php?q=rakudo&amp;a=search it's in unofficial ports though
12:01 tadzik parrot's also there
12:01 tadzik moritz_: I can write some sensemaking paragraph if You wish
12:01 grondilu ok I'll wait for it to go in Sid.
12:01 tadzik grondilu: that may take time, why not just compile it yourself?
12:02 grondilu I'm to lazy
12:02 grondilu s/to/too/
12:02 frettled It's just about as easy as it is to install a package.
12:02 moritz_ tadzik: I think I'll add a note "the following linux distributions are known to have Rakudo in their repositories" or so
12:03 Leonidas grondilu: this will take several months, I think.
12:03 frettled grondilu: 1) git clone git://github.com/rakudo/rakudo.git
12:03 takadonet joined #perl6
12:03 frettled 2) cd rakudo
12:03 tadzik moritz_: I can write a patch for Readme, so it would make sense
12:03 takadonet morning all
12:03 frettled 3) perl Configure.pl --gen-parrot
12:03 frettled 4) make && make install
12:03 alexm grondilu: i confirm is very easy to compile rakudo and parrot in one shot
12:03 moritz_ tadzik: and there's a list on http://rakudo.org/how-to-get-rakudo to which I will refer
12:03 takadonet tadzik: you are still here asking questions? Wow you really love perl6 :)
12:03 moritz_ tadzik: I just don't want to clutter the README with links. It's too long already
12:04 frettled And as opposed to other "make install" animals, this one doesn't shove things in /usr/local/ by default.
12:04 mathw Mission accomplished!
12:04 mathw Form.pm now passes all tests
12:04 grondilu thks frettled
12:04 frettled grondilu: no problem!
12:04 tadzik takadonet: I try to be more constructive and less consuming recently, but yep, I still need to ask sometimes :)
12:04 mathw Just need to push it to github when I get home and my laptop's online again
12:05 tadzik moritz_: sure thing. The link I supplied will do, CRUXers will know their way
12:05 tadzik moritz_: oh, it's CRUX, uppercase. Just saying :)
12:05 Leonidas hmm the rakudo in Arch AUR is still outdated
12:05 moritz_ tadzik: fixed
12:05 pugssvn r31779 | colomon++ | [t/spec] Add some tests for doubled gathers.
12:06 tadzik moritz_: doesn't look like to me :/
12:06 masak I wrote a reply to the so-far only comment on http://www.reddit.com/r/programming/comments/crybo/rakudo_stars_really_really_release_ready_porting/
12:06 moritz_ tadzik: maybe a caching issue
12:07 tadzik moritz_: probably, looks fine now, moritz_++
12:08 frettled grondilu: updating the installation later is _usually_ just as easy: simply use "git pull" (no URL needed) in step 1) instead of "git clone git://…", and follow the remaining steps.
12:09 frettled grondilu: occasionally, you may need to remove the parrot_install directory before building.
12:09 frettled Is there anything else I've forgotten to mention?
12:09 grondilu ok thks, this comment is usefull since I don't know the "git" tool very well.
12:11 pugssvn r31780 | colomon++ | [t/spec] Some simple tests of Real.rand.
12:11 grondilu ahh it seems that I need svn.
12:11 grondilu would apt-get install subversion be fine ?
12:11 moritz_ grondilu: yes
12:11 frettled yup
12:11 moritz_ grondilu: the README has a list of debian packages that you need
12:12 moritz_ works on Ubuntu too
12:13 grondilu ok, I' m installing libicu-dev and subversion
12:13 Kodi joined #perl6
12:14 frettled My only complaint is that README is in POD format, which is kindof annoying when I expect a README to be readable with e.g. "less".
12:14 colomon rakudo: say 3.1 ~~ 1...4
12:14 moritz_ well, it's still readable as plaintext
12:14 dalek joined #perl6
12:14 p6eval rakudo c41217:
12:14 p6eval ..OUTPUT«011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…
12:14 moritz_ colomon: watch your precdece :-)
12:15 frettled moritz_: it's messy as plaintext
12:15 colomon that was somewhat unexpected.  :)
12:15 frettled moritz_: I'd prefer: mv README{,.pod}; pod2text README.pod > README  # :)
12:15 moritz_ rakudo: say True.succ.perl
12:15 p6eval rakudo c41217: OUTPUT«Bool::True␤»
12:15 colomon rakudo: say 3.1 ~~ (1...4)
12:15 p6eval rakudo c41217: OUTPUT«0␤»
12:15 colomon rakudo: say 3 ~~ (1...4)
12:15 tadzik Pseudo-assignment to an attribute declaration specifies the default value. The value on the right is treated as an implicit closure and evaluated at object build time, that is, when the object is being constructed (says S12)
12:15 p6eval rakudo c41217: OUTPUT«0␤»
12:16 moritz_ frettled: works for me. Just submit a patch that builds the README during 'make', and I'll apply it
12:16 tadzik so has $.required = die ("ASD") should work,no?
12:16 moritz_ right
12:16 colomon moritz_: I think True.succ ought to fail.  (I think it's following spec at the moment, though?)
12:16 tadzik hmm
12:16 frettled moritz_: ok
12:16 grondilu one question :  will I be able to "make install" safely ?  I mean :  it won't overwrite my existing perl5 installation, right ?
12:17 Juerd wolverian: Please clean your feather homedir
12:17 moritz_ grondilu: right
12:17 Kodi This issue of the mutability of DateTimes is ugly.
12:17 phenny Kodi: 09:29Z <masak> tell Kodi this spectest run looks good. might be I should've run 'make install' last time, because this time I got "Unable to find module 'DateTime::strftime' in the @*INC directories." and 'make install' fixed that.
12:17 phenny Kodi: 09:43Z <masak> tell Kodi patch pushed. Kodi++
12:17 moritz_ grondilu: it will install into rakudo/parrot_install/
12:17 Kodi Yayness!
12:17 tadzik rakudo: class A { has $.b = die("OH NOES"); }; my $f = A.new;
12:17 p6eval rakudo c41217: OUTPUT«OH NOES␤  in <anon> at line 22:/tmp/3vHKQ5wSJT␤  in main program body at line 22:/tmp/3vHKQ5wSJT␤»
12:17 tadzik hmm
12:17 Juerd (Others who should clean their homedirs, but appear not to be on irc, are: andara, ayrnieu, nemux, fibonaci, viklund, jafelds, rafl)
12:17 moritz_ grondilu: so to use the perl6 executable, please put the rakudo/parrot_install/bin directory into $PATH
12:18 grondilu ok
12:18 Juerd I'll probably just tar those homedirs.
12:18 masak Kodi: have you backlogged? if not, I can provide you a link with the relevant backlog.
12:19 jnthn rakudo: class A { has $.b = die("OH NOES"); }; say "alive" # doesn't blow up
12:19 p6eval rakudo c41217: OUTPUT«alive␤»
12:19 moritz_ Juerd: iirc jafields is occasionally on IRC with the nick 'Wolfman2000'
12:19 Kodi masak: Yeah, I just read it.
12:19 Juerd [Coke]: I tarred your ~/sandbox
12:19 moritz_ Juerd: and rafl is on irc.perl.org.. I can contact him if you want
12:19 Juerd moritz_: Oh, please do so :)
12:19 masak Kodi: I, moritz_, and pmichaud vote for immutability. what do you think?
12:20 * grondilu is doing "perl Configure.pl --gen-parrot"
12:20 Kodi masak: I'm actually not firmly against making DateTimes immutable. I just… I don't see why it would be useful. You shouldn't use DateTimes as hash keys or store them in databases; they're too big and they'll likely include functions (timezones), so they'll be difficult, at best, to serialize.
12:20 masak Kodi: the argument about container mutability doesn't quite cut it, because if the object attributes can change, then hash keys etc might be invalidated.
12:21 dalek rakudo: 10a2585 | moritz++ | README:
12:21 dalek rakudo: [README] shorten section on binary packages, and refer to the website instead
12:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/10a25850f6dcf0acbfc5c64c681362e98dc5a187
12:21 Kodi masak: Yeah, there, I was just talking about +=, etc.
12:21 masak ok.
12:21 moritz_ rakudo: my $x =3; $x += 5; say $x #hey, Int is immutable too
12:21 p6eval rakudo c41217: OUTPUT«8␤»
12:22 Kodi masak: I say that when people feel themselves wanting an immutable DateTime, they should actually use an Instant.
12:22 moritz_ Kodi: the question is more, if you use the same DateTime in two places, and one of them is modified, will they be surprised to find that it's also changed in the other place?
12:23 Kodi moritz_: Good point. I guess that would be surprising. It helps that Perl 6 has a builtin clone method.
12:23 Juerd moritz_: s/DateTime/Int/, and no
12:23 Juerd moritz_: So what's so different about DateTimes that makes it okay to take away their mutability?
12:24 Juerd I think that's the correct approach to answer if immutability is a good idea :)
12:24 wolverian Juerd: will do.
12:24 moritz_ Juerd: I see it the other way round: immutability has lots of advantages
12:24 Kodi Juerd: The idea is that, currently, DateTime is actually the odd one out by its mutability. I think.
12:24 Juerd If you don't ask what's *different*, then you should at least ask the same questions for other datatimes, and perhaps even make those immutable.
12:25 Juerd s/times/types/
12:25 nimiezko joined #perl6
12:25 moritz_ what's different is that it's harder to build the right DateTime object from the start, including timezone etc.
12:25 Kodi moritz_: What are the other advantages of immutability?
12:25 moritz_ that's why it was mutable to begin with
12:25 sorear Would it be OK for *.perl to return a Cat?
12:26 moritz_ Kodi: fewer surprises, no need to for locking in threads, easier to cache
12:26 wolverian Juerd: done.
12:26 huf a cat is fine too?
12:26 moritz_ Juerd: rafl reports on #perlde that he just cleaned up his home dir
12:27 Juerd wolverian: Thank you
12:27 Juerd moritz_: Great. Please relay my thanks :)
12:28 Kodi moritz_: I see. Largely issues at a lower level than I tend to think in. :) Well, public opinion seems against me, so I guess we should go with immutability. No guarantees I could change the the spec and the implementation in time for Rakudo *, though.
12:29 colomon sorear: you mean, for a .perl method (all .perl methods?) to return a Cat?
12:29 sorear colomon: yes
12:30 colomon my initial thought would be yes, but I'm pulling up the spec in another window.
12:30 moritz_ if a Cat works in eval() and say(), why not?
12:30 colomon okay, honestly, my initial thought was "sorear has working Cats!?!!!!"
12:30 moritz_ colomon: mine too :-)
12:31 moritz_ 14:29  * rafl bedankt sich bei Juerd!
12:31 bluescreen joined #perl6
12:31 goksie joined #perl6
12:31 colomon S03 says "Perlish representation of any object", don't see why that would have to be a Str as long as it was Stringy
12:31 colomon sorry, S02
12:32 Kodi masak: So long as we're all bikeshedding about Temporal, though, let me at least bring up one thought I had from the beginning. Shouldn't there be a TimeOfDay class, such that a DateTime is just a Date + a TimeOfDay?
12:32 masak Kodi: there can't be.
12:32 Kodi masak: Why not?
12:32 masak well, not with proper limit checking, at least.
12:33 masak and it quickly gets very tricky with time zones and stuff.
12:33 colomon though I guess the question of whether it then makes sense to return an infinite representation for an infinite list .perl is kind of weird, unless eval is smart enough to handle Cats lazily
12:33 moritz_ date length depends on the exact day
12:33 masak Kodi: I agree that the assymmetry is disturbing, but I've concluded that it has to be this way.
12:33 Kodi moritz_: But DateTime already doesn't check for leap seconds.
12:33 masak Kodi: dates can exist without times, but not the other way around.
12:33 nimiezko rakudo : my @x = 'A'..'ZZ' ; say @x.perl ;
12:33 masak Kodi: right. and whether DateTime should check for leap seconds is a tricky issue, to.
12:33 masak Kodi: I'd argue it should.
12:33 * grondilu is running "make"
12:34 Kodi masak: Oh, boy.
12:34 masak Kodi: since it represents "civil time".
12:34 frettled masak: well, actually, time-of-day can exist without a day, but it then becomes a very basic class without any of the date baggage
12:34 nimiezko rakudo: my @x = 'A'..'ZZ' ; say @x.perl ;
12:34 Kodi masak: In fact, I've realized that whether or not DateTime recognizes them explicitly, leap seconds will need some kind of support in Perl 6, in order for Instants to work.
12:34 masak frettled: right. it's just three values.
12:34 p6eval rakudo c41217: OUTPUT«["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX",
12:34 p6eval .."AY", "…
12:34 masak Kodi: that is correct.
12:35 alexm left #perl6
12:35 mathw TIME IS HARD
12:35 nimiezko rakudo: my @x = 'A'..'BB' ; say @x.perl ;
12:35 masak Kodi: it's one of those "my, what have we started?" slippery slope thingies.
12:35 frettled masak: yup, which is kindof useful, but whether it's useful to let DateTime inherit from that class is something else entirely
12:35 p6eval rakudo c41217: OUTPUT«["A", "B"]␤»
12:35 skids joined #perl6
12:35 masak frettled: inherit?! heaves, no!
12:35 frettled Kodi: and it's (very nearly) all my fault ;)
12:35 masak s/heaves/heavens/
12:35 nimiezko rakudo: my @x = 'AA'..'BB' ; say @x.perl ;
12:35 frettled masak: heaves, too.
12:35 p6eval rakudo c41217: OUTPUT«["AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB"]␤»
12:35 masak frettled: :)
12:36 masak frettled: a DateTime is not a TimeOfDate in any universe.
12:36 masak frettled: nor is it a Date.
12:36 frettled or a date
12:36 whiteknight joined #perl6
12:36 moritz_ Juerd: fyi, the discussion with rafl lead to tinita++ stating that her account could be removed too. I've done that now.
12:36 masak (slight lag over here. punchlines may be delayed)
12:36 colomon rakudo: my @x = 'AA'...'BB' ; say @x.perl ;
12:36 [Coke] http://github.com/rakudo/rakudo/commit/ac0987ce1842194acb613428b6aabcaa476bbce9
12:36 p6eval rakudo c41217: OUTPUT«["AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB"]␤»
12:37 Juerd moritz_: Great, thanks
12:37 nimiezko rakudo: my @x = 'A'..'BB' ; say @x.perl ;
12:37 p6eval rakudo c41217: OUTPUT«["A", "B"]␤»
12:37 Kodi masak: Wouldn't it make sense for TimeOfDay to be fairly simple-minded, like Date, and have DateTime check if the combination is valid?
12:37 Juerd moritz_: I'm also removing all accounts of which the homedirs were last modified < 2008-01-01
12:38 nimiezko rakudo: my @x = 'A'...'BB' ; say @x.perl ;
12:38 p6eval rakudo c41217: OUTPUT«["A", "B"]␤»
12:38 moritz_ Juerd: +1
12:38 masak Kodi: give me a use case for TimeOfDay.
12:38 Juerd moritz_: Still pondering 2008
12:39 masak (that's also *not* a use case for DateTime)
12:39 [Coke] http://www.reddit.com/r/programming/comments/crybo/rakudo_stars_really_really_r
12:39 moritz_ masak: a calendar app, that schedules a meeting at 7am at certain days
12:39 * Juerd read "give me a use case for TimToady" instead of "... TimeOfDay"
12:39 nimiezko hum, there is an idiosyncrasie with 'A'..'ZZ'
12:39 Kodi masak: I'm writing a module for parsing stuff like "4:15", "may 5", or "2:00 tomorrow". So you'd want parse-timeofday, parse-date, and parse-datetime functions.
12:40 Juerd ambs.tgz automatist.tgz boogie.tgz bynari.tgz castaway.tgz cognominal.tgz edenc.tgz fonkie.tgz gerrit.tgz hjertnes.tgz jjore.tgz jmb.tgz kingd.tgz lumi.tgz markov.tgz merlyn.tgz mrborisguy.tgz ovid.tgz plural.tgz pmc.tgz ppillai.tgz robkinyon.tgz ryan.tgz smash.tgz snowstalker.tgz spo0nman.tgz vladtz.tgz zigdon.tgz
12:40 masak ugh, as little parsing in core as possible, please.
12:40 Kodi masak: No, I don't mean a core module!
12:40 masak ISO-8601 yes, other things no.
12:40 Juerd If your name is in this list, your feather account has just been removed. If you want your data or account back, let me know :)
12:40 Kodi masak: I mean something you'd get with proto/pls.
12:40 masak Kodi: isn't it possible that if someone writes a time parsing module, that they'll also want their own custom Time class?
12:41 moritz_ Kodi: +1 to an external module
12:41 masak Kodi: it's a bit of "Time is so easy to implement. let's not"
12:41 * [Coke] backscrolls enough to see that rakudo evalbot came back. yay, not the release.
12:41 moritz_ [Coke]: the evalbot had a problem with rebuilding and the bytecode version bump
12:42 moritz_ which I basically solved with rm -rf
12:42 rgrau_ joined #perl6
12:42 [Coke] Juerd: hokay, no problems.
12:42 tadzik hmm. Reading through S12, I see that the BUILD method does not exactly the same as in Moose. Is there any easy way to do some post-creation operations, without writing BUILD yourself, initializing parameters and stuff?
12:42 * [Coke] apologizes for the pasting of the cut urls from backscroll. whoops.
12:43 Kodi masak: I see the value of Temporal stuff that ships with Perl 6 as preventing people from making three different modules that do basically the same things. But yeah, parse-time could just return a (hour, minute, second) list. Or there could be an external DayOfTime module. Whatever!
12:43 masak seems we agree.
12:43 masak yay for list of three Ints.
12:44 masak you could even do a :hour, :minute, :second hash, and then pass it right into a DateTime constructor.
12:44 * [Coke] figures out what a blorst is!
12:44 [Coke] what a horrible name! =-)
12:44 moritz_ block or statement
12:44 moritz_ rakudo: say BEGIN 3;
12:44 p6eval rakudo c41217: OUTPUT«3␤»
12:44 moritz_ rakudo: say BEGIN { 3 };
12:44 p6eval rakudo c41217: OUTPUT«3␤»
12:44 Kodi masak: Right. Well, I don't disagree *enough* to keep arguing. So let's leave it at that. :)
12:45 moritz_ BEGIN expects eitehr a block or a statement. That's what blorst parses
12:45 moritz_ Kodi++ # non-bikesheddy temporal discussions
12:45 masak Kodi: choosing battles. fair enough. back to immutability, then. :)
12:46 Kodi moritz_++ # charitable interpretation of my bikeshedding
12:46 Kodi masak: Yeah. Um. I guess I'll change the spec and then submit another patch. Someday?
12:46 masak [Coke]: the name 'blorst' was even defended on p6l at one point as reminding someone of 'borscht'. :P
12:47 masak Kodi: submit it to me next time, and we might do a coup together by patching Rakudo at the same time. :)
12:47 jnthn omnomnom borsch
12:47 * grondilu has successfully compiled perl6.  Thanks !
12:47 Kodi masak: Sneaky. I like it.
12:47 jnthn I think at one point folks wanted to call them "blast" (block, alternatively statement) so we could have phaser blasts though :-)
12:48 [Coke] *eye roll*
12:48 [Coke] I could use some borscht.
12:48 masonkramer joined #perl6
12:48 sorear jnthn: they are called blast in STD.pm6
12:48 Kodi masak: What's, like, the latest I could submit a patch and see it in Rakudo *? The 27th?
12:48 moritz_ jnthn: I think in STD.pm they are still blasts
12:48 jnthn Oh blast!
12:49 moritz_ Kodi: depends. We might base Rakudo Star on the compiler release from this Thursday
12:49 masak Kodi: might be tomorrow. might be 27th.
12:50 * [Coke] needs to do a dry run of the release tonight.
12:50 [Coke] to avoid the issues he had with parrot. :P
12:50 Kodi Hm. Well, I guess we'll see what I can do.
12:50 frettled moritz_: patch coming up, just double-checking
12:50 masak [Coke]: issues?
12:50 * mathw needs to write some documentation
12:53 [Coke] masak: mainly that my laptop is slow, and to do the release, I had to build about 4 times, and fulltest 2x.
12:53 [Coke] made everything bumpier.
12:53 mathw ouch
12:54 [Coke] (once in build dir, once from tarball, extra builds for stupidity and rebuilding the PBC files.)
12:54 [Coke] still, it was all just following directions.
12:55 [Coke] perhaps we could write a release bot. =-)
12:55 Kodi left #perl6
12:58 masak releasebot++
12:59 masak [Coke]: now you've conceived it. the thought cannot be un-thunk :)
13:00 goksie joined #perl6
13:01 masak so, what's the plan for the next blog post to make reddit, after "Perl 6 10 years" and "Rakudo really really release ready"? :)
13:01 jnthn .oO( is unthunking a type of optimization, like inlining? :-) )
13:01 mathw "Rakudo * Released"
13:01 masak we have time to squeeze one or two in before Rakudo Star releases.
13:01 daxim DOMINATE ME PERL 6 comes out of the closet?
13:01 masak daxim: I giggle each time I see that guy's comments.
13:01 masak it's immature and unnecessary, but I find it funny, too.
13:02 daxim it's a game of chicken who will lose his cool first
13:04 frettled masak: "Rakudo really released, like, really Perl 6, now"
13:04 smash__ joined #perl6
13:04 pmurias jnthn: removing thunks speeds the code up
13:04 frettled oops, forgot the star.
13:04 smash__ hello everyone
13:05 masak frettled: you mean for tomorrow? that feels slightly disingenious.
13:05 masak oh, star.
13:05 moritz_ smash__!
13:05 masak frettled: yeah, but before that?
13:05 masak I want to whipe Reddit into a frenzy for Rakudo Star. :P
13:05 frettled masak: oh.  "Rakudo development folds"?
13:05 masak smash__! \o/
13:05 masak frettled: would that be like, small brochures, or a foldable table or something?
13:06 frettled masak: perhaps the wrong effext?  ;)   "How Rakudo * stole Christmas"
13:06 frettled Americans love Dr. Seuss references, right?
13:06 smash__ masak++ # Perl 6 anniversary post http://3tl5.sl.pt
13:06 masak smash__: thanks :)
13:07 masak frettled: I like the way you're thinking :)
13:07 goksie joined #perl6
13:08 tadzik oh, jnthn, folks on the workshop were asking: does Zavolaj work for C++?
13:08 jnthn masak: Did you mean whip? ;-)
13:09 masak jnthn: oops, yes. whip.
13:10 jnthn tadzik: Well, it just knows how to look up symbols and call them. I guess the problem in C++ is they're name-managled.
13:10 tadzik mhm
13:10 jnthn tadzik: Anyway, I didn't try it and I'm not aware of anyone else who has.
13:10 jnthn tadzik: There's also the issue that I know rather little about C++ :-)
13:11 tadzik :)
13:11 jnthn masak: Wonder if a "Ten handy built-ins you can try out in Rakudo *" thing could work...like pick some interesting ones.
13:11 jnthn Like .pick, .classify, etc
13:12 jnthn Maybe too boring though
13:12 masak with the right spin, not too boring.
13:12 daxim check my reply for factual correctness:  http://use.perl.org/comments.pl?sid=44971&amp;cid=72181
13:12 masak but you'd need to call it something like "Why Perl 6 kicks butt: 10 builtins"
13:13 moritz_ maybe not ten... strains the average redditer's attention span too much
13:13 masak five :)
13:13 moritz_ pick, classify, sort (with its automagic translations...)
13:13 moritz_ still 2 missing
13:14 jnthn Worth mentioning with sort this breifly that min and max are also magical in the same way
13:14 * sorear decides CIL - and with it having to do all type resolution myself - is too much work for too little gain
13:15 synth joined #perl6
13:15 * sorear decides multisubs are necessary soon, in the name of infix:<~>
13:16 pmurias niecza: say 1+2
13:16 p6eval niecza 3aa3ff8: OUTPUT«error CS0006: cannot find metadata file `Kernel.dll'␤Compilation failed: 1 error(s), 0 warnings␤"gmcs /r:Kernel.dll /r:Setting.dll Program.cs" unexpectedly returned exit value 1 at (eval 445) line 13␤ at niecza_eval line 44␤»
13:16 * au|irc praises decisive decisions in general :)
13:17 sorear oh dear.
13:17 takadonet niecza: say 'omg'
13:17 p6eval niecza 3aa3ff8: OUTPUT«error CS0006: cannot find metadata file `Kernel.dll'␤Compilation failed: 1 error(s), 0 warnings␤"gmcs /r:Kernel.dll /r:Setting.dll Program.cs" unexpectedly returned exit value 1 at (eval 445) line 13␤ at niecza_eval line 44␤»
13:17 pmurias mildew: say 1
13:17 pmichaud joined #perl6
13:17 p6eval mildew:  ( no output )
13:17 pmurias :(
13:17 takadonet rakaudo: say 'plz work'
13:18 pmurias sorear: how's you App::Persistent replacement doing?
13:18 masak moritz_: I really like max=
13:18 sorear pmurias: you've addressed the showstopper issues with App::Persistent, now I'm waiting for the non-showstoppers to be resolved
13:18 takadonet rakudo: say 'need to stop doing stupid mistakes....'
13:18 p6eval rakudo 10a258: OUTPUT«need to stop doing stupid mistakes....␤»
13:18 wolverian joined #perl6
13:19 masak moritz_: also, infix:<Z> and infix:<X>.
13:19 moritz_ masak: I kinda like Z=>
13:19 sorear moritz_: what's the most recent cron build error for niecza?
13:19 masak moritz_: oh, indeed.
13:19 masak moritz_: that's the operator we didn't know we needed :P
13:20 frettled moritz_: patches away
13:20 moritz_ masak: it was always available as >>Z<<, which was ugly
13:20 masak yet another blog post name suggestion: "Here's why you will drool over Perl 6: a couple of built-ins"
13:20 pmurias sorear: what are the non-showstoppers?
13:20 moritz_ frettled++
13:20 masak moritz_: er, >>[=>]<<, right?
13:20 moritz_ masak: right
13:20 frettled masak: s/Perl 6/Perl 6 and Rakudo */ ?
13:20 moritz_ sorear: it pulled, had some upated, then
13:20 masak frettled: right, thanks.
13:21 moritz_ gmcs /target:library /out:Kernel.dll Kernel.cs
13:21 moritz_ Already up-to-date.
13:21 moritz_ gmcs /target:library /out:Kernel.dll Kernel.cs
13:21 masak frettled: and we end with "it ships Tuesday".
13:21 moritz_ re-running make now
13:21 masak wow, that's a pretty nice concept actually. almost not works, just code examples for each cool thing. and at the bottom, "it ships Tuesday".
13:21 jnthn I hope it works. :P
13:22 masak we should totally check that.
13:22 jnthn masak: Sounds nice way to end it
13:22 jnthn And yes, code focus
13:22 frettled masak: yep, really nice concept
13:22 * masak writes it
13:22 jnthn masak++
13:22 frettled (++)++
13:22 masak recursion++
13:22 smash__ recursion can be evil
13:23 Juerd joined #perl6
13:24 moritz_ there's nearly nothing that can't be evil
13:24 su_penguin joined #perl6
13:24 masak smash__: I think recursion has a mostly bad rep because of the possible infinity. people don't like looking down a well and seeing the Infinite stare back at them.
13:24 * [Coke] strokes his goatee.
13:26 su_penguin_ joined #perl6
13:26 smash__ masak: true
13:26 nothingmuch joined #perl6
13:26 dalek joined #perl6
13:27 frettled masak: sub recursion() { recursion++ }
13:28 masak frettled: :)
13:28 Maddingue joined #perl6
13:28 masak frettled: so *that's* why recursion never got any karma...
13:28 frettled Exactly!
13:29 moritz_ niecza: say 1 + 2
13:29 p6eval niecza 4aabaad: OUTPUT«3␤»
13:30 sorear moritz_: Huh.  Is it something I could fix?
13:31 moritz_ sorear: no idea. I pulled again, ran make again, it worked.
13:32 * mathw likes recursion, but then he did learn it as a Haskell programmer
13:33 masak dan++ in Januray 2003: "the big problem is the rebirth of Threads That Will Not Die on perl6-language, rising from the slightly damp outline of the horse pounded into the pavement." http://www.sidhe.org/~dan/blog/archives/000116.html
13:34 mathw :)
13:34 mathw Mind you, back then I probably wasn't helping
13:34 mathw I remember some discussions about the thing that eventually ended up being <...> and «...»
13:35 masak <...> and «...» have that "strangely consistent" feel to it. they parallel ' and ", and q[] and qq[].
13:37 dalek joined #perl6
13:37 moritz_ should we force uniform URLs for perl6.org, ie redirecting www.perl6.org to perl6.org (or the other way round)?
13:37 masak moritz_: what's the disadvantage of not doing that?
13:38 sorear What about sandbox.rakudo.de?
13:39 moritz_ masak: nothing drastic, just not having a 1-to-1 mapping for URL and content
13:39 mathw masak: yes I remember liking that parallel very much at the time. I still do :)
13:39 moritz_ sorear: try.rakudo.org is more or less being worked on
13:40 masak if I have %h = foo => [1, 2, 3], bar => [4, 5, 6], baz => [7, 8, 9]; and I do %h{*}[1], what should I get?
13:40 daxim yes, set up such a redirect, and the "other way around", please; i.e. get rid of www.
13:41 moritz_ masak: a dispatch error, probably
13:41 moritz_ I kinda expect %h{*} to return the whole hash
13:41 moritz_ not jus the values
13:42 liev joined #perl6
13:42 masak right, so there's no XPath-like branching of indexing going on.
13:42 moritz_ maybe that expectation is wrong, though
13:42 * liev is Juerd
13:42 liev (abusing a bot)
13:42 masak same for arrays I guess.
13:42 liev Does anyone currently have a shell on feather? I can't log in and wonder what's going on.
13:43 * moritz_ not
13:43 tadzik joined #perl6
13:43 moritz_ masak: might be worth checking S09 (and/or TimToady) though
13:43 uniejo joined #perl6
13:43 moritz_ liev: looks like high system load
13:43 masak moritz_: nod.
13:43 [Coke] liev: I got prompted for a password on ssh... and mistyped it and now it's hanging.
13:43 liev How high? :)
13:44 liev [Coke]: That's about as far as I get, only I used the right password ;)
13:44 * moritz_ used ssh key, and is also hanging on login
13:44 moritz_ which is what typically happens if there's much disc IO going on
13:44 liev I left it running with the rm -rf of audreyt's Maildir, and a tar
13:44 knewt2 joined #perl6
13:45 liev It's pretty broken if it can't handle even that
13:45 sorear Wait.
13:45 sorear According to STD, ~ has list associativity
13:45 sorear How does multi dispatch work for a call like that?
13:45 masak moritz_: seems the implicit rule in S09 is that there might only be a run of * indexings at the very end of a chain of indexings.
13:46 masak moritz_: and it's unclear whether this goes only for [;;;] or for [][][] too.
13:46 moritz_ masak: ... unless you use **, presumable
13:46 masak right.
13:46 moritz_ s/e$/y/
13:47 frettled liev: ouch, I logged out earlier, although I usually stay logged in.
13:47 frettled liev: I get the MOTD, but it's not provided me with a prompt yet.
13:47 liev My ssh just gave up
13:47 liev Write failed: Broken pipe
13:47 liev But my irssi is still running and replies to pings.
13:48 mathw rakudo: my @a = <a b c>; my @b = <1 2 3>; my @c = <A B C>; (@a Z @b Z @c).perl.say;
13:48 p6eval rakudo 10a258: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:()␤:(Any $lhs, Any $rhs)␤␤  in main program body at line 22:/tmp/MBMl4IO1_K␤»
13:48 mathw Q: is that supposed to work, if it's not, is it known?
13:48 liev Quick poll: should I reboot feather?
13:48 moritz_ masak: yes
13:49 moritz_ liev: I don't mind. The subversion is still responsive
13:49 liev The current problem is so weird :)
13:49 liev Some things work, some don't.
13:50 frettled maybe the root disk is flaking out
13:50 frettled Nothing's happened with my ssh login in four minutes.
13:51 liev frettled: feather1 is a virtual machine. It runs on feather0, which still works perfectly
13:51 liev It's not even doing that much with its disks at the moment.
13:51 liev It's reading at about 1.5 MB/s and writing at 0.5 MB/s
13:51 frettled liev: was that a xen based thingy?  I've seen xen flaking out like that occasionally here, too.
13:51 liev Yes
13:51 frettled It's one of the reasons I've never put it into production.
13:51 liev I've never seen something like this before
13:52 frettled It happens once every few months with the remaining VM I'm running.
13:54 liev Hm
13:54 takadonet rakudo: my @a = <a b c>; my @b = <1 2 3>;  (@a Z @b).perl.say;
13:54 liev Okay, dalek's ping timeout convinces me to reboot feather
13:54 p6eval rakudo 10a258: OUTPUT«("a", "1", "b", "2", "c", "3")␤»
13:55 liev /dev/xvda2 has gone 280 days without being checked, check forced.
13:56 moritz_ fun.
13:56 frettled heh
13:56 frettled liev: perhaps a minor tune2fs -i 0 -c 0 is appropriate ;)
13:56 liev Nah, these checks exist for a reason
13:56 frettled yes, to delay boot times ;)
13:57 liev I think that's okay, once every this many days.
13:57 liev /dev/xvda3 has gone 280 days without being checked, check forced.
13:57 frettled But that's one of the really nice things about VMs: you can fsck a copy of the disk image while the image is running elsewhere.
13:57 liev That *could* be done, yes.
14:00 liev frettled: fsck found errors and corrected them. The check is useful.
14:00 pmichaud_ joined #perl6
14:00 pmichaud_ good morning, #perl6
14:00 liev Hi pmichaud_
14:00 mathw oh hai
14:00 colomon o/
14:00 liev I'm Juerd, abusing an irc bot.
14:01 colomon double gather!!!! \o/
14:01 mathw rakudo: my @a = <a b c>; my @b = <1 2 3>; my @c = <A B C>; (@a Z @b Z @c).perl.say;
14:01 moritz_ .oO( is bot abuse a criminal offense in .nl? )
14:01 liev pmichaud_: feather crashed under heavy load; exact cause is unknown. It's fsck'ing now.
14:01 p6eval rakudo 10a258: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:()␤:(Any $lhs, Any $rhs)␤␤  in main program body at line 22:/tmp/XkcSJs7NTU␤»
14:01 frettled liev: depends on the circumstances.  When you have a filesystem that needs to be running all the time, there is no time for an fsck during reboot, unless it's a very small filesystem.
14:01 liev frettled: This is not the case.
14:02 pmichaud_ liev: I figured something like that was the case.
14:02 frettled liev: not in the case of feather, no, but in the case of multi-terabyte filesystems, fsck can take _days_ to complete
14:03 frettled …so I personally prefer filesystems where the consistency checks are not based on fsck.  Unfortunately, I don't get to play with them.  :(
14:03 sorear no such beast exists
14:03 frettled sorear: WAFL and ZFS
14:03 colomon rakudo: my @a = <a b c>; my @b = <1 2 3>; my @c = <A B C>; ((@a Z @b) Z @c).perl.say;
14:03 p6eval rakudo 10a258: OUTPUT«("a", "A", "1", "B", "b", "C")␤»
14:04 sorear frettled: if you think they don't use fsck, you're misunderstanding it
14:04 sorear modern file systems do not need fsck *after power failures*
14:04 frettled sorear: They don't use fsck as we understand it with ext{2,3}, no.
14:04 sorear if you want to get a disk running after uncharacterized data corruption?  yes, fsck time
14:05 sorear your fs driver is crashing and you suspect data corruption?  fsck
14:05 frettled ZFS doesn't have an fsck-like utility.
14:06 frettled ZFS does, however, perform online autocorrection for some categories of data corruption.
14:06 frettled For more info, see e.g. http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq#HWhydoesntZFShaveanfscklikeutility
14:07 sorear autocorrection and consistency checks are not the same thing at all
14:07 frettled But as opposed to what we normally understand with "fsck", ZFS' "scrub" doesn't need to take the filesystem offline.
14:07 frettled sorear: quite.
14:08 frettled The point is that WAFL and ZFS are different beasts from those filesystems we run "fsck" on.
14:08 dalek joined #perl6
14:12 PerlJam joined #perl6
14:12 * pmichaud_ verifies that he did land in #perl6 and not #fswars
14:12 frettled (and sure, there are tools for WAFL to run a more or less complete filesystem integrity check, which was used to be called wack, now wafl_check or something like that)
14:12 tylercurtis joined #perl6
14:12 frettled pmichaud_: there's a war?  :)
14:13 moritz_ just an armed negotiation :-)
14:13 roy_ joined #perl6
14:13 liev Geen idee wat de hostname voor 0x77270588(119.39.5.136) is
14:14 frettled Why, there is hardly any threat of mutual total destruction at all.
14:14 frettled liev: inetnum:      119.39.0.0 - 119.39.255.255
14:14 frettled netname:      UNICOM-HN
14:14 frettled descr:        China Unicom HuNan province network
14:14 frettled e-mail:       abuse@chinaunicom.cn
14:14 frettled </spam>
14:17 sorear hmm.  builds are taking much longer now, not sure when this started.
14:17 Juerd joined #perl6
14:18 Juerd frettled: Multi-terabyte filesystems are a flawed design.
14:19 frettled Juerd: maybe :)
14:20 liev left #perl6
14:20 Juerd Oh.
14:20 Juerd Did I just start irssi without screen? :(
14:20 dalek niecza: 5e3712d | sorear++ |  (3 files):
14:20 dalek niecza: Move RAWCREATE to CgOp for a considerable improvement in lazy list speed
14:20 dalek niecza: review: http://github.com/sorear/niecza/commit/5e3712d20a1e1ed7e5534f23e24681e989577eb0
14:20 Juerd joined #perl6
14:23 plainhao joined #perl6
14:23 Juerd Apparently, deleting files is Hard.
14:25 Juerd 185k files left to delete
14:25 frettled It's not hard, but it's one of the more resource consuming operations in ext3.
14:25 moritz_ it's even worse on xfs, IME
14:27 frettled IIRC, ReiserFS touted quick file deletion.
14:28 frettled The problem in ext3 and XFS is — again, IIRC — that file deletion is a forced synchronous operation.
14:29 frettled ext4 is supposed to have a more efficient inode organization, which also allegedly speeds up file deletion.  I haven't tested it yet.
14:29 Juerd ext4 is faster for several operations
14:29 Juerd But I won't use it in production until dump supports it.
14:30 frettled See, now, there's an advantage to using rsync-based backups ;)
14:30 Juerd Yes, it works with any filesystem.
14:30 frettled almost any :)
14:30 Juerd That flexibility is expensive
14:31 Juerd dump accesses the raw device
14:33 frettled if you have a raw device, that is
14:33 frettled At work, we use rsync because of needed flexibility: the ability to more or less easily restore individual files, or sets of individual files.
14:33 Juerd Block device, not the actual bare metal :)
14:34 frettled And the backup server handles roughly 90 million inodes in 7.5 hours from three different fileservers without any performance hiccup on the fileservers.
14:34 Juerd I make a feather backup every 6 hours :)
14:34 frettled but of far fewer inodes than 90 million, I imagine
14:35 PerlJam rakudo: say 3 ~~ 0...4;
14:35 moritz_ at $previous_work we used an IBM storage manager for backup. Because... dunno. You didn't ask such questions $previous_work :-)
14:35 p6eval rakudo 10a258:
14:35 p6eval ..OUTPUT«011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…
14:35 moritz_ PerlJam: watch your precedence
14:35 Juerd frettled: Yes.
14:35 frettled moritz_: heh
14:35 PerlJam moritz_: aye.  But surely that result is a bug
14:35 moritz_ PerlJam: I kindly disagree. It behaves exactly as specced
14:36 moritz_ might be specbug, though
14:36 moritz_ it's a False as first argument
14:36 moritz_ calls .succ on it
14:36 moritz_ gets True
14:36 moritz_ calls .succ on it
14:36 moritz_ gets True
14:36 moritz_ etc.
14:36 moritz_ and each time it compares with cmp, and finds that it's smaller than 4
14:36 moritz_ so it continues, faithfully
14:37 frettled Juerd: but I'd really prefer to do it with COW :)
14:37 sorear well, there's a specstupid here in that Bool as an enum silently coerces to Int
14:37 moritz_ no, it does not
14:37 moritz_ it just compares like an Int
14:39 frettled Aha, so precedence is, pseudo-ish, like this: say (3 ~~ 0)...4
14:39 PerlJam frettled: yep
14:39 PerlJam 3 ~~ 0 is a Bool, and all of what moritz_ said happens
14:39 frettled That's a nasty precedence surprise.
14:40 masak decommute &
14:40 moritz_ frettled: not really. How often do you smart-match against a series, which doesn't do what you want anyway?
14:41 moritz_ ok, nasty, but not often occuring
14:41 PerlJam moritz_: how easy is it to confuse ... with ..  ?
14:41 mmcleric_ joined #perl6
14:41 moritz_ PerlJam: I don't. I don't know about others.
14:41 moritz_ it's like, not the same thing to me
14:42 PerlJam moritz_: sure ... but you know what you're doing  :)
14:42 moritz_ I know that perl 5 was more forgiving in this respect
14:42 moritz_ PerlJam: that's news to me :-)
14:42 mmcleric_ joined #perl6
14:43 frettled The surprise is probably in that .. has precedence over ~~, which has precedence over ...
14:43 PerlJam or, as I see it, from a newbie's perspective,  the difference between  3 ~~ 0..4 and 3 ~~ 0...4 is *quite* surprising.
14:43 frettled …and I now see that the HTML cheatsheet draft somehow has lost the ~~
14:43 paul1234 left #perl6
14:44 PerlJam This is one of those "different things should look different" areas for me.  (And a single extra dot isn't different enough)
14:44 moritz_ PerlJam: welll, even 3 ~~ (0...4) is going to surprise them
14:44 TimToady ahem  :)
14:44 TimToady it surprised me
14:44 moritz_ also 3.4 and 3..4 is quite different
14:44 PerlJam TimToady: indeed!  :)
14:45 moritz_ and it's also just one extra dot
14:45 TimToady nevertheless, I don't see how it can change from what it is
14:45 TimToady .. operators on two scalars
14:45 PerlJam moritz_: you got me there :)
14:45 TimToady ... operates on two lists
14:45 moritz_ it's programming. Every character counts. Period.
14:46 Juerd moritz_: Whitespace
14:46 moritz_ Juerd: also counts. Good point.
14:46 Juerd moritz_: But *more* whitespace doesn't do anything.
14:46 Juerd (Fortunately!)
14:46 sorear TimToady: Should ~ work on Cats?
14:46 moritz_ except when it does
14:46 moritz_ like, in quotes
14:46 Juerd moritz_: It doesn't. One or five hundred spaces, it's the same thing.
14:46 Juerd moritz_: Whatever is in quotes, has hardly anything to do with programming.
14:47 TimToady sorear: anything you do on a string that doesn't require knowing where the end is should work on a Cat
14:47 Juerd moritz_: It's just data that you never bothered to put elsewhere :)
14:47 sorear TimToady: STD specs that ~ has list associativity... how would that look as a Str/Cat overload?
14:48 cono TimToady: add please time methods to Int class, like in ruby :)
14:48 cono rakudo: use MONKEY_TYPING; class MyTime { has $!time; method ago { time-$!time }; }; augment class Int { method minutes { MyTime.new(time=> self*60 ) }; }; my Int $x = 5; say 5.minutes.ago
14:48 TimToady fortunately ~ is one of those operators where left assoc and list assoc come out to the same thing
14:48 p6eval rakudo 10a258: OUTPUT«1279722205␤»
14:48 pugssvn r31781 | jani++ | ~~ had mysteriously transformed into ~, fixified
14:48 * wolverian is annoyed that he can't link to e.g. the infix:<...> in S03 directly
14:48 TimToady so if you see a cat in the list, you just go lazy, I suspect
14:48 moritz_ Juerd: (iirc) more whitespace counts in the closing delimiter of a heredoc
14:49 sorear TimToady: so, type dispatch inside the slurpy-loop?
14:49 TimToady or just allow create a cat of cats/strs
14:49 Juerd moritz_: That's still within quotes as far as I like to interpret it.
14:49 sorear TimToady: oh, and always return a cat?
14:49 moritz_ Juerd: we could spend hours discussing that point
14:50 knewt2 joined #perl6
14:50 dalek joined #perl6
14:50 avar Are those test suite -> synopsis link thingies still being maintained (what are they called?)
14:51 TimToady sorear: if our strings were implemented as ropes, that's how it'd all work out anyway
14:51 avar there was a webapp somewhere that generated the synopsis with those backlinks, is that still up?
14:51 moritz_ avar: smartlinks. MOnstly maintained
14:51 moritz_ avar: perlcabal.org/syn/
14:51 TimToady shower &
14:51 moritz_ ie once every few month I update the let
14:51 frettled shower duck?
14:52 avar ah, thanks
14:53 * frettled heads home, but idles loyally.
14:55 mmcleric_ joined #perl6
14:57 zulon joined #perl6
14:58 PerlJam the precedence problem with 3 ~~ 0...4 would be more obvious I think if the LHS of ... needed at least 2 items.   3 ~~ 0,1...4  (at least the comma makes me want to ask about the precedence or put parens in to force it)
14:59 sorear TimToady: Are &infix:<~> and &cat synonymous?
15:00 felliott joined #perl6
15:02 alester joined #perl6
15:06 justatheory joined #perl6
15:06 Juerd moritz_: Definitely
15:07 tadzik how come "Method 'postcircumfix:<{ }>' not found for invocant of class 'Proxy'" appears after changes in the grammar?
15:07 TimToady sorear: I suppose they could be
15:08 moritz_ tadzik: probably an array or hash lookup failed
15:08 TimToady sorear: you have to understand that Cat was a massive handwave (and the rest of is wasn't, he asks? :)
15:08 tadzik ah, ok
15:10 Juerd Oh, .co was opened up
15:10 TimToady PerlJam: we can probably outlaw boolean tests on unparened list infixes, and catch most of those errors
15:10 Juerd Prepare for a new wave of phishing
15:10 Juerd (example.co/mindex.asp)
15:13 tadzik token dummyline { \s* <comment>? \n } -- shouldn't '\
15:13 tadzik …shouldn't '\n' be fitting this?
15:14 moritz_ rakudo: say ?("\n" ~~ / \s* <alpha>? \n/ )
15:15 p6eval rakudo 528bf6: OUTPUT«1␤»
15:15 PerlJam tadzik: paste the whole code?
15:15 moritz_ and it does
15:16 tadzik http://nopaste.snit.ch/22193
15:16 tadzik in token toplevel, if I change [ <dummyline> | \n ]+ parsing starts to fail
15:16 tadzik …if I change to <dummyline>+
15:16 sorear TimToady: that handwaveness is starting to become clear.  I can definitely make it run, but I'm not sure I can make it run quickly without a lot more thought, so I'll shelve it for now
15:19 tadzik PerlJam: any ideas?
15:19 PerlJam tadzik: I don't have a clue about that at the moment, but "token keyval" looks like it really wants to be "rule keyval" and be rid of those \s*
15:20 moritz_ <![;]> looks suspicious - should be '-' instead of '!'
15:21 moritz_ and looks like you should put dummyline and comment into a custom ws token
15:22 tadzik moritz_: <![;]> is 0-width, no?
15:23 moritz_ std: /<![;]>/
15:23 p6eval std 31781: OUTPUT«ok 00:01 116m␤»
15:23 moritz_ tadzik: yes, but not a character class... uhm, I'm surprised
15:23 tadzik pmichaud told me about this yesterday
15:23 moritz_ hm
15:23 tadzik and what do you mean, custom ws token?
15:23 moritz_ maybe I'm wrong after all
15:24 moritz_ if you have a 'rule something { ... }', all the whitespaces in that rule are notionally replaced to a call to <.ws>
15:24 moritz_ the default ws token is { <!ww> \s* }, where ww means "within word"
15:25 tadzik hmm
15:25 sorear TimToady: What's the difference between WHO and HOW?
15:25 moritz_ but in a grammar, you can provide your own ws rule, matchinig spaces, comments etc.
15:25 tadzik comments can't appear before keys, so they're not so good as ws tokens
15:25 moritz_ so
15:25 moritz_ [section]
15:26 moritz_ #foo
15:26 moritz_ bar = baz
15:26 moritz_ is forbidden?
15:26 moritz_ erm, s/#/;/
15:26 tadzik nope. But ;foo bar = baz cannot be
15:26 moritz_ tadzik: then change your comment rule to include the newline
15:26 tadzik at the end?
15:26 moritz_ yes
15:26 tadzik hmm, makes sense
15:26 moritz_ token comment { \; \N* \n }
15:27 moritz_ or ';', whatever you prefer
15:27 tadzik I can get rid of dummyline eventually
15:27 PerlJam tadzik: I'd probably make that one a rule too
15:27 PerlJam (comment)
15:29 tadzik ETOOMANYCHANGES, lemme fix this
15:29 PerlJam (but that's assuming you don't go with the custom ws rule like moritz_ said)
15:29 moritz_ it's exactly what custom ws rules are for :-)
15:30 tadzik ah snap, I was running tests with old rakudo
15:30 tadzik hope it didn't change much
15:31 * jnthn back
15:31 moritz_ welcome back jnthn
15:32 moritz_ jnthn: did you have any success with zavolaj?
15:33 jnthn moritz_: No - last night I needed to work on some urgent-ish $dayjob things.
15:33 jnthn moritz_: Can look this evening.
15:33 moritz_ ok
15:34 * colomon just needs to keep telling himself the purpose of p6l is to keep the dreamers from actually touching the language....
15:35 jnthn lol!
15:36 hugme joined #perl6
15:36 moritz_ hugme: add kthakore to ilbot
15:36 * hugme hugs kthakore. Welcome to ilbot!
15:36 Juerd Just so you know: backups have been disabled on feather1
15:37 Juerd So be careful ;)
15:37 Juerd They'll be re-enabled after migration
15:37 sorear so I need to remember not to sudo rm -rf /
15:37 sorear gotcha
15:38 Juerd Interesting way of shooting the messenger... +o...
15:40 proller joined #perl6
15:47 macroron joined #perl6
15:55 colomon rakudo: say (1 ... *) Z~ ('a' ... 'z')
15:55 p6eval rakudo 528bf6: OUTPUT«1a2b3c4d5e6f7g8h9i10j11k12l13m14n15o16p17q18r19s20t21u22v23w24x25y26z␤»
15:56 colomon \o/   # still happy that works now
15:57 takadonet wow
15:59 * moritz_ too
15:59 moritz_ and my favorite operator:
16:00 moritz_ my %h = ('a' ... 'z') Z=> (1 ... *); say %h.perl
16:00 moritz_ rakudo: my %h = ('a' ... 'z') Z=> (1 ... *); say %h.perl
16:00 p6eval rakudo 528bf6: OUTPUT«{"f" => 6, "g" => 7, "h" => 8, "i" => 9, "j" => 10, "k" => 11, "l" => 12, "m" => 13, "n" => 14, "o" => 15, "p" => 16, "q" => 17, "r" => 18, "s" => 19, "t" => 20, "u" => 21, "v" => 22, "w" => 23, "x" => 24, "y" => 25, "z" => 26, "a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" =>
16:00 p6eval ..5}␤»
16:01 moritz_ rakudo: my %h = ('a' ... 'z') Z=> (1 ... *); say 'f o o'.subst(/<alpha>/, { %h{~$_} }, :g);
16:01 p6eval rakudo 528bf6: OUTPUT«6 15 15␤»
16:01 jnthn rakudo: ([>>R~<<] ['a' .. 'z'], [ 1..26 ]).perl.say # because I can, dammit
16:01 p6eval rakudo 528bf6: OUTPUT«["1a", "2b", "3c", "4d", "5e", "6f", "7g", "8h", "9i", "10j", "11k", "12l", "13m", "14n", "15o", "16p", "17q", "18r", "19s", "20t", "21u", "22v", "23w", "24x", "25y", "26z"]␤»
16:02 moritz_ lol
16:02 colomon sure, grandpa, just keep on using those old hyper ops....
16:02 moritz_ if you do a R* in the operator...
16:02 takadonet so everyone is showing off their Perl 6 Kung fu?
16:02 jnthn colomon: :P
16:02 moritz_ takadonet: feels more like show dance to me
16:02 Juerd R?!
16:02 moritz_ reverse
16:02 moritz_ rakudo: say 2 R- 5
16:03 p6eval rakudo 528bf6: OUTPUT«3␤»
16:03 takadonet ?
16:03 colomon rakudo: say 2 R~ 5
16:03 p6eval rakudo 528bf6: OUTPUT«52␤»
16:03 takadonet ah
16:03 Juerd Is this useful?
16:03 colomon yes
16:03 PerlJam Juerd: yes!
16:03 takadonet rakudo: say 2 R+ 5
16:03 p6eval rakudo 528bf6: OUTPUT«7␤»
16:03 moritz_ Juerd: we had a use case when we first introduced it :-)
16:03 Juerd Was that recorded? :)
16:04 moritz_ yeah; check the IRC logs :-)
16:04 PerlJam Juerd: Do you think random stuff gets added to Perl 6 for no reason?  ;)
16:05 takadonet PerlJam: sometimes :P
16:05 colomon if nothing else, it can be really handy if you have two complicated expressions with an operator in the middle and want to see what happens if you quickly reverse them.
16:05 moritz_ we're far too post-modern to require reasons :-)
16:05 colomon it's also nice in conjunction with Xop
16:06 colomon rakudo: say 'a' ... 'e' X~ 'A' ... 'E'
16:06 p6eval rakudo 528bf6: OUTPUT«abcdeeBeCeDeE␤»
16:06 colomon rakudo: say ('a' ... 'e') X~ ('A' ... 'E')
16:06 p6eval rakudo 528bf6: OUTPUT«aAaBaCaDaEbAbBbCbDbEcAcBcCcDcEdAdBdCdDdEeAeBeCeDeE␤»
16:06 colomon there we go
16:07 TimToady rakudo: say [R~] 'a' ... 'z'
16:07 p6eval rakudo 528bf6: OUTPUT«zyxwvutsrqponmlkjihgfedcba␤»
16:07 moritz_ is that because R~ is right-assoc?
16:07 Juerd PerlJam: Yes, absolutely. I am often left with that impression :)
16:08 Juerd ;)
16:08 TimToady no, R specifically doesn't change the associativity
16:08 TimToady you can use reverse for that :)
16:08 colomon rakudo: say ('a' ... 'e') XR~ ('A' ... 'E') # R lets you switch where the capital goes without switching the fact that you handle all the 'a' pairs first
16:08 p6eval rakudo 528bf6: OUTPUT«AaBaCaDaEaAbBbCbDbEbAcBcCcDcEcAdBdCdDdEdAeBeCeDeEe␤»
16:09 colomon versus
16:09 colomon rakudo: say ('A' ... 'E') X~ ('a' ... 'e')
16:09 zulon joined #perl6
16:09 p6eval rakudo 528bf6: OUTPUT«AaAbAcAdAeBaBbBcBdBeCaCbCcCdCeDaDbDcDdDeEaEbEcEdEe␤»
16:09 PerlJam I can tell you some of these meta-ops initially make me think "why would I ever need that?" and then a few days later I'll be doing something and go "aha!  I could use the R meta-op to solve this problem easily here"
16:09 PerlJam s/make/made/
16:09 colomon which is pretty much the sort of thinking that got the Z meta-op added.  :)
16:10 moritz_ PSA: the IRC logs now support newest-first ordering for the plain-text view, for example http://irclog.perlgeek.de/text.pl?channel=perl6;date=2010-07-21;reverse=1
16:10 TimToady it helps that I'd been thinking about adding it for months though :)
16:10 moritz_ to safe the poor phone users from scrolling
16:11 colomon TimToady: ;)
16:12 cono joined #perl6
16:13 pmichaud joined #perl6
16:15 pmichaud good re-morning, #perl6
16:15 moritz_ rewb, or so :-)
16:16 cdarroch joined #perl6
16:16 cdarroch joined #perl6
16:16 jnthn o/ pmichaud
16:16 jnthn .oO( I think I missed the unre-morning )
16:16 pmichaud it's possible I didn't send it with the feather issues.
16:17 jnthn pmichaud: Also, I was probably either sleeping, at language class or distracted by $dayjob. :-)
16:21 timbunce joined #perl6
16:22 jnthn pmichaud: How's OSCON? You speaking soonish/spoken yet? :-)
16:22 eternaleye joined #perl6
16:22 pmichaud oscon is good so far.  I'm speaking in four hours.  I suspect I should at least update my slides in that time.  :)
16:23 jnthn :-)
16:23 jnthn About Rakudo Star?
16:23 pmichaud also, $dayjob took away some tuits last night and this morning.
16:23 tadzik token sheader   { '[' (\w+) ']' } -- any idea how to make $match<sheader> return "foo", not "[foo]"?
16:24 pmichaud tadzik: nyi, but eventually     token sheader { '[' <( \w+ )> ']' }
16:24 tadzik so far I'll have to regexp-extract it?
16:24 pmichaud jnthn: today is the "cool perl 6 stuff" talk.  Rakudo Star is friday's talk.
16:24 moritz_ you already have it in $match<sheader>[0]
16:24 pmichaud tadzik: you can get to it with $match<sheader>[0]
16:24 tadzik pmichaud: will slides be available?
16:25 pmichaud tadzik: definitely
16:25 pmichaud tadzik: you can see the yapcna version at http://pmichaud.com/2010/pres/yapcna-perl6/
16:25 moritz_ tadzik: but it's generally a good idea to build the desired data structure in action methods, so that you don't have to extract everything from the match tree
16:25 pmichaud (note that the actual talk only goes through the first section of slides -- I have far more slides than time for talking)
16:25 moritz_ tadzik: see the grammars/parsing json  example in the book
16:26 tadzik yeah, I'll have to go through this eventually. Is grammars chapter ok in the last build?
16:26 [Coke] so perl6 has cats, monkeys, and cows? freaky.
16:26 pmichaud [Coke]: and rats
16:26 moritz_ [Coke]: and kitchen sinks
16:26 moritz_ tadzik: should all work, yes
16:30 [Coke] Juerd: safe to unzip my sandbox and clean it out now?
16:31 tadzik hmm. If my grammar has token TOP { <something>* }, $match<something> will be an array. But why is it an array if I have TOP { <something>? }?
16:31 moritz_ because ? is also a quantifier
16:31 tadzik oh, ok
16:31 ashleydev joined #perl6
16:32 daxim http://software.opensuse.org/search?q=rakudo
16:32 daxim looks like at least for 11.3 there are fresh packages
16:33 tadzik \o/ # Config::INI can now parse my .gitconfig
16:36 ashleydev_ joined #perl6
16:43 moritz_ \o/ indeed
16:43 moritz_ tadzik: if it comforts you, I've gone through several "wtf doesn't this grammar work?" stages already :-)
16:44 moritz_ debugging grammars must be learned, just like debugging code
16:44 pmichaud joined #perl6
16:44 tadzik that's right
16:44 tadzik I feel tempted to write some other parser, just for practice
16:44 [Coke] moritz_: yah, but a "how to debug grammers" would be a great article. =-)
16:44 moritz_ [Coke]: good idea
16:44 tadzik [Coke]: shotgun programming is a nice method ;)
16:44 [Coke] tadzik: how about a parser for tcl's [binary] syntax? =-)
16:44 moritz_ tadzik: I did that too. Was fun.
16:45 tadzik [Coke]: sounds like fun! I may be able to finish it before Perl 7 :)
16:46 [Coke] http://www.tcl.tk/man/tcl8.5/TclCmd/binary.htm and http://github.com/partcl/partcl-nqp
16:47 tadzik parrot's Languages page needs more up-to-date implementations
16:47 tadzik most of them are beginned, and put out few years ago
16:47 tadzik (began?)
16:48 [Coke] tadzik: I'm working on it. help me out with partcl, we'll get it done faster. =-)
16:48 [Coke] it's (nearly) all written in NQP, so you'll get to use Perl6. =-)
16:48 tadzik I don't know tcl at all :)
16:49 [Coke] oh, that's ok, neither do i!
16:49 PerlJam [Coke]++
16:51 * moritz_ off to volleyball
16:51 [Coke] ooh, fun.
16:51 * [Coke] misses volley (and walley) ball.
16:52 perimosocordiae joined #perl6
16:53 pragma_ volleyball bores me to tears, especially when playing a casual social game.  pro games are only slightly less boring.
16:53 pragma_ now, basketball is a nice fast paced game that requires skill.
16:54 tadzik I don't fancy volleyball either, but I wouldn't mind going to play some ball instead of sitting home looking at the display
16:54 pragma_ volleyball is all the same one-two-spike moves over and over, unless you're playing a social casual game -- in which case, it's usually morons whacking the ball in random directions.
16:55 pragma_ basketball, on the other hand, has fluid and shifty dynamics where you have to ultimately focus on team coordination to pass and run around defenses
16:56 [Coke] pragma_: wow, you're right, I'm a tool! =-)
16:56 tadzik well, I don't like volleyball just because of its repeatidness, catch the ball, bump, smack to the opponents' side. However, table tennis is even more repeating and I like it
16:57 pragma_ to watch table tennis or to play i?
16:58 tadzik to play
16:58 tadzik watching might be boring
16:58 tadzik (hmm, so maybe playing voleyball is fun too)
16:59 ashleydev joined #perl6
17:01 ab5tract joined #perl6
17:03 dukeleto joined #perl6
17:03 ashleydev_ joined #perl6
17:04 jql joined #perl6
17:09 jmanjohn61 joined #perl6
17:09 jmanjohn61 hello
17:10 tadzik hey
17:11 takadonet yo
17:11 jmanjohn61 What is going on here
17:12 tadzik We're writing stuff :)
17:12 jmanjohn61 I have to type:)
17:13 tadzik Is there some way to check the corectness of an embeeded Pod6?
17:13 pmichaud exit
17:13 pmichaud ww
17:13 jmanjohn61 left #perl6
17:14 colomon pmichaud: as long as you're here, what's the status of your series operator update?
17:25 _pragma I thought we were discussing balls, actualy.
17:26 colomon for 'Y'..'b' -> $i { $i.say }
17:26 colomon rakudo: for 'Y'..'b' -> $i { $i.say }
17:26 p6eval rakudo 528bf6:
17:26 p6eval ..OUTPUT«Y␤Z␤AA␤AB␤AC␤AD␤AE␤AF␤AG␤AH␤AI␤AJ␤AK␤AL␤AM␤AN␤AO␤AP␤AQ␤AR␤AS␤AT␤AU␤AV␤AW␤AX␤AY␤AZ␤BA␤BB␤BC␤BD␤BE␤BF␤BG␤BH␤BI␤BJ␤BK␤BL␤BM␤BN␤BO␤BP␤BQ␤BR␤BS␤BT␤BU␤BV␤BW␤BX␤BY␤BZ␤CA␤CB␤CC␤CD␤CE␤CF␤CG␤CH␤CI␤CJ␤CK␤CL␤CM␤CN␤CO␤CP␤CQ␤CR␤CS␤CT␤CU␤CV␤CW␤CX␤CY␤CZ␤DA␤DB␤DC␤DD␤
17:26 jnthn Y b it doing dat?
17:27 _pragma Needs less unicode.
17:27 jnthn I see no unicode.
17:27 jnthn Looks like it's not caring about string length of something though, which I thought it may have done.
17:27 colomon it be broken.
17:27 tylercurtis joined #perl6
17:27 colomon but it be somewhat fixed locally.
17:28 colomon > ~'Y'..'b'
17:28 colomon Y Z [ \ ] ^ _ ` a b
17:29 colomon ..^ or ^..^ isn't fixed yet.
17:29 colomon (locally, I mean)
17:29 colomon wondering how many (no longer up to spec) tests this will break...
17:34 _pragma jnthn: looks like this for me: http://i31.tinypic.com/dpes1j.jpg
17:36 jnthn _pragma: your PuTTY needs a tweak. ;)
17:36 gbacon joined #perl6
17:38 stepnem joined #perl6
17:38 Tene .u ␤
17:38 phenny U+2424 SYMBOL FOR NEWLINE (␤)
17:40 _pragma Yeah, this shell I'm ssh'd into doesn't have unicode support and I'm not root.  Out of the 18 or so channels I'm in, this is the only one that has bots that use unicode.  Oh well.
17:43 Kodi joined #perl6
17:46 jnthn _pragma: Yeah, I remember having to do a few things to get it to work cleanly for me.
17:47 [Coke] see, my putty is showing cammy in the topic, but I get a square for 2424.
17:47 TimToady font issue, likely
17:48 [Coke] lesse, there's a box with a question mark...
17:49 _pragma jnthn: hmm, looks like this now:  http://i26.tinypic.com/6qim8g.jpg
17:50 _pragma I went to Settings -> Window -> Translation and changed 'Input data assumed to be in' from some ISO thing to UTF-8
17:51 _pragma Certainly an improvement.
17:51 [Coke] any recommends for a putty font?
17:51 jnthn _pragma: Yup, that's now matching what I see.
17:51 _pragma I'm ussing PuTTY-Tray, by the way.  Much better than the vanilla PuTTY.
17:52 PerlJam is it just me or has the discussion of .. on p6l jumped the shark?
17:52 jnthn My font doesn't do the NL char either :-)
17:55 tadzik Term::ANSIColor is to be ported?
17:56 tadzik yep, looks so
17:56 jnthn I think somebody already ported it
17:56 Eevee I have NL but it's..  very teeny
17:56 jnthn Yeah, NL is tiny compared to DE.
17:56 pmurias joined #perl6
17:57 _pragma PerlJam: I rather think they've nuked the fridge.
17:57 pugssvn r31782 | pmurias++ | add UploadToCPAN to dist.ini, remove hardcode version number from smop
17:58 tadzik anything similar to AUTOLOAD in Perl6?
17:58 ingy morning
17:58 tadzik o/
17:58 * ingy CAN HAZ OZKON!
18:00 * [Coke] wonders how all you jokers can afford oscon. :P
18:00 jnthn [Coke]: Secret second career as stand up comedians. :P
18:01 [Coke] _pragma++ # putty tray is worth it for the clickable urls.
18:02 ashleydev_ joined #perl6
18:02 _pragma Heh, yeah, that was the main reason I started using it as well.
18:02 tadzik can macros be exported, just like functions?
18:06 jnthn szabgab++ # like the screencasts :-)
18:10 rurban joined #perl6
18:11 colomon rakudo: say 1, 2 ... 0
18:11 p6eval rakudo 528bf6: OUTPUT«␤»
18:17 ashleydev_ joined #perl6
18:19 colomon rakudo: say ~(1, 2 ... 0)
18:19 p6eval rakudo 528bf6: OUTPUT«␤»
18:21 tadzik I fail to understand S11, how do I use a module importing everthing that's exported inside?
18:22 Schwern joined #perl6
18:23 TimToady it's supposed to work that way if you add :ALL, but might be NYI
18:25 amkrankruleuen joined #perl6
18:26 timbunce joined #perl6
18:28 colomon rakudo: say ('a' ... Inf).munch(10)
18:28 p6eval rakudo 528bf6: OUTPUT«a␤»
18:29 colomon rakudo: say ('a' ... *).munch(10)
18:29 p6eval rakudo 528bf6: OUTPUT«abcdefghij␤»
18:29 tadzik TimToady: Confused at line 1, near "use Term::", looks NYI
18:30 tadzik any temporary way to export functions?
18:31 TimToady my &foo := &That::foo; if they are declared as "our"
18:31 TimToady or I guess = is also acceptable there
18:32 jnthn if you "use Foo" in Rakudo, everything that was marked 'is export' or 'is export(:DEFAULT)' should get exported.
18:32 jnthn At least that much works, or "use Test;" (which is all lexical subs) would not :-)
18:34 tadzik hrm
18:37 tadzik http://wklej.org/id/367342/ either doesn't seem so, or I'm doing something wrong again :)
18:39 pyrimidine joined #perl6
18:46 jnthn tadzik: ooc, if you  use Term::ANSIColor
18:46 jnthn gah
18:46 jnthn if you  use Term::ANSIColor; say BOLD, "foo"
18:46 jnthn On one line
18:46 jnthn does it work?
18:46 jnthn I think there's a ticket of sorts.
18:46 jnthn about tht bug
18:46 jnthn *that
18:47 PerlJam perl6
18:47 colomon rakudo: say "100" ... "102"
18:47 p6eval rakudo 528bf6: OUTPUT«100101102␤»
18:47 colomon rakudo: say ~("100" ... "102")
18:47 p6eval rakudo 528bf6: OUTPUT«100 101 102␤»
18:48 colomon rakudo: say ~("100.A" ... "102.B")
18:48 p6eval rakudo 528bf6: OUTPUT«100.A 101.A 102.A␤»
18:49 patspam joined #perl6
18:49 justatheory joined #perl6
18:50 TimToady I'm probably going to go with some kind of default semantics a bit closer to what ajs++ is recommending
18:50 TimToady simply because the ... operator is more aware of the final value than .succ is
18:51 TimToady so the current semantics would be more like "100.A", *.succ ... "109.A"
18:52 TimToady and the new semantics could do something saner column by column
18:54 TimToady though not necessarily as aware of Unicode props as ajs++ is proposing, if we can do it with filtering
18:54 TimToady but it'd be nice to at least get "000" ... "FFF" do do hex :)
18:55 colomon nooooooooo......
18:55 tadzik jnthn: yes, that works
18:55 tadzik :ASD
18:56 colomon rakudo: my @hex = '0' ... '9', 'A', 'B', 'C', 'D', 'E', 'F'; say ~(@hex Z~ @hex)
18:56 tadzik and by the way, can macros be exported just as subs? I didn't see it in Specs
18:56 p6eval rakudo 528bf6: OUTPUT«00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF␤»
18:57 colomon rakudo: my @hex = '0' ... '9', 'A', 'B', 'C', 'D', 'E', 'F'; say ~(@hex X~ @hex)
18:57 p6eval rakudo 528bf6: OUTPUT«00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B
18:57 p6eval ..5C 5D …
18:57 colomon rakudo: my @hex = '0' ... '9', 'A', 'B', 'C', 'D', 'E', 'F'; say ~(@hex X~ (@hex X~ @hex))
18:57 p6eval rakudo 528bf6: OUTPUT«000 001 002 003 004 005 006 007 008 009 00A 00B 00C 00D 00E 00F 010 011 012 013 014 015 016 017 018 019 01A 01B 01C 01D 01E 01F 020 021 022 023 024 025 026 027 028 029 02A 02B 02C 02D 02E 02F 030 031 032 033 034 035 036 037 038 039 03A 03B 03C 03D 03E 03F 040 041 042 043 044
18:57 p6eval ..045 04…
19:01 TimToady hmm, we need a way for users to define those ranges in a scope, such that ... can look up <0 f> and find (0...9),('a'...'f')
19:01 TimToady and then define that one by default, and maybe most of the major sequences that rangechars is already defined for
19:02 rokoteko TimToady: what is 0..f doing currently?
19:03 colomon rakudo: say '0'..'f'
19:03 jnthn tadzik: Ugh. That suggests something is kinda broken with lexicals inthe REPL still. :-(
19:03 colomon rakudo: say '0'...'f'
19:03 p6eval rakudo 528bf6:
19:03 p6eval ..OUTPUT«012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913…
19:03 p6eval rakudo 528bf6: OUTPUT«0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef␤»
19:03 tadzik jnthn: whew! Thank FSM it's just REPL :)
19:04 tadzik so, the question remains: can I export macros?
19:04 colomon rokoteko: the second of those is what it is spec'd to do.
19:04 rokoteko what .. is REPL a major Perl6 hack, or what on earth is it?
19:04 [Coke] it's what most sane dynamic languages give you when you invoke the compiler with no code.
19:05 [Coke] kind of like perl5 -de1;
19:05 molaf joined #perl6
19:06 pmichaud ...repl bug?
19:06 pmichaud example?
19:06 Juerd [Coke]: Yes
19:06 [Coke] Juerd: oh, good, because I did it, then accidentally deleted it, and am now about to do it again!
19:07 jnthn pmichaud:
19:07 jnthn > use Test; plan 1;
19:07 jnthn 1..1
19:07 Juerd [Coke]: What did you delete?
19:07 jnthn works
19:07 jnthn but
19:07 jnthn > use Test;
19:07 jnthn _block64
19:07 jnthn > plan 1
19:07 jnthn Could not find sub &plan
19:07 jnthn :-S
19:07 jnthn pmichaud: Which is very odd given it's just installed in the lexpad. :-S
19:07 pmichaud ah, it's likely a problem with exporting.
19:07 [Coke] Juerd: the expanded sandbox/
19:07 [Coke] i didn't lose anything.
19:07 [Coke] cleaning up junk now...
19:08 jnthn pmichaud: Maybe, but I struggle to see why it'd go rong.
19:08 TimToady lunch &
19:08 [Coke] Juerd++ # all the feather admining.
19:08 rokoteko Juerd++
19:09 tadzik so :) (How) can macros be exported? :)
19:09 pmichaud lunch &
19:10 jnthn tadzik: When they're implemented, I'd imagine just with 'is export'
19:10 [Coke] tadzik: Do you mean per spec (I don't know) or in rakudo (probably NYI)
19:10 tadzik ah, ok
19:11 rokoteko Juerd: I remember you from ircnet #perl. I found it bit silly that it's only americans that are actively listeneed for opinions on perl programming. some of use have joined freenode, as we feel it as the only way to really help perl people. I really hope for the sake of perl, that it doesnt lose it's amazing usage in europe.
19:12 * [Coke] thinks this channel is full of europeans.
19:12 rokoteko </imho>
19:12 Juerd rokoteko: Are you referring to some conversation we have had in the past?
19:13 rokoteko Juerd: no. just the knowledge, especially on unicode you had with perl5. I think you are essentially good for perl6 :)
19:14 rokoteko it was meant for mocking. I just miss some of the europeans who are not here as anyone hasnt even asked them here. personally I found the way here by myself and I havent even been very good at perl for very long.
19:14 rokoteko *it was not meant for mocking.
19:17 nimiezko joined #perl6
19:17 * colomon thought we were outnumbered by the Europeans around here...
19:18 lue joined #perl6
19:20 jnthn I'm in yer #perl6, outnumberin' yer Americans.
19:20 rokoteko ok, I might sound bit childish, but how many from the US and how many from each country in europe? please dont mock me for this, Im trying to conversate. I certainly do miss some european people in pelr6 discussions.
19:21 rokoteko also, I dont know the history very well, so someone can point me wrong also :)
19:21 [Coke] if you miss someone specifically, by all means invite them in.
19:21 tadzik rokoteko: Poland here
19:22 Juerd rokoteko: I fail to see why this is important or even relevant.
19:23 [particle] i miss the martians that used to hang out here.  they were good for perl, too!
19:24 rokoteko juerd: ton has left perl completely, afaik. mtve is not interested in perl6, I think he hasnt been invited to share his brilliancy and shmem also the same thing, alankila started programming java. ok I think I could invite them, but it would be more efficient from someone who truly has done perl6.
19:24 rokoteko ohh.. and forgot tybalt89 also.
19:24 Guest78269 joined #perl6
19:25 rokoteko anyhow. see the people who mastered perlgolf. I think it's bit wierd that they arent asked here to share their very, very important opinions.. that should be default.
19:25 rokoteko Im not trying to be offensive, I just know how good these people (and Juerd, how luckily is here) are..
19:25 Juerd rokoteko: So brilliant people leave Perl. That's going on everywhere, not just in the US or just in Europe.
19:25 Juerd rokoteko: Also, other people take their places.
19:26 [particle] and, this channel is open to all who wish to discuss perl 6
19:26 rokoteko Juerd: ahh.. ok. so maybe my problem is that I dont feel that Im able to replace these people.
19:26 Juerd rokoteko: It has always been like this in every community, for every language or piece of software.
19:27 rokoteko Juerd: thank you for explaining this to me. it's very important, because im relatively new to perl. was tkr on ircnet, if you remember me by that nick better.
19:27 Juerd Better than not at all, at least :)
19:29 stepnem joined #perl6
19:31 rokoteko well still very new compared to these people I mentioned. :) but ok. I hope no-one minds if Im sharing my problem about perl6 future here.
19:31 rokoteko I honestly would wish that perl could keep going as I have just barely started to learn it and get paid relatively well for working with it. :)
19:32 sorear Hello pmichaud
19:32 rokoteko ok there's enough perl5 for me to keep on maintaining for the rest of my life. but I wouldnt mind developing some new feature in the future also. :) which is not very nearly expected for perl6 programmers at private sector. :)
19:32 frettled rokoteko: Job security in Perl is easy!  ;)
19:33 rokoteko frettled: that was not my point at all. I wish future generations would also keep programming perl.
19:33 rokoteko else we (the perl5 people) will be like cobol people in 30 years.
19:34 rokoteko ok, I also happen to agree that it is quite easy to learn any programming language (.. functional languages might keep us entertained for a while) after learning perl.
19:35 sorear perl5 people *will* be like cobol people in 30 years
19:36 frettled Well, we don't know that, really.  We'll see after 2038.
19:38 * sorear tries upgrading to mono svn
19:38 ash_ joined #perl6
19:38 rokoteko sorear: really? you think there's no reason for us to learn perl6?
19:38 rokoteko sorear: we are doomed?
19:40 rokoteko what would you suggest instead, Ruby, Python, Haskell or something completely different?
19:40 Juerd rokoteko: Many businesses (at least in .nl) are searching for ways to get rid of Perl.
19:41 Juerd rokoteko: And new shops tend to pick other languages too.
19:41 rokoteko yes, that is because they think Java people ara graduating from colledge and the management expect them to be as competent as perl people.
19:42 Juerd No
19:42 achromic joined #perl6
19:42 Juerd They're moving towards Python and .Net, in most cases.
19:42 rokoteko which is just bullshit. Ive personally seen this fails. a seasoned perl hacker is so much more productive than a just graduated java programmer the the management has no idea about it.
19:43 Juerd Yes, but there's this weird and wrong idea that Perl is dead.
19:43 Juerd And it appears to be confirmed by the lack of Perl programmers.
19:43 rokoteko Juerd: that might be true. but see the java+xml consultants. I think its about as competent people advertising their languate.
19:44 Juerd (OTOH, a single company (Booking.com) seems to employ half of them...)
19:44 rokoteko perl5 wont be dead for atleast 100 years. but Im afraid perl6 will.
19:44 rokoteko and I *do* love perl.
19:44 Juerd Perl 6 will be the greatest zombie ever!
19:44 rokoteko :)
19:45 Juerd rokoteko: In any case, there's no such thing as "now or never"
19:45 Juerd If Perl 6 will be good, and not too hard or too complex to learn, it will be as succesful as its predecessors were.
19:46 pradeep77 joined #perl6
19:47 mberends joined #perl6
19:49 sorear rokoteko: I said perl *5* people will be dinosaurs in 30 years
19:49 sorear rokoteko: perl $current-version people won't be
19:50 thepler rakudo: say (1,2,3).Seq === (1,2,3).Seq
19:50 p6eval rakudo 528bf6: OUTPUT«0␤»
19:50 rgrau_ joined #perl6
19:51 sorear pmichaud: ping
19:51 pmichaud <suggestion>  When we send someone to perl6advent.wordpress.com, it'd be really nice if there was a link to Day 1 immediately available.
19:51 pmichaud sorear: pong
19:51 sorear pmichaud: can you explain in a nutshell how p6regex backtracking compilation works?
19:52 ash__ joined #perl6
19:52 sorear it seems to have something involving stacks of label addresses
19:52 pmichaud sorear: that's correct
19:53 pmichaud a backtracking point mainly consists of a position to backtrack to, and the label address where to restart
19:53 sorear what about the current continuation?
19:53 pmichaud ...current continuation?
19:53 pmichaud you mean, for restarting after a successful match?
19:53 sorear the CallContext PMC which assigns meaning to the label
19:54 rokoteko okey. <suggestion> why hasnt perl6 yet captured the windows programmers that use eclipse? I mean why isnt the oocumentatio the same quality as you started the whole thing from beginning?
19:55 sorear rokoteko: because Java has been a mature environment for 10 years, Perl 6  for maybe -3
19:55 rokoteko Im starting to think it's mainly because the commercial people are thinking what happens if Timtoady dies. and that's why perl was started from scratch.
19:55 sorear do you understand the difference 13 years head start makes?
19:55 pmichaud sorear: I capture the current sub if a successful match occurs and there's a possibility of backtracking into the current match
19:55 rokoteko sorear: nods. I actually was programming java for a while. and the gurus on java said that perl is good because it has a very mature vm.
19:56 pmichaud otherwise, I don't capture the continuation at all.
19:56 sorear rokoteko: they meant perl 5.  go to #perl, not here
19:56 rokoteko sorear: so perl6 started 13 years ago, or what are you trying to say?
19:56 sorear perl 6 isn't finished
19:56 sorear it'll be a mature system about 3 years from now, I estimate
19:56 rokoteko sorear: really, Im already on #perl. you think I should leave #perl6, really?
19:57 sorear no, if you want to stay, you can stay
19:57 rokoteko for stating my opinions? Im willing to do that if you ask.
19:57 sorear I'm not asking you to leave for stating your opinions
19:57 sorear I'm giving you directions because you look lost
19:57 rokoteko ok. good :) I was starting to get worried.
19:57 pmichaud hugme:  hug sorear and rokoteko
19:57 * hugme hugs sorear
19:58 pmichaud hugme:  hug rokoteko
19:58 * hugme hugs rokoteko
19:58 rokoteko thank you.. hugging is always nice. :)
19:59 mberends rakudo: say time; say pir::time__N();
19:59 p6eval rakudo 528bf6: OUTPUT«1279741153␤1279741153.07107␤»
19:59 * mberends misses those microseconds
19:59 rokoteko I was just worried, because I have mainly worked as a programmer for commercial perl providers. and what would perl be without these people?
19:59 ash_ mberends: didn't that just changed like last week?
19:59 rokoteko ok. Ill drop the discussion for now. :)
20:00 pmichaud rokoteko: fwiw, I didn't understand the original question.  But I'm also a bit distracted :)
20:00 mberends ash_: yes, and it broke the micro benchmarking in tools/test_summary.pl
20:00 Juerd sorear: Finished is a weird thing for software
20:00 Juerd sorear: qmail comes to mind.
20:00 pmichaud so does Perl 5.  :-)
20:01 ash_ perl5 is still changing
20:01 Juerd pmichaud: Perl 5 is under heavy development
20:01 pmichaud Juerd: right
20:01 pmichaud oh, sorry
20:01 Juerd pmichaud: Contrary to qmail, which had is last and final release in, what, 1993? :)
20:01 mberends ash_: so I'm considering patching Test.pm to use the pir:: alternative
20:01 pmichaud you said "qmail".  I read "gmail" and thought "Google Beta"
20:01 Juerd Ah, haha
20:01 rokoteko pmichaud: nods. I decided to drop the discussion before I annoy more of the gurus. :) But we can continue if I feel it is still important next time I discussing perl future here.
20:01 Juerd From that perspective your comment makes a lot more sense :)
20:02 pmichaud I guess I need glasses, a bigger font, or both.
20:02 Juerd pmichaud: No, just say "Rakudo makes me very creative"
20:02 Juerd You'll get away with anything :)
20:03 ash_ does DateTime have nano seconds?
20:03 ash_ rakudo: say DateTime.now.perl;
20:03 p6eval rakudo 528bf6: OUTPUT«DateTime.new(year => 2010, month => 7, day => 21, hour => 19, minute => 43, second => 12, timezone => 0)␤»
20:03 ash_ hmm
20:03 ash_ it gets seconds
20:03 * colomon ponders a .grep-unless method
20:03 Tene colomon: what would that do?
20:03 ash_ not accurate enough for bench marking though
20:04 Juerd colomon: There's grep not.
20:04 Juerd Where not is in the condition :P
20:04 colomon Tene: take a test and return all the elements for which the test is false
20:04 colomon Juerd: as far as I know, you cannot say .grep(!Int) (for instance)
20:04 Juerd .grep(none(Int)) then? :)
20:04 pmichaud .grep( * !~~ Int ) ?
20:05 sorear Why is there no syntax for anonymous multisubs?
20:05 Tene rakudo: my @a = 1, "foo", 3, "bar"; say @a.grep(Int).perl;
20:05 p6eval rakudo 528bf6: OUTPUT«(1, 3)␤»
20:05 Tene rakudo: my @a = 1, "foo", 3, "bar"; say @a.grep(* !~~ Int).perl;
20:05 p6eval rakudo 528bf6: OUTPUT«(1, "foo", 3, "bar")␤»
20:05 moritz_ std: anon multi foo() { }
20:05 p6eval std 31782: OUTPUT«ok 00:01 116m␤»
20:05 cxreg joined #perl6
20:05 colomon pmichaud: * doesn't form a whatever closure with ~~, does it?
20:05 pmichaud .grep( not (* ~~ Int) ) ?
20:05 Juerd moritz_: What's the "foo" part called?
20:05 sorear That's an anonymous multi candidate... not quite what I want
20:05 moritz_ Juerd: name
20:06 Juerd moritz_: Anonymous with a name?
20:06 sorear I'm speaking of something like a Haskell case statement
20:06 Schwern joined #perl6
20:06 ash_ std: my $a = anon sub (Int $b) { }; say $a;
20:06 p6eval std 31782: OUTPUT«Potential difficulties:␤  $b is declared but not used at /tmp/Wzwo95u1RX line 1:␤------> [32mmy $a = anon sub (Int [33m⏏[31m$b) { }; say $a;[0m␤ok 00:01 120m␤»
20:06 moritz_ sorear: my $x = anon proto foo { }; $x.push: anon mulit ...
20:06 moritz_ Juerd: yes
20:06 pmichaud rakudo: my @a = 1, "foo", 3, "bar"; say @a.grep({ $_ !~~ Int}).perl;
20:06 sorear like a pointy block, but with several bodies, depending on signature
20:06 moritz_ Juerd: it's anon in the sense that it's not entered in any package table or lexical scope
20:06 ash_ -> Int $a { ... }, Str $a { ... }
20:06 moritz_ but you can still ask it for its name
20:07 Juerd moritz_: I see
20:07 jnthn sorear: Any reason not to use given/when?
20:07 pmichaud rakudo:  say 'hello';
20:07 ashleydev_ joined #perl6
20:07 p6eval rakudo 528bf6: OUTPUT«hello␤»
20:07 sorear jnthn: given/when only does single dispatch
20:07 ash_ sorear: any suggestions on how to write that?
20:07 jnthn sorear: Capture ~~ Signature lets you determine the cases
20:08 colomon pmichaud: your last works locally
20:08 jnthn sorear: Yeah, I was meaning more you have like given $capture { when sig { ... } } etc
20:08 Tene I expect you could do: -> |$_ { when ... {}; when ... {}; }
20:08 exodist joined #perl6
20:08 ash_ my $foo = -> Int $a { say 'int' }, Str $a { say 'Str' }; $foo(4); $foo('test');
20:08 Tene signature is what, :()?
20:08 pmichaud colomon: okay, good.
20:08 jnthn Tene: aye
20:09 sorear Tene: That would be *awesome* if it also bound variables in said signatures.
20:09 Tene when :(Str $n, Int $x) { ... }
20:09 Tene yes?
20:09 jnthn sorear: Yes, true. I think there's a form that maybe does that
20:09 jnthn Tene: Yeah but it only checks the signature could bind
20:09 pmichaud colomon: yes, there have been times when I've wanted a "when't".  I think we even discussed it briefly at YAPC::NA the day-after-the-conference, and TimToady++ had some obvious answer that I've forgotten now :-|
20:09 pmichaud it might've been none(...)
20:09 jnthn Tene: RAther than actually giving you the variables.
20:09 colomon pmichaud: I remember the discussion, don't remember the answer.
20:09 pmichaud rakudo: my @a = 1, "foo", 3, "bar"; say @a.grep(none(Int)).perl;
20:10 Tene binding is assigning to the sig, then?
20:10 pmichaud p6eval doesn't like me.
20:10 sorear I think I'll implement binding signatures as a syntactic special case of when() in niecza
20:10 sorear and see how it works
20:10 colomon pmichaud: that one also works (correctly) locally
20:10 colomon pmichaud: it also makes my head hurt
20:10 pmichaud anyway, time for me to go get set up for my talk.
20:10 colomon pmichaud++
20:10 jnthn Go pmichaud! \o/
20:11 Tene sorear: although, I could certainly see what you originally asked for as very reasonable.
20:11 * jnthn looks forward to seeing pmichaud talks at YAPC::EU
20:11 tyru joined #perl6
20:13 christine joined #perl6
20:13 pmichaud talk slides are at http://pmichaud.com/2010/pres/oscon-perl6 .  Mostly the same as the yapc::na talk, a few updates and improvements to the slides.
20:13 pmichaud okay, gone for a while.
20:13 pmichaud bbl
20:14 jnthn sorear: I had vague memories of a when -> $foo, @bar { ... } form that entered the block if it could bind $_
20:14 jnthn sorear: But I don't see it in the synopses
20:14 takadonet left #perl6
20:14 jnthn sorear: Maybe I dreamed it. :-)
20:15 Tene I had a vague memory of a -> form with multiple sigs and bodies, but I can't find any evidence of it existing.
20:15 Tene You think we dreamed the same platonic ideal spec? ;)
20:18 ash_ does nqp have given/when? i don't think it does...
20:18 ash_ and multi sig can't take constants in nqp :-(
20:18 ash_ nqp: multi f(3) { say '3'; }; multi f('4') { say '4'; }; f(3); f('4');
20:18 p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "(3) { say "␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
20:18 ash_ rakudo: multi f(3) { say '3'; }; multi f('4') { say '4'; }; f(3); f('4');
20:19 p6eval rakudo 528bf6: OUTPUT«3␤4␤»
20:19 jnthn ash_: NQP is meant to be fairly small. :-)
20:19 ash_ i know
20:19 jnthn ash_: And not a nightmare to port to other backends.
20:19 ash_ is given when that difficult though? since it already has ~~
20:19 ash_ just wondering
20:19 jnthn ash_: Not sure how far ~~ works in NQP to be honest
20:20 jnthn But to the degree it does, given/when could be made to work I guess.
20:20 ash_ am i wrong in feeling that given/when is mostly syntactic sugar for ~~ and some if/else's ?
20:20 ash_ okay, maybe a bit more complicated, but still
20:20 ash_ is there a suggested way of handling a switch in nqp? should i just if/else a bunch?
20:20 moritz_ arnsholt had a nqp-rx branch that implements given/when
20:21 Tene ash_: That's mostly correct, yes.
20:21 cxreg bad git config alert: Author: Kodi Arfer <hippo@Thoth.(none)>
20:21 Kodi Eh?
20:22 cxreg user.email isnt set to something sane
20:22 moritz_ right
20:23 ash_ git config --global user.email johndoe@example.com
20:23 ash_ will set it globally
20:23 ash_ or you can do it per-repo
20:25 tadzik http://github.com/tadzik/perl6-Term-ANSIColor
20:25 tadzik not everything implemented, but it's alredy fun :)
20:25 cxreg moritz_: i can flail helplessly against zavolaj, but it's probably a good idea if someone competent looks at it once more before R* ships
20:26 moritz_ cxreg: jnthn++ plans to do it
20:26 cxreg ok, cool
20:27 nimiezko joined #perl6
20:27 justatheory joined #perl6
20:28 cxreg should ingy's test thingy be added to star?
20:28 cono joined #perl6
20:28 moritz_ yes
20:28 [Coke] +1
20:28 moritz_ feel free to add it to the wiki
20:29 jnthn If anyone thinks http://github.com/jnthn/test-mock/ is good enough, they may also feel free to suggest it for R* inclusion.
20:30 [Coke] I mock your tests.
20:30 molaf joined #perl6
20:30 * moritz_ feels so
20:30 jnthn Aww. My tests need hugs now.
20:31 cxreg looks like ingy's urls are http://github.com/ingydotnet/yaml-pm6 and http://github.com/ingydotnet/testml-pm6
20:31 moritz_ hugme: hug jnthn's tests
20:31 * hugme hugs jnthn's tests
20:31 tadzik can someone review Term::ANSIColor?
20:31 moritz_ what kind of review do you want?
20:32 tadzik either hapiness or criticism I guess :)
20:32 tadzik it's listed in http://wiki.github.com/rakudo/rakudo/perl-5-modules-to-port-to-perl-6
20:35 moritz_ tadzik: I like it. It works, and the code is simple
20:35 tylercurtis joined #perl6
20:35 tadzik I'm glad
20:35 moritz_ tadzik: just needs a README, and a licence
20:35 tadzik oh sure
20:36 tadzik not sure how the tests are ought to look. I took a look at CPAN's Term::ANSIColor and they look like just another possibility of making a typo breaking everything
20:37 tylercurtis Yay! My power and internet are both working again. Hopefully the combination will last for more than five minutes. Hello, #perl6!
20:37 tadzik o/
20:38 moritz_ \o
20:38 moritz_ tadzik: as a future plan, you could make an enum with colors and other modes
20:39 nimiezko joined #perl6
20:39 supernovus joined #perl6
20:39 tadzik moritz_: enum will imply I'll have to generate control sequences in runtime, no?
20:39 colomon rakudo: say ~(1, 2, 4 ... 100)
20:39 p6eval rakudo 528bf6: OUTPUT«1 2 4 8 16 32 64␤»
20:39 moritz_ tadzik: no
20:39 tadzik moritz_: how would it look like then?
20:40 moritz_ enum Attrs reset => "\e[0m", bold => "\e[1m", ...
20:40 tadzik how it would be different from a hash then?
20:41 moritz_ and then "is export" (when rakudo implements it)
20:41 tadzik not computed in runtime?
20:41 moritz_ which has the advantage that you can say   color(blue), and get compile-time checking
20:41 moritz_ the enum initialization runs at compile time
20:41 tadzik hmm
20:41 tadzik will note it and think about it
20:41 moritz_ but currently rakudo can't export enums :(
20:42 moritz_ that's why I said future project :-)
20:42 tadzik ok :)
20:45 szabgab rakudo: for 1..3 -> $a, $b { say $a }
20:45 p6eval rakudo 528bf6: OUTPUT«1␤3␤»
20:45 szabgab :(
20:46 diakopter .u
20:46 phenny U+0007 (No name found)
20:46 supernovus Kodi: So, DateTime is going immutable. I'd like a method to take a DateTime object in any timezone and return a new DateTime in a different timezone, using the offset format from the ISO string (i.e. say DateTime.now().to-timezone('-0800'); ) I'd be willing to write the method myself, in which case I'll wait for your immutability patch to roll in.
20:46 phenny diakopter: 08:06Z <sorear> tell diakopter Cecil appears to be a .NET assembly.  I can only use tools with file-based interfaces pre-bootstrap (since I'm running on the p5vm), and ilasm seems to beat gmcs
20:46 tylercurtis If I have "has @.children where SomeConstraint", does SomeConstraint constrain the container or the elements?
20:46 szabgab is anyone going to fix this any time soon?
20:46 tylercurtis szabgab: What's to be fixed?
20:46 moritz_ szabgab: nope. In the long run it will need a spec change
20:47 tylercurtis rakudo: for 1..4 -> $a, $b { say "$a $b"; }
20:47 szabgab oh, so is this now the correct behavior?
20:47 p6eval rakudo 528bf6: OUTPUT«1 2␤3 4␤»
20:47 Kodi supernovus: Do me a favor and don't touch any Temporal stuff for a day or so. I'm deep into hacking the spec, the test suite, and Temporal.pm simultaneously. Immutability is the major change.
20:47 moritz_ we need a spec for partially binding signatures
20:47 moritz_ szabgab: no
20:47 supernovus Kodi: That's why I said I'd wait until your new patch lands :-)
20:47 szabgab tylercurtis: I was expecting an exception there
20:47 eternaleye joined #perl6
20:47 moritz_ szabgab: I want to say that the things we could do now to tackle the problem are all fragile
20:47 tadzik moritz_: TBH, I don't see any module on proto containing a license
20:47 szabgab as it used to be
20:47 moritz_ tadzik: that's bad
20:47 tylercurtis tadzik: Bennu does, IIRC.
20:48 supernovus I hope the changes make it for R*
20:48 moritz_ phenny: tell masak tadzik++ noticed a lack of license in proto... care to add the AL2?
20:48 phenny moritz_: I'll pass that on when masak is around.
20:48 tadzik yeah, Bennu has
20:48 Kodi supernovus: Well, in-timezone, which is basically what you're talking about, ought to do the same thing.
20:48 * tadzik stars adding LICENSEs
20:48 Kodi supernovus: We can talk about it once I'm done here.
20:49 supernovus supernovus: Sounds good. in-timezone() sounds like exactly what I was thinking of. I won't disturb you further :-)
20:49 tylercurtis szabgab: I thought it was correct, but moritz_ disagrees, so I'd strongly recommend listening to him.
20:49 supernovus gah, that last message was for Kodi, I'm not talking to myself ;-)
20:49 Kodi supernovus: Heh.
20:50 moritz_ moritz_: why not? talking to yourself is very natural
20:50 Kodi supernovus: Ja, in-timezone is just like your to-timezone, but it takes an offset in seconds.
20:50 tylercurtis moritz_: Why isn't that correct behavior, by the way?
20:51 Kodi supernovus: Offsets in seconds now being The Standard Way to think about timezones.
20:51 moritz_ tylercurtis: because silently dropping information is bad[tm]
20:51 colomon tylercurtis: and if you want to drop, you can do -> $a, $b? { ... }
20:52 tylercurtis moritz_: oh. right.
20:52 moritz_ or pad your list to an even size
20:52 * tylercurtis misunderstood the problem.
20:52 supernovus Kodi: Okay, maybe there should be something to convert between HHMM offsets and Offsets-in-seconds. I guess it could be a helper method or subroutine. Maybe DateTime::strftime should become DateTime::Utils and have a few "helper" methods in it.
20:53 supernovus methods=>subroutines
20:53 szabgab what is the difference between 1..Inf   and 1..* ?
20:53 moritz_ 2 characters :-)
20:53 szabgab :)
20:53 moritz_ should be the same
20:53 Kodi supernovus: Maybe. I've just been taking the no-parsing-in-Temporal-except-for-an-entire-ISO-timestamp philosophy as far as I can.
20:53 tadzik moritz_: my modules now have licenses
20:54 moritz_ tadzik++
20:54 supernovus Kodi: That sounds good. I think the module currently called DateTime::strftime is a better place for a offset-to-seconds() subroutine anyway.
20:55 supernovus or offset-in-seconds()
20:56 colomon rakudo: say (1..*).perl
20:56 p6eval rakudo 528bf6: OUTPUT«1..Inf␤»
20:56 colomon ;)
20:56 ingy au|zzz: http://www.pegex.org/ (thanks for the advice :)
20:57 supernovus Kodi: Speaking of which, will you be making changes to the DateTime::strftime module in this patch?
20:57 pugssvn r31783 | colomon++ | [t/spec] Simple tests on the result types of intuited arithmetic / geometric series.
20:57 Kodi supernovus: None.
20:57 szabgab what is the name of ... ?
20:57 perimosocordiae left #perl6
20:57 tylercurtis rakudo: my Int @a where { $_ % 2 == 0 } = 2, 4, 6; say "@a[]";
20:57 p6eval rakudo 528bf6: OUTPUT«===SORRY!===␤Confused at line 22, near "my Int @a "␤»
20:58 supernovus Kodi: I'm almost of the opinion that DateTime::strftime should actually be moved out of the Rakudo tree and become it's own project that can be installed using proto/pls. It could be included with Rakudo * as one of the "bundled modules".
20:58 szabgab is there a bot that would look up my questions in the spec and paste them to me in a private channel?
20:58 Kodi supernovus: +1
20:59 Kodi supernovus: If you do that, just make sure you don't forget to move DateTime-strftime.t out of pugs.
20:59 [Coke] szabgab: don't think so. the closest I've found is the indices on the perlcabal site.
20:59 achromic left #perl6
21:00 tylercurtis rakudo: class Foo { has Int @.a where { $_ % 2 == 0 }; }; Foo.new(:a(2, 4, 6)).a.perl.say;
21:00 p6eval rakudo 528bf6: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
21:00 tylercurtis std: class Foo { has Int @.a where { $_ % 2 == 0 }; }; Foo.new(:a(2, 4, 6)).a.perl.say;
21:00 p6eval std 31782: OUTPUT«ok 00:01 119m␤»
21:00 szabgab so is ... the yadda, yadda in perl 6 as well?
21:01 Tene Yes.
21:01 tylercurtis rakudo: ...
21:01 moritz_ as a term, yes
21:01 p6eval rakudo 528bf6:  ( no output )
21:01 moritz_ as an infix, it's the series operator
21:01 tylercurtis rakudo: sub foo {...}; foo
21:01 p6eval rakudo 528bf6:  ( no output )
21:01 TimToady not "as well", "originally" :)
21:01 szabgab ok, I was thinking as infix
21:01 TimToady infix:<...> is completely different
21:02 szabgab TimToady: :)
21:02 supernovus Kodi:  I'll start a new github repository for DateTime::Utils. move the test out of the official spec tests and figure out how to grant commit bits to you and masak.
21:02 TimToady std: 1,2,3, ... 10;  # accidental comma before ... make it yada
21:02 p6eval std 31782: OUTPUT«Potential difficulties:␤  Comma found before apparent series operator; please remove comma (or put parens␤    around the ... listop, or use 'fail' instead of ...) at /tmp/qotHhInQZi line 1:␤------> [32m1,2,3,[33m⏏[31m ... 10;  # accidental comma before ... [0m␤ok 00:01 117m␤»
21:02 szabgab I was thinking on how it is called in 1,3...10
21:02 moritz_ "series"
21:03 szabgab and 1,3..10 is range, right?
21:03 moritz_ yes
21:03 szabgab thanks
21:03 colomon no
21:03 tylercurtis rakudo: (1,3..10).WHAT
21:03 p6eval rakudo 528bf6:  ( no output )
21:03 TimToady 3..10 is a range
21:03 tylercurtis rakudo: (1,3..10).WHAT.say
21:03 p6eval rakudo 528bf6: OUTPUT«Parcel()␤»
21:03 Tene No, .. is range, ... is series
21:03 colomon 1, 3 .. 10 is an Int followed by a Range
21:03 TimToady .. only takes two scalars, not two lists like ....
21:04 colomon in a Parcel.
21:04 cxreg hacked badge: http://twitter.com/mmmpork/status/19104875010
21:05 jjore_ lol
21:05 szabgab right so in 1,3..10  the 1 is desregarded by ..  but if iterating  over the whole thing then it is included
21:06 moritz_ rakudo: .say for 1, 3..10
21:06 p6eval rakudo 528bf6: OUTPUT«1␤3␤4␤5␤6␤7␤8␤9␤10␤»
21:07 colomon what am I doing wrong here?  http://gist.github.com/485140
21:07 colomon Non-declarative sigil is missing its name at line 795, near "&& $factor"
21:08 [bjoern] joined #perl6
21:08 Kodi rakudo: 1/2 ~~ Rat
21:08 p6eval rakudo 528bf6:  ( no output )
21:08 moritz_ colomon: precedence?
21:08 Kodi rakudo: say 1/2 ~~ Rat
21:08 p6eval rakudo 528bf6: OUTPUT«1␤»
21:08 moritz_ I'd try parens around the two conditions
21:09 jnthn The erorr is still odd
21:09 [bjoern] I think `regex SP { <[\x[0020] .. \x[0020]]> }` used to be okay, now I get syntax errors. What's the right syntax these days? (The regex simply matches one space)
21:09 moritz_ aye
21:09 jnthn I know where that error is because I added it recently from STD.
21:09 [bjoern] (used to be as in, a year ago)
21:09 moritz_ [bjoern]: backslash escapes in character classes are currently broken :(
21:10 moritz_ so I'd try regex SP { ' ' } instead
21:10 [bjoern] any alternative that works for any unicode code point?
21:10 jnthn I'm bewildered as to why it's triggering though.
21:10 moritz_ [bjoern]: outside of char classes, \x[thing] should work
21:10 moritz_ inside, you need to use the actual character :(
21:11 [bjoern] Thanks.
21:11 colomon moritz_: must be.  bizarre
21:12 colomon with parens, get a new error when it is run: Could not find sub &Rat
21:12 moritz_ colomon: use ::Rat instead
21:12 moritz_ it's probably defined later in the setting
21:12 colomon you sure?  that's a detail I've never understood
21:12 moritz_ or you can pre-declare: class Rat { ... } # literal three dots
21:12 colomon (versus     class Rat { ... } )
21:13 moritz_ the only thing there ::Rat doesn't work is in signatures (it's a type capture there)
21:13 moritz_ s/there/where/
21:15 jnthn Oh...I know how on earth it got to that error.
21:16 moritz_ rakudo: &
21:16 p6eval rakudo 528bf6: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "&"␤»
21:16 colomon moritz_++ # explaining to me what I had never gotten
21:16 jnthn std: my $factor; if $factor ~~ SomeUnknownType && $factor.denominator == 1 { }
21:16 colomon groovy, bug fixed.
21:16 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Non-declarative sigil is missing its name at /tmp/C1aRfuzVQ2 line 1:␤------> [32m $factor; if $factor ~~ SomeUnknownType [33m⏏[31m&& $factor.denominator == 1 { }[0m␤Undeclared name:␤      'SomeUnknownType' used at line 1␤Check failed␤FAILED 00:01
21:16 p6eval ..120m␤»
21:16 jnthn Ah, OK. Rakudo is following STD there at least.
21:16 jnthn std: &
21:16 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Non-declarative sigil is missing its name at /tmp/WABl8Ek5J0 line 1:␤------> [32m<BOL>[33m⏏[31m&[0m␤Preceding context expects a term, but found infix & instead at /tmp/WABl8Ek5J0 line 1:␤------> [32m<BOL>[33m⏏[31m&[0m␤Parse failed␤FAILED
21:16 p6eval ..00:01…
21:17 jnthn And there.
21:17 moritz_ shouldn't it complain about finding an infix in term position?
21:17 jjore_ In the #perl6 channel topic, what on earth is this part supposed to be? \x{08bb}\x{08f6}\x{08ab}
21:17 jnthn I agree it's sub-optimal though.
21:17 moritz_ std: ~~
21:17 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Expecting a term, but found either infix ~~ or redundant prefix ~␤  (to suppress this message, please use space between ~ ~) at /tmp/q8dvazWYr1 line 1:␤------> [32m~~[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 115m␤»
21:17 tadzik x
21:17 tadzik jjore_: ascii camelia maybe?
21:17 jnthn moritz_: No, see token variable
21:17 Tene jjore_: text version of camelia
21:17 jjore_ It's not utf-8. I can't find those characters in the Unicode database.
21:17 colomon std: my $factor; if $factor ~~ Int && $factor.denominator == 1 { }
21:17 tadzik ah, not ascii ;)
21:17 moritz_ jnthn: it is UTF-8
21:17 p6eval std 31783: OUTPUT«ok 00:01 117m␤»
21:17 Tene .u »ö«
21:17 phenny U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (»)
21:17 phenny U+00F6 LATIN SMALL LETTER O WITH DIAERESIS (ö)
21:17 phenny U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK («)
21:17 moritz_ erm, meant jjore_
21:17 Tene jjore_: that's what the characters are
21:18 jnthn moritz_: It's meant to catch things like
21:18 jjore_ Oh, well, hmm. But I said \x{08bb}\x{08f6}\x{ab}, not \x{bb}\x{f6}\x{ab}
21:18 TimToady infix where term expected is kind of a last-ditch error if something else doesn't panic first
21:18 jnthn std: say $;
21:18 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of $; variable; in Perl 6 please use real multidimensional hashes at /tmp/BxKP4UHLrV line 1:␤------> [32msay $;[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 115m␤»
21:18 jnthn oh arse
21:18 jnthn std: say $
21:18 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Non-declarative sigil is missing its name at /tmp/RMkdWC6qRd line 1:␤------> [32msay [33m⏏[31m$[0m␤Confused at /tmp/RMkdWC6qRd line 1:␤------> [32msay $[33m⏏[31m<EOL>[0m␤    expecting twigil␤Other potential difficulties:␤  Unsupported use of
21:18 p6eval ..b…
21:18 jnthn There
21:18 jnthn Or
21:18 moritz_ jjore_: there's no \x{08bb} in the channel topic
21:18 jjore_ There is.
21:18 jnthn std: my @x; ($, $) = @x;
21:18 p6eval std 31783: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of $, variable; in Perl 6 please use .join() method at /tmp/9SRIdZLrm2 line 1:␤------> [32mmy @x; ($,[33m⏏[31m $) = @x;[0m␤Parse failed␤FAILED 00:01 116m␤»
21:18 moritz_ jjore_: if you see it, your client doesn't properly decode the UTF-8
21:18 Tene jjore_: it's UTF-8 encoded
21:18 jnthn heh heh
21:19 Tene jjore_: utf-8 bytes != unicode codepoints
21:19 jnthn TimToady: Well, I know what it's meant to catch, but... :-)
21:19 moritz_ the byte sequence is c2 bb c3 b6 c2 ab
21:19 moritz_ which decodes perfectly fine as UTF-8
21:20 snarkyboojum joined #perl6
21:20 jjore_ sigh.
21:20 jjore_ I'm not fond of utf-8.
21:20 moritz_ well, we use it here pretty heavily
21:20 moritz_ http://irclog.perlgeek.de/perl6/today should work in your browser
21:21 Tene jjore_: That's perfectly understandable.  I wouldn't be fond of it either if I had to use software that didn't handle encodings properly.
21:22 colomon rakudo: say (1, 2, 4 ... 100).perl
21:22 jjore_ I'm told http://www.emacswiki.org/emacs/ErcConfiguration#toc11 but well...
21:22 p6eval rakudo 528bf6: OUTPUT«(1, 2, 4, 8/1, 16/1, 32/1, 64/1)␤»
21:22 colomon > say (1, 2, 4 ... 100).perl
21:22 colomon (1, 2, 4, 8, 16, 32, 64)
21:22 moritz_ \o/
21:22 * moritz_ -> out
21:23 colomon \o
21:25 pugssvn r31784 | novus++ | Removed DateTime-strftime.t as it is moving to an external project.
21:25 Tene jjore_: there's not much emacs usage mentioned in here.  I did see some perl6 support files for emacs in the pugs repo, I think, but I expect they haven't been maintained.  That's a little unfortunate.
21:25 cuesta joined #perl6
21:28 tylercurtis Tene, jjore_: From my experience, the cperl-mode.el in the pugs repo works fine except for sometimes failing to detect Perl-6-ness, total failure to support recognize the end of  =begin/=end style POD, and sometimes having weird indentation for pointy-blocks(usually related to the first problem).
21:28 dalek rakudo: 1d4ba47 | (Martin Berends)++ | Test.pm:
21:28 dalek rakudo: [Test.pm] use pir::time__N for the fractional seconds removed from time
21:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1d4ba47f2295136b34a1df03e6c1f37d4ae24c77
21:28 jjore_ I haven't even got that far. I'd just like to be able to talk to you folks.
21:29 wolverian jjore_: what version of emacs are you running that erc doesn't grok utf-8 automatically?
21:29 Tene jjore_: We're glad to have you. :)
21:30 jjore_ Apparently emacs 22.2.1.
21:30 supernovus Hmm, This Parrot cannot read bytecode files with version 8.0?
21:31 jjore_ Whatevs.
21:31 wolverian jjore_: upgrading to 23 might help. I'm not sure though.
21:31 tylercurtis jjore_: I think I've seen references to erc in someone's quit messages. I'll try searching to see whom it was.
21:31 jjore_ Supposedly all this is supposed to "just work" but since it doesn't, srsly, whatever.
21:32 wolverian yeah. annoying
21:35 [bjoern] Where would I find documentation of all the members of Regex::Match?
21:37 tylercurtis [bjoern]: NQP-rx Regex::Match or Perl 6 Match?
21:38 [bjoern] The latter
21:38 tylercurtis http://perlcabal.org/syn/S05.html#Return_values_from_matches is the spec.
21:39 [bjoern] Yeah that doesn't quite say "has method x and attribute y and method z" in a digestable form
21:39 tylercurtis http://github.com/rakudo/rakudo/blob/master/src/core/Match.pm is Rakudo's implementation thereof, which inherits from NQP-rx's Regex::Match iiuc, Regex::Match being located at http://github.com/perl6/nqp-rx/blob/master/src/Regex/Match.pir
21:40 jnthn rakudo: say Match.^methods(:local).join(', ')
21:40 p6eval rakudo 528bf6: OUTPUT«Str, list, at_key, hash, at_pos, caps, ast, chunks, Bool, defined, perl, create, of␤»
21:40 Tene rakudo: say Match.^attributes.perl
21:40 p6eval rakudo 528bf6: OUTPUT«Method 'attributes' not found for invocant of class 'P6metaclass'␤  in main program body at line 22:/tmp/Y2PLUHI6Cj␤»
21:40 [bjoern] Didn't .perl use to give a perl representation of the match or something like that?
21:40 justatheory joined #perl6
21:40 Tene [bjoern]: it still should
21:41 jnthn rakudo: 'omg a flying elephant' ~~ /<[aeiou]>/; say $/.perl
21:41 [bjoern] say $foo.perl gives me "Any()"
21:41 p6eval rakudo 528bf6: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ from => 0,␤ orig => "omg a flying elephant",␤ to   => 1,␤)␤»
21:42 [bjoern] My version is from april apparently
21:45 jjore_ So I straced my irc client and watched the server send me the bytes "\302\273\303\266\302\253"
21:45 jjore_ Trying that even in a plain shell doesn't even work nicely. So maybe it's something about my ludid ubuntu
21:45 Tene rakudo: sub handle(Match $m (:$from)) { say $m.perl; }; handle('foo'~~/f/);
21:45 p6eval rakudo 528bf6: OUTPUT«Method 'attributes' not found for invocant of class 'P6metaclass'␤  in 'Mu::Capture' at line 1196:CORE.setting␤  in 'handle' at line 1:/tmp/rZ2ZT0w8rL␤  in 'handle' at line 22:/tmp/rZ2ZT0w8rL␤  in main program body at line 22:/tmp/rZ2ZT0w8rL␤»
21:45 ashleydev joined #perl6
21:46 [bjoern] That's C2 BB C3 B6 C2 AB
21:46 [bjoern] Which is UTF-8
21:46 [bjoern] for the string in the topic
21:46 jnthn mberends: ping?
21:47 jjore_ yeah, so like I said, maybe it's an ubuntu or bash or xterm thing
21:47 Tene jjore_: echo -e '\xC2\xBB\xC3\xB6\xC2\xAB'
21:47 cono I have an error: PackFile_unpack: This Parrot cannot read bytecode files with version 8.0.
21:48 jjore_ I assume that's the same thing but in hex? I already ran echo $'\302\273\303\266\302\253'
21:48 cono just git pulled and rebuild perl
21:48 cono for any cod
21:48 jjore_ which comes out poorly.
21:48 cono code*
21:48 Tene Yeah, your version works fine for me too.
21:48 Tene So, sounds right.
21:49 jnthn cono: Few people have mentioend that today. I think somebody mentioned nuking their Parrot checkout and getting a fresh checkout of that helped.
21:49 jnthn oh man...Zavolaj is...yeah...hosed. :/
21:49 cono jnthn: thanks
21:49 [bjoern] Ah .perl works with 2.6.0
21:50 supernovus Kodi: What is your username on github?
21:50 Kodi supernovus: KodiB.
21:50 Schwern joined #perl6
21:50 jjore_ Oh hey, telling *putty* to be in UTF-8 was also important.
21:51 jnthn pmichaud: ping, when you're back from talking :-)
21:51 pmichaud jnthn: pong
21:51 supernovus Kodi: Okay, you and masak have commit bits on the temporal-utils project, which now has DateTime::Utils, formerly DateTime::strftime. I'll submit a patch to have it removed from Rakudo's tree, and a request to have it as a "bundled module" in Rakudo *
21:52 Kodi Nifty.
21:53 jnthn pmichaud: Wait, I may not need you...I was previously doing Zavolaj by setting the $!do and that was not ending well after the various changes you did for closures. But it may be that .wrap works.
21:54 pmichaud jnthn: glad if I'm not needed :)
21:54 jnthn pmichaud: ah no, .wrap doesn't work etiher :-(
21:55 jnthn rakudo: sub foo() { say 41 }; &foo.wrap({ say 42 }); foo()
21:55 p6eval rakudo 528bf6: OUTPUT«42␤»
21:55 Kodi phenny: tell masak I implemented immutability for DateTimes and edited the spec and tests appropriately, and then, since I was on a roll, I did the same for leap-second validation. All that remains is some cleanup, and then I'll have a gist for you to look at.
21:55 phenny Kodi: I'll pass that on when masak is around.
21:55 jnthn pmichaud: OK, trait mods are invoked with the non-closure versions of the sub. (the static one)
21:55 jnthn pmichaud: I then replace the $!do in this in the current version. .wrap also replaces $!do
21:56 jnthn pmichaud: However, that doesn't seem to influce closures made from the block.
21:56 jjore_ So why are we so utf-8 happy when the world of editors and consoles and such *isn't* generally ok with utf-8?
21:56 pmichaud $!do is a property?
21:56 jnthn pmichaud: Which somehow seem to end up calling the same inner thing.
21:56 supernovus Kodi+=10
21:56 jnthn pmichaud: attribute last I had it
21:56 jnthn pmichaud: It's the Parrot sub, or at least was.
21:56 pmichaud jnthn: okay, attribute should work.
21:56 jnthn Let me check how you changed things :-)
21:56 pmichaud I don't think I changed that.
21:56 tylercurtis jjore_: because ASCII is culturally imperialistic. :)
21:56 jjore_ but it is what *works*
21:57 jnthn pmichaud: I didn't think so either. Something has changed enough though...
21:57 Kodi supernovus: You are very kind. :)
21:57 jnthn pmichaud: What are those !get_closure methods defined on?
21:57 pmichaud parrot;Sub, iirc
21:57 Kodi left #perl6
21:57 cono jnthn++ works ! :)
21:58 jnthn I do occasionally, yes.
21:58 jnthn Oh, you meant the Parrot suggestion :-)
21:58 pmichaud jnthn: yes, they're methods on parrot;Sub
21:58 jnthn pmichaud: ooh... hmm.
21:58 jnthn pmichaud: Ah...let me see if I follow this right.
21:58 cono jnthn: I mean mine p6 works after your helping :)
21:58 jnthn pmichaud: The Parrot sub is the center of attention now.
21:59 pmichaud jnthn: correct, because it's the only thing that has a unique identity
21:59 pmichaud (at least, it's the easiest key)
21:59 jnthn cono: \o/ отлично!
21:59 tylercurtis jjore_: for some things, it does.
21:59 cono jnthn: I shocked!
22:00 jnthn pmichaud: Right, I'm just not too sure how to do .wrap now properly...
22:00 pmichaud where's .wrap defined?
22:01 jnthn pmichaud: Routine.pir
22:01 jnthn pmichaud: I haven't really re-done it properly yet for master or since the closure changes
22:01 jnthn pmichaud: It's kinda still "to do"
22:01 pmichaud yeah
22:01 jnthn pmichaud: I was faking it in Zavolaj by just replacing $!do
22:02 jnthn Which is kidna what I envisioned .wrap doing too
22:02 slavik jnthn: что происходит?
22:02 pmichaud replacing $!do on a clone is probably okay
22:02 Tene jnthn: while you're thinking about it, it'll be nice if you can get it working from a sub trait handler, too, btw.
22:02 jnthn Tene: That's _exactly_ what Zavolaj needs.
22:03 jnthn Tene: So yes :-)
22:03 pmichaud jnthn: also, I suspect that you could turn your helpers into closures :-)
22:03 mberends jnthn: pong!
22:04 jnthn mberends: oh no Makefile fail!
22:04 jnthn mberends: namke is not at all happy about $(shell ... )
22:04 jnthn pmichaud: Yeah but in trait mods we don't have a clone.
22:05 jnthn mberends: I don't have enough Makefile-fu to really know what else to try there.
22:05 jnthn mberends: I can see what the aim is.
22:05 pyrimidine left #perl6
22:06 pmichaud jnthn: I think I have to refresh my .wrap memory to be of much help
22:06 jnthn pmichaud: OK
22:06 jnthn pmichaud: Anyway, I can best fix Zavolaj by making .wrap work sufficiently from trait_mod
22:07 tylercurtis O.o... you can have scripts inside block-quotes in HTML.
22:07 jnthn Can't you have scripts inside anything in HTML? :-)
22:07 pmichaud where does trait_mod invoke wrap, ooc?
22:08 jnthn pmichaud: Zavolaj has a trait_mod that currently does a pir::setattribute($routine, '$!do' thingy)
22:08 jnthn pmichaud: I'm looking to replace that with $routine.wrap(thigy);
22:08 jnthn pmichaud: It wouldn't actually call the original
22:09 jnthn pmichaud: In native call we just ignore the Perl 6 sub body.
22:10 TimToady sorear: there's already a parameter binding form of when: see S03:3616
22:10 tylercurtis jnthn: I suppose anything that allows inline. But it just seems that blockquote would have a specific exception: "you can have any block element, or scripts, in here".
22:10 jnthn huh, s03? :-)
22:10 jferrero joined #perl6
22:10 * jnthn went looking in S04 :-)
22:11 supernovus May I request that someone with a proto commit bit add http://github.com/supernovus/temporal-utils to the modules list ? It's where I've moved the DateTime::Utils module providing strftime (and shortly, offset-in-seconds)
22:11 TimToady helps in grepping to know what it already looks like:  when * -> $a, $b {...}
22:12 jnthn TimToady: oh, I was looking for "when ->" :-)
22:12 TimToady that would mean something else
22:13 TimToady that would be pattern matching with a lambda, and require another block after it
22:13 jnthn *nod*
22:13 jnthn TimToady: aye, makes sense
22:13 TimToady mind, that'd have roughly the same effect, if you put an empty block afgter
22:14 pmichaud jnthn: I can't think of any reason off the top of my head why assigning to $!do would no longer work.
22:15 jnthn pmichaud: because in !get_closure it does
22:15 jnthn do = clone self
22:15 jnthn Which assumes the original Parrot sub is being cloned
22:15 pmichaud okay, I'm just confused.
22:16 jnthn pmichaud: Unless by assign by mean like pir::copy
22:16 pmichaud I don't know nearly enough about Zavolaj or the wrap implementation to be of much help, I fear.
22:16 jnthn Rather than a setattribute on the $!do, which I guess is a bind
22:16 jnthn pmichaud: OK, let's step back from those.
22:16 jnthn pmichaud: Here's what I need to do.
22:16 jnthn pmichaud: We have some sub foo() { }
22:17 jnthn pmichaud: That compiles down to a Parrot Sub and we do !get_code on it to get the static code object, and !get_closure on it to get the dynamic one
22:17 pmichaud okay so far.
22:17 jnthn pmichaud: OK, so far wrap when somebody does foo() we need to not run the original Parrot sub
22:18 jnthn pmichaud: We need to run some new thing.
22:19 pmichaud so far so good.
22:19 jnthn OK, so my question is how do I specify that, when I make a call on foo() - the wrapper - then I should end up running some other Parrot sub instead of the original Parrot Sub?
22:20 pmichaud if I do  &foo.wrap({ ... }), am I modifying the static code object or the dynamic one?
22:20 pmichaud I think it must be the dynamic one.
22:21 cono Where can I find Buf class implementation ?
22:21 cono src/core/Buf.pm contain only a role
22:21 jnthn pmichaud: Potentially either. (more)
22:22 jnthn cono: There is just the role - it gets punned into a class when needed.
22:22 jnthn pmichaud: in the trait_mod, we are given the static code object.
22:22 jnthn pmichaud: Wrapping that should certainly affect all dynamic versions down the line.
22:22 cono jnthn: bug IO.read returns Buf.new
22:22 pmichaud I don't understand the trait_mod case.  example or code, please?
22:22 cono but*
22:23 jnthn rakudo: multi trait_mod:<is>(Routine $r, :$native!) { $r.wrap({ say "native call" }); }; sub foo is native { say "oh noes" }; foo()
22:23 p6eval rakudo 528bf6: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Routine $r, Any :default($default)!)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤:(Mu $type where ({ ... }), Any
22:23 p6eval ..:rw($rw)…
22:23 jnthn rakudo: our multi trait_mod:<is>(Routine $r, :$native!) { $r.wrap({ say "native call" }); }; sub foo is native { say "oh noes" }; foo()
22:24 p6eval rakudo 528bf6: OUTPUT«oh noes␤»
22:24 jnthn pmichaud: ^^
22:24 jnthn cono: Yes. If you try to call a method on a role, it automatically generates a class that has the role composed into it.
22:24 jnthn cono: And then calls the method on the class.
22:24 cono wow
22:24 cono jnthn: ic, thanks )
22:25 jnthn rakudo: role Foo[$val] { has $.x = $val; }; say Foo[42].x; say Foo['pivo'].x
22:25 p6eval rakudo 528bf6: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!x␤  in main program body at line 22:/tmp/wC9Nw8VyCO␤»
22:25 jnthn oops!
22:25 jnthn rakudo: role Foo[$val] { has $.x = $val; }; say Foo[42].new.x; say Foo['pivo'].new.x
22:25 p6eval rakudo 528bf6: OUTPUT«42␤pivo␤»
22:25 jnthn Still have to instantiate it ;-)
22:25 jnthn :-)
22:26 jnthn pmichaud: Did you follow the example?
22:26 pmichaud jnthn: I'm working through it.
22:26 cono cool
22:26 pmichaud in this case, I think that trait_mod:<is> should be called with the static code object
22:26 pmichaud yes?
22:26 jnthn pmichaud: I believe it is being yes
22:26 pmichaud so .wrap should be replacing the $!do of the static code object
22:26 jnthn I think we decided it had to be that way during the refactors.
22:27 jnthn pmichaud: Yes, it is.
22:27 pmichaud okay
22:27 pmichaud I think I see the fix
22:27 pmichaud just a second
22:27 jnthn pmichaud: The trouble is that replacing the $!do in the static code object does not influence the $!do of the dynamic code object.
22:27 jnthn k :-)
22:28 pmichaud did you try changing
22:28 pmichaud do = clone self
22:28 pmichaud to instead clone the $!do of the static code object
22:28 pmichaud (in !get_closure) ?
22:29 pmichaud in this way, the parrot Sub continues to be the handle to get static/dynamic code objects, but the cloning always comes from the static code object
22:29 cono rakudo: my @arr = 1,2,3; Buf[Str].new(@arr).[0].WHAT.say
22:29 p6eval rakudo 528bf6: OUTPUT«Int()␤»
22:29 pmichaud (which can have its $!do replaced)
22:29 cono It's because attribute typing is nto working?
22:29 jnthn cono: Yes
22:30 jnthn pmichaud: I didn't - that was the line I mentioned a few screenfulls back, but with little idea if I was being sane back then. :-)
22:30 jnthn pmichaud: The fact you've got there too suggests that maybe yes :-)
22:30 pmichaud jnthn: I suggest try that and see what happens.  I *think* it should work.
22:31 jnthn pmichaud: Compiling.
22:31 jaldhar joined #perl6
22:32 tylercurtis cono: Buf stuff probably will not work anything like you expect for Buf[Str]. You want to pass in some kind of integral type to Buf.
22:33 pmichaud jnthn: have a diff I can look at real quick to see if I see anything odd?
22:33 pmichaud (a diff for !get_closure)
22:34 jnthn pmichaud: http://gist.github.com/485246
22:34 tylercurtis Is Buf supposed to be a role or a class?
22:35 pmichaud jnthn: yeah, that looks reasonable.
22:35 jnthn tylercurtis: It's type-parametric I think, so role is sane.
22:35 pmichaud jnthn: I hope that works.  It doesn't set off alarm bells in my head, and I agree that the  do = clone self  isn't going to work out.
22:35 zamolxes joined #perl6
22:35 pmichaud just make sure whatever you stick in the $!do is reliably clone-able :)
22:36 jnthn pmichaud: looks promising
22:36 tylercurtis S32/Containers says class, but S02 says role.
22:36 Schwern joined #perl6
22:37 jnthn pmichaud: With that patch, Zavolaj works again without changes. \o/
22:38 tylercurtis jnthn++, pmichaud++
22:39 jnthn pmichaud++ # thanks! :-)
22:39 jnthn .wrap doesn't quite work but I know .wrap is generally a bit busted anyway
22:39 jnthn So that's maybe not even related
22:39 pmichaud .wrap should be fixable along the same lines now, though.
22:39 jnthn pmichaud: Right.
22:40 pmichaud anyway, glad to help on short notice.
22:40 jnthn pmichaud: Will spectest and push if this works.
22:40 pmichaud +1
22:40 pmichaud jnthn++
22:40 jnthn er, if it passes
22:40 jnthn :-)
22:40 jnthn Anyway, that fixes Zavolaj up, hopefully.
22:40 pmichaud as I said, I can't think of any alarm bells for it.
22:40 pmichaud so, I'm pretty comfortable with the change.
22:41 jnthn pmichaud: Yes, was a little less than keen to touch that code without running things by you first though. It's still quite new.
22:41 pmichaud it's also good for me to know that change was made (and why, and what it means overall)
22:41 pmichaud I didn't have the use case in my head until this conversation :)
22:42 pmichaud it's snack time here, so I'll bbiaw
22:42 jnthn kk
22:43 cono tylercurtis: What integral types besides Int?
22:43 tylercurtis cono: mostly the native types, I think.
22:43 jnthn Aye
22:44 jnthn int8, int16, etc.
22:44 jnthn Not implemented just yet.
22:44 tylercurtis jnthn: Although probably uint8, uint16 is usually what is desired for Buf.
22:44 cono :(
22:45 jnthn tylercurtis: aye
22:45 jnthn I expect to implement them in the next few months.
22:46 cono pack needs Buf, Buf needs integral types and method types which are not implemented...
22:48 cono ok, I guess I can emulate pack by doing ~|, ~& ...
22:48 jaldhar joined #perl6
22:51 jnthn cono: If you're interested in pack, also talk with masak, who is very interested in working on that too.
22:53 cono ok, thanks, I will :)
22:55 justatheory joined #perl6
23:00 * jnthn afk for a bit
23:03 supernovus DateTime::Utils now has a iso-offset() function, that lets you do things like: DateTime.now(:timezone(iso-offset('-0800')));
23:04 justatheory joined #perl6
23:35 timbunce joined #perl6
23:36 zamolxes joined #perl6
23:39 justatheory joined #perl6
23:41 justatheory joined #perl6
23:43 tadzik joined #perl6
23:45 justatheory joined #perl6
23:48 tylercurtis Is there a "is required" or similar trait for attributes?
23:51 Schwern joined #perl6
23:51 tadzik I don't think so
23:51 tadzik you can have $.attr = die "attr is required"
23:54 tadzik hmm, I've ported File::Find but the usage is a bit different than Perl5's one
23:54 tylercurtis std: class Foo { has $.attr = die "attr is required" }
23:54 p6eval std 31784: OUTPUT«ok 00:01 118m␤»
23:54 tylercurtis rakudo: class Foo { has $.attr = die "attr is required" }; Foo.new; say "alive"
23:55 p6eval rakudo 1d4ba4: OUTPUT«attr is required␤  in <anon> at line 22:/tmp/WJSJJY6NhU␤  in main program body at line 22:/tmp/WJSJJY6NhU␤»
23:55 tylercurtis rakudo: class Foo { has $.attr = die "attr is required" }; Foo.new(:attr(5)); say "alive"
23:55 p6eval rakudo 1d4ba4: OUTPUT«alive␤»
23:55 tylercurtis tadzik++, thanks.
23:55 tadzik you're welcome
23:55 tadzik tylercurtis: ever used Perl 5's File::Find?
23:56 tylercurtis tadzik: No; I haven't done much Perl 5 at all.
23:56 tadzik I see
23:57 Psyche^ joined #perl6
23:57 cono I used much, but never used File::Find :)
23:58 tadzik :) Wanna share thoughts?
23:59 cono about?
23:59 tadzik Perl 5's File::Find fires a callback on every file it found. The callback takes no arguments, but can get the current filename, path, and directory name from external variables. My version just passes the whole path to the callback
23:59 tadzik also it does not chdir(). I wonder how bad it is, and what advantages does original approach have

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

Perl 6 | Reference Documentation | Rakudo