Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-04-15

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:18 tokuhirom joined #perl6
00:21 _jaldhar joined #perl6
00:26 wolfman2000 joined #perl6
01:31 _jaldhar joined #perl6
01:45 IngisKahn left #perl6
01:52 raiph joined #perl6
02:11 orafu joined #perl6
02:51 plobsing joined #perl6
02:56 _jaldhar joined #perl6
03:11 tokuhirom joined #perl6
03:16 raiph phenny, tell lichtkind couple quick gollum experiments at https://github.com/raiph/tablets/wik​i/Jump-off-page-for-experiments-to-s​ee-which-format-suits-what-we-want ... I'll probably have time later today (Sunday) to try more
03:16 phenny raiph: I'll pass that on when lichtkind is around.
03:18 ingy masak: o/
04:01 birdwindupbird joined #perl6
04:20 skids joined #perl6
04:57 aloha joined #perl6
05:38 tonyni__ joined #perl6
05:39 moritz \o
05:42 oiig_ joined #perl6
05:45 sorear o/
05:54 mucker joined #perl6
05:57 jaffa4 joined #perl6
06:00 mucker joined #perl6
06:20 dm4 joined #perl6
06:22 birdwindupbird joined #perl6
06:59 sorear n: for 1..6 { .print; }
06:59 p6eval niecza v15-6-gefda208: OUTPUT«Unhandled exception: Unable to resolve method print in class Int␤  at /tmp/rU9PCxWZOQ line 1 (mainline @ 6) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤  at /home/p…
07:01 sorear moritz: ping
07:02 jaffa4 hi
07:03 jaffa4 How to compare the type of a class with a string?
07:03 sorear $myClass.^name eq $string
07:03 sorear but why would you want to do such a thing?
07:04 jaffa4 who knows?
07:04 sorear jaffa4: Don't do it.
07:04 sorear If you don't know why you're doing it, JUST DON'T.
07:04 jaffa4 supposed to be part of test
07:05 jaffa4 if someone knows how to use introspection in Perl 6.
07:05 sorear dude, I already answered you
07:05 sorear very first thign
07:05 jaffa4 that is clear  and I answered you.
07:07 jaffa4 I tried to use WHAT
07:07 jaffa4 I just cannot stringify it.
07:08 sorear use .^name on it
07:08 sorear 00:03 < sorear> $myClass.^name eq $string
07:08 sorear r: my $x = Int; say $x.^name eq "Int"
07:08 p6eval rakudo 3bd91f: OUTPUT«True␤»
07:08 sorear r: my $x = Int; say $x.^name eq "Str"
07:08 p6eval rakudo 3bd91f: OUTPUT«False␤»
07:08 jaffa4 this works too print  $b.WHAT.^name
07:09 jaffa4 ok
07:10 sorear *sigh*
07:10 * sorear is in a very mjd mood right now
07:10 jaffa4 mjd?
07:11 au yrlnry </not-helping>
07:11 au Mark-Jason Dominus (a bit more helping)
07:12 shachaf yrlnry = mjd?
07:13 shachaf Apparently.
07:20 sorear au: jaffa4 just asked me in PM who mjd is.
07:20 jaffa4 So?
07:20 sorear au: I think ey might have you on ignore.
07:21 au or maybe I didn't explain sufficient context. :)
07:22 sorear jaffa4: It doesn't make me want to answer your questions if I see you ignoring answers
07:22 jaffa4 I am missing context here, a lot
07:22 jaffa4 The answer did not make sense.
07:24 au MJD had a famous quote that I had to look up (in a conference now)
07:24 au "You can't just make shit up and expect the computer to magically understand what you mean, retardo" - mjd
07:24 au and other bitter quotes such as this
07:24 jaffa4 sorear: how to convert a perl6 program into and exe?
07:24 au which is, of course, unconductive to productive community discussion, but we all have such moments.
07:24 jaffa4 Is it possible with netcza?
07:25 sorear I was hoping to use mjd as a coded reference to my own frustration
07:25 jaffa4 that assumed your audience understands your references.
07:25 sorear jaffa4: niecza cannot produce a single exe from your program; it produces an exe and a bunch of dlls
07:25 au a bit of antidote (allison's talk I transcribed just now) http://paste.plurk.com/show/1008460/
07:25 jaffa4 sorear: that is ok
07:26 jaffa4 I just could not find an example how to do it, Do you have one?
07:27 sorear this could really stand to be documented
07:28 jaffa4 I guess it is just couple of lines..right?
07:28 sorear Yes
07:29 jaffa4 Could you share it with me?
07:29 sorear I'm writing it up now
07:29 sorear I want this for posterity, in a better way than the logs
07:30 fglock o/
07:30 au /o
07:30 GlitchMr joined #perl6
07:37 * fglock figuring out the rules for interpolation inside regex in perl5
07:38 au would PPI help?
07:39 fglock $a[2] $a[-1] interpolates, $a[2-3] $a["1"] doesn't
07:39 fglock hmm - maybe, I'll take a look
07:42 sorear hrrrmh.  Bundling is not working right now and I can't figure out why
07:42 sorear oops
07:49 dalek niecza: d71c0cd | sorear++ | docs/making-standalone-exes.txt:
07:49 dalek niecza: Add draft documentation on making shippable binaries
07:49 dalek niecza: review: https://github.com/sorear/niecza/commit/d71c0cd0a9
07:49 sorear jaffa4: try reading that
07:54 jaffa4 with .net, where are the generated object?
07:55 sivoais joined #perl6
07:55 sorear same place
07:57 jaffa4 in short, all files need to be copied from obj directory
07:57 jaffa4 and main file needs to be renamed.
07:57 sorear yes
07:58 jaffa4 how optimised is the generated code?
07:58 sorear Never enough. :)
07:58 sorear jaffa4: apologies for rough treatment earlier
07:58 sorear I need to watch myself better
08:00 jaffa4 great, you solved the long running problem of perl compilation.
08:02 jaffa4 sorear, I see so you are self-improving type?
08:03 fglock no luck with ppi, it doesn't parse the regex:   PPI::Token::Regexp::Match  '/xyz$a[1]/'
08:04 jaffa4 fglock, what are you doing with PPI?
08:05 fglock trying to figure out the parse rules for interpolating strings into regex in perl5
08:05 * au ponders "use re 'debug'"
08:06 au oh right, you were designing so it doesn't need calling to /usr/bin/perl
08:06 au nvm
08:07 sorear <3 self improvement
08:08 fglock trial-and-error works :P
08:10 au fglock++ # perseverance
08:13 NamelessTee joined #perl6
08:13 jaffa4 intention works
08:52 araujo joined #perl6
08:52 araujo joined #perl6
08:57 moritz sorear: PONG
08:58 moritz erm, pong
08:58 sorear moritz: ISTR that you hold the mutex on implementing rebuilds on feather1/3.  Is this correct?
08:59 moritz not really
08:59 moritz its missing cronjobs and some output redirects
09:00 sorear ok, I'll make it work when I get a round tuit
09:06 moritz all my square tuits are round
09:08 moritz ok, I'm installing some cronjobs now
09:12 cognominal_ joined #perl6
09:21 moritz r: say 1
09:21 p6eval rakudo 3bd91f: OUTPUT«1␤»
09:22 uvtc joined #perl6
09:30 masak antenoon, #perl6
09:30 moritz \o masak
09:30 * sorear sleep
09:31 moritz r: say 1
09:31 p6eval rakudo c384ab: OUTPUT«1␤»
09:31 moritz r: my $x = 5; say MY::<$x>
09:31 p6eval rakudo c384ab: OUTPUT«5␤»
09:31 moritz \o/
09:31 moritz jnthn++
09:32 moritz \o/
09:32 moritz r: my $x = 5; { my $x = 8; say OUTER::<$x> }
09:32 p6eval rakudo c384ab: OUTPUT«5␤»
09:32 moritz r: my $x = 5; { my $x = 8; say $OUTER::x }
09:32 p6eval rakudo c384ab: OUTPUT«5␤»
09:32 moritz r: say open("README").get
09:32 p6eval rakudo c384ab: OUTPUT«open is disallowed in safe mode␤  in sub restricted at src/SAFE.setting:2␤  in sub open at src/SAFE.setting:5␤  in block <anon> at /tmp/_qKDvLQQ8k:1␤␤»
09:32 moritz r: say OUTER::open("README").get
09:32 p6eval rakudo c384ab: OUTPUT«Method 'Any' not found for invocant of class 'Str'␤  in <anon> at src/gen/BOOTSTRAP.pm:803␤  in any <anon> at src/gen/BOOTSTRAP.pm:800␤  in block <anon> at /tmp/wzNA1qk7yY:1␤␤»
09:33 moritz that's a weird error
09:35 * masak reads the backlog and marvels at how jaffa4 manages to find new, provocative ways to not know stuff and not listen to advice
09:35 au . o O ( whetstones )
09:37 masak sounds like a nice metaphor for something.
09:37 moritz std: 1
09:37 p6eval std 3d13d53: OUTPUT«ok 00:00 40m␤»
09:37 moritz that's up to date. good
09:38 jnthn mornin'
09:38 masak sorear++ # writing something up as response to someone's question
09:38 jnthn nom: say Int::.WHAT
09:38 p6eval rakudo c384ab: OUTPUT«Stash()␤»
09:39 jnthn Woo.
09:39 masak \o/
09:39 moritz r: class A { }; subset A of Any;
09:39 p6eval rakudo c384ab:  ( no output )
09:40 moritz that's the last failing test in S32-exceptions/misc.t
09:43 jnthn Hm. That should be a redeclaration error...
09:43 moritz correct
09:44 jnthn Prolly me to blam
09:44 jnthn *blame
09:44 moritz correct :-)
09:44 * jnthn will try to turn that wtf into a ftw
09:45 moritz prolly just misses a check in the actions
09:45 masak allison++ # http://paste.plurk.com/show/1008460/
09:46 moritz hm, there's a check in the grammar already
09:46 moritz for some reason it's not triggered
09:47 jnthn oh, think I may see it
09:48 * jnthn tries a patch
09:49 masak http://jlongster.com/2012/02/18/its-​not-about-macros-its-about-read.html # for people interested in macros.
09:49 masak it gave me a bit of an enlightening experience.
09:50 zhutingting joined #perl6
09:50 masak macros are just the conduit for re-jiggering what the parser does. yep, we knew that.
09:50 masak but it's *hard* to find good examples of when to use a macro by going looking for it. I think the use cases will b
09:50 masak present themselves gradually, slowly.
09:51 dalek rakudo/nom: 64f70e8 | jnthn++ | src/Perl6/Grammar.pm:
09:51 dalek rakudo/nom: Fix a thinko.
09:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/64f70e8862
09:56 cognominal_ joined #perl6
09:58 moritz if a macro in lisp changes the syntax of the language, does (read ) know about that?
09:59 dalek rakudo/nom: 0227a99 | jnthn++ | src/Perl6/World.pm:
09:59 dalek rakudo/nom: Remove a workaround I couldn't figure out why was needed; turns out it was just the buggy call from token subset.
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0227a99e45
09:59 jnthn moritz: All cleared up now. Thanks.
10:00 Trashlord joined #perl6
10:00 jnthn Also, the cleaned up name handling gives a little performance win that pulls my spectest run back under 200s. :)
10:00 dalek roast: 0de66e0 | moritz++ | S (7 files):
10:00 dalek roast: rakudo unfudges
10:00 dalek roast: review: https://github.com/perl6/roast/commit/0de66e08d5
10:05 cognominal_ joined #perl6
10:14 dalek rakudo/nom: 1639834 | jnthn++ | src/Perl6/Grammar.pm:
10:14 dalek rakudo/nom: Eliminate the last remaining use of parse_name in the Grammar.
10:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1639834cc2
10:14 dalek rakudo/nom: e07d6e4 | jnthn++ | src/Perl6/Actions.pm:
10:14 dalek rakudo/nom: Toss an unused action method that mostly dates back to the pre-nom days.
10:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e07d6e4411
10:14 dalek rakudo/nom: a803152 | jnthn++ | .gitignore:
10:14 dalek rakudo/nom: Add .exp and .lib to .gitignore.
10:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a80315280a
10:21 jaffa4 sorear: why do you have ser files?
10:21 jnthn .oO( He likes cheese )
10:22 * masak .oO( he's of the noble class in the Ice and Fire universe )
10:24 geekosaur because they are?
10:24 jaffa4 look redundan
10:25 jnthn I think they contain serialized data
10:25 jnthn Like, about the classes etc.
10:25 jaffa4 the source code itself in there.
10:27 jaffa4 I guess he stored the parse tree in ser files
10:27 geekosaur could also be used for optimization (inlining?)
10:27 jaffa4 probably not
10:28 geekosaur I didn't esay it was necessarily implemented yet, just there to support it
10:30 dalek rakudo/nom: a648357 | jnthn++ | src/Perl6/Actions.pm:
10:30 dalek rakudo/nom: Eliminate the majority of the remaining uses of parse_name; just one left in Actions now.
10:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a64835723c
10:39 spider-mario joined #perl6
10:42 whiteknight joined #perl6
10:43 daniel-s joined #perl6
10:44 daniel-s perl6: say "hi"
10:44 p6eval pugs, rakudo 0227a9, niecza v16-19-gd71c0cd: OUTPUT«hi␤»
10:44 daniel-s :)
10:48 arnsholt moritz: Most Lisp macros don't change the syntax as such, since it's all sexps anyways
10:48 arnsholt But AFAIK read will obey new reader macros when reading in stuff
10:49 masak daniel-s! \o/
10:50 masak arnsholt: presuming you mistab'd and meant me.
10:50 tadzik p6: say "hi daniel-s"
10:50 p6eval pugs, rakudo 0227a9, niecza v16-19-gd71c0cd: OUTPUT«hi daniel-s␤»
10:50 masak arnsholt: well, my point is something like, we'll miss all the cool use of macros as long as we're just thinking "like subs, but slightly different".
10:51 masak arnsholt: we probably need to think more like "let's co-opt the parser"
10:52 JimmyZ joined #perl6
10:55 arnsholt masak: No, moritz had a question about read(), at least in my history =)
10:55 arnsholt But yeah, co-opting the parser is fertile ground for cool stuff I think
10:56 masak oh.
10:56 arnsholt But I like talking to you too, so that's ok ^_^
10:56 masak ah, now I see moritz++' question.
10:56 * masak .oO( reverse meta-mistab )
10:57 masak anyway. I now think macros are syntactically and semantically like subs, but pragmatically quite different.
10:58 arnsholt Makes sense, I think
10:59 arnsholt I mean, even in Lisp, a macro-call and function-call are syntactically the same. It's the semantics (FSVO semantics) that are different
11:00 masak I've ported Salvador Fandino's http://blogs.perl.org/users/salvador_fandin​o/2012/03/solving-carl-masaks-counting-t4-c​onfigurations-problem-in-pure-perl-5.html to Perl 6.
11:00 arnsholt (Modulo other stuff called macro which isn't defmacro())
11:00 masak but I can't seem to shake out the last bug from out of it. does someone want to help me?
11:01 masak here it is: https://gist.github.com/2391923
11:02 masak note that it is a straight port -- that is, I don't try to write idiomatic Perl 6, I try to keep as close to the Perl 5 as possible.
11:02 masak I'm tempted to make a more idiomatic version once I/we get this one to work.
11:04 masak speaking of which, I finally grok'd http://irclog.perlgeek.de/​perl6/2012-03-28#i_5361317
11:04 thelazydeveloper joined #perl6
11:05 masak the simple answer is that Salvador changes the string as he goes. so after he's checked for length-two things, there's already an x there when he checks for length-three things.
11:05 masak d'oh.
11:05 masak :)
11:05 dalek rakudo/nom: 8f94276 | jnthn++ | src/Perl6/ (2 files):
11:05 dalek rakudo/nom: Eliminate last remaining parse_name call, whihc was in compilation of variables. Another tiny speedup from avoiding the reparsing.
11:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8f9427678c
11:05 dalek rakudo/nom: 1421472 | jnthn++ | src/Perl6/Grammar.pm:
11:05 dalek rakudo/nom: Toss parse_name.
11:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1421472184
11:06 spider-mario yay, I like speedups.
11:06 spider-mario :)
11:06 tadzik \o/
11:07 jnthn They're compilation time ones.
11:07 tadzik even better
11:07 spider-mario still, it’s appreciated
11:07 spider-mario thanks
11:07 masak r: say "foooo" ~~ /^ f o ** 4 $/
11:07 p6eval rakudo 0227a9: OUTPUT«=> <foooo>␤␤»
11:07 jnthn Basically, we used to re-parse names in a bunch of situations. Now we just go off the perfectly good parse that the parser already produced. :)
11:07 masak r: my $l = 4; say "foooo" ~~ /^ f o ** $l $/
11:07 p6eval rakudo 0227a9: OUTPUT«#<failed match>␤»
11:07 masak oh!
11:07 masak r: my $l = 4; say "foooo" ~~ /^ f o ** {$l} $/
11:07 p6eval rakudo 0227a9: OUTPUT«=> <foooo>␤␤»
11:07 masak well.
11:07 masak that explains it.
11:07 masak :(
11:07 * masak submits rakudobug
11:08 tadzik jnthn: do you have plans to look into module loading bugs?
11:08 jnthn tadzik: Yes; just want to finish up the name cleanup and pseudo-package stuff I started off way back at GPW first :)
11:09 tadzik sure thing :)
11:09 jnthn Plus get us a couple more greens in the features page :)
11:09 jnthn masak: Curious. I can't help but wonder if it's treating it as a seperator.
11:10 jnthn masak: I didn't completely rip the old ** for separator syntax out yet.
11:10 masak jnthn: right, 'cus Rakudo ain't been updated to the new % syntax.
11:10 masak jnthn: anyway, it's in RT now.
11:10 jnthn masak: Yes and no.
11:10 jnthn masak: It supports the new syntax.
11:10 masak oh!
11:10 jnthn The old one was left in for migration purposes.
11:10 * masak .oO( lemmings jumping off cliff purposes )
11:10 jnthn It's been in a couple of star releases now with a big fat warning though :)
11:10 arnsholt jnthn: More about CSTRUCT_ATTR_*. Is CSTRUCT/CARRAY/CPTR intended as "it's an X", or "it's in an X"?
11:11 tadzik is there, the big fat warning?
11:11 masak jnthn: you expect me to read release announcements? I just write them! :P
11:11 masak jnthn: anyway, there being a difference between . ** $l and . ** {$l} is insane.
11:11 jnthn Here's a quote:
11:11 jnthn Currently, we have maintained backwards compatibility with some changed pieces of syntax, but will drop them in an upcoming release:
11:11 jnthn “<…>” in proto regex bodies; now this should be written “*” The use of “**” with a separator in regexes; this is now done by using “%” or “%%” on another quantifier
11:12 masak as in, not un-sane a la tadzik, but insane.
11:12 jnthn masak: (insane) yeah, another good reason to ahve changed the syntax to % :)
11:12 tadzik I mean, Grammar.pm itself could warn of it
11:12 jnthn arnsholt: I meant it as "this attribute points to a..."
11:13 masak heh. fixed the script; getting another wrong answer :P
11:14 arnsholt jnthn: Cheers. That's what I thought, but was a bit confused by the description "attribute location flags"
11:15 dalek features: 3559c67 | jnthn++ | features.json:
11:15 dalek features: Rakudo now does CALLER, DYNAMIC, OUTER, MY, OUR.
11:15 dalek features: review: https://github.com/perl6/f​eatures/commit/3559c67e46
11:15 jnthn arnsholt: Feel free to explain them in a way that makes more sense :)
11:15 fsergot joined #perl6
11:16 fsergot Hi #perl6 o/
11:16 arnsholt I can try, at any rate =)
11:17 tadzik hi fsergot
11:17 masak o fsergocie, dzień dobry!
11:17 arnsholt I've added another define after MASK as well, for the number of bits to shift when building up attribute_locations
11:19 jnthn OK
11:19 * jnthn afk for a bit
11:20 fsergot Do I have to write modules as dependencies if tests require them?
11:20 tadzik I would do so
11:20 tadzik well, I _do_ so :)
11:21 fsergot tadzik++ thanks ;)
11:23 masak r: my $l = 3; say "x" x 10 ~~ / x ** {$l} /
11:23 p6eval rakudo 142147: OUTPUT«=> <xxxxxxxxxx>␤␤»
11:23 masak aw, crap.
11:23 masak no wonder I'm not getting le right result! >:(
11:24 * masak submits another rakudobug
11:24 masak I can't even begin to give a reason for this one!
11:25 masak it's just "not to spec" in an unknown way.
11:25 * masak rants and raves all the way to RT
11:26 * felher gives masak a hug
11:27 masak thank you. :/
11:27 masak suggestions for workarounds appreciated.
11:27 masak I could use &eval, I guess.
11:27 masak but this is going up as a blog post, and I'd prefer something rather clean.
11:28 masak r: my $l = 3; say "x" x 10 ~~ / x ** {$l..$l} /
11:28 p6eval rakudo 142147: OUTPUT«=> <xxxxxxxxxx>␤␤»
11:28 masak r: my $l = 3; say "x" x 10 ~~ / x ** {say $l; $l} /
11:28 p6eval rakudo 142147: OUTPUT«3␤3␤3␤3␤3␤3␤3␤3␤3␤3␤=> <xxxxxxxxxx>␤␤»
11:28 tadzik there is no depends_tests as for now, maybe there will be one day
11:29 masak r: my $l = 3; say "x" x 10 ~~ / (x+) <?{ $0.chars == 3 }> /
11:29 p6eval rakudo 142147: OUTPUT«#<failed match>␤»
11:30 masak oh, is that the "backtracking into submatches" bug? d'aaargh!
11:30 masak or maybe someone'll come along and claim "you can't use $/ that early", even though they're wrong about that... :)
11:31 * masak is clearly too opinionated to program right now :)
11:31 * masak shelves it for now
11:33 arnsholt jnthn: I'm getting boatloads of errors compiling nqp on OS X, BTW (for some reason Parrot went with g++ as the compiler)
11:34 arnsholt Should I try to clean it up a bit when I get around to it, or just ignore them?
11:34 moritz ignore errors?
11:34 arnsholt Durr. s/errors/warnings/
11:35 moritz I think bbkr submitted bug reports for them
11:35 moritz feel free to clean up if you have some spare tuits
11:35 arnsholt Cool
11:36 arnsholt I'll put it off for now since recompiling NQP means recompiling Rakudo, and that's too time-consuming for my tastes right now
11:40 moritz if you don't do 'make install' in nqp, there's no reason to recompile rakudo afterwards
11:40 masak if I'm reading S05 correctly, . ** $var always meant 'use $var as a separator', regardless of what type $var is. and thus that's obsoleted syntax now.
11:41 masak so one has to use braces there.
11:41 masak that feels... slightly less motivated now that we have %
11:42 masak but maybe it's deemed necessary to forbid braceless counts because of the former use of it for separators.
11:43 moritz masak: note that ** <literal_range> is considered declarative
11:43 moritz masak: which is only possible if the range is known at compile time
11:43 moritz which is why interpolation requires a block
11:44 masak mhnm, not buying that. literal strings in a regex can only be considered declarative if they're not variables, too.
11:44 moritz which is a known NYI in rakudo
11:44 masak and yet you don't need braces to insert a variable in place of a literal string.
11:45 masak haha, my Gmail thinks perl6-bugs-followup@perl.org has a profile photo that looks like ingy++ in sunshades and a hoodie. :) how'd that happen?
11:45 moritz well, it's not quite the same, from the POV of constructing the automaton
11:49 felher moritz: A question if you will, m'lord: why are the exceptions not a complete hierachy? i.e.: Why are there the Exceptions 'X::IO::Copy does X::OS' and 'X::IO::Renae does X::OS' but no 'X::IO' role? Just a matter of work/time?
11:49 * felher has watched to much games of thrones.
11:53 GlitchMr joined #perl6
11:55 tadzik read the books, seriously :)
11:57 felher tadzik: yeah, i'm currently in the middle of 'A Storm of Swords'
11:57 tadzik good :)
12:02 felher tadzik: have you read the complete 'A Song of Ice and Fire' serires so far?
12:07 felher s/serires/series/
12:10 masak no-one has. it's not finished yet.
12:12 felher A thought 'so far' means something like 'everthing that is finished by now' :)
12:12 felher *I
12:12 moritz felher: matter of time. X:IO would be desirable
12:13 felher moritz: ok. I wanted to add a few typex Exceptions for the IO-Stuff because i need them in a little program. So you don't mind if i add a 'role X::IO { }'?
12:13 masak felher: oh, missed the 'so far' part :)
12:14 moritz felher: +1 to X::IO. If all X::IO errors also do X::OS, you can even say  my role X::IO does X::OS
12:14 moritz and then don't list the X::OS explicitly anymore
12:14 felher moritz: yeah, good point :)
12:14 felher masak: :)
12:19 felher Hm, while compiling rakudo, NetHack is a good game to play. It doesn't use that much CPU... :)
12:19 bacek joined #perl6
12:20 masak r: say 'x' x 10 ~~ /^ x+ <?{ $/.to == 3 }> /
12:20 p6eval rakudo 142147: OUTPUT«#<failed match>␤»
12:21 Chillance joined #perl6
12:21 jnthn r: say 'x' x 10 ~~ /^ x+ <?{ say $/.to; $/.to == 3 }> /
12:21 p6eval rakudo 142147: OUTPUT«10␤10␤10␤10␤10␤10␤10␤10␤10␤10␤#<failed match>␤»
12:21 jnthn ...
12:22 masak ...
12:23 moritz fwiw I now know why we get some "control may reach end of non-void function" warnings
12:23 moritz because we have branches that end in Parrot_ex_throw_from_c_args
12:24 masak r: say 'x' x 10 ~~ /^ x+ <?{ $/.pos == 3 }> /
12:24 p6eval rakudo 142147: OUTPUT«Error while creating error string␤»
12:25 arnsholt jnthn: Is accessor_call(interp, attr, "type") the correct way to get at the type object of an attribute?
12:25 masak this bug is haunted and hates me.
12:25 arnsholt (Modulo "type" being STRING and not C string literal)
12:25 jnthn arnsholt: Looks right
12:26 masak r: say 'x' x 10 ~~ /^ x+? <?{ (state $x)++ == 3 }> /
12:26 p6eval rakudo 142147: OUTPUT«=> <xxxx>␤␤»
12:26 arnsholt Excellent
12:26 masak heh, off-by-one :)
12:26 masak r: say 'x' x 10 ~~ /^ x+? <?{ ++(state $x) == 3 }> /
12:26 p6eval rakudo 142147: OUTPUT«=> <xxx>␤␤»
12:26 masak r: say 'x' x 10 ~~ /^ x+? <?{ ++(state $) == 3 }> /
12:26 p6eval rakudo 142147: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
12:26 masak known one.
12:29 colomon n: say 1.print
12:29 p6eval niecza v16-19-gd71c0cd: OUTPUT«True␤1»
12:29 colomon n: for 1..6 { .print }
12:29 p6eval niecza v16-19-gd71c0cd: OUTPUT«123456»
12:29 colomon n: for 1..6 { .print; }
12:29 p6eval niecza v16-19-gd71c0cd: OUTPUT«123456»
12:29 felher moritz: I'm looking at IO.pm right now. There are two functions with typed exceptions, rename and copy, and they throw a exception if something went wrong. mkdir just uses 'fail'. What should i do when adding a X::IO::Mkdir Exception?
12:30 tadzik felher: I'm in 1/3 of Feast for Crows
12:30 tadzik once I read them all I could finally talk to people about the series without being vulnerable to accidental spoilers :)
12:31 felher tadzik: yeah :)
12:31 moritz felher: I think we should be consistent. Make them all die for now
12:31 felher moritz: okay :)
12:31 moritz if you want them to fail with a type exception,  fail X::IO::Mkdir.new(...)   works too
12:32 moritz *typed
12:34 masak n: say 1.print
12:34 p6eval niecza v16-19-gd71c0cd: OUTPUT«True␤1»
12:34 masak that looks wrong to me.
12:35 tadzik n: say 0.print
12:35 p6eval niecza v16-19-gd71c0cd: OUTPUT«True␤0»
12:35 tadzik r: say 0.print
12:35 p6eval rakudo 142147: OUTPUT«0True␤»
12:36 masak I'm with Rakudo here.
12:36 tadzik deed.in
12:36 spider-mario r: say 42.comb.chars
12:36 p6eval rakudo 142147: OUTPUT«3␤»
12:36 spider-mario ??
12:36 birdwindupbird joined #perl6
12:36 spider-mario I don’t get that
12:36 moritz spider-mario: .comb returns a list
12:36 spider-mario oh, indeed
12:36 spider-mario thanks
12:36 moritz spider-mario: but .chars wants to work on a string, so it stringifies, joinging by a space
12:36 tadzik r: say 42.comb.Str
12:36 p6eval rakudo 142147: OUTPUT«4 2␤»
12:36 spider-mario yes, sorry
12:36 spider-mario :D
12:37 spider-mario r: say 42.chars
12:37 p6eval rakudo 142147: OUTPUT«2␤»
12:37 arnsholt jnthn: $cstruct.carray.WHAT shouldn't be Mu, should it?
12:38 arnsholt (For an uninitialised carray member)
12:38 jnthn No, that sounds wrong.
12:38 jnthn Can I see the code?
12:39 arnsholt Sure. Want me to push the branch, or just gist it?
12:39 jnthn gist is fine
12:40 jnthn nom: class A { }; class B { has A $.x }; say B.new.x.WHAT
12:40 p6eval rakudo 142147: OUTPUT«A()␤»
12:40 jnthn nom: class A is repr('CArray') { }; class B { has A $.x }; say B.new.x.WHAT
12:40 p6eval rakudo 142147: OUTPUT«A()␤»
12:40 jnthn nom: class A is repr('CArray') { }; class B is CStruct { has A $.x }; say B.new.x.WHAT
12:40 p6eval rakudo 142147: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Attribute:D $attr, Any :rw(:$rw)!)␤:(Attribute:D $attr, Any :readonly(:$readonly)!)␤:(Attribute:D $attr, Any :box_target(:$box_target)!)␤:(Routine:D $r, Any :rw(:$rw)!)␤:(Routine:D $r, Any…
12:40 jnthn er
12:40 jnthn nom: class A is repr('CArray') { }; class B is repr('CStruct') { has A $.x }; say B.new.x.WHAT
12:40 p6eval rakudo 142147: OUTPUT«CStruct representation only implements native int and float members so far␤  in method bless at src/gen/CORE.setting:567␤  in method new at src/gen/CORE.setting:554␤  in block <anon> at /tmp/1gHIT7qmUW:1␤␤»
12:41 jnthn ...ah, which is what you're working on. :)
12:41 arnsholt Yah
12:42 jnthn nom: class A is repr('CArray') { }; say A.REPR
12:42 p6eval rakudo 142147: OUTPUT«CArray␤»
12:42 arnsholt jnthn: https://gist.github.com/2392558
12:42 arnsholt I couldn't find a "upload file for gist" dongle so I just pasted in the relevant chunks of code
12:43 PacoAir joined #perl6
12:43 jnthn Did you modify try_get_slot?
12:44 arnsholt Yeah. Just added a last parameter to allow the caller to get the attribute PMC as well as the slot number
12:44 arnsholt Instead of walking the attribute map again to find the type object
12:44 jnthn oh I see, you're storing...yeah.
12:45 jnthn I was thinking more just to store that list of type objects
12:45 jnthn When doing the initial setup work
12:45 jnthn accessor_call ain't cheap
12:46 jnthn I mean, in compute_allocation_strategy
12:47 jnthn Just as it stores repr_data->flattened_stables, we'd also store a repr_data->types or some such
12:47 jnthn Then just index into it with the slot number
12:48 dalek rakudo/nom: 99e7750 | moritz++ | src/ (3 files):
12:48 dalek rakudo/nom: try to silence some compiler warnings (RT #112310, #112308)
12:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/99e77502ad
12:49 arnsholt Right. That makes sense
12:49 masak nom: say 42.REPR
12:49 p6eval rakudo 142147: OUTPUT«P6opaque␤»
12:49 masak nom: say {}.REPR
12:49 p6eval rakudo 142147: OUTPUT«P6opaque␤»
12:50 masak nom: sub foo {}; say foo.REPR
12:50 p6eval rakudo 142147: OUTPUT«P6opaque␤»
12:50 jnthn masak: Vast majority of things are P6opaque :)
12:50 masak Perl 6 OO is so opaque!
12:50 moritz nom: say 42.REPR.REPR
12:50 p6eval rakudo 142147: OUTPUT«P6opaque␤»
12:50 jnthn 42.REPR - it has to box the 42 to have something to call .REPR on :)
12:50 jnthn nom: say int.REPR
12:50 p6eval rakudo 142147: OUTPUT«P6int␤»
12:50 masak nom: say P6opaque.^methods
12:50 p6eval rakudo 142147: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&P6opaque' called (line 1)␤»
12:51 jnthn Variety! :)
12:51 jnthn masak: REPRs ain't objects.
12:51 masak we're not in object Kansas anymore.
12:53 masak b: say 'x' x 10 ~~ / ^ x ** {3} /
12:53 p6eval b 922500: OUTPUT«xxxxxxxxxx␤»
12:53 masak alpha: say 'x' x 10 ~~ / ^ x ** {3} /
12:53 masak oh, alpha is no more on p6eval?
12:54 masak niecza: say 'x' x 10 ~~ / ^ x ** {3} /
12:54 p6eval niecza v16-19-gd71c0cd: OUTPUT«#<match from(0) to(3) text(xxx) pos([].list) named({}.hash)>␤»
12:54 masak pugs: say 'x' x 10 ~~ / ^ x ** {3} /
12:54 p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.​13.20120203/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
12:57 oiig joined #perl6
13:00 cxreg2 joined #perl6
13:02 plobsing_ joined #perl6
13:02 ashleydev joined #perl6
13:02 huf_ joined #perl6
13:03 erkan joined #perl6
13:03 erkan joined #perl6
13:04 masak maybe the embarrassing lack of x ** {3} in Rakudo should go up on the feature matrix...?
13:05 masak nom: my $l = 3; say 'x' x 10 ~~ eval "/ ^ x ** $l /"
13:05 p6eval rakudo 142147: OUTPUT«=> <xxx>␤␤»
13:05 masak \o/
13:09 Khisanth joined #perl6
13:14 FACEFOX joined #perl6
13:16 arnsholt jnthn: CArray+{IntTypedCArray}() # \o/
13:16 Khisanth joined #perl6
13:17 masak yay! https://gist.github.com/2391923 now works!
13:17 masak it runs in 40 s on my machine, and prints the right result.
13:17 masak I might blog about that later today.
13:18 masak I also invite anyone to try their hand at producing a more p6-idiomatic version.
13:18 masak that should be easier now that there's a working version to start from.
13:18 masak I think Perl 6 struggles a little syntactically and semantically here, because the Perl 5 version relied so much on mutability of strings.
13:20 masak I'd also be interested to know why Niecza spews out millions of undefinedness warnings on this code.
13:21 jnthn masak: Runs in 40s in Niecza or Rakudo?
13:21 masak Rakudo.
13:22 * jnthn figures he'll profile it just out of curiosity.
13:22 masak pro tip: if you don't want things to run forever: don't eval a regex in a hot-path inner loop.
13:23 spider-mario what tools do we have for profiling, currently?
13:23 spider-mario do we directly profile perl 6 implementations?
13:23 moritz perl6 --profile script.pl 2>somelogfile
13:24 jnthn spider-mario: I can profile at two levels, C level (which is profiling the VM too), and then there's a profiler built in to Parrot.
13:24 jnthn That's the one moritz++ just mentioned
13:24 moritz and then kcachegrind somelogfile
13:24 spider-mario oh, thanks
13:26 mdupont_ joined #perl6
13:27 mdupont joined #perl6
13:38 dalek nqp/cstruct-work: 7ff1038 | (Arne Skjærholt)++ | src/6model/reprs/CStruct.c:
13:38 dalek nqp/cstruct-work: General cleanup.
13:38 dalek nqp/cstruct-work: review: https://github.com/perl6/nqp/commit/7ff1038057
13:38 dalek nqp/cstruct-work: f6a394e | (Arne Skjærholt)++ | src/6model/reprs/CStruct. (2 files):
13:38 dalek nqp/cstruct-work: Implement getting reference type members in CStruct.
13:38 dalek nqp/cstruct-work: review: https://github.com/perl6/nqp/commit/f6a394e1ff
13:38 noam joined #perl6
13:44 noam joined #perl6
13:48 arnsholt jnthn: bind_attribute_boxed should be able to handle being set to an undef, no?
13:49 mucker joined #perl6
13:49 jnthn arnsholt: I guess you mean type object?
13:49 jnthn And yes, it should marshall it to NULL
13:51 arnsholt Yeah, that's what I meant
13:51 jnthn There's a macro, IS_CONCRETE(obj), if you didn't already find it.
13:52 masak is there any significant difference between "marshall" and "serialize"?
13:52 arnsholt Oh, right! I think I've seen it somewhere, but had forgotten about it
13:52 jnthn Yes.
13:52 masak in general, I mean. not in blizkost.
13:52 jnthn Well, I use them in different contexts.
13:52 REPLeffect joined #perl6
13:53 jnthn Marshall I use for "map this thing to this other thing now"; there may not be a directly connected inverse, or it may never be interesting to do it on that particular bit of data
13:53 spider-mario joined #perl6
13:53 jnthn Serialize I use for "turn this into something we can save away, and then bring it back later"
13:55 masak ah, so marshalling is more unidirectional.
13:56 jnthn Well, and there's kind of a temporal difference too
13:58 benabik joined #perl6
14:00 dalek rakudo/nom: f524138 | jnthn++ | src/core/Str.pm:
14:00 dalek rakudo/nom: A few little optimizations to some Str builtins. Found by looking at profile of code from masak++; seems to shave a few percent off it.
14:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f524138d1d
14:00 * masak rebuilds and runs again
14:00 jnthn My measurement had about zero scientific rigor. :)
14:01 masak fwiw, Niecza comes up with the right answer in the end.
14:02 moritz but the large number of warnings makes it slow?
14:02 masak it's just being very cranky about millions of underfined things. I didn't measure how long it took.
14:02 masak more than 40 s.
14:02 jnthn masak: about 17% of your code's runtime is spent in match, and 13% in subst, fwiw.
14:03 moritz and subst calls amtch
14:03 jnthn ah, yeah
14:04 jnthn It spends quite a bit of its time in Match.
14:04 arnsholt Bah. Thinking about pointers always makes my brain go all wibbly
14:04 jnthn er
14:04 jnthn .match
14:05 jnthn return self unless @matches;
14:05 masak jnthn: 38.7 s :)
14:05 jnthn ...how on earth does that line (from subst) take up 7% of program runtime?!
14:05 jnthn masak: Didn't expect a big improvement, but nice it was measurable for you too.
14:05 tonyni joined #perl6
14:05 moritz jnthn: that doesn't look right
14:06 tadzik jnthn: could optimizer just turn things like $x.^isa into nqp::istype?
14:06 moritz unless return() is *very* expensive
14:07 jnthn moritz: I wonder if it's laziness, mind...
14:07 masak jnthn: but arrays are mostly eager.
14:07 JimmyZ_ joined #perl6
14:07 moritz jnthn: is that an inclusive time? or exclusive?
14:08 moritz ie is the implicit call @matches.Bool included in there?
14:08 masak anyway, to check whether an array is non-empty, you'd only need to reify the first element :)
14:08 moritz yes, but that would involve a regex match in that case
14:08 moritz which is costly
14:08 masak oh.
14:08 masak makes a little more sense then.
14:08 jnthn moritz: inclusive
14:08 moritz because @matches = self.match($matcher, @%options) is the line above it
14:08 jnthn yeah
14:09 jnthn oh, it boils down to match-list
14:09 jnthn Which uses gather take
14:09 jnthn And thus it's considered infinite I guess.
14:09 moritz possibly infinite, yes
14:10 jnthn Yeah.
14:10 jnthn tadzik: It's not quite equivalent.
14:10 jnthn Generating better code for .^ OTOH...
14:11 jnthn Anyway, yeah, the .Bool method spends its time in .gimme
14:12 moritz isn't .^ two method calls right now?
14:12 jnthn Yeah
14:13 moritz I think I have another tiny optimization for .match
14:13 moritz but I want to spectest first :-)
14:13 moritz while $m := $m.CURSOR.'!cursor_next'().MATCH {
14:13 moritz # next line written this way for reasons of circularity sawing
14:13 moritz Cursor.HOW.find_private_method(Cursor, 'set_last_match')(Cursor, $m) if $m;
14:13 moritz that final 'if $m;' looks very redundant to me
14:15 jnthn yeah, looks so
14:15 moritz nevermind the spectest run :-)
14:15 dalek rakudo/nom: de1eaf5 | moritz++ | src/core/Str.pm:
14:15 dalek rakudo/nom: remove redundant conditional in Str.match-list
14:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/de1eaf515e
14:15 jnthn Seems from the profile my phasers patches slowed down iteration a little too
14:15 moritz I'll do it afterwards
14:15 masak *gasp*!
14:17 tokuhirom joined #perl6
14:17 tadzik so hardcore :)
14:17 masak more like rockstar/cowboy.
14:18 jnthn Commiters gone wild!
14:18 arnsholt moritz: It's git. You can always rewrite history later ;)
14:18 masak next, moritz will let slip a derogatory comment that makes some minority group feel uncomfortable! :P
14:18 masak and then apologise with "I'm sorry you felt offended."
14:19 arnsholt jnthn: A C sanity check if you don't mind. (void *) (((char *) body->cstruct) + repr_data->struct_offsets[slot]) = NULL; should do the correct thing, no?
14:19 arnsholt (That being setting the pointer member to NULL)
14:19 jnthn C...and...sanity?!
14:19 arnsholt Well, there is always that =)
14:20 jnthn What's that (void *) doing out the front?
14:20 benabik At first glance, I don't think- yeah, what jnthn said
14:20 jnthn Is there something before that?
14:20 arnsholt Nope (or, nothing relevant, that is)
14:22 jnthn arnsholt: set_ptr_at_offset
14:22 jnthn arnsholt: Use that as it does the right thing :)
14:22 benabik I think all those parens are unneeded.
14:22 jnthn See P6opaque.c for an example of it being used.
14:22 masak jnthn: pivo...i...cheesecake?!
14:22 tadzik nom nom nom
14:22 arnsholt jnthn: Oh, right. Existing code that does what I want =D
14:23 masak tadzik: no matter how you try, you'll get them one after the other :P
14:23 tadzik I don't think I understand :)
14:23 benabik I'm not sure set_ptr_at_offset does the right thing...
14:24 benabik Hm.
14:24 jnthn benabik: That'd be unfortunate given pretty much all of NQP and Rakudo's attribute storage goes through that code path ;)
14:24 benabik jnthn: Really?  ack doesn't find me any usages of it.
14:24 benabik Ah.  It casts to a (void**)  Strange.
14:25 jnthn benabik: oh...
14:25 jnthn It's a copy-paste-twiddle of get_pmc_at_offset
14:25 jnthn er, set_pmc_at_offset
14:25 jnthn From P6opaque.c
14:25 jnthn masak: She was just looking out for our best interests. :)
14:25 masak tadzik: waitress at wonderful "Pivorama" in basement of Hotel Moscow in Petersburg (!).
14:26 tadzik ooh :)
14:26 tadzik I recall your story now
14:26 masak tadzik: she balked at our order, and then served one after the other :P
14:26 jnthn Very mothering of her, though I think she was actually our age. :)
14:27 arnsholt Well, the important question is what kind of beer you ordered with the cheesecake =)
14:27 jnthn arnsholt: I'm not sure. The place brewed several of its own varieties. All of them were good.
14:28 * jnthn remembers the unfiltered one being especially so.
14:28 arnsholt Sounds good!
14:29 xinming joined #perl6
14:29 masak they were all good. I remember trying them many times over and not being able to find a favorite. :)
14:31 jnthn Thing was, you could just go to your hotel room afterwards, and I had to take a walk down Nevsky...which was always eventful in some way :)
14:32 masak yeah, we got different hotels there because Visa emergency.
14:35 jnthn .oO( Next time, we'll use MasterCard )
14:35 dalek rakudo/nom: d6cd1e2 | jnthn++ | src/core/MapIter.pm:
14:35 dalek rakudo/nom: When I added FIRST/NEXT/LAST, it was idiomatic but not quite so fast. This makes it faster. Another little bit of masak++'s program.
14:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d6cd1e2bd1
14:36 jnthn s/of/off/
14:36 jnthn d'oh
14:37 spider-mario I guess it works too
14:37 masak jnthn++ # I assume
14:38 jnthn masak: Yeah, it shows an improvement here.
14:38 jnthn About the same size as the last one.
14:42 masak :)
14:42 masak I guess it's a good program to profile, because it's very string-intensive.
14:47 tonyni_ joined #perl6
14:49 arnsholt jnthn: I can treat the PMC coming into attribute_bind as a 6model object, right?
14:52 BlueT_ joined #perl6
15:00 masak jnthn: 37.6 s :)
15:02 moritz jnthn: there's a new-ish failure in t/spec/S11-modules/require.t
15:02 arnsholt star: use NativeCall; class Test { }; my Test $x .= new();
15:02 p6eval star 2012.02:  ( no output )
15:02 arnsholt Right. My fault then =)
15:02 arnsholt Er, durr.
15:03 arnsholt star: use NativeCall; class Test is repr('CStruct') { }; my Test $x .= new();
15:03 p6eval star 2012.02: OUTPUT«Zero-byte allocation not allowed in mem_sys_allocateParrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 70␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot.  Use parro…
15:03 arnsholt Not my fault after all =D
15:03 moritz a zero-class allocation leads to out of memory?
15:03 moritz s/class/size/
15:03 moritz that's somewhat comical
15:04 masak I'm telling you. 0 and infinity are structurally quite similar :P
15:05 moritz many physicts even say "finite" when they mean "non-zero"
15:18 colomon "We highly suggest you notify the Parrot team if you have not been working on Parrot"
15:18 colomon "Dear Parrot team: I was programming in common lisp, and I just got this weird error message...."
15:19 masak colomon: reminds me of paragraph *-1 of http://blog.plover.com/prog/perl/undefined.html
15:19 masak er, *-2
15:20 colomon I can see the connection.
15:21 nwc10 joined #perl6
15:38 jnthn arnsholt: Yes, you should be able to do rely on that
15:39 jnthn bah
15:39 jnthn body->cstruct = mem_sys_allocate(repr_data->struct_size);
15:39 jnthn Guess an empty struct gets size 0...
15:43 dalek nqp: 3a23406 | jnthn++ | src/6model/reprs/CStruct.c:
15:43 dalek nqp: Don't try to allocate 0 bytes in CStruct REPR.
15:43 dalek nqp: review: https://github.com/perl6/nqp/commit/3a23406005
15:44 jnthn arnsholt++ # spotting my thinkos
15:47 nwc10 is mem_sys_allocate() just a "renaming things" macro, or an actual wrapper function?
15:50 jnthn nwc10: I'd have to go look to figure out the latest reality.
15:50 nwc10 :-)
15:50 jnthn nwc10: I *hope* macro but... :)
15:51 nwc10 it was just that if it's a wrapper, it probably ought to have a (at least optionally conditionally compiled variant) which warns or barfs on silly things like trying to allocate 0)
15:51 jnthn Well, it did just barf on allocating 0. :)
15:52 jnthn Unless you mean "barf at compile time", but that wouldn't help here, since we're computing the amount to allocate.
15:52 nwc10 bail out at runtime, rather than letting a value back to its caller
15:53 Psyche^ joined #perl6
15:53 jnthn nwc10: Yes, that's what this did.
15:53 nwc10 ah righto. that's cool.
15:53 nwc10 I'll shut up then :-)
15:57 Vespakoen joined #perl6
15:59 jferrero joined #perl6
16:03 moritz jnthn: I'm having a deja-vu. I swear I've seen such a commit in nqp before :-)
16:04 moritz though a quick search in the commit log doesn't find anything
16:04 moritz oh
16:04 moritz commit 32b9b815f8be3e91d02d0f2ccc90495c0fc47d8b
16:04 moritz Author: Jonathan Worthington <jnthn@jnthn.net>
16:04 moritz Date:   Tue Mar 15 22:37:16 2011 +0100
16:04 moritz Avoid allocating zero bytes; parrot++ catches this now.
16:05 moritz that was in P6opaque
16:06 spider-mario joined #perl6
16:10 jnthn moritz: I'm a slow learner.
16:12 plobsing joined #perl6
16:15 spaceships joined #perl6
16:16 havenn joined #perl6
16:21 snearch joined #perl6
16:21 constantined joined #perl6
16:26 fsergot Where is &get defined? :)
16:26 fsergot IO.pm?
16:27 fsergot I mean rakudo/src/core/IO.pm
16:32 felher fsergot: yes
16:33 alvis joined #perl6
16:33 felher fsergot: a part of it at least. It uses $!PIO which i guess is something like a Parrot-IO-Object. :)
16:39 moritz yes, it's mosty just a wrapper for parrot's IO.readline
16:40 arnsholt star: use NativeCall; sub foo(CArray[int32] $arg) { say 'alive'; }; my CArray[int32] $x .= new; foo($x);
16:40 moritz *mostly
16:40 p6eval star 2012.02: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (CArray+{IntTypedCArray}) (line 1)␤    Expected: :(CArray+{IntTypedCArray} $arg)␤»
16:40 moritz arnsholt: 'is native'
16:41 arnsholt Not what I'm actually getting at here. Why does the type CArray+{IntTypedCArray} not match CArray+{IntTypedCArray}?
16:42 arnsholt (This came up while I was working on CStruct stuff, where you might actually want to pass this kind of stuff to a Perl 6 bit of code)
16:42 moritz r: role a[$x] { }; say A[Int]
16:42 p6eval rakudo d6cd1e: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&A' called (line 1)␤»
16:42 moritz r: role a[$x] { }; say a[Int]
16:42 p6eval rakudo d6cd1e: OUTPUT«a()␤»
16:43 moritz arnsholt: to me, CArray+{IntTypedCArray} looks like a mixin, not a parametric role
16:43 moritz arnsholt: and if you create two mixins, they might not conform to each other, or so
16:43 arnsholt Yeah, that sounds plausible
16:44 kborer joined #perl6
16:50 jnthn Ah, I think we have an RT on an issue like that.
16:50 moritz r: role a { }; say Int but a ~~ Int but a
16:50 p6eval rakudo d6cd1e: OUTPUT«False␤»
16:50 moritz r: role a { }; say (Int but a) ~~ (Int but a) # just to be on the safe side
16:50 p6eval rakudo d6cd1e: OUTPUT«False␤»
16:50 jnthn Yeah, that looks ungood.
16:54 arnsholt Rakudo-bug, not arnsholt-bug. Right =)
16:57 arnsholt jnthn: What'd be the correct way to set a CArray member, BTW?
16:58 arnsholt For native ints a method that assigns to $!member works, but with a CArray type, I get "cannot assign to a non-container" which I'm not quite sure how to kill
16:59 [Coke] moritz: iwbni "next day" appear when the only next was today. (irc logs)
16:59 moritz [Coke]: I know
16:59 moritz [Coke]: do you know the saying that only three things are hard in programming?
16:59 moritz well, two actually
16:59 moritz naming, cache invalidation and off-by-one errors
17:00 moritz anyway, i's a cache invalidation problem
17:00 arnsholt *giggle*
17:00 jnthn arnsholt: Hm, good question...
17:00 jnthn arnsholt: Without a container it'll only be possible to find to it.
17:00 jnthn arnsholt: ah, moment...
17:01 arnsholt I've got some code that should in theory be able to handle setting of a reference member in CStruct, but no idea if it works
17:02 jnthn s/find/bind/
17:02 arnsholt Right, right
17:02 * arnsholt tries something
17:03 jnthn arnsholt: Yeah. The thing is that the normally we have object body -> container -> value
17:03 jnthn arnsholt: The container is what makes assignment work
17:03 jnthn At the moment you have it as body -> value
17:03 arnsholt Right. In theory I knew that
17:03 jnthn ;)
17:03 constantined left #perl6
17:03 arnsholt Whee! Segfault!
17:04 jnthn arnsholt: Anyway, it just means either (a) bind to the attribute for now to test things, or (b) make the container stuff work
17:04 arnsholt Yeah. I tried binding a bit ago, but then it complained about the type stuff
17:04 jnthn It doesn't matter that the container is there, so long as it contains a CStruct. Will just have to take care to dereference it.
17:04 arnsholt But making it just has CArray $.memb fixes that
17:04 jnthn See P6opaque.c
17:05 jnthn It turns out that the attribute meta-object already contains a container "sample"
17:05 jnthn Known as the "auto_viv container" or some such.
17:05 jnthn You'll be able to get at the same thing.
17:06 jnthn As I said though, feel free to ignore that and just go binding first.
17:06 jnthn You can always bind by using nqp::bindattr too, just for testing purposes.
17:06 arnsholt Yeah, I'll do that first. But the container thingy would be wrapping the CStruct body, right?
17:07 arnsholt (Doing binding nets me a segfault, so I'm pretty sure I'm doing something wrong)
17:07 jnthn Yeah
17:07 jnthn The actual bit of memory that we're maintaining as the struct body contains the pointer off into the struct, mind
17:07 jnthn It's the child_objs that will point to the container, which in turn points to the cstruct.
17:08 jnthn It's just another level of indirection.
17:08 arnsholt I think I see
17:08 jnthn (Which is why it solves the problem. ;-))
17:08 arnsholt ^_^
17:10 arnsholt Right. I try to deref a NULL pointer in bind_boxed. That should be fixable
17:10 fsergot joined #perl6
17:13 spider-mario r: my &m := 42.^methods.pick; say &m.^methods;
17:13 p6eval rakudo d6cd1e: OUTPUT«Method 'gist' not found for invocant of class 'Sub'␤  in method gist at src/gen/CORE.setting:4291␤  in sub say at src/gen/CORE.setting:6465␤  in block <anon> at /tmp/Jl8HmKzMgN:1␤␤»
17:14 spider-mario n: my &m := 42.^methods.pick; say &m.^methods;
17:14 p6eval niecza v16-19-gd71c0cd: OUTPUT«Unhandled exception: Unable to resolve method methods in class ClassHOW␤  at /tmp/WyMBAyARVx line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3839 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3840 (module-CORE @ 65) ␤  at…
17:14 spider-mario p: my &m := 42.^methods.pick; say &m.^methods;
17:14 p6eval pugs: OUTPUT«*** pick not defined: VV [LIST,ITEM,bless]␤    at /tmp/g16sPBBsTJ line 1, column 1-26␤»
17:14 spider-mario p: my &m := 42.^methods[5]; say &m.^methods;
17:14 p6eval pugs: OUTPUT«*** No such method in class Class: "&methods"␤    at /tmp/pIsHXBYluT line 1, column 30-41␤»
17:17 havenn joined #perl6
17:19 * arnsholt rebuilds NQP with debug flags
17:25 xinming joined #perl6
17:31 masak check out https://gist.github.com/239​1923#file_idiomatic_version.p6 -- slightly shorter, slightly fewer assignments, slightly more idiomatic. untested. comments welcome. original version above.
17:32 jlaire the perlmonks link is 404 at http://perl6.org/getting-started/
17:32 lestrrat joined #perl6
17:34 jlaire typo: "a base to to produce" at http://perl6.org/compilers/std-viv
17:35 benabik joined #perl6
17:40 jlaire S01:51 talks about "the Perl 6 compiler"
17:41 dalek perl6.org: 1a7901c | moritz++ | source/compilers/std-viv.html:
17:41 dalek perl6.org: fix double word, jlaire++
17:41 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/1a7901c211
17:43 [Coke] GAH.
17:43 * [Coke] discards his local change that moritz just beat him to.
17:44 spider-mario p6: my &m := 42.^methods[5]; say &m.^methods
17:44 p6eval rakudo d6cd1e: OUTPUT«Method 'gist' not found for invocant of class 'Sub'␤  in method gist at src/gen/CORE.setting:4291␤  in sub say at src/gen/CORE.setting:6465␤  in block <anon> at /tmp/nUqEXvIYpG:1␤␤»
17:44 p6eval ..pugs: OUTPUT«*** No such method in class Class: "&methods"␤    at /tmp/UZz4rUS7oO line 1, column 30 - line 2, column 1␤»
17:44 p6eval ..niecza v16-19-gd71c0cd: OUTPUT«Unhandled exception: Unable to resolve method methods in class ClassHOW␤  at /tmp/uNZM3S7DkD line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3839 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3840 (module-CORE @ 65) ␤  at…
17:44 spider-mario is that normal?
17:47 spider-mario (in a rakudo REPL, it even ends the session with four “use of uninitialized value of type Mu in string context  in method Str at src/gen/CORE.setting:667”)
17:47 jnthn spider-mario: No, it's a known issue
17:47 spider-mario ok
17:47 jnthn To do with .^methods on code objects.
17:47 [Coke] spider-mario: if you're asking for rakudo, don't use "p6:" in the evalbot.
17:47 spider-mario I know
17:48 spider-mario I did want to see the output of other implementations
17:53 spider-mario > quasi {}.()
17:53 spider-mario Method 'postcircumfix:<( )>' not found for invocant of class 'AST'
17:53 spider-mario > (^D to end the session)
17:53 spider-mario zsh: segmentation fault (core dumped)  perl6
17:53 spider-mario the first time, instead of a segfault, I got:
17:53 spider-mario too few arguments: 0 passed, 30581312 expected
17:54 dalek roast: c586129 | jnthn++ | S02-names/pseudo.t:
17:54 dalek roast: Fudge pseudo-package tests for Rakudo. Quite a lot fudged at the moment, though the coverage for the things that do work already is good to have.
17:54 dalek roast: review: https://github.com/perl6/roast/commit/c586129021
17:54 spider-mario now, Null PMC access in clone()
17:55 dalek rakudo/nom: 9df76e9 | jnthn++ | src/ (3 files):
17:55 dalek rakudo/nom: Implement various cases of binding into pseudo-packages.
17:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9df76e9363
17:55 dalek rakudo/nom: 442db9f | jnthn++ | t/spectest.data:
17:55 dalek rakudo/nom: Turn on S02-names/pseudo.t.
17:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/442db9f058
17:55 jnthn spider-mario: It's different every time?
17:55 spider-mario no
17:55 spider-mario most of the time, it segfaults,
17:55 jnthn spider-mario: Sounds highly likely that it's memory corruption.
17:55 spider-mario and I can make it vary
17:55 spider-mario by issuing other commands
17:56 spider-mario but I have yet to determine what command causes what
17:57 jnthn spider-mario: Pattern is <something that causes an exception>, ^D, segfault or other oddness?
17:58 spider-mario it’s what you’ve just described
17:58 spider-mario should I paste everything I’ve done?
17:59 jnthn Feel free to drop it in a gist or something, yeah. It may be that one or more of them under the debugger reveals what's going on.
18:02 jlaire another spec typo: https://gist.github.com/2394158
18:03 spider-mario https://gist.github.com/2394162
18:05 dalek specs: f6fb93a | (Johannes Laire)++ | S02-bits.pod:
18:05 dalek specs: typo fix
18:05 dalek specs: review: https://github.com/perl6/specs/commit/f6fb93a1a0
18:05 benabik jlaire: There you go.
18:06 jnthn spider-mario: Thanks
18:06 * jnthn afk for a bit
18:06 jlaire benabik: thanks
18:16 IKARi_ joined #perl6
18:19 brrt joined #perl6
18:24 sorear good * #perl6
18:27 dalek roast: f954d29 | coke++ | S0 (3 files):
18:27 dalek roast: pugs fudge recent tests
18:27 dalek roast: review: https://github.com/perl6/roast/commit/f954d297df
18:35 * sorear wants to find the place where TimToady mandated that source for functions be available at runtime
18:36 moritz hm, I'm not aware of any official statement like that
18:37 moritz I just know that the general consensus seems to be the source should be definitive and everything binary should only be a cache, usually
18:37 literal joined #perl6
18:39 Trashlord joined #perl6
18:39 sorear moritz: I have a feeling that I can reject https://github.com/sorear/niecza/issues/115 , but I want to find evidence
18:40 [Coke] I suspect that's an implementation detail.
18:40 moritz sorear: it's just a question yes. You can say "yes" or "no" or close with "issues aren't meant as a general forum for questions"
18:44 fsergot joined #perl6
18:49 jaffa4 I do not know what is in the implementation
18:50 jaffa4 At least, there should be an option to turn off source inclusion
18:51 masak thank you kindly for your feedback.
18:52 masak are you afraid someone might read the source and exploit that knowledge somehow?
18:52 jaffa4 yes
18:53 jaffa4 That is not only me, I think there are going to many users who think in the way, even if not well-founded opinition
18:53 * au ponders encouraging jaffa4 working on a perl6 uglifier (aka obfuscator)
18:55 jaffa4 I estimate it would take 20 lines to add an option that turns off source inclusion
18:55 jaffa4 While writing an obfuscator, much more effort.
18:56 masak jaffa4: please submit pull requests to the sorear/niecza repository on github.
18:56 [Coke] jaffa4: 20 lines sounds like something you could write a patch for.
18:56 sorear disabling source inclusion would not be impossible
18:56 * [Coke] wonders where "/usr/share/dict/words" or equiv is on feather. hurm.
18:59 moritz somebody else got the idea to install something, it seems :-)
18:59 Juerd cokInstalled.
18:59 Juerd argh
18:59 Juerd [Coke]: Installed.
18:59 jaffa4 pull reguest? What is the purpose of a pull request?
18:59 moritz it's just a glorified patch
18:59 Juerd jaffa4: It's the git equivalent of sending a patch of an entire repository.
18:59 Juerd Or maybe even github specific.
19:00 masak jaffa4: it's to notify the author that you've made commits in a fork that you'd like him to pull into his repository.
19:01 jaffa4 I am not there yet
19:02 masak right. just letting you know that's an option when you are.
19:03 jaffa4 SO first I fork it, then I check them out, then I commit that and then there is pull request I guess.
19:05 masak yes \o/
19:06 masak I was wrong before: niecza runs my script in 31 s (against Rakudo's 37 s), even with all the thousands of undef warnings.
19:06 lichtkind joined #perl6
19:10 masak my idiomatic version takes 158 s on Rakudo, and arrives at the wrong result :P
19:10 tokuhirom joined #perl6
19:11 sorear masak: Is that Rakudo's fault or your fault?
19:11 moritz "yes" :-)
19:11 havenn joined #perl6
19:11 masak it's my fault. I replaced static control flow with an array of callables.
19:12 masak code got shorter, but the abstraction costs runtime.
19:12 masak it's still better than three weeks, of course :)
19:12 masak and the same could probably be written in Perl 5 and take less than a second.
19:13 sorear masak: I mean why did it get the wrong result?
19:14 masak oh, I bet that's my fault. haven't gone looking for it yet.
19:15 thou joined #perl6
19:25 dalek niecza: a0c3f43 | sorear++ | src/ (3 files):
19:25 dalek niecza: Add an option for disabling inclusion of source in compiled code
19:25 dalek niecza:
19:25 dalek niecza: An open question is whether this should also disable line number information.
19:25 dalek niecza: review: https://github.com/sorear/niecza/commit/a0c3f43aa7
19:30 masak sorear++
19:39 eoh joined #perl6
19:41 jaffa4 WHat is source based introspection?
19:41 spider-mario joined #perl6
19:41 jaffa4 WHere can I read about that?
19:42 jaffa4 sorear++
19:46 dalek niecza: 1b64073 | sorear++ | lib/Builtins.cs:
19:46 dalek niecza: Disable buffering on stdout.  (fixes #114)
19:46 dalek niecza: review: https://github.com/sorear/niecza/commit/1b64073855
19:49 [Coke] +# 04/15/2012 - rakudo++ ; niecza (94.97%); pugs (41.75%)
19:52 masak 41.75%!
19:52 masak [Coke]++ moritz++
19:52 colomon sorear++
19:52 * moritz was hardly involved
19:53 sorear colomon: what did I do for pugs?
19:53 colomon nothing, but you fixed #114
19:53 masak https://gist.github.com/239​1923#file_idiomatic_version.p6 works now. I found the few remaining thinkos. it runs in 52 s.
19:53 sorear the only thing I think I ever did *for* pugs was setting up the #perl6 lambdabot :p
19:53 ZapZ joined #perl6
19:54 colomon errr, wait, you've generously allowed your focus to shift to homework, giving rakudo and pugs a chance to look better?  ;)
19:54 ZaphrodZenovka joined #perl6
19:54 colomon s/homework/schoolwork/
20:05 [Coke] masak: you still planning on hacking on pugs soon? ;)
20:05 lichtkind uvtc++
20:05 phenny lichtkind: 03:16Z <raiph> tell lichtkind couple quick gollum experiments at https://github.com/raiph/tablets/wik​i/Jump-off-page-for-experiments-to-s​ee-which-format-suits-what-we-want ... I'll probably have time later today (Sunday) to try more
20:07 lichtkind joined #perl6
20:07 masak [Coke]: I've had a busy time with work, but yes.
20:08 masak [Coke]: it'll have to contend with being slightly less important than working on macros and finishing the judging of p6cc2011, though.
20:08 lichtkind phenny: tell raiph thanks a lot uvtc is also currently helping me to decide but nothing final yet
20:08 phenny lichtkind: I'll pass that on when raiph is around.
20:11 Araq joined #perl6
20:11 lichtkind masak: hej hej
20:12 masak o/
20:13 lichtkind masak: its getting interesting lately?
20:13 lichtkind i mean !!!
20:14 masak you'll have to be more specific.
20:15 lichtkind masak: that i get real help for the first time since im doing this
20:15 masak oh, that's great.
20:15 masak yeah, in my experience that changes the motivational equation quite a bit.
20:15 [Coke] masak: I would recommend, btw, reducing the number of moving parts to p6cc2012, if there is one.
20:16 masak [Coke]: like, reducing the number of tasks?
20:16 [Coke] or at least reducing the complexity of the individual units.
20:16 masak which units are you referring to?
20:16 [Coke] more entrants. easier to grade.
20:16 [Coke] masak: fine, tasks.
20:17 masak anyway, that's good feedback.
20:17 masak thanks.
20:18 masak it's a tricky balance. want the tasks to be challenging, but approachable :)
20:18 masak five tasks feels about right for a bunch of books.
20:19 masak and we want to reward *skill* in the end, so if we pick too simple tasks, there's not as much solution space to exhibit skill in.
20:20 [Coke] There was no way the amount of effort was worth it for me for the books. *shrug*
20:21 [Coke] (compared to $dayjob)
20:21 moritz well, the idea is that the coding fun is the real rewards, the books are just a bit of additional incentive
20:21 [Coke] which sadly may say more about my coding than my $dayjob. ;)
20:22 masak [Coke]: the X prizes are the same. it's just a mere million or whatever. the prize is just a decoy, and it's implicitly understood that they are.
20:22 masak [Coke]: that said, the tasks are made such that people will look at them and think "oh, this is totally doable".
20:23 colomon yes, but that's just trying to lure us to be foolish!  ;)
20:23 masak let's just say I love reading Perl 6 code. :)
20:23 colomon I actually woke up twice in the middle of the night back in January and came downstairs to work on your problems because I couldn't get them out of my head.
20:24 masak hahaha
20:24 fsergot Good night #perl6 o/
20:24 colomon luckily I eventually mustered the selfcontrol to ignore the problems.
20:24 masak fsergocie, 'branoc.
20:25 fsergot Dobrej nocy masaku! :)
20:25 * masak .oO( he vocatived me! )
20:26 Araq which tasks are you talking about? (hi everyone btw)
20:28 sorear hello Araq!
20:29 sorear masak's annual coding contests
20:29 Araq link?
20:29 masak http://strangelyconsistent.org/p6cc2011/ http://strangelyconsistent.org/p6cc2010/
20:30 masak http://strangelyconsistent.org/bl​og/the-2011-perl-6-coding-contest http://strangelyconsistent.org/blog/the-perl​-6-coding-contest-2011-edition-is-now-closed http://strangelyconsistent.org/blog/t1​-expressing-integers-using-four-nines http://strangelyconsistent​.org/blog/t2-sums-of-cubes http://strangelyconsistent.​org/blog/t3-addition-chains http://strangelyconsistent.org/​blog/counting-t4-configurations
20:32 ZaphrodZenovka joined #perl6
20:33 ZaphrodZenovka left #perl6
20:33 [Coke] masak: I absolutely did not look at the tasks and think "this is totally doable. Especially in perl 6." ;)
20:33 masak hehe
20:33 ZapZ joined #perl6
20:34 Araq what can people win?
20:34 masak this year, there is a first prize and a second prize.
20:34 jaffa4 IS there a new contest<
20:34 Araq what's the first prize?
20:34 jaffa4 IS there a new contest?
20:34 masak 1st prize: 100 EUR worth of books. 2nd prize: 100 USD worth of books.
20:35 masak jaffa4: not for a while. keep an eye out in December.
20:35 Araq what if france gets into trouble?
20:35 masak we'll cross that bridge when we have to.
20:37 Araq so flip prizes then?
20:37 masak we'll cross that bridge when we have to.
20:38 jnthn .oO( Then we'll cross the bridge from here to the eurozone and buy stuff cheap! )
20:38 masak [Coke]: I'm actually a bit relieved to hear someone complain that the tasks were challenging. usually the only feedback I get is a bunch of solutions. ;)
20:42 * sorear thinks it is funny that the Europeans ey has spoken to are much less concerned about Europe's economy than the Americans ey knows
20:43 Araq don't worry, sorear; I'm worried about europe's economy
20:43 * [Coke] just watched _Priest_ last night, and now imagines Father Chrysostomos as that guy.
20:43 Araq but even moreso about europe's democracy
20:44 * [Coke] painfully attempts to translate ey into standard pronouns.
20:45 flussence ey := any(he|she, :lang<en>)
20:45 sorear [Coke]: 1994 or 2011?
20:45 NamelessTee joined #perl6
20:48 noam joined #perl6
20:53 Araq do you know the answer to http://strangelyconsistent.org/​blog/counting-t4-configurations, masak?
20:53 sorear Araq: I think you are USAian
20:54 Araq nö, bin ich nicht ;-)
20:54 nif joined #perl6
20:56 Araq ugh sorry, that doesn't seem to part of the competition
20:58 masak Araq: which answer? I think most of the answers are in there, at the end.
20:59 Araq yeah I noticed, sorry
20:59 masak Araq: but notice that Salvador Fandino quickly suggested a better way to count stuff, at: http://blogs.perl.org/users/salvador_fandin​o/2012/03/solving-carl-masaks-counting-t4-c​onfigurations-problem-in-pure-perl-5.html
20:59 Araq so do you have solutions for all the problems? or do you simply recognize correct solutions? ;-)
21:01 [Coke] sorear: 2011
21:02 masak Araq: it's always a learning experience to judge these things. the posts about the solutions are meant to make us appear to have covered all the bases and to know all the answers. but of course that's not always so.
21:02 masak last year I made a gaffe when benchmarking the LCS solutions, and colomon++ called me on it.
21:03 colomon ;)
21:03 masak basically the deal is that we all write code, we all learn, and we all have fun.
21:03 masak if that means colomon must lose some sleep some nights, so be it.
21:04 Araq you should write correctness proofs for the solutions ;-)
21:04 masak *you* should write correctness proofs for the solutions... ;)
21:04 mdupont joined #perl6
21:05 Araq but solutions are supposed to be in perl6 ...
21:08 masak in practice, having several people turn in solutions tends to make correctness rather easier to detect.
21:08 masak that said, the "Brauer number" thing in http://strangelyconsistent.​org/blog/t3-addition-chains had us furrow our brows for a while. :)
21:08 masak moritz++ solved it by asking on a math forum.
21:09 pernatiy joined #perl6
21:11 nwc10 left #perl6
21:20 bruges joined #perl6
21:20 y3llow_ joined #perl6
21:24 y3llow joined #perl6
21:26 y3llow joined #perl6
21:28 Araq what do you guys think of Google's Go?
21:28 felher moritz: icmp echo request
21:29 y3llow joined #perl6
21:31 masak Araq: it doesn't sit in the same niche as Perl 5/Perl 6 for me, but when I want runtime speed nowadays, I reach for Go rather than C.
21:31 masak Araq: some nice ideas in there. I especially like the type system.
21:32 Araq really? you actually use Go? o.O
21:32 masak yes, really.
21:32 spider-mario I hate its API for big integers.
21:32 spider-mario I really hate it.
21:32 masak the most serious criticism I've heard about it is that the user doesn't have the same facilities for extending the language as the language devs had for building it. that's a quite deep criticism if true, but so far I haven't used it enough to suffer from it.
21:34 spider-mario and its command line argument parser doesn’t generate very “unixy” interfaces
21:34 spider-mario I’m also bothered by its lack of genericity, somehow.
21:35 masak genericity?
21:35 masak do you mean generic types?
21:35 spider-mario yes
21:35 spider-mario sorry
21:35 spider-mario I don’t always use the right words, sorry for that
21:36 masak pas de problème. :)
21:39 spider-mario :D
21:42 * masak devrait apprendre le français à nouveau un jour
22:00 Vespakoen left #perl6
22:02 felher night, folks
22:02 tadzik Araq: I like it very much
22:03 masak felher: 'nacht
22:03 aindilis joined #perl6
22:03 tadzik 'night
22:03 masak good ♞, #perl6
22:04 Araq good night
22:04 Araq left #perl6
22:07 dalek niecza: 5b6457f | sorear++ | README.pod:
22:07 dalek niecza: Document that build-depended tools need to be in PATH to be found (fixes #116)
22:07 dalek niecza: review: https://github.com/sorear/niecza/commit/5b6457f8e9
22:17 nif joined #perl6
22:25 localhost joined #perl6
22:37 havenn joined #perl6
22:37 wolfman2000 joined #perl6
22:43 nif joined #perl6
23:01 FACEFOX joined #perl6
23:06 Grrrr joined #perl6
23:10 FACEFOX joined #perl6
23:27 raiph joined #perl6
23:45 nif joined #perl6
23:53 Gruber joined #perl6

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

Perl 6 | Reference Documentation | Rakudo