Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-02-03

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:04 bluescreen10 joined #perl6
00:04 benabik joined #perl6
00:13 whiteknight joined #perl6
01:06 japhb_ joined #perl6
01:10 japhb_ Just wanted to share a little anecdote:  On my $day-job's IRC channel we were discussing chording keypresses with mouse buttons, and the question of how many combinations could be created for a user with a single mouse button.  Someone gave a wild bound, so I tightened it a bit with the following, which I pasted verbatim:
01:10 japhb_ $ ./perl6 -e 'multi postfix:<!>($n) { [*] 1 .. $n }; sub C($n, $k) { $n! / ($k! * ($n - $k)!) }; say [+] (C(101, $_) for 0..5)'
01:10 japhb_ 83463472
01:11 japhb_ NOT A SINGLE PERSON was even mildly surprised by any of the code.
01:11 japhb_ The discussion was entirely about improving the bound.
01:11 japhb_ It was just that obvious to everyone.
01:11 japhb_ That made me smile.
01:20 sorear good * #perl6
01:24 japhb_ o/
01:26 flussence joined #perl6
01:46 sftp joined #perl6
02:21 wolfman2000 joined #perl6
02:34 [Coke] japhb++
02:38 cognominal joined #perl6
03:18 colomon niecza: printf "%-20s\t%s\n", "Plosurin", ''
03:18 p6eval niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: index out of range␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (sprintf @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1221 (printf @ 3) ␤  at /tmp/0yLkuA4RaN line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting…
03:18 colomon nom: printf "%-20s\t%s\n", "Plosurin", ''
03:18 p6eval nom acbec8: OUTPUT«Plosurin             ␤»
03:21 orafu joined #perl6
03:26 colomon hmm; list, update, and info all work in panda-niecza
03:30 colomon search too
03:31 colomon install is doing something weird at the moment, though.  :\
03:34 colomon ah, it was the sharing violation on ~/.panda/state
03:38 colomon oooo, I think I might have it figured out.  :)
03:40 colomon yup
03:40 colomon so I've got panda-niecza fully functional, using ~/.niecza as the repo location
03:42 colomon the only real drawback at the moment is figuring out how to add a proper #! line to the panda script when it is installed
03:43 colomon but for now, it's time to sleep
03:56 sorear WOW!
03:56 sorear colomon++ colomon++ colomon++
03:58 TimToady http://en.wikipedia.org/wiki/Panda!_Go,_Panda!
04:01 kmwallio joined #perl6
04:04 twirp joined #perl6
04:32 jaldhar joined #perl6
04:38 birdwindupbird joined #perl6
05:01 raiph joined #perl6
05:08 tadzik colomon: awesome!
05:08 tadzik colomon++
05:16 sorear I see Unicode 6.1 was released]
05:17 baest joined #perl6
05:18 tadzik with a PILE OF POO character!
05:19 benabik .u POO
05:19 phenny U+A576 VAI SYLLABLE POO (ꕶ)
05:19 benabik .u Pile of Poo
05:19 phenny benabik: Sorry, no results for 'Pile of Poo'.
05:20 sorear phenny doesn't do supplementary chars
05:20 benabik Oh.
05:20 benabik fileformat.info says pile of poo was added in 6.0
05:21 sorear .u SHAVIAN LETTER PEEP
05:21 phenny sorear: Sorry, no results for 'SHAVIAN LETTER PEEP'.
05:22 sorear .u 1045
05:22 phenny U+1045 MYANMAR DIGIT FIVE (၅)
05:22 sorear .u 10450
05:22 phenny sorear: Sorry, no results for '10450'.
05:22 drbean joined #perl6
05:22 sorear .u d900
05:22 phenny U+D900 (No name found)
05:22 * sorear demonstrates phenny's limitations
05:32 raiph phenny tell fasad i'd love to help; perlfoundation wiki has bits we probably want to use; http://tinyurl.com/6vp46ok; agree it's ugly; agree no yadda (yet another delusional doc answer); note https://github.com/features/projects/wikis
05:33 am0c joined #perl6
06:06 kaleem joined #perl6
06:08 DarthGandalf joined #perl6
06:15 japhb_ perl6: sub check($/) { "b" ~~ /./ }; check("a" ~~ /./)
06:15 p6eval rakudo acbec8: OUTPUT«Cannot assign to a readonly variable or a value␤  in method ACCEPTS at src/gen/CORE.setting:7656␤  in sub check at /tmp/Oxo9eVZFby:1␤  in block <anon> at /tmp/Oxo9eVZFby:1␤  in <anon> at /tmp/Oxo9eVZFby:1␤»
06:15 p6eval ..niecza v13-389-g852f0ff:  ( no output )
06:15 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.​13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
06:15 japhb_ ^^ Known problem in rakudo?
06:22 japhb_ Ouch.  Also, I cannot pull from (or do a fresh clone of) the niecza repo from github.
06:22 japhb_ sorear, ^^
06:27 sorear japhb_: symptoms?
06:27 sorear I can pull fine
06:34 japhb_ sorear:
06:34 japhb_ $ git clone https://github.com/sorear/niecza.git
06:34 japhb_ Cloning into niecza...
06:34 japhb_ error: Proxy CONNECT aborted while accessing https://github.com/sorear/niecza.git/info/refs
06:34 japhb_ fatal: HTTP request failed
06:35 japhb_ Several other repos are working fine, so I don't think it's an outright misconfig on my side (though I suppose something might be hinky here)
06:37 sorear are you accessing the other repos in the same way?
06:37 sorear i.e. https versus http versus git
06:38 doy you should really use the git:// url unless you really can't use anything but http
06:39 japhb sorear, oh interesting, you're right, I have write access (and thus use a git:// URL) to all the others I tested.  Harumph, it probably is a local problem then.
06:39 japhb (Though exactly *what* escapes me at the moment.)
06:39 sorear git:// URLs are always read-only
06:39 sorear https:// is recommended for write access because it's the only one with real access control
06:40 japhb sorear, sorry, I was using 'git@github.com:' urls elsewhere.  Man, clearly too much on my mind tonight.
06:40 sorear (technically you can set up a writable git://, but then it's world writable)
06:40 sorear ... what am *I* thinking
06:41 sorear 'git@github.com:' "URLs" (which aren't actually URLs in the strict RFCish sense) use SSH internally and have access control
06:41 sorear what I said at :39 was nonsense, ignore it
07:06 wtw joined #perl6
07:07 sorear japhb: now that you're using git://, is it working?
07:09 sorear hmm. that was badly phrased
07:09 sorear japhb: does changing the URL form work?
07:18 moritz \o
07:21 moritz japhb: re sub check($/), I think rakudo behaves according to spec
07:21 moritz calling the sub binds $/ as read-only, and conversely regex matching complains
07:24 sorear last time I talked to jnthn about this, we came to the conclusion that it didn't matter whether $/ was bound or assigned as long as the compiler does it consistantly
07:24 sorear niecza takes the bind route, which is why it accepts that - the read-only container is simply replaced
07:49 GlitchMr joined #perl6
07:56 tarch joined #perl6
08:00 birdwind1pbird joined #perl6
08:07 japhb_ sorear, using git:// works fine.  Clearly the failure is with https:// (whether local or remote, I dunno), but haven't really looked.
08:08 am0c joined #perl6
08:09 japhb_ moritz, sorear, Rakudo's failure at handling that smoothly makes it more of a pain to do grammar action methods that need to do regex matches internally.
08:09 japhb_ (The example I eval'ed was golfed down out of a failing grammar we'd found on RosettaCode.)
08:10 japhb_ I ended up working around the problem by defining my method to be:
08:11 japhb_ method TOP($m) { #{ use $m instead of $/ to build up $ast ... }   $/ = $m; make $ast; }
08:15 cognominal joined #perl6
08:15 moritz I can see that that's annoying
08:18 japhb_ OK, time for some rest; night, all.
08:18 japhb_ sleep &
08:33 Trashlord joined #perl6
08:50 mj41 joined #perl6
09:12 jnthn Not sure I understand the view that allowing $/ - which you bound in the parameter list and are using to build up the AST - to be silently replaced would be helpful.
09:12 jnthn Feels like a great way to get a hard to find bug
09:12 jnthn "Hey, all the code after I did this match does the wrong thing!"
09:17 moritz maybe an alternative would be to offer a Match.make method
09:17 moritz which would mean you can simply say  $m.make($ast)
09:18 moritz instead going through the trouble of re-assigning $/ to be able to call make($ast)
09:18 moritz *of
09:18 jnthn Yes.
09:19 masak mornin', #perl6
09:20 * moritz implements Match.make
09:23 jnthn moritz++
09:23 jnthn o/ masak
09:33 masak http://www.lispcast.com/modern-language-wishlist
09:33 * masak commutes
09:34 moritz I've meant to write such a list myself eventually
09:36 moritz it's an interesting list
09:43 moritz perl6: say <good cheap fast>.pick(2) # always fun
09:43 p6eval pugs b927740: OUTPUT«cheapfast␤»
09:43 p6eval ..rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«good fast␤»
09:45 moritz nom: #= yellow ␤sub marine() { }␤say &marine.WHY.content
09:45 p6eval nom acbec8: OUTPUT«yellow ␤»
09:45 moritz tadzik: is it intentional that the trailing blank isn't stripped?
09:48 Psyche^ joined #perl6
10:11 masak nom: #= yellow ␤sub marine() { }␤say &marine.WHY
10:11 p6eval nom acbec8: OUTPUT«Block::Declarator.new(WHEREFORE => sub+{<anon>} marine() { ... }, config => ().hash, content => Array.new("yellow "))␤»
10:11 masak nom: #= yellow ␤sub marine() { }␤say ~&marine.WHY
10:11 p6eval nom acbec8: OUTPUT«yellow ␤»
10:29 masak colomon++ # panieczda
10:32 Woodi joined #perl6
10:35 * moritz tries to pronounce that
10:35 moritz colomon++ indeed
10:42 masak moritz: [panjeʈʃda] or something like it, I think.
10:44 masak I'm unsure whether it should be [nj] or [nʲ]. and maybe it's [dʃd] rather than [ʈʃd].
11:01 Moukeddar joined #perl6
11:16 zamolxes joined #perl6
11:24 lestrrat joined #perl6
11:32 icwiener joined #perl6
11:35 explorer__ joined #perl6
12:40 bluescreen10 joined #perl6
12:47 Trashlord joined #perl6
12:57 masak how would you split a string into the first character and the rest of the string in Perl 6?
12:57 masak (I brought this up a few weeks ago, but I don't remember if we ever settled on an idiom.)
12:57 moritz my ($head, $tail) = .substr(0, 1), .substr(1)l
12:57 masak I'd like something more succinct than just... two .substr calls :)
12:58 masak in Perl 5 I'd use split or something.
12:58 masak or maybe a regex.
12:58 moritz .split(/<at_pos(1)>/)
12:58 jnthn ooh
12:58 moritz nom: say 'foobar'.split(/<at_pos(1)>/).perl
12:58 p6eval nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4380␤  in method gimme at src/gen/CORE.setting:4744␤  in method reify at src/gen/CORE.setting:4475␤  in method reify at src/gen/CORE.setting:4380␤  in method reify at…
12:59 masak bug?
12:59 masak I must say that reads very nicely.
12:59 moritz star: say 'foobar'.split(/<at_pos(1)>/).perl
12:59 p6eval star 2012.01: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4376␤  in method gimme at src/gen/CORE.setting:4740␤  in method reify at src/gen/CORE.setting:4471␤  in method reify at src/gen/CORE.setting:4376␤  in method reify …
12:59 jnthn How in the hell...
12:59 moritz jnthn: indeed.
12:59 masak b: say 'foobar'.split(/<at_pos(1)>/).perl
12:59 p6eval b 1b7dd1: OUTPUT«("foobar")␤»
12:59 masak maybe something else is broken?
13:00 masak nom: say "OH HAI"
13:00 p6eval nom acbec8: OUTPUT«OH HAI␤»
13:00 masak appears not.
13:00 jnthn nom: 'foobar'.split(/<at_pos(1)>/)
13:00 moritz I get the same output locally
13:00 p6eval nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4380␤  in method gimme at src/gen/CORE.setting:4744␤  in method reify at src/gen/CORE.setting:4475␤  in method reify at src/gen/CORE.setting:4380␤  in method reify at…
13:00 * masak submits rakudobug
13:00 jnthn nom: 'foobar'.split(/./)
13:00 p6eval nom acbec8:  ( no output )
13:00 moritz nom: say 'a' ~~ /<at_pos(1)>/
13:00 jnthn nom: 'foobar' ~~ /<at_pos(1)>/
13:00 p6eval nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4380␤  in method gimme at src/gen/CORE.setting:4744␤  in method reify at src/gen/CORE.setting:4475␤  in method reify at src/gen/CORE.setting:4380␤  in method reify at…
13:00 p6eval nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4380␤  in method gimme at src/gen/CORE.setting:4744␤  in method reify at src/gen/CORE.setting:4475␤  in method reify at src/gen/CORE.setting:4380␤  in method reify at…
13:00 jnthn OK, what is at_pos doing... :)
13:01 jnthn Wild guess: using nqp::getattr somewhere it should be using nqp::getattr_i :)
13:02 moritz erm, is it even spelled at_pos?
13:02 moritz I might as well be misremembering something
13:02 moritz nom: say 'a' ~~ /<at(1)>/
13:02 masak at the very least, it's an LTA error message.
13:02 p6eval nom acbec8: OUTPUT«=> <>␤ at => <>␤␤»
13:02 moritz star: say 'foobar'.split(/<at(1)>/).perl
13:02 p6eval star 2012.01: OUTPUT«("f", "oobar").list␤»
13:02 masak \o/
13:02 moritz ok, it helps to spell it correctly :-)
13:02 masak also reads well :)
13:02 jnthn \o/
13:03 masak so, error is in using something that doesn't exist :)
13:03 jnthn nom: say Any.^methods
13:03 p6eval nom acbec8: OUTPUT«eager elems end classify uniq infinite flat hash list pick roll reverse sort values keys kv pairs Array grep first join map min max minmax postcircumfix:<[ ]> at_pos all any one none postcircumfix:<{ }> reduce ACCEPTS␤»
13:03 masak typical "programmer never tried this path" thinko :)
13:03 masak oh!
13:03 moritz well, at_pos comes from Any
13:03 jnthn There's an at_pos in Any
13:03 masak right.
13:03 masak so it does something completely different.
13:03 moritz yes.
13:03 masak and the regex engine gets sad.
13:03 jnthn And doesn't return a cursor which...yes, that. :)
13:04 masak I will report this as best I can :P
13:04 bluescreen10 joined #perl6
13:04 jnthn So anyway, there's nothing here besides LTA error reporting.
13:07 masak nod
13:07 masak niecza: say 'foobar'.split(/<at(1)>/).perl
13:07 p6eval niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Unable to resolve method at in class Cursor␤  at /tmp/d7yD6gZrBa line 1 (ANON @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10) ␤  at /tmp/d7yD6gZrBa line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.se…
13:07 masak sorear: ^^ would be nice
13:07 moritz niecza: say 'foobar'.split(/<at_pos(1)>/).perl
13:07 p6eval niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Submatch to be bound to at_pos returned a Any instead of a Cursor, violating the submatch protocol.␤  at /tmp/OqtmCZAW19 line 1 (ANON @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10) ␤  at /tmp/OqtmCZAW19 lin…
13:08 masak that's the error Rakudo should be giving :)
13:08 masak sorear++
13:08 moritz masak: iirc niecza implements <at> in some non-standard way
13:08 moritz niecza: say 'foobar'.split(/<AT(1)>/).perl
13:08 p6eval niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Unable to resolve method AT in class Cursor␤  at /tmp/9dSrvEtbBq line 1 (ANON @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10) ␤  at /tmp/9dSrvEtbBq line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.se…
13:10 fasad joined #perl6
13:14 maik_ joined #perl6
13:16 jnthn Should be fixable by patching method subrule in QAST::Compiler
13:28 grondilu joined #perl6
13:28 grondilu perl6: my ($x, $y) = (2**30, 1); say +^$x +& $y;
13:28 p6eval pugs b927740, niecza v13-389-g852f0ff: OUTPUT«1␤»
13:28 p6eval ..rakudo acbec8: OUTPUT«-1152921504606846975␤»
13:29 masak based on the p6c question about heredocs, maybe we should add heredocs to http://perl6.org/compilers/features ?
13:29 grondilu rakudo gives a silly answer here
13:29 masak yes.
13:29 masak known, I think.
13:31 moritz +1 to heredocs on the feature matrix
13:33 jnthn ugh, it's the polymprhic literals thing again
13:35 jnthn oh, wait, it's not
13:35 moritz nom: my Int $x = 2 ** 30; say +^$x
13:35 p6eval nom acbec8: OUTPUT«-1073741825␤»
13:36 jnthn nom: say 2 ** 30
13:36 p6eval nom acbec8: OUTPUT«1073741824␤»
13:36 moritz that's just two's complement, as it should be (iirc)
13:37 jnthn perl6: my Int $x = 2 ** 30; say +^$x
13:37 p6eval pugs b927740, rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«-1073741825␤»
13:37 jnthn Ah, so it's the +& doing something odd.
13:38 * masak dreams of the day when the Rakudo/Niecza optimizers take code written as junctions and turns it into something that runs fast
13:38 grondilu why should it be two's complement? 2^30 is below 2^31 so it is not supposed to be negative, is it?
13:38 moritz nom: say (2**30).fmt('%32b')
13:38 p6eval nom acbec8: OUTPUT« 1000000000000000000000000000000␤»
13:38 moritz nom: say (2**30).fmt('%032b')
13:38 p6eval nom acbec8: OUTPUT«01000000000000000000000000000000␤»
13:39 moritz so, flip each bit
13:39 moritz and the most significant bit is 1
13:39 moritz which is negative in 2's complement
13:39 grondilu I think rakudo treats the first four bits as sign bits
13:39 grondilu nom: say my Int $ = 2**28
13:39 p6eval nom acbec8: OUTPUT«268435456␤»
13:39 moritz grondilu: what makes you think so?
13:40 grondilu my previous experiments on my PC
13:40 grondilu nom: say my Int $ = 2**29
13:40 p6eval nom acbec8: OUTPUT«536870912␤»
13:40 grondilu nom: say my Int $ = 2**30
13:40 p6eval nom acbec8: OUTPUT«1073741824␤»
13:40 grondilu ah hang on
13:40 grondilu nom: say my Int $ = +^2**30
13:40 p6eval nom acbec8: OUTPUT«-1073741825␤»
13:40 grondilu nom: say my Int $ = +^2**28
13:40 p6eval nom acbec8: OUTPUT«-268435457␤»
13:40 grondilu nom: say my Int $ = +^2**27
13:40 p6eval nom acbec8: OUTPUT«-134217729␤»
13:41 grondilu nom: say my Int $ = +^2**10
13:41 p6eval nom acbec8: OUTPUT«-1025␤»
13:41 grondilu ok
13:41 moritz grondilu: +^ *always* flips the sign
13:41 grondilu indeed
13:41 * [Coke] wonders if it's worth doing another spec run.
13:41 moritz except for 0 and +1 (which produce -1 and 0), because you can argue if 0 has a sign :-)
13:42 [Coke] nom: say -0
13:42 p6eval nom acbec8: OUTPUT«0␤»
13:42 [Coke] perl6: say -0
13:42 moritz nom: say -0e0
13:42 grondilu shouldn't it flip the sign only if the first bit is a 16, 32 or 64??
13:42 p6eval pugs b927740, rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«0␤»
13:42 p6eval nom acbec8: OUTPUT«-0␤»
13:42 [Coke] perl6: say -0e0
13:42 p6eval rakudo acbec8: OUTPUT«-0␤»
13:42 moritz grondilu: no.
13:42 p6eval ..pugs b927740, niecza v13-389-g852f0ff: OUTPUT«0␤»
13:44 rasto joined #perl6
13:44 masak measuring how fast code runs is the shit.
13:44 grondilu nom: my ($x, $y) = (2**30, 1); my $z = +^$x +& $y; printf "%b\n", $_ for $x, +^$x, $y, $z;
13:45 p6eval nom acbec8: OUTPUT«1000000000000000000000000000000␤1111​1111111111111111111111111111101111111111111​11111111111111111␤1␤11110000000000000000000​00000000000000000000000000000000000000001␤»
13:45 grondilu see the four first bits of $z?
13:46 masak I just measured my code, removed one set of junctions, and then it ran at 2x the speed. I removed another set of junctions, and it didn't change. so I added them back because it was clearer that way. :)
13:46 grondilu nom: my ($x, $y) = (2**30, 1); printf "%32b\n", +^$x +& $y;
13:46 p6eval nom acbec8: OUTPUT«111100000000000000000000000000​0000000000000000000000000000000001␤»
13:47 grondilu where do those four bits come from??
13:47 grondilu niecza: my ($x, $y) = (2**30, 1); printf "%32b", +^$x +& $y;
13:47 p6eval niecza v13-389-g852f0ff: OUTPUT«                               1»
13:48 jnthn masak: Is that in Rakudo?
13:48 moritz oh.
13:48 dalek Pugs.hs: f364756 | au++ | pugs-DrIFT/ (2 files):
13:48 dalek Pugs.hs: * Update pugs-DrIFT to 2.2.3.20120203 for GHC 7.4.1.
13:48 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/f36475653b
13:48 dalek Pugs.hs: 971da12 | au++ | Pugs/ (14 files):
13:48 dalek Pugs.hs: * Pugs 6.2.13.20120203 for GHC 7.4.1 compatibility.
13:48 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/971da1272e
13:48 dalek Pugs.hs: 2ce0226 | au++ | pugs-compat/ (2 files):
13:48 dalek Pugs.hs: * pugs-compat-0.0.6.20120203 for GHC 7.4.1 compatibility.
13:48 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/2ce0226d21
13:48 dalek Pugs.hs: 08f0e50 | au++ | / (18 files):
13:48 dalek Pugs.hs: Merge branch 'master' into perl6
13:48 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/08f0e5052c
13:48 masak then I realized if I replaced some hash logic with just junctions, it ran at ~3x the original speed. o.O
13:48 masak jnthn: no, Niecza.
13:48 jnthn masak: ah, otherwise I'd ahve asked for code for profiling :)
13:49 moritz grondilu: I just realized, libtommath (which we use for storing bigints) uses 28bit "digits"
13:49 moritz grondilu: so there might indeed a bug in there somewhere
13:49 grondilu oh, this explains a lot
13:49 moritz grondilu: feel free to submit as rakudobug (or even fix if you want :-)
13:49 masak then I realized that I could precompute a bunch of stuff; now it runs at ~160x the original speed. :)
13:50 grondilu I don't know how to.  Someone please do it.
13:50 * masak submits rakuodbug
13:50 moritz libtommath stores sign separately from the rest of the bits, which is why we need to emulate 2's complement math
13:50 moritz and that part might be buggy
13:50 * moritz not a big bit fiddler
13:50 masak au++ # alive
13:52 * masak .oO( bit fiddler on the &ceiling )
13:53 grondilu masak: you wrote 'rakuodbug'
13:53 masak grondilu: don't worry, things come out right in the end :)
13:54 grondilu ok, good
13:54 masak look, it's spelled right in the ticket: https://rt.perl.org/rt3/Tic​ket/Display.html?id=109740
13:54 masak :P
13:54 araujo mm..
13:54 masak (there's an intermediate typo correction step in there)
13:54 araujo Pugs resumed development?
13:55 masak araujo: no, just keeping things un-bitrotted, I think.
13:55 moritz araujo: seems to be just updating to newest haskell toolchain
13:55 araujo masak, moritz aaah .. mm
13:55 moritz audrey has been doing that for quite some time
13:56 masak aye.
13:57 masak it makes it easier for future dauntless Pugsonauts to pick up the reins.
13:57 masak we never got that going, by the way. perhaps I should spend the next Perl 6 day trying to set up a Pugs dev environment...
13:57 * araujo might try that out in his his free time on weekend
13:58 araujo though I guess, right now, Pugs is long long far away from other implementations like rakudo?
13:59 [Coke] au++ !
13:59 moritz araujo: well, it is out of date in many areas
13:59 [Coke] masak -if you do that, I can add pugs to the no-longer-daily spec test runs.
14:01 masak [Coke]: that's be nice, too.
14:02 masak [Coke]: I think Pugs has loads and loads of LHF and pending instant gratification.
14:05 arnsholt And there's ample inspiration in Rakudo and Niecza for solutions to various things as well, I suppose =)
14:07 masak right.
14:07 masak and it would lead to awesome blog posts.
14:07 moritz blog-driven development? :-)
14:16 xinming joined #perl6
14:20 [Coke] argh, I left my netbook at home.
14:20 masak moritz: ...which turns into an infinite regress if one's blog is written in Perl 6 :P
14:22 [Coke] Infinite Egrets.
14:25 skids joined #perl6
14:31 masak sorear: when I make timings with Niecza, in the style of 'use MyModule; my $t = now.val; #`<do something a fixed number of times>; say now.val - $t', the first time I run after modifying MyModule.pm, things always run significantly faster. why is that?
14:31 masak I'm guessing it's related to the compilation cache somehow, but it still feels counterintuitive to me.
14:31 masak ooh! maybe it's connected to deserialization, and that has a run-time penalty somehow?
14:35 moritz maybe deserialization is slower than recompilation? :-)
14:35 * jnthn srsly hopes Rakudo's deserialization doesn't work out that way :)
14:38 pernatiy joined #perl6
14:39 masak moritz: one would think the deserialization would be finished by the time the first 'my $t = now.val' runs, though.
14:42 * jnthn woulda thunk so too, but it's always possible that it does something lazily...
14:43 masak aye.
14:43 PacoAir joined #perl6
14:48 birdwind1pbird joined #perl6
14:50 xinming joined #perl6
14:57 xinming joined #perl6
15:01 am0c joined #perl6
15:01 masak no matter how I tried, a 'for (@array) { ... }' is faster in Niecza than the corresponding loop construct with indices.
15:01 * masak impressed
15:01 * colomon surprised
15:02 [Coke] aloha, seen hugme?
15:02 aloha [Coke]: hugme was last seen in #perl6 12 days 2 hours ago joining the channel.
15:03 jnthn masak: Oddness.
15:05 xinming joined #perl6
15:08 * [Coke] sees a ton of drama on p5p.
15:08 masak [Coke]: over what?
15:08 [Coke] phenny: tell hugme to hug p5p.
15:08 phenny [Coke]: I'll pass that on when hugme is around.
15:10 [Coke] https://rt.perl.org/rt3//Ti​cket/Display.html?id=108470
15:11 * [Coke] looks forward to our eventual RT upgrade. ;)
15:13 xinming joined #perl6
15:15 masak I wonder if it would make sense to have a 'git undo' subcommand, which worked on at least a subset of the other subcommands. like I make a commit, and instead of 'git reset --hard HEAD^', I just go 'git undo'.
15:15 masak lower mental load.
15:17 zby_home_ joined #perl6
15:18 arnsholt There was a reasonably good critique of git's UI on HN the other day
15:18 arnsholt I think it was quite correct in claiming that the UI is mostly a by-product of the implementation, and usability suffers correspondingly
15:21 [Coke] masak: can't you add "undo" as a local alias?
15:22 masak [Coke]: maybe, but it'd have to somehow have enough state to know what the last subcommand was.
15:22 masak hm, maybe I can just do something nice with the reflog...
15:22 [Coke] oh, I mean to "git reset --hard HEAD^"
15:22 masak right, but that's specifically in the case of 'git commit'.
15:23 masak I think doing 'git reset --hard HEAD@{1}' might work quite well.
15:26 * masak now has an 'undo' alias
15:27 masak [Coke]++
15:27 masak one nice thing that just seems to fall out of this is that I can 'git undo' the last 'git undo' :)
15:28 mikemol So my boss absolutely *hates* Perl 5. Our build script is written in it, and Perl 5's syntax is driving non-Perl coders. I'm campaigning for it to be ported to Perl 6.
15:28 xinming joined #perl6
15:28 mikemol *driving non-Perl coders crazy
15:29 [Coke] So, I miss Modula 3. Is there a spec for trusted/untrusted||Safe ? or is safe mode just in bots?
15:31 masak mikemol: good luck. I'd advise you to tread really carefully so they don't feel burned by Perl 6 implementations' alpha-ness.
15:32 masak mikemol: it may turn out really well, but my guess is that it'll take a bit of work on your part. especially when people run into problems.
15:32 mikemol masak: What I'll probably do is ask for permission to take the code home and poke it on my own time.
15:32 masak mikemol: if you're the only one writing/maintaining the code, you're in a much simpler position.
15:33 masak but you definitely don't want a situation where someone takes it over, or has to look at it for an afternoon, and goes "what the #@&#%!@ is this?"
15:33 mikemol It'll need to run under niecza, as the build system is running Windows 7; having a .Net VM seems the obvious choice.
15:33 masak what other requirements do you have? speed? memory? refactorability?
15:34 mikemol Speed isn't a real issue in this case; it'll be spending far more time calling visual studio's build processes.
15:34 mikemol Likewise, memory isn't going to be a real issue. It's a build system, and the heavy lifting is done by other tools.
15:35 mikemol Refactorability...Not a real concern here. Code clarity and the ease of understanding what's going on and of adding new functionality.
15:37 mikemol The script is really quite low-end, as far as any kind of requirements. The big troubles are pieces of Perl 5's syntax that Perl 6 already dealt with.
15:37 masak sounds like a nice fit for Perl 6, then.
15:37 Trashlord joined #perl6
15:38 PerlJam mikemol: he hates perl 5, but he's okay with perl 6?
15:38 mikemol PerlJam: Hasn't seen Perl 6. Doesn't like that it has Perl in the name, though...
15:39 mikemol The biggest issue, at the moment, are how sigils work in Perl 5.
15:40 mikemol This code gets prodded perhaps every six months to a year, and the responsibility for maintaining it is moving away from its present maintainer.
15:40 PerlJam mikemol: how sigils work or that there are multiple sigils or that there are sigils at all?
15:40 PerlJam Hmm.
15:40 PerlJam mikemol: are you going to be the future maintainer?
15:41 drbean joined #perl6
15:41 mikemol my %hash; $hash{$key}; my $ref = \%hash; $ref->{$key}; my @array; my $array[$index];
15:41 mikemol And so on and so forth
15:41 PerlJam gotcha
15:41 timotimo i've been kind of spreading the claim, that perl6 is kind of a "complete overhaul" and that unreadable, completely opaque programs are a thing of the past, is that actually true? i haven't read much perl6 code "out in the wild" yet, nor have i written more than a hundred lines
15:42 PerlJam timotimo: they aren't "a thing of the past"  Obfuscation is still possible.
15:42 timotimo i have only been surprised quite often about how almost anything seems to boil down to not very many simple concepts
15:42 slavik timotimo: perl6, like any language does give you enough rope to deep fry your foot
15:42 PerlJam timotimo: but, "cleaner" programs are certainly encouraged more now than before
15:42 timotimo of course, but the claim was that perl5 would "actively encourage" unreadability
15:42 mikemol timotimo: Unreadable, opaque programs are an a fundamental of computer programming. Anyone can write an opaque program in any language they face, and probably will.
15:43 mikemol P5 doesn't encourage unreadability, it's just so flexible that unreadable code is too damn convenient...
15:43 timotimo i suppose what i'm getting at is more the kind of code you would find out in the wild. i wouldn't say "C is really unreadable! just look at the IOCC!"
15:43 masak timotimo: I've seen bad or unreadable Perl 6 code. there's also lots of Perl 6 code that's much less expressive than its true potential.
15:43 mikemol timotimo: It really depends on coder discipline and site/project coding conventions.
15:43 timotimo i suppose the sigil invariance thing, for instance, goes a long way, but i'm not very aware of the rest of it
15:44 masak timotimo: but we have the advantage that we're starting from another place than Perl 5, which started with Perl 1 which was a very different language with different idioms.
15:44 PerlJam timotimo: one of the problems is that people confusing "expressivity" and "readability"
15:44 mikemol And there will always be developers who look for ways to be clever, either out of boredom or out of some other motivation...
15:46 masak and there will always be developers who don't consider maintainability.
15:46 PerlJam mikemol: assuming you convince your boss to let you use Perl 6, you'll have to let us know how you got him to accept the "risk" of doing so.
15:46 xinming joined #perl6
15:46 timotimo i guess there isn't a satisfying answer to get for me. it was kind of a dumb question anyway
15:47 masak I like jnthn's graph with the three levels of programmers: "hey, I got it to compile!" -- "let's write this with all sorts of crazy features that I just learned" -- "I use the various parts of the language sensibly and in moderation".
15:47 mikemol timotimo: To say that Perl 6 makes unreadable code a thing of the past is like saying Python makes unreadable code a thing of the past.
15:47 mikemol It might be a desired outcome, but it's not something you can guarantee.
15:48 masak timotimo: what Perl 6 gives you is a very wide *range* of idioms to express everything from APL-like short code to enterprisey boilerplate-ish class hierarchies.
15:48 PerlJam timotimo: not a dumb question at all.
15:49 PerlJam timotimo: though, if you can't get satisfaction, that's not our problem  ;)
15:49 timotimo oh, that's another question i've pondered for only a second - can perl6 be adequately inspected to allow refactoring tools to do any non-trivial work?
15:49 mikemol PerlJam: The most powerful argument I've given so far is that Perl 6 is intended to be a lot more self-consistent, and doesn't have to carry the legacy of Perl 5.
15:49 masak timotimo: S11 has some wording on that, I believe.
15:49 mikemol That implies the language will be cleaner, and that it will be easier to re-learn as-needed.
15:49 timotimo it seems to me that that would be really hard, but i wouldn't know enough about perl to know
15:50 timotimo i'll have a look, thanks masak
15:50 mikemol We're a multifunctional shop; we pick up skills and tools as we need them.
15:50 masak timotimo: the general problem is unsolvable, since BEGIN block might affect the parsing of the rest of the program.
15:50 PerlJam timotimo: Perl 6 has more facility for introspection than Perl 5, certainly
15:50 masak PerlJam: Alias_ of PPI seems to think it's more difficult to parse out Perl 6, though.
15:50 timotimo right, but introspection i mostly in live running programs, right?
15:51 am0c joined #perl6
15:51 Alias_ yup
15:51 PerlJam timotimo: and since the Perl 6 grammar will be accessible, it's likely that we can do PPI-like-things without needing PPI :)
15:51 Alias_ PerlJam, nope
15:51 Alias_ Perl 6 won't support document parsing
15:52 timotimo in python, for instance, i could completely change any functions bytecode or replace functions and silly things like that. that would make using introspection *really* useless for refactoring. then again, not everybody does this and rope - a refactoring tool for python - exists and can do a few non-trivial things
15:52 PerlJam Alias_: you don't think we can decouple syntax and semantics enough to repurpose the Perl6 grammar?
15:52 Alias_ And by encouraging more grammar diversity, it will actually be harder to parse
15:52 Alias_ PerlJam: You need to be able to parse invalid syntax
15:52 Alias_ You need to be able to parse code that use's modules that don't exist
15:52 masak I remain more optimistic than that, but I haven't written PPI.
15:52 PerlJam what masak said
15:52 Alias_ You need to parse code that launches nuclear weapons at BEGIN time
15:53 Alias_ How would you parse the following Perl 6 document
15:53 Alias_ }
15:53 [Coke] which is one of the reasons I was asking about Safe.
15:53 masak Alias_: you've described designing PPI as solving a problem by looking at it in another way. it wouldn't surprise me if Perl 6 requires yet another shift in perspective to feel parseable.
15:54 masak Alias_: you do realize the irony in first saying "Perl 5 wasn't possible to parse, but I did it!" and then "Perl 6 won't be possible to parse", right? :)
15:54 PerlJam masak: Apparently you and I are on the same wavelength today because I was thinking just that :)
15:55 Alias_ Perl 5 won't be parsable by 5.16 or so either
15:55 masak that... didn't quite answer my question.
15:55 Alias_ To parse you need a grammar
15:56 masak granted.
15:56 masak and if the language moves out from under you, you're toast. I agree to that too.
15:56 Alias_ If the grammar itself is turing complete, you can't know if determining the grammar prior to commencing parsing will complete before the end of the universe
15:56 Alias_ Right
15:56 Alias_ You're toast
15:57 Alias_ PPI evaded the problem, but just barely
15:57 masak but you're talking about the general case.
15:57 masak code never exists in the general case, it exists in specific individual cases.
15:57 PerlJam I think we can get a 90% solution and that will be good enough for most purposes
15:57 masak and special cases can often be solved even when the general case cannot.
15:57 Alias_ If you can write a parser that can parse fuzz, that would be good enough
15:57 masak for example, it's possible to parse Perl 6 code that doesn't muck with the grammar.
15:58 Alias_ If the parse halts and bails, then you're toast
15:58 Alias_ It's ok to mis-parse, so long as you continue
15:58 Alias_ Hence why PPI can parse the single character } as a document
15:58 masak because it doesn't match up braces?
15:58 Alias_ Because it finds ways to continue
15:59 masak ah, ok.
15:59 Alias_ } is an PPI::Statement::UnmatchedBrace
15:59 masak oh!
15:59 Alias_ PPI lets you put all sorts of illegal stuff in
15:59 Alias_ The test suite parses every single possible Perl program 5 characters or shorter
15:59 Alias_ And Audrey wrote a fuzz tester than generates random 128 character programs
16:00 Alias_ And it parses all those too
16:00 Alias_ It won't get the parse right, but it will complete the parse
16:00 Alias_ And then it can round-trip the parse tree correctly back to the original string
16:00 Alias_ No matter how weird or broken
16:00 Alias_ So long as you can do that, you can be useful
16:00 PerlJam I can certainly be ignorant here, but that seems possible with Perl 6 too.
16:01 mikemol Alias_'s problem is that you could put an infinite loop somewhere where your grammar is still being modified.
16:01 Alias_ It's possible, but I'm assuming not by reusing the same parser as you execute with
16:01 mikemol At least, if I understand the conversation correctly.
16:01 Alias_ You can't modify grammar
16:01 Alias_ Not safely
16:01 Alias_ Or at least, not arbitrarily
16:01 * masak is still enchanted by the fact that mentioning Alias_ by name caused him to rez and explain a bunch of stuff
16:01 PerlJam Maybe we end up with 2 Perl 6 grammars: 1 for actually parsing Perl 6 programs that are expected to work, and another for PPI-like parsing)
16:02 Alias_ PerlJam: Probably
16:02 Alias_ Aborting a parse is meaningful and important when you are executing, but fatal when document reading
16:02 PerlJam yep
16:03 mikemol I haven't read enough of the spec to know much of anything about how grammer modding works, but I've seen at least an implication that it only happens in BEGIN blocks.
16:03 masak mikemol: having it happen later than parse-time isn't so useful :P
16:03 xinming joined #perl6
16:04 masak mikemol: but no, it can happen outside of BEGIN blocks.
16:04 mikemol I also don't know anything about PPI (or really what it does, outside this conversation), so I don't know if *anything* I say is going to make any sense...
16:04 masak mikemol: declaring a sub is essentially modifying the parser.
16:04 TimToady BEGIN blocks are a last resort, like eval
16:04 mikemol I suspect I should just be quiet and get some work done. I'm way out of my depth here. :)
16:04 masak ...and you know you're desperate if you're doing an eval in a BEGIN... :P
16:05 PerlJam mikemol: PPI is a magic parser of perl 5 programs  :-)
16:05 mj41 joined #perl6
16:07 mikemol k, read through http://search.cpan.org/~adamk/PPI-1.215/lib/PPI.pm ... I think I undrestand now.
16:07 mikemol Definitely need to get some work done.
16:08 Woodi so, by introducing grammars Perl6 takes unparsability of Perl5 to naw Alef lvl ? :)
16:09 Woodi *new Aleph lvl*
16:09 masak Woodi: well, it's not news that Perl 6 adds new knobs to twiddle. so, naturally it's going to be more difficult to predict what Perl 6 will be doing, that only makes sense. :)
16:10 TimToady it is certainly true that if you don't know what language you're parsing, you can't parse it, but that's not what we're aiming for
16:10 masak that was my point above.
16:10 Woodi so vim need to embed v6 engine :) +1 for me :)
16:11 masak Woodi: not "needs to", but it will be hard/impossible in the way Alias_ described if it does not.
16:11 TimToady or put a vim wrapper on the P6 parser :)
16:11 jnthn decommute &
16:12 TimToady what Perl 6 *is* trying to do is to break the notion that a file contains only a single language
16:12 TimToady so you might end up with a vim that can switch syntax tables within a file
16:12 Alias_ Which makes know which language it is you are parsing very hard
16:13 TimToady no
16:13 PerlJam Alias_: it's always a slang of Perl 6  :)
16:13 Woodi v5; ...; v6; ...;
16:13 TimToady Perl 6 always knows *exactly* what language it's parsing
16:13 Alias_ So does Perl 5...
16:13 TimToady no it absolutely doesn't
16:14 TimToady not if you include source filters
16:14 Alias_ I don't
16:14 Alias_ It still doesn't know
16:14 TimToady we're including that capability while still knowing what language we're parsing
16:14 TimToady there is no two-pass parsing in Perl 6
16:15 xinming joined #perl6
16:15 Alias_ Perl 5 is undecidable already, even without source filters
16:15 TimToady only in the abstract halting problem sense
16:15 masak TimToady: do you see the need for a PPI-like "recover and continue" document parser like the one Alias_ describes, for Perl 6?
16:16 colomon masak++ # had no idea that heredocs with indentation worked properly in niecza!  That was one of the things that most excited me about p6 when I learned about it (back in the pre-Pugs days...)
16:16 Alias_ If it was only an abstract problem, one of the parsers that was based on the perl 5 parser would have been useful at some point
16:17 TimToady I'm more interested in parsing new languages successfully than nailing down my language as a permanent fossil
16:18 TimToady if the new parsers are well-formed, they'll be useable to parse documents at some point
16:18 Alias_ The problem is that to have most kinds of useful tools, you need a grammar you can nail down
16:18 masak colomon: oh! I've been using heredocs in Niecza for nearly a year, I think.
16:18 Alias_ Unless we go with the "There is no source, only the running code"
16:18 masak with indentation.
16:19 Alias_ But that family of languages never seem to get much uptake
16:19 kmwallio joined #perl6
16:19 TimToady it's not high on my priority list to parse the garbage after a parse error, but it's certainly possible to try to recognize bits and pieces in the context of what language you think you were in
16:19 masak it almost sounds like a Ph.D. project.
16:19 PerlJam masak: almost?
16:19 TimToady but I don't mind if the rest of my file loses its color when vim finds an error
16:20 Alias_ Except most Ph.D. projects don't produce useful code at the end :)
16:20 colomon masak: as somehow with large quantities of p5 scripts which generate C++ code, the lack of indentation handling in p5's heredocs is a major factor making that code of mine look very ugly.
16:20 Alias_ TimToady: It's going to flicker back and forth between color and not
16:20 Alias_ As you type...
16:20 TimToady that's a good thing
16:20 Alias_ That's a bold assertion
16:20 Alias_ Is there any prior art?
16:21 TimToady eh? that's kinda what happens now
16:21 MayDaniel joined #perl6
16:21 masak colomon: nod. I had that problem in GGE too.
16:21 TimToady you type, vim gets confused, then it gets unconfused
16:21 xinming joined #perl6
16:21 masak colomon: it's bad because it becomes like two competing landscapes of indentation. very distracting.
16:22 Alias_ TimToady, alas I have to bail from the discussion
16:22 colomon masak: right
16:22 Alias_ Packing for flight to the USA
16:22 Alias_ I'll be in San Francisco for the next two weeks
16:22 PerlJam Alias++ thanks for weighing in :)
16:22 masak Alias_: thanks for stopping by!
16:22 TimToady have a safe flight
16:22 Alias_ Thanks
16:22 Alias_ It's a happily short 14 hours
16:23 masak have the appropriate amount of san fran!
16:23 Alias_ No stops, phew
16:23 PerlJam Alias_: plenty of time to work on Padre or whatever suits your fancy
16:23 PerlJam :)
16:23 Alias_ PerlJam, alas, no
16:23 Alias_ It's a job trial
16:23 Alias_ Job of a lifetime, literally
16:23 Alias_ But will involve moving to 100% microsoft stack
16:24 TimToady Perl 6 runs on mono :)
16:24 TimToady s/mono/.NET/
16:24 Alias_ Part of the reason I have to take the trial, after 4 interviews, is that there's a question about whether I'm "too embedded in Perl"
16:24 huf wut
16:24 PerlJam Alias_: good luck!
16:25 TimToady have the appropriate amount of fun
16:25 Alias_ huf: Moving from a language and community I have some standing and social networks in, to one I'm unknown and starting from scratch
16:25 Alias_ :)
16:25 Alias_ So doing Perl stuff and talking about it much during this trip too much is probably not a good thing
16:25 Alias_ I won't break out the Perl till AFTER I have the job :)
16:25 PerlJam Alias_: blow the interviewers away and have fun doing it :)
16:25 Alias_ later all
16:25 masak Alias_: good luck!
16:26 masak wow, that was great. how about we invite more golen-era people to the channel and interview them? :D
16:26 TimToady can I finally start backlogging now?  <pant> <pant>
16:27 masak I think I could mention half a dozen interesting people from the Pugs days that it would be cool to have back on the channel.
16:27 masak if only for a few minutes.
16:27 TimToady well, we don't want to turn into a museum quite yet :)
16:28 masak I'm not talking about wax figures, I'm talking about people who used to be active and who are probably still bubbling with energy and good ideas.
16:28 masak only elsewhere.
16:28 PerlJam I haven't seen audrey in a while.  :)
16:28 TimToady shes in the backlog via dalek :)
16:28 masak PerlJam: she made commits only a few hours ago... :)
16:29 PerlJam not quite the same
16:29 masak of course not.
16:31 masak she was around a bit in late 2010, according to the logs.
16:31 * TimToady needs to write a talk about developing a language when your raw materials are hares, tortoises, Achilles, and Zeno.  :)
16:31 tadzik moritz: no, it's not. I'll add a test and look at it todaymorrow
16:31 masak TimToady: haha
16:32 masak TimToady: now you *have to*. :)
16:32 PacoAir_ joined #perl6
16:32 PerlJam TimToady: sounds like a Hofstadter rip-off though
16:33 TimToady we need to find a way of making each development step to 6.0 take half as long as the previous one :)
16:35 TimToady more realistically, taking the long view, we just label something 6.0, and then with each regular release after that we reduce the need for 7.0 by half.  :)
16:35 masak PerlJam: any sufficiently self-referent memetics is indistinguishable from a Hofstadter rip-off.
16:35 TimToady you can say that again!
16:35 TimToady that goes without saying!
16:35 PerlJam masak++
16:36 PacoAir_ joined #perl6
16:37 PacoAir_ joined #perl6
16:37 TimToady well, Hofstadter was so complete that it's now all Hofstadter rip-offs, and all we can do now is put in different jokes
16:38 snearch joined #perl6
16:40 masak they all become part of the Strange Vortex.
16:40 TimToady fershure, Perl 6 is rather strange loopy, which bugs people who want to nail it down to being one thing :)
16:41 mikemol It's possible that Perl 6 will take the need for coding conventions to a new level.
16:42 TimToady there's always hope :)
16:42 TimToady but also the ability to predeclare coding conventions is built in!
16:43 mikemol That'd be a nice feature to see in a demo.
16:43 TimToady use NailDownMyLanguageLikeAFloppingFish;
16:43 masak I've come to see Perl 6, in the abstract, as two interlocking strange loops: the grammar, and the MOP.
16:43 TimToady and you'll note we try to keep those as far apart from each other as possible
16:44 masak we do?
16:44 TimToady certainly
16:44 masak sometimes we put pmichaud and jnthn in the same room... :P
16:44 TimToady the grammar is lexically defined, and the MOP is off in single-dispatch land
16:45 TimToady and we try to keep lexical things like multi subs far, far away from single dispatch things
16:45 simcop2387 joined #perl6
16:45 TimToady we've been detangling those for years
16:46 * Woodi think that "learning new programming language" is kind of obsolote for someone actually knowing one programming language. this relaxes somehowe need of picking only one of Perl5 or Perl6...
16:46 kaare_ joined #perl6
16:47 TimToady the question is whether Humpty Dumpty's language was different because of the lexical scope he was in, or because HD's metaobject was the master, that's all...
16:47 mikemol Woodi: I think a presumption of actually knowing a non-trivial programming language is likely an example of hubris.
16:47 mikemol That said, TimToady once identified hubris as a useful property of a programmer.
16:48 TimToady laziness, impatience, hubris only work when applied with industry, patience, and humility :)
16:48 moritz :-)
16:49 colomon sure... if it weren't for hubris, most of us with experience would have to run away screaming from any significant-sized programming project...  ;)
16:49 Woodi they say that learning programming is hard becouse you need to control syntax, concepts like algoritms or objects with all theory below and other things in the same time...
16:49 TimToady industry == hare, patience == tortoise, humility == er, Achilles :)
16:50 Woodi but when someone know concepts then he can "easy" learn or just understand other language....
16:52 TimToady and most of computer science education is tricking people into teaching themselves the concepts by revealing the surface syntax of a language and letting them grope towards the truth
16:52 TimToady there are exceptions of course, but they're exceptional
16:52 arnsholt Indeed. Doing it the proper way is so damn hard!
16:53 PerlJam TimToady: that is probably the most accurate description of computer science I have ever seen.
16:53 * jnthn home
16:53 * Woodi had lectures from C then C++ then Java then Mono...
16:53 Woodi err, C# :)
16:54 Woodi all courses include 'if's and 'while' what was wasting time...
16:55 * Woodi point is to do not scary new incomers to much :)
16:55 Woodi TimToady: humility == Achilles ? :)
16:55 TimToady sure, Achilles is humble *after* he had hubris :)
16:56 TimToady at least, that's how it tends to work out in GEB
16:56 orafu joined #perl6
16:56 TimToady but that's why I added an "er," after all
16:57 Woodi i must re-learn story about hare and turtle to start parse :)
16:58 TimToady you can either watch the cartoon about them, or just read GEB if you're in too much of a hurry
16:58 masak I think you can parse it without knowing the story. you just can't assign values to the terms. :P
16:58 * masak decommutes
16:58 TimToady watch out for those unmatched brackets though
17:00 * Woodi understood that laziness and rest are "goals" :)
17:00 Woodi or wishes :)
17:01 TimToady they are ideals that push us out of the zone of always doing it the same way we did before
17:01 mikemol Woodi: You've got me thinking, now, about how best to demonstrate that knowing one or three useful langauges reasonably well won't necessarily make picking up a particular additional useful language.
17:01 mikemol Best case I can think of is suggesting poking declarative languages like SQL or PROLOG.
17:02 mikemol (Coming, as you do, from C, C++, C# and Java)
17:02 TimToady or Haskell, arguably :)
17:03 Woodi mikemol: first, I was saying about C-like. moving to Lisp like or other group is ofc harder
17:03 TimToady in Haskell you have to declare when you're doing something non-declarative :)
17:03 Woodi and I ommit preferences like sigils or tabs :)
17:04 TimToady linguistically, I translate that to "Do I want my language to enforce noun markers, or require everything to be written as an outline?"
17:04 Woodi however knowing concepts helps everywhere
17:11 mikemol TimToady: I thought of Haskell as a language to throw at people talking about language skill portability, but it seemed a softball if tossed to someone near Perl 6.
17:11 * mikemol recalls the blog posts demonstrating translating Haskell syntax to Perl 6 syntax.
17:12 moritz TimToady: any objections to speccing a method form of make()?
17:12 moritz that is, Match.make
17:12 moritz see the discussion starting at http://irclog.perlgeek.de/​perl6/2012-02-03#i_5094252 for the rationale
17:13 etneg joined #perl6
17:13 TimToady still haven't started backlogging <sniff>
17:13 etneg so did rakudo finalise on the logo yet?
17:13 etneg i know its been awhile but just wondering
17:13 etneg looking at the rakudo site, it's still that old chinese thing up there
17:14 TimToady rakudo has had a logo for longer than Perl 6
17:14 moritz I don't think we've made any decisions on the logo
17:14 etneg no?
17:14 etneg would you be interested?
17:14 etneg i had sumitted designs before like a yr ago but then that was all on paper
17:14 moritz I dimly recall them, yes
17:15 etneg ye it was at a time i didnt know graphics, i think im ready to take on rakudo now:D
17:15 TimToady maybe you should work one up for niecza :)
17:15 etneg whats that
17:15 etneg sure
17:15 moritz that's a new perl 6 compiler based on the CLR/mono
17:15 etneg do you want one for that as well?
17:15 moritz niecza: say "hi, it's me!"
17:15 p6eval niecza v13-389-g852f0ff: OUTPUT«hi, it's me!␤»
17:15 etneg i could do both if you want
17:16 moritz well, that's really sorear's decision, he's the main niecza author
17:16 moritz and as for the rakudo logo, it's mostly pmichaud's decision
17:16 etneg ah k
17:16 TimToady this is a volunteer organization; we can't stop you from doing it, and we can't make other people accept what you do :)
17:17 moritz but if we like it better than what we have now, we'll take it :-)
17:17 etneg right right but no point in doing it if there's no need for it, so best clarifying it first is a rational approach:D
17:17 etneg k
17:17 etneg i'll put together aa a few concepts then
17:17 etneg for niecza right?
17:17 TimToady at the moment niecza is more "in need" of a logo, in the sense that it doesn't have one yet
17:17 etneg ok
17:18 etneg do you prefer a wordmark or an image?
17:18 etneg or web2.0?
17:18 moritz now we need sorear :-)
17:18 etneg is there a meaning to niecza?
17:19 etneg all im seeing is a bunch of xtian stuff regarding the word " niecza"
17:21 etneg or we could wait till sorear is present:D
17:22 moritz etneg: http://irclog.perlgeek.de/​perl6/2010-06-30#i_2498653
17:22 moritz seems like we tried something czech, but didn't quite succeed :-)
17:23 moritz czech for "we don't have time"
17:23 moritz which alludes to the goal of making niecza a *fast* Perl 6 compiler
17:24 moritz TimToady: anyway, I'm speccing Match.make now, forgiveness > permission
17:24 * araujo so busy right now .... but ....
17:24 dalek specs: 3154497 | moritz++ | S05-regex.pod:
17:24 dalek specs: spec method form of &make
17:24 dalek specs:
17:24 dalek specs: the sub form just looks up whatever $/ it finds, which makes
17:24 dalek specs: it unnecessary hard to work with multiple match objects at once,
17:24 dalek specs: for example when doing regex matches in action methods
17:24 dalek specs: review: https://github.com/perl6/specs/commit/3154497284
17:24 etneg moritz: so it means " we have no time"
17:24 etneg heh
17:24 araujo who is in charge of pugs atm?, who should I contact?
17:24 etneg right
17:24 etneg thats a tough one
17:24 tadzik araujo: try ingy, he was trying to resurrect it some time ago
17:25 etneg swirls to denote motion,  followed by a nice typography of niecza comes to mind
17:25 araujo tadzik, all right, thanks
17:25 TimToady most of the letters in niecza look like swirls already
17:26 TimToady z is obviously a barred spiral galaxy
17:28 etneg oh so the typography would have to use characters like polish, etc?
17:28 TimToady e and a are nearly rotationally symmetrical
17:30 etneg ah i see what you mean
17:30 etneg but that would still depend on the font
17:31 etneg something like a sans serif font, easier to tweak to make the letters have some sort of motion
17:31 fasad hi #perl6 !
17:32 dalek rakudo/nom: 6a17a5e | moritz++ | src/core/Match.pm:
17:32 dalek rakudo/nom: implement Match.make
17:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6a17a5e8b1
17:32 dalek roast: 9a4df2d | moritz++ | S05-grammar/action-stubs.t:
17:32 dalek roast: implement Match.make
17:32 dalek roast: review: https://github.com/perl6/roast/commit/9a4df2dab6
17:32 moritz argh, s/implement/test/
17:33 fasad can someone define 'documentation'? #as it applies to a programming language
17:34 etneg i'll see what i can come up with
17:34 etneg see you guys in a bit, tx moritz , TimToady
17:34 moritz fasad: it's a bunch of media (text, possibly images, videos, ...) that you read to understand the language
17:34 moritz s/read/consume/
17:36 fasad hmm... but... ok, define 'official documentation' :)
17:37 TimToady documentation that is supposed to be correct because it comes from the people who ought to know that :)
17:37 moritz it's the documentation that we've decided to call "official"
17:38 moritz fasad: a better explanation would probably "like perl 5's *.pod files"
17:38 moritz which comes with a mixture of tutorials and references
17:39 alvis joined #perl6
17:39 moritz for example perlretut is an introduction to regexes and how to use them, while perlre describes the various regex features in detail
17:46 fasad what about the writing style? here's is my understanding: tut's can have humour, informal writing style; while references are dry, to the point, have only one example  for each point, comprehensive, and not dumbed down
17:47 fasad s/here's/here
17:47 moritz mostly yes (though I don't necessarily agree with the "only one example")
17:47 moritz feedback from the users will show which docs need more examples
17:50 fasad plus, tut's can have some kind of ownership, each author may have his own writing style & wud not like it being touched; while references are neutral so no kind of ownership
17:50 fasad *would
17:51 moritz we usually operate under the assumption that the community will maintain all the docs eventually
17:52 moritz so if the original author isn't around anymore, we'll continue to use and develop his stuff, even if he feels it violates his style :-)
17:52 kaleem joined #perl6
17:53 TimToady I prefer to put jokes into reference material :)
17:54 flussence joined #perl6
17:56 fasad one more thing, IMO reference material does not give you any advie on programming practice, (it treats everything equally), except security advice maybe
17:56 * fasad afk
18:02 flussence joined #perl6
18:06 [Coke] b: say 19593 - 19489 # 02/03/2012 - niecza at 99.46%
18:06 p6eval b 1b7dd1: OUTPUT«104␤»
18:07 [Coke] no change in last 2 days. at all.
18:08 moritz [Coke]: I've just pushed a test that passes on rakudo (but not niecza) :-)
18:08 jnthn 105 :)
18:09 * jnthn had a quick nap and now seems to have a little energy again :)
18:11 colomon moritz: :p
18:11 moritz colomon: but it was kinda cheating, because I just invented, specced and implemented that feature :-)
18:11 colomon yes, I know
18:11 colomon you really shouldn't tempt me that way.  ;)
18:13 dalek roast: 06bfb6e | moritz++ | S10-packages/joined-namespaces.t:
18:13 dalek roast: RT #71260, calling methods on packages that are autovivified by declaring multi-joined classes
18:13 dalek roast: review: https://github.com/perl6/roast/commit/06bfb6e2b6
18:15 moritz niecza: sub f() { for ^1 { } }; say f
18:15 p6eval niecza v13-389-g852f0ff: OUTPUT«Nil␤»
18:16 moritz niecza: sub f() { for ^1 { } }; say ~f
18:16 p6eval niecza v13-389-g852f0ff: OUTPUT«␤»
18:17 dalek roast: 8b33523 | moritz++ | S04-statements/for.t:
18:17 dalek roast: RT #71270, simple case of list comprehension
18:17 dalek roast: review: https://github.com/perl6/roast/commit/8b335236a9
18:18 moritz std: @_
18:18 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0m�Placeholder variable @_ may not be used outside of a block at /tmp/OTOtLaDkwY line 1:�------> [32m<BOL>[33m�[31m@_[0m�Check failed�FAILED 00:01 108m�»
18:19 dalek roast: d5ac5a6 | moritz++ | S32-exceptions/misc.t:
18:19 dalek roast: RT #73502, @_ in the mainline
18:19 dalek roast: review: https://github.com/perl6/roast/commit/d5ac5a66be
18:20 bluescreen10 joined #perl6
18:22 dalek nqp/bs: d8b49c3 | jnthn++ | t/serialization/02-types.t:
18:22 dalek nqp/bs: Test for serializing a P6opaque/knowhow based type with native attrs; also tests serializing NQPAttribute.
18:22 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/d8b49c3d30
18:22 dalek nqp/bs: 6880263 | jnthn++ | src/6model/serialization.c:
18:22 dalek nqp/bs: Hack to handle Undef, which we didn't yet kill in NQP.
18:22 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/68802633b5
18:22 dalek roast: ed9af51 | moritz++ | S32-basics/warn.t:
18:22 dalek roast: RT #73768, ~Any should warn
18:22 dalek roast: review: https://github.com/perl6/roast/commit/ed9af5158f
18:22 TimToady split /<at(1)>/ strikes me as a really lousy way to pull off the first character unless the optimizer is really clever about not checking <at(1)> over the whole rest of the string
18:23 etneg ok
18:23 etneg TimToady moritz http://i44.tinypic.com/10i808y.png
18:23 etneg let me know what you think, just a quick wordmark logo
18:23 etneg brb
18:24 * moritz likes the middle one
18:24 moritz std: my $A::b
18:24 p6eval std 48335fc: OUTPUT«ok 00:01 108m␤»
18:24 moritz TimToady: should that die?
18:24 TimToady something a little strange about the vertical kerning
18:25 moritz putting something in a namespace in a *lexical* declaration feels wrong
18:25 TimToady global packages are assumed to exist, but you can't really know it till link time
18:25 TimToady oh, the my
18:26 TimToady it's declaring a lexically-scoped A package, I think
18:26 jnthn Yeah, that'd be consistent with my class A::B { ... }
18:26 TimToady std: my $A::b; UNIT::<$A::b>
18:26 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable UNIT::<$A::b> is not predeclared at /tmp/C5TS1BWP1w line 1:�------> [32mmy $A::b; [33m�[31mUNIT::<$A::b>[0m�Check failed�FAILED 00:01 109m�»
18:26 moritz nom: my $A::b = 3; say $A::b
18:26 p6eval nom 6a17a5: OUTPUT«3␤»
18:26 jnthn nom: { my class A::B { }; }; say A::B
18:27 p6eval nom 6a17a5: OUTPUT«Could not find symbol 'A::&B'␤  in block <anon> at /tmp/PDM1xTnclk:1␤  in <anon> at /tmp/PDM1xTnclk:1␤»
18:27 moritz nom: { my $A::b = 3;};  say $A::b
18:27 p6eval nom 6a17a5: OUTPUT«3␤»
18:27 jnthn Er.
18:27 moritz seems not so lexical to me :-)
18:27 TimToady niecza: { my $A::b = 3;};  say $A::b
18:27 p6eval niecza v13-389-g852f0ff: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤:: syntax is only valid when referencing variables, not when defining them. at /tmp/dM3zOtex33 line 1:â�¤------> [32m{ my $A::b [33mâ��[31m= 3;};  say $A::b[0mâ�¤â�¤Potential difficulties:â�¤  $b is declared but not used at /tmp/…
18:27 jnthn Yes, I was rather surprised that it did anything, given I didn't remember implementing it :)
18:28 moritz ah, niecza++ forbids it outright
18:28 moritz +1 to that
18:28 TimToady I'm quite sure STD is not declaring a global package
18:28 moritz because it's really monkey-patching into another package
18:29 TimToady std: my $A::b; my UNIT::A $foo;
18:29 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed my at /tmp/3ujpFolPOL line 1:â�¤------> [32mmy $A::b; my UNIT::[33mâ��[31mA $foo;[0mâ�¤    expecting indirect nameâ�¤Parse failedâ�¤FAILED 00:01 108mâ�¤Â»
18:29 TimToady hmm
18:30 MayDaniel joined #perl6
18:30 TimToady std: my $A::b; UNIT::A
18:30 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    'UNIT::A' used at line 1â�¤Check failedâ�¤FAILED 00:01 109mâ�¤Â»
18:31 TimToady maybe it broke somewhere
18:32 TimToady std: my $A::b; UNIT::A::{'$b'}
18:32 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable UNIT::A::{'$b'} is not predeclared at /tmp/eLv8FTbvGw line 1:�------> [32mmy $A::b; [33m�[31mUNIT::A::{'$b'}[0m�Check failed�FAILED 00:01 110m�»
18:32 TimToady std: my $A::b; A::{'$b'}
18:32 p6eval std 48335fc: OUTPUT«ok 00:01 109m␤»
18:33 TimToady std: my $A::b; GLOBAL::A::{'$b'}
18:33 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    'GLOBAL::A::' used at line 1â�¤Check failedâ�¤FAILED 00:01 110mâ�¤Â»
18:33 TimToady not there either :)
18:33 TimToady std: my $A::b; MY::A::{'$b'}
18:33 p6eval std 48335fc: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable MY::A::{'$b'} is not predeclared at /tmp/FCiO7HCKHp line 1:�------> [32mmy $A::b; [33m�[31mMY::A::{'$b'}[0m�Check failed�FAILED 00:01 110m�»
18:33 TimToady well, enough spamming
18:35 Chillance joined #perl6
18:35 dalek roast: 87f3d51 | moritz++ | S04-statements/for.t:
18:35 dalek roast: RT #74060, statment modifying "for" in list comprehension
18:35 dalek roast: review: https://github.com/perl6/roast/commit/87f3d51029
18:37 dalek roast: 3ee43f2 | moritz++ | S04-statements/for.t:
18:37 dalek roast: fix logic error in previous commit. Ooops.
18:37 dalek roast: review: https://github.com/perl6/roast/commit/3ee43f2835
18:38 moritz perl6: nextsame
18:38 p6eval pugs b927740: OUTPUT«*** No such subroutine: "&nextsame"␤    at /tmp/eSZC1PVReq line 1, column 1 - line 2, column 1␤»
18:38 p6eval ..rakudo 6a17a5: OUTPUT«No dispatcher in scope␤  in block <anon> at /tmp/reQP4BwVdY:1␤  in <anon> at /tmp/reQP4BwVdY:1␤»
18:38 p6eval ..niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Illegal control operator: nextsame/nextwith␤  at /home/p6eval/niecza/lib/CORE.setting line 1375 (nextsame @ 3) ␤  at /tmp/a9QUNEEpCt line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3606 (ANON @ 3) ␤  at /home/p6e…
18:39 TimToady rakudo's error is the most awesomest
18:39 moritz aye
18:39 TimToady though could mention 'nextsame' specifically
18:41 TimToady something a bit odd about saying a dispatcher can be 'in scope', when it's more like 'in surrounding scope'
18:42 TimToady "scope" is one of those overloaded words we use to look two different directions
18:42 TimToady in the other sense, the dispatcher is *outside* the scope
18:42 * jnthn handwaves :)
18:42 TimToady "nextsame is not in the dynamic scope of a dispatcher"
18:43 TimToady I'm only being picky because it's so close to awesome :)
18:44 TimToady it's just a really good thing when error messages can actually teach you to think of it precisely without being irritating
18:44 * jnthn suddently gets a terrible feeling of uncertainty over whether nextsame in Rakudo is looking along the dynamic or static chain.
18:45 TimToady but if you can't have both, it's better to be irritating and precise
18:45 * jnthn will look once he gets the re-calculation of P6opaque layouts on deserialization sorted out...
18:46 TimToady I think it wouldn't work at all if it were static :)
18:46 TimToady by definition you call a dispatcher which calls something else
18:46 jnthn oh, huh, my code compiled *and* passed the tests the first time and I didn't even have any beer yet today...
18:47 moritz jnthn: that means it has only one nasty bug hidden deep inside that we'll spend weeks debugging in about half a year :-)
18:47 jnthn \o/
18:47 jnthn :P
18:47 jnthn Sorry for coding before beer :P
18:48 dalek nqp/bs: 5a69d3e | jnthn++ | src/6model/reprs/P6opaque.c:
18:48 dalek nqp/bs: Recalculate various bits of P6opaque's layout data on deserialization. This fills in all the missing gaps, and means we should have no problem when we serialized on a machine with one word size and deserialize on one with another. Hopefully. :-)
18:48 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/5a69d3ea00
18:49 etneg back
18:50 etneg moritz: so the middle one?
18:50 moritz etneg: IMHO yes, but remember that it's sorear's opinion that counts
18:50 etneg oh ye ill do more
18:50 jnthn TimToady: Ah, phew: /* Follow dynamic chain. */
18:50 jnthn :)
18:50 dalek roast: e296115 | moritz++ | S06-multi/positional-vs-named.t:
18:50 dalek roast: RT #78738, dispatch of multis with empty and with mandatory named params
18:50 dalek roast: review: https://github.com/perl6/roast/commit/e296115961
18:50 etneg whatswrong with the one on the left on the dark bg?
18:51 moritz nothing, I just don't like it as much
18:51 etneg ah ok
18:52 etneg well the left and the bottom is for the same logo just in different schemes
18:52 etneg some people like a b&w for print only and so forth
18:53 Chillance joined #perl6
18:53 * etneg returns to the drawing board
18:53 TimToady moritz: if you want to be an aesthetic critic, you have to be able to say why you don't like something :)
18:53 etneg heh
18:53 moritz TimToady: I don't want to be one; I'm just thrown into that role by being asked for my opinion :-)
18:53 TimToady I don't like the upper case, I don't like the difference in whitespace above and below, and I don't really like the angles at the ends
18:54 moritz why? :-)
18:54 TimToady the reason I don't like the uppercase is that it's always lower here :)
18:54 etneg ah
18:54 moritz perl6: sub ($a? is rw) { }
18:54 p6eval niecza v13-389-g852f0ff: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/9qlLK9lbWI line 1:â�¤------> [32msub ([33mâ��[31m$a? is rw) { }[0mâ�¤â�¤Â»
18:54 p6eval ..rakudo 6a17a5: OUTPUT«===SORRY!===␤Cannot use 'is rw' on an optional parameter␤»
18:54 p6eval ..pugs b927740:  ( no output )
18:54 TimToady and it looks too much like a TRADEMARK®
18:54 moritz perl6: sub (*@a is rw) { }
18:54 p6eval niecza v13-389-g852f0ff: OUTPUT«Potential difficulties:â�¤  @a is declared but not used at /tmp/vu3JCjEiy6 line 1:â�¤------> [32msub (*[33mâ��[31m@a is rw) { }[0mâ�¤â�¤Â»
18:54 p6eval ..pugs b927740, rakudo 6a17a5:  ( no output )
18:54 etneg well thats what im aiming for, trademark is unique
18:55 etneg logos fit into that scheme of things
18:55 TimToady the difference in whitespace sets off my bad-kerning neurons
18:55 etneg there's kerning issues?
18:55 TimToady vertical
18:55 moritz so according to rakudo, optional params cannot be rw-ed, but slurpy ones can?
18:55 etneg where exactly
18:55 TimToady the top swash is closer than the bottom
18:55 TimToady that's "kerning" too
18:55 etneg oh
18:55 TimToady it's just vertical kerning
18:56 etneg well i wanted the swirls to be a il different
18:56 jnthn moritz: I think the optional thing was in response to an RT. :)
18:56 etneg uniformity is boring
18:56 etneg :P
18:56 jnthn moritz: The one you're probably about to write a test for :P
18:56 moritz jnthn: correct.
18:56 etneg only wanted it to be uniform in the sense it's perl6 and therefore the 3 on top and 3 below
18:56 moritz jnthn: I just wonder if I should throw a typed exception, and if yes, if it should generalize to other cases too
18:57 TimToady yes, but when you combine uniformity with non-uniformity in art, it has to look inevitable; this doesn't
18:57 TimToady anyway, I'd see if I can get something that flows out of the lowercase letters better than the uppercase
18:58 TimToady (that's obviously an editorial I, not a royal I :)
18:59 TimToady but don't let me speak for sorear++
19:00 TimToady (except to the extent that I always take it upon myself to speak for everyone...)
19:01 colomon moritz++ # just realized he add a fudge for niecza with his new test.  :)
19:01 kmwallio joined #perl6
19:03 etneg bqack sorry had a call
19:04 etneg i'll try with lower letters and see
19:04 raiph joined #perl6
19:06 etneg is there another context for niecza?
19:06 etneg like does it need to say perl6 or something?
19:09 raiph phenny: tell fasad http://irclog.perlgeek.de/​perl6/2012-02-03#i_5094173
19:11 dalek roast: 1808a5d | moritz++ | S03-binding/scalars.t:
19:11 dalek roast: RT #89484, interaction between signature binding and := binding
19:11 dalek roast: review: https://github.com/perl6/roast/commit/1808a5d507
19:12 colomon etneg: are you having trouble getting niecza running?
19:13 dalek rakudo/nom: a47a56a | jnthn++ | src/ (2 files):
19:13 dalek rakudo/nom: Improve error reporting for nextsame and friends when they are used with no dispatcher in the dynamic scope; TimToady++.
19:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a47a56a141
19:13 [Coke] colomon: he's making a logo.
19:14 colomon [Coke]: ah
19:14 colomon etneg: never mind, excuse me!  :)
19:15 jnthn moritz++ # down below 650 open tickets, and testneeded significantly below 100 \o/
19:15 moritz 82 :-)
19:16 * fasad is back
19:16 am0c joined #perl6
19:17 fasad raiph: so i looked at them...
19:20 raiph googled "how to use phenny" on the off chance it'd match. got "She is a chatbot - more specifically a warbot. This means that she can signal the start and end of a wordwar"
19:20 fasad heh
19:21 masak o.O
19:21 etneg colomon: no
19:21 fasad so i'm biased towards having a wiki, though not the current perl6 wiki
19:21 etneg k
19:21 etneg :D
19:22 prammer joined #perl6
19:22 raiph fasad: +1
19:22 dalek roast: aa6dff6 | moritz++ | S05-mass/stdrules.t:
19:22 dalek roast: unfudge <!> tests for rakudo
19:22 dalek roast: review: https://github.com/perl6/roast/commit/aa6dff675e
19:23 fasad raiph: Some advantagesof Wiki: 1. Is searchable, easy to edit (& gives instant post-editing result), and all the oh-so-many advantages which come with a Wiki.
19:23 fasad 2. We can have a pretty documentation, with pictures/diagrams, videos, audio, (imagine the Rakudo page having diagrams explaining its working; or the 'image processing with perl6' page...)
19:23 fasad 3. Perl6 hackers can have userpages, which enables them to have user-pages (a profile-like page), also have  user-sub-pages, so every Tom, Dick & Harry dosen't need to set up a blog
19:24 fasad 4. Each page has a talk page, so can separate the discussions regarding each perl6 topic, instead of having them all on one place. e.g. the talk page for "array" can be the place for people to ask doubts related to arrays and to discuss the documentation itself
19:24 eviltwin_b didn't audrey have something to say about wikis?
19:24 fasad some disadvantages:
19:24 fasad 1.  Will be open to every Tom, Dick & Harry, so chances of vandalism
19:25 moritz and spam
19:25 fasad 2. Yet another username and password to remember :( (however solutions like OpenID exist)
19:25 fasad 3. Editors will need to learn to use the Wikimarkup language. (as if learning Perl 6 (& POD6) was not enough!) (however, is there anyone hasn't edited Wikipedia at least once? ;-)
19:25 fasad * who hasn't...
19:25 * eviltwin_b waves
19:26 fasad 4. Will be hard to make an "official documentation" (however solutions do exist like protecting community-identified official 'documentaion' pages)
19:26 * fasad should really make a document on his thoughts on perl6 documentation
19:27 slavik joined #perl6
19:27 moritz some points I'd like to make
19:27 fasad eviltwin_b: what did audrey have t say ?
19:27 fasad moritz: sure
19:28 moritz 1) choice of wiki vs not wiki doesn't have any influence on whether we allow images or not
19:28 moritz (sorry, being called away, will continue later)
19:28 fasad moritz: ok
19:29 fasad eviltwin_b: *to
19:29 raiph fasad: when i say "wiki" i mostly mean the spirit of ward's original. wiki wiki means "quick".
19:30 raiph fasad: i would expect us to adopt Pod
19:31 raiph fasad: github's wiki (gollum) would let us use Pod (if we write the parser)
19:32 raiph #perl6: am i right in saying that parsing Pod doesn't require a full Perl 6 parser?
19:32 fasad raiph: actually i'm very experienced with Wiki that's why have a bias :)
19:32 fasad raiph: https://github.com/features/projects/wikis says that POD is supported
19:32 raiph fasad: POD and Pod are different
19:33 * fasad is googling
19:34 eviltwin_b my network is sucking :/
19:34 eviltwin_b I was being snarky.  "<lopbot> audreyt says: I think wiki in the original Hawaiian means "I can't find any damned thing""
19:36 * fasad can't find the right keyword to google
19:36 fasad raiph: um, whats's the difference
19:36 raiph fasad: p5 vs p6
19:37 raiph fasad: Pod's a rewrite of POD
19:38 fasad duh,:)
19:38 * fasad is reading S26
19:39 dalek nqp/bs: 8e4727f | jnthn++ | t/serialization/02-types.t:
19:39 dalek nqp/bs: Tests for creating a new instance of a deserialized type.
19:39 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/8e4727f108
19:39 dalek nqp/bs: 1b1ed1e | jnthn++ | src/6model/reprs/P6opaque.c:
19:39 dalek nqp/bs: Write barrier, Justin Case.
19:39 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/1b1ed1e682
19:39 dalek nqp/bs: 1aece91 | jnthn++ | src/6model/ (2 files):
19:39 dalek nqp/bs: Actually, barrier in serialization code.
19:39 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/1aece915c1
19:39 dalek nqp/bs: bd58479 | jnthn++ | src/6model/reprs/P6opaque.c:
19:39 dalek nqp/bs: Set missing sentinels.
19:39 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/bd584799a5
19:39 raiph eviltwin_b: ha!
19:41 fasad raiph: yeah, i agree that not writing perl6's documentation in Pod send's out the wrong signal to the world ;-)
19:42 TimToady and not writing the wiki engine in Perl 6 is also a bit problematic that way too...
19:43 raiph right now i'm enamoured of going gollum
19:43 TimToady and obviously we just need a web-based IDE that will not allow people to think incorrect thoughts, and then it doesn't matter if you can embed Perl 6 code in the page :)
19:46 mj41 joined #perl6
19:47 birdwindupbird joined #perl6
19:49 raiph phenny: tell raiph how to speak to you so you hear him
19:51 fasad rakudo: say "phenny we miss you !";
19:51 moritz some more points: * remember that the web is not the only way to consume docs (see: perldoc)
19:51 p6eval rakudo a47a56: OUTPUT«phenny we miss you !␤»
19:52 raiph moritz: gollum works offline as well as on
19:52 moritz * wikis are advantagous for drive-by edits, while storing stuff in a proper repo gives advantages to the core contributors. Who writes most of the docs?
19:53 raiph gollum is both
19:53 moritz raiph: I'm not arguing pro or contra gollum, just making some general points
19:53 raiph moritz: right. (and i agree with them)
19:55 moritz * one should consider (and avoid) lock-in
19:56 moritz * linkability / nice URLs are important
19:57 fasad moritz: lock-in ?
19:58 TimToady every language is a dialect of Perl 6, so there's no lock-in possible :P
19:58 raiph fasad: the content formats and their assumptions about software to read and write them. eg if you go mediawiki, well, ug.
20:07 mikemol TimToady: I think you've got that reversed. :)
20:12 * mikemol gets the joke
20:16 ingy hi mikemol
20:16 mikemol hi ingy. :)
20:16 mikemol Weren't you going to be driving through GRR some time back?
20:17 mikemol Also, not sure if I ever told you I got your post card. :)
20:17 raiph \o ingy
20:18 ingy mikemol: you mean my post code?
20:18 ingy hi raiph
20:18 ingy hi TimToady
20:18 ingy TimToady: tell glo I made it home with little event after all that... :)
20:19 mikemol ingy: Wasn't it you who sent me a post card? I got one...thought I remembered it as being from you.
20:19 ingy it was a post *code*!
20:19 mikemol The written portion began with "use RosettaCode;"
20:19 mikemol ah
20:19 mikemol -.-
20:19 ingy from Oz
20:19 mikemol har har.
20:19 ingy iirc :)
20:20 * mikemol is terribly slow on the uptake today.
20:20 ingy mikemol: you need to step up your uptake when TimToady's around!
20:21 mikemol Not sure he's finished backlogging yet.
20:21 TimToady I'm sure he's not...
20:21 ingy XD
20:21 raiph ingy: a couple of us (fasad and I) are playing with the idea of cooking goulash with P6 docs
20:21 phenny joined #perl6
20:22 raiph ingy: i like github's gollum. and using Pod. what about kwid?
20:22 ingy raiph: invite me to dinner
20:22 araujo hi ingy , I was told you are current Pugs maintainer ... how true is that? ;)
20:22 ingy raiph: hmm.
20:22 ingy muhahaha
20:22 raiph bbi5
20:23 ingy not really so true but I'd wear that hat for a bit if needed
20:23 ingy raiph: I have a todo to add *kwim* support to github.
20:24 TimToady .oO(kill what I mean)
20:24 araujo ingy, well, just wanted to know current status of the project, and if you have some web link around for it
20:24 ingy https://github.com/perl6/Pugs.hs
20:25 ingy :)
20:25 ingy Merge branch 'master' into perl6
20:25 ingy commit 08f0e5052c
20:25 ingy audreyt authored about 6 hours ago
20:25 ingy nice
20:26 mtk joined #perl6
20:27 ingy audreyt**ఴ
20:27 ingy er
20:27 ingy audreyt**τ
20:28 ingy :D
20:34 birdwindupbird joined #perl6
20:35 bluescreen10 joined #perl6
20:41 araujo ingy, yeah I saw the update :P
20:41 ingy raiph: kwim (know what I mean/Kwiki Markup) is my idea to take the best of the Socialtext Markup (previously maintained by me, currently maintained by audreyt), Kwid and other. It will be defined by a *model* rather than a syntax. The model of focus is close to the model of html that you can create inside a gmail editor richtext mode.
20:42 raiph ingy: not important, but is it wikicreole 1 or 2 compat?
20:43 raiph ingy: dumb q. model, not syntax
20:46 pochi joined #perl6
20:47 icwiener joined #perl6
20:47 icwiener joined #perl6
20:52 cooper joined #perl6
20:56 pmurias joined #perl6
21:07 sorear good * #perl6
21:08 colomon o/
21:08 sorear looks like a lot of stuff for me in backlog
21:10 sorear 05:38  * masak dreams of the day when the Rakudo/Niecza optimizers take code  written as junctions and turns it into something that runs fast
21:11 sorear masak: I thought about that once, but it turns out junctions are the fastest way to write quite a few things, so it wouldn't be an optimization :D
21:13 sorear masak: re. "significantly faster" - my best guess is JIT-cache involvement in Mono
21:30 sorear etneg: I like the middle one best too, but I'm interested to see what becomes of TimToady's concerns.
21:30 sorear Also, I need somewhere to put it. :D
21:31 am0c joined #perl6
21:40 etneg sorear: uploading
21:42 etneg http://i39.tinypic.com/10p9d9e.png
21:44 masak sorear: what about something like 'return if any(@stuff) == any(@things)', which should really desugar to nested for loops which return ahead of time if equality is found, rather than run to completion?
21:47 dalek rakudo/stdinit: ae89311 | jnthn++ | src/Perl6/Grammar.pm:
21:47 dalek rakudo/stdinit: Align variable_declarator more closely with STDs.
21:47 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/ae893118d0
21:47 dalek rakudo/stdinit: f57e879 | jnthn++ | src/Perl6/Grammar.pm:
21:47 dalek rakudo/stdinit: Align 'scoped' more closely with STD.
21:47 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/f57e87939f
21:47 dalek rakudo/stdinit: 00ffb42 | jnthn++ | src/Perl6/ (2 files):
21:47 dalek rakudo/stdinit: Replace $*TYPENAME with $*OFTYPE, to match STD's naming/scoping of it.
21:47 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/00ffb42319
21:47 dalek rakudo/stdinit: a2aef0e | jnthn++ | src/Perl6/Actions.pm:
21:47 dalek rakudo/stdinit: Sync declarator action method with grammar change.
21:47 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/a2aef0ef04
21:49 * masak read that last commit message as "hot declarator action!"
21:50 jnthn o.O
21:52 sorear masak: :D actually that should use a hash table and .Numeric
21:52 masak sorear: I realized that after hitting Enter... :)
21:53 masak my point remains. sometimes it's possible to rewrite junctive expressions into more efficient for loops.
21:56 tarch joined #perl6
21:56 jnthn std: constant $x .= foo();
21:56 p6eval std 48335fc: OUTPUT«ok 00:01 108m␤»
21:57 jnthn TimToady: Was allowing .= for constant intentional when doing the initializer changes?
21:58 jnthn (before we only allowed assignment to follow)
21:58 cooper joined #perl6
21:58 etneg TimToady, moritz sorear let me know what you think
22:01 sorear I think it looks a little too much like the MSDN logo.
22:02 etneg no way!
22:02 etneg because they used a circular halftone ?
22:04 etneg if you think its similar to _you_ well then i cant argue that.i'll put together something else
22:05 etneg before i proceed for another concept, what do you have in mind? abstract? or do you have a concept in mind that you want portrayed in the logo?
22:05 etneg cause right now im just randomly doing this just based on the fact it's a
22:05 etneg c"compiler" and is called niecza
22:08 etneg more context would help so i can go in that direction
22:08 masak ingy: wasn't kwid already defined by a model rather than by syntax?
22:09 masak etneg: I liked your first one a lot more than this iteration. far too much stuff going on in this one.
22:10 etneg masak: ah ok
22:10 sorear MSDN logo is a deformed surface in 3-space with a multicolored circular halftone, accompanied by a lettertype
22:10 masak etneg: here's some random inspiration :) https://gist.github.com/1733148
22:11 masak do with it what you like.
22:11 etneg masak: i'll look into that idea of yours as well
22:11 masak \o/
22:11 etneg the MSDN logo has a halftone, thats all is the similarity, there are zillion logos that use a halftone and also the illusion of 3d in the MSDN logo is sort of warped but thats my opiion of it
22:12 etneg but what would you like as a concept?
22:12 masak I know! a green Sonic the hedgehog!
22:12 masak (because Niecza is pretty fast)
22:13 etneg so a mascot then?
22:13 masak I'm... reluctant to suggest a mascot for Niecza. because if it got one, Rakudo really wouldn't have any chance anymore :)
22:13 masak people would just flock around the implementation with the cute mascot.
22:14 flussence I dunno, Chrome's doing pretty well with just a beachball
22:14 sorear and it's not even the beachball mascot from Dark Star
22:15 masak beachballs work quite well with Google's kindergarten color scheme.
22:16 masak Niecza is any of the following things: a flash, a spaceship, a raygun, a ninja, a tornado.
22:17 * masak .oO( or just a spaceship full of raygun-carrying ninjas in a tornado thunderstorm )
22:17 flussence a spinning beachball! (oh wait, that's not a very good choice...)
22:17 masak :)
22:19 etneg maybe you guys can put together concepts you like and mail it over?
22:24 sorear my earlier comment stands - a logo is not much use unless I can stick it on a website, and I haven't come up with enough content for a website yet
22:24 etneg ok
22:25 masak etneg++ # thinking about Niecza logo
22:27 etneg wont be needing one for awhile till the site is up, makes sense though:D
22:35 dalek rakudo/stdinit: 571fb1e | jnthn++ | src/Perl6/Grammar.pm:
22:35 dalek rakudo/stdinit: Add new initializer tokens to the grammar; not using them anywhere yet.
22:35 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/571fb1ebad
22:35 dalek rakudo/stdinit: 9257ce9 | jnthn++ | src/Perl6/ (2 files):
22:35 dalek rakudo/stdinit: Start updating constant declarator to use <initializer>; add various initializer action methods.
22:35 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/9257ce9768
22:36 jnthn That'll do for today. :)
22:46 masak jnthn++
22:49 masak blog post! \o/ http://strangelyconsistent.org/blog/t1​-expressing-integers-using-four-nines
22:49 masak it is *on*.
22:50 masak y'all can thank moritz++ for the t1 blog post appearing as swiftly as it has. I've been far too busy with $dayjob and stuff, but moritz has been diligently working in the background, benchmarking programs, writing test harnessi and crafting reviews.
22:51 masak in a similar vein, the t2 post should be appearing in just a few days.
22:52 etneg masak: ah the concept you sent was the direction i was going for
22:52 etneg trying to squeeze in "perl 6" or just something symbolizing "6" and niecza
22:52 masak etneg: the butterfly symbolizes Perl 6, if that helps.
22:53 masak but really, don't try to cram too much into the logo.
22:53 etneg yes but i didnt wanna incorporate that into niecza because i dont know the licence for the perl6 logo
22:53 etneg infact the last one with the halftone, the idea for the multicolored was t use the colors from the butterfly
22:53 etneg but i used random colors in total 6 just for the time being
22:55 etneg i guessi'll keep up with niecza's development and when the site is up i guess we could work out something
22:56 ashleydev joined #perl6
23:00 felher moritz++ , masak++ # for all the great p6cc work and latest blogpost :)
23:09 bluescreen10 joined #perl6
23:12 pmurias joined #perl6
23:19 TimToady moritz: why does a search of the irclog for 'div' return nothing?
23:21 TimToady (I recall someone asking if 'div' was okay, and getting a positive answer...)
23:28 whiteknight joined #perl6
23:29 masak TimToady: ISTR three-letter words or shorter are simply ignored. don't ask me why.
23:34 TimToady that would explain why I couldn't find GTK earlier either :/
23:34 TimToady the feedback is LTA
23:34 skids joined #perl6
23:35 jnthn Well, yeah...it doesn't know what LTA is either :P
23:35 TimToady and it should really throw out frequent words, not short words
23:36 TimToady unfortunately LTA is a bit frequent too :)
23:55 masak it should just search for all words entered, with no silent eliminations.

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

Perl 6 | Reference Documentation | Rakudo