»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
diakopter nom: gist.github.com/1220847 00:00
p6eval nom 960833: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 871␤␤»
diakopter nom: gist.github.com/1220847
p6eval nom 960833: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 871␤␤»
diakopter b: gist.github.com/1220847 00:03
p6eval b 1b7dd1: ( no output )
diakopter hopes that didn't launch an http server on p6eval box
jnthn diakopter: Think sockets are blocked for p6eval. 00:04
diakopter jnthn: imcc:syntax error is strange 00:05
jnthn diakopter: yeah, very 00:06
nom: s:g/\-/_/;
p6eval nom 960833: OUTPUT«Method 'subst' not found for invocant of class 'Any'␤ in <anon> at /tmp/MBMgCMvFzO:1␤ in <anon> at /tmp/MBMgCMvFzO:1␤␤»
jnthn nom: say "\x0D\x0A"
p6eval nom 960833: OUTPUT«
jnthn hm, neither of those does it. 00:07
00:08 replore_ joined 00:09 whiteknight joined 00:13 uasi left, uasi joined
diakopter nom: say 3 00:13
p6eval nom 960833: OUTPUT«3␤»
00:21 lestrrat joined, [Coke] left 00:23 [Coke] joined 00:35 tokuhirom left
jnthn Tssk. So, I have the multi-dispatch cache written. It mostly works...apart from on the rare occasion it doesn't, and hands back the wrong candidate. :/ 00:40
On the upside, once I track down the bug, it should be decently fast. It makes no heap allocations in the case it gets a cache hit. 00:43
00:44 colomon joined
dalek kudo/nom: a834325 | jnthn++ | src/binder/multidispatch. (2 files):
Refactor in preparation for adding multi-dispatch cache; sketch it structures related to it.
00:44
kudo/nom: 9961471 | jnthn++ | src/binder/multidispatch.c:
Add calls to add/find things in the multi-dispatch cache.
kudo/nom: 2257709 | jnthn++ | src/binder/multidispatch. (2 files):
Get multi-dispatch cache sketched out. It almost works, apart from on the occasions it doesn't, which are proving hard to track down. Thus, it's disabled for now.
jnthn Will try and hunt down the issue tomorrow. Sleep time now. &
00:49 jimmy1980 left 00:54 jimmy1980 joined
supernovus Well, I'm calling it a night, maybe tomorrow some time after $realjob I'll go line by line through HTTP::Easy and see if I can track down what's causing the IMCC error, then I can file a bug, if of course, it's not something totally my fault :-) 01:04
01:17 woosley joined, wolfman2000 joined 01:21 supernovus left 01:23 jaldhar left, jaldhar joined 01:24 daniel-s joined 01:25 donri left 01:29 jdv79 joined
jdv79 jnthn: thanks for the blogging; as usual! 01:29
01:34 whiteknight left 01:41 uasi left, uasi joined
sorear good * #perl6 01:52
phenny sorear: 15 Sep 21:16Z <masak> tell sorear irclog.perlgeek.de/perl6/2011-09-15#i_4435311 is the golf'd version of the casting error that's been haunting me.
sorear phenny: tell masak You apparently missed moritz_ bringing up 'Match.ast' earlier 01:53
phenny sorear: I'll pass that on when masak is around.
sorear phenny: tell masak this behavior is obviously LTA, but without a definition of "expected behavior" I can't call it a bug. Needs discussion 01:54
phenny sorear: I'll pass that on when masak is around.
01:55 abercrombie joined
sorear niecza: say (e ** (i * $x)).re 01:57
p6eval niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Variable $x is not predeclared at /tmp/9hTGIZFM28 line 1:␤------> say (e ** (i * ⏏$x)).re␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤ at /ho…
sorear niecza: my $x = 0.25; say (e ** (i * $x)).re # mberends
p6eval niecza v9-30-g2b3ba1c: OUTPUT«0.968912421710645␤»
sorear mberends: alternatively, get in touch with colomon++ who is redesigning the trig system :) 01:58
02:01 uasi left
colomon what's mberends' question? 02:12
02:15 uasi joined 02:18 uasi left
snarkyboojum phenny: tell supernovus, FWIW, I can reproduce it, and the "cause" of the error appears to be on line 22, if you change \s in your split to anything that's not one of a couple of character escape sequence, it's fine. 02:24
phenny snarkyboojum: I'll pass that on when supernovus is around.
snarkyboojum std: role A { /\s/ } 02:25
p6eval std bb4f150: OUTPUT«ok 00:01 120m␤»
snarkyboojum perl6: role A { /\s/ }
p6eval niecza v9-30-g2b3ba1c: ( no output )
..rakudo 225770: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 527␤␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped b…
snarkyboojum perl6: role A { /\t/ }
p6eval rakudo 225770, niecza v9-30-g2b3ba1c: ( no output )
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped b…
snarkyboojum something like that
star: role A { /\s/ } 02:29
p6eval star 2011.04: ( no output )
snarkyboojum phenny: tell supernovus, and golfed -> irclog.perlgeek.de/perl6/2011-09-16#i_4436458 02:31
phenny snarkyboojum: I'll pass that on when supernovus is around.
02:35 wamba left
snarkyboojum so, a regression of sorts praps 02:37
02:40 uasi joined
woosley std: class A { method doit($a, $b){return $a + $b} } my $a = A.new(); doit $a: 5, 4; 02:44
p6eval std bb4f150: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/9Ir92MGKaK line 1:␤------> { method doit($a, $b){return $a + $b} }⏏ my $a = A.new(); doit $a: 5, 4;␤ expecting any of:␤ bracketed infix␤…
02:44 soh_cah_toa left
sorear colomon: mberends was complaining about the lack of &cos 02:48
colomon ah, yup, that's my fault. :) 02:57
sorear "fault"? 02:58
03:02 xdhmoore joined 03:04 dalek left, dalek joined, ChanServ sets mode: +v dalek 03:20 supernovus joined
supernovus A quick note, which may or may not be useful. The totally strange error I came across earlier, with my HTTP::Easy library. If I change "role HTTP::Easy" to "class HTTP::Easy", it compiles with no errors. 03:21
phenny supernovus: 02:24Z <snarkyboojum> tell supernovus FWIW, I can reproduce it, and the "cause" of the error appears to be on line 22, if you change \s in your split to anything that's not one of a couple of character escape sequence, it's fine.
supernovus: 02:31Z <snarkyboojum> tell supernovus and golfed -> irclog.perlgeek.de/perl6/2011-09-16#i_4436458
03:22 wolfman2000 left
supernovus okay, that's weird. So the \s is doing it? Then why does it work as a class, but not a role? 03:23
03:33 daniel-s left 03:38 buubot_backup joined
snarkyboojum supernovus: no idea - ask jnthn or someone :) 03:45
supernovus: 03:46
supernovus: \n in a role gives the same error here
anyway - I'll leave it to the experts :)
supernovus same here, I'm switching to a class instead of a role for now :-) 03:58
WWW::App + HTTP::Easy == super easy PSGI web apps in Perl 6 testable without a standalone web server. 04:01
04:03 birdwindupbird joined 04:11 abercrombie left
supernovus Are $!private variable no longer accessible by inherited classes? 04:13
moritz good morning 04:15
phenny moritz: 15 Sep 23:08Z <diakopter> ask moritz could you take a look at the synopsis rebuild process; S02 doesn't seem to have my latest changes; podchecker says it's okay
04:21 benabik joined 04:24 novusordo joined, packetknife joined, satyavvd joined 04:25 novusordo left
moritz phenny: tell diakopter seems that a feather ugprade broke some perl dependencies on feather; working on it... 04:27
phenny moritz: I'll pass that on when diakopter is around.
supernovus Okay, HTTP::Easy is now ready to work, but suffers from the same fate as SCGI... the IO::Socket::INET in nom never receives recv() requests. It may work with get()/readline(), but that doesn't work for HTTP connections. Sigh. Enough for tonight. WWW::App, HTTP::Easy and SCGI are all "nom" ready, but still stuck in "ng" for the time being. 04:31
Correction: IO::Socket::INET receives data from recv() but only after the connecting socket has timed out and closed on the remote side. Which doesn't do much good for SCGI or HTTP. 04:32
moritz phenny: tell diakopter fixed. 04:33
phenny moritz: I'll pass that on when diakopter is around.
04:33 supernovus left 04:34 molaf joined 04:40 uasi left 04:47 uasi joined 04:48 packetknife left
TimToady nom: / $_ / 05:01
p6eval nom 225770: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
TimToady known bug?
benabik … what?
TimToady just chopped everything that wasn't that bug out of an 826 line program, littl by little 05:03
benabik nom: //
p6eval nom 225770: OUTPUT«===SORRY!===␤Null regex not allowed at line 1, near ""␤»
[Coke] that error appears in t/spectest.data a few times.
TimToady nom: /$x/ 05:04
p6eval nom 225770: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
TimToady doesn't even matter if it's defined
nom: /@x/ # curious
p6eval nom 225770: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
TimToady nom: /<$x>/
p6eval nom 225770: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
moritz that error basically means "NYI regex feature" 05:05
05:14 molaf left
TimToady nom: $_ = 'abc 01'; /'abc ' (\d+)/; say $0 05:15
p6eval nom 225770: OUTPUT«Nil␤»
TimToady nom: $_ = 'abc 01'; m/'abc ' (\d+)/; say $0
p6eval nom 225770: OUTPUT«01␤»
TimToady there's another bug
nom: $_ = 'abc 01'; /'abc ' (\d+)/ and say $0 05:17
p6eval nom 225770: OUTPUT«Nil␤»
05:22 xdhmoore left
TimToady oh, cool, now I've got a segfault :) 05:24
05:26 koban` joined, koban` left 05:27 kaleem joined
TimToady and the segfault moves around as I put in print statements; I think that's enough of that for tonight... 05:40
05:46 packetknife joined 05:54 wtw joined, wtw left, wtw joined
sorear sleep 05:56
06:00 Tedd1 joined 06:09 orafu left 06:10 mishin_ joined 06:12 kaleem left 06:13 kaleem joined, orafu joined 06:14 sunnavy joined 06:16 kaleem left, kaleem joined 06:23 kaleem left, kaleem joined 06:25 kaleem left, kaleem joined 06:28 uasi left 06:34 lue left 06:36 kaleem left 06:37 kaleem joined 06:38 Con joined, Con left 06:40 egillth joined 06:42 kaleem left 06:44 kaleem joined 06:46 packetknife left 06:49 jimmy1980 left 06:55 jimmy1980 joined 07:02 pnu joined 07:03 xinming left 07:04 xinming joined 07:29 uasi joined 07:31 woosley left 07:41 am0c left 07:53 mberends left
snarkyboojum ahhh.. into 250MB of swap on my 256MB slice to build rakudo ;) 07:57
07:59 uasi left 08:03 SHODAN joined
tadzik good morning 08:07
moritz good tadzik, tadzik 08:10
regarding yesterday's discussion about the mandelbront benchmark: yes, the current 1m1s timing is on the same machine as the original 16m timing on master 08:11
snarkyboojum guten moaning! 08:12
tadzik: were you able to use panda after jnthn++'s fix? I still have issues with PERL6LIB 08:16
tadzik snarkyboojum: it now blocks on JSON
snarkyboojum oh.. for some reason.. bootstrap doesn't see the adjusted PERL6LIB on my machine 08:17
tadzik hmm
here it fails on protoregexes not yet implemented at line 10, near ";\ntoken va" 08:18
snarkyboojum fails on first use here, i.e. Shell::Command :|
tadzik :/ 08:19
jnthn morning 08:20
moritz: Thanks for confirming.
moritz: Should be able to pull it under a minute once I get the multi cache in.
Unless the lexical lookup improvements already did that... 08:21
moritz ssh: connect to host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly
08:21 russellw left
moritz seems I can't git pull atm :( 08:21
works again 08:23
jnthn nom: role Foo { /s/ } 08:28
p6eval nom 225770: ( no output )
jnthn nom: role Foo { /\s/ }
p6eval nom 225770: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 527␤␤»
jnthn nom: class Foo { /\s/ }
p6eval nom 225770: ( no output )
moritz real 0m58.549s
jnthn moritz: Ooh, below a minute! :) 08:29
nom: BEGIN { /\s/ } 08:30
p6eval nom 225770: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 12355950␤␤»
jnthn aha
snarkyboojum watches on with interest :) 08:31
08:36 woosley joined 08:37 wamba joined
jnthn snarkyboojum: I see what's going on. Need a little more coffee in me to fix it... :) 08:41
snarkyboojum buys jnthn a coffee :)
08:42 SHODAN left 08:47 Alias_ left
moritz (fwiw, niecza does it in 8.5s :-) 08:49
08:50 SHODAN joined
moritz rakudo: say 58.5 / 8.5 08:51
p6eval rakudo 225770: OUTPUT«6.88235294117647␤»
moritz rakudo: say (16 * 60 + 14) / 58.5 08:52
p6eval rakudo 225770: OUTPUT«16.6495726495727␤»
08:54 russellw joined
tadzik heh, we're not that far then :) 08:54
moritz logarithmically speaking, we're closer to niecza than to master :-) 08:55
one thing where rakudo is faster is startup 08:56
0.8s, compared to 2.5s by niecza
btw, I just found a bug
perl6 -e '' # goes to the REPL 08:57
perl6 -e '0' # too
tadzik I sense a if %adverbs<if> somewhere
moritz nqp does that too
tadzik: correct
tadzik erm, %adverbs<e>
moritz erm, meant to say, that's my suspicion too
indeed, there is one in src/HLL/Compiler.pm 08:59
dalek p: 9e5f3e8 | moritz++ | src/HLL/Compiler.pm:
-e "" and -e "0" should no go to the REPL
09:03
jnthn doesn't consider 0.8s a particularly good startup time, fwiw 09:06
09:07 daxim joined
dalek kudo/nom: b4fcd22 | jnthn++ | src/Perl6/ (2 files):
Unify loadlibs handling for BEGIN-time dynamic compilation and the normal compilation path.
09:08
09:15 daniel-s joined 09:17 static_perl left
moritz evalbot rebuild nom 09:21
p6eval OK (started asynchronously)
09:22 mishin_ left
dalek kudo/nom: 977dd63 | jnthn++ | src/Perl6/SymbolTable.pm:
Send dynamic compilation through the Perl6::Compiler pipeline, rather than calling PAST::Compiler directly, so we don't lose the various .includes. Fixes compilation issue reported by snarkyboojum++.
09:22
09:26 DarthGandalf joined 09:35 bbkr1 left 09:39 replore_ left 09:44 daniel-s left, daniel-s joined 09:58 woosley left 10:03 im2ee joined
im2ee hi! :) 10:03
daxim hello 10:05
jnthn o/ im2ee 10:09
jnthn reluctantly puts the Rakudo hacking aside so he can get today's slice of $dayjob done 10:10
eiro you're not full time perl6 hacker ? 10:13
well ... is there a full time hacker ? 10:14
jnthn eiro: No, I do quite a few other things too :) 10:15
eiro jnthn, perl developement related ? or at least you're using perl at work ? 10:16
jnthn eiro: Sometimes, but not all that often. But a bunch of my work isn't programming at all, and more architecture stuff. I teach now and then too. 10:17
Rakudo is usually the project I write the most code for in a week these days, though. 10:18
Well, Rakudo/NQP.
eiro ok 10:24
10:46 static_perl joined 10:48 kaleem left 11:06 kaleem joined 11:07 kaleem left 11:13 woosley joined 11:36 replore joined 11:38 Patterner left 11:40 Psyche^ joined, Psyche^ is now known as Patterner 11:57 satyavvd left
moritz tart.googlecode.com/files/TartIntro.pdf looks nice-ish 12:09
jnthn Hmm. Turns out that some time ago, the is_clearly_returnless optimization got made useless. 12:26
Which means that every infix:<+>(Int,Int) creates one more GCable than it need do so, for example. 12:27
Started on a patch over lunch...should get us another little bit off mandelbrot...and, well, everything else. :) 12:28
ingy o/ 12:32
moritz \o 12:33
ingy <a> ** <b> # will match one or more a separated by b?
moritz correct
ingy how do I match 0 or more.... 12:34
moritz short for <a> [<b> <a>]*
[<a> ** <b>]?
ingy k, that's what I thought
<a> [<b> <a>]* seems like it produce a different ast 12:35
I'm adding ** to pegex, btw
12:36 fhelmberger joined
ingy github.com/ingydotnet/pegex-pgx/bl.../pegex.pgx is now self hosting! 12:36
moritz fwiw I find it a unfortunate that <regex> ** 1..3 and <regex> ** <other_regex> use the same syntax for slightly different things 12:37
ingy but could be slightly better with ** and sigspace handling 12:38
moritz people sometimes get the range syntax wrong (like forgetting the last number, of thinking it means "Inf" if they leave it off)
ingy moritz: +1 on that
moritz and then it's not an error, but interprets the range as the separator regex
ingy I think I will use ** for <a> ** <b> but something else for ranges 12:39
<a>1,3 comes to mind
moritz ingy: so far I didn't have any success convincing @larry (and I didn't know what other syntax to use), but it's nice that you don't fall into the same trap
ingy but I don't need that yet :) 12:40
moritz well, <a>1,3 only works if you limit the first term to subrule calls
flussence so is "1..*" a range or a rx:p5/\d . .*/x in that context? do we need to write 1..Inf instead?
moritz ie if you write \w31,42 it's ambiguous
flussence: 1..* is a range
maybe <a> *!* 1..3 # dies if the RHS is not a proper range 12:41
ingy moritz: pegex puts regexes in //
moritz or ***
ingy it's not p6 :)
so /<WORD>/1,3
moritz still looks like two terms in a row 12:42
ie both /<WORD>/ and 1,3 looks termish to me
(it's probably easy to distinguish, but still leaves me uneasy)
ingy pegex only has a few primitives: 12:43
flussence (why can't we do +** and ~** to disambiguate like normal p6 operators?)
moritz flussence: wfm 12:44
ingy a: <b> [ <c> | /d/ | `e` ] ** <f> # is everthing except prefix and suffix sigils, which are...
12:45 donri joined, woosley left
ingy a: !<b> =<c> .<d> -<e> <f>? <g>* <h>+ # so far... 12:45
.
moritz what do the prefixes mean? 12:46
dalek kudo/nom: 6629ed7 | jnthn++ | src/Perl6/Actions.pm:
A while ago we had a way to check if a routine was obviously never going to use return, and thus didn't need a return handler (a worthwhile saving). It accidentally got broken, and its analysis was a little simplistic. This makes it work again; it probably also doubles up as our 'should we be able to inline this routine' check.
12:47
ingy <x> is subrule; | is alternation; [ ] is group; // is pcre-regex; `` is error; ! is neg assert; = is pos assert; . is ignore in ast; - is pass up in the ast without rule name 12:48
jnthn moritz: ^^ looks like it may give another second or two off mandelbrot ;)
moritz will see 12:49
ingy trying to borrow sensible things from P6R, P:RD, and Rx:G 12:50
12:50 jimmy1980 left, woosley joined
moritz soo -<x> makes $x.ast the ast of the current rule? 12:50
ingy I was toying with ** to mean _zero_ or more in a list and ++ to mean 1 or more 12:51
also
a: ... # explicit ws
a:: ... # use .<ws>* everywhere 12:52
a:myws: ... # use .<myws>*
moritz: um...
moritz ingy: ++ is already taken in p5, might confuse people (+ plus backtracking surpression) 12:53
ingy: or what does "pass up in the ast without rule name" mean?
ingy x: <y>; y: /O HAI/; would return {x => { y => 'O HAI' }} 12:54
x: -<y>; y: /O HAI/; would return {x => 'O HAI' } 12:55
moritz ok, that was basically what I meant :-)
ingy x: .<y>; y: /O HAI/; would return {x => undef }
12:55 jimmy1980 joined
ingy moritz: pegex grammars compile to github.com/ingydotnet/pegex-pgx/bl...x.pgx.yaml 12:56
moritz no good at reading YAML
ingy read the json then :) 12:57
github.com/ingydotnet/pegex-json-pgx/
another grammar
the goal is to write DSLs (like say JSON or Perl 6 ;) and have them work in any language 12:58
moritz jnthn: 55.7s
ingy TestML is written in Pegex and Pegex is tested with TestML 12:59
github.com/ingydotnet/pegex-json-pm is a json parser P5 module with tests in TestML so that it will work in Python when Pegex and TestML do 13:01
ie next week at OSDC
13:01 Holy_Cow joined
ingy Holy_Cow! 13:01
moritz sounds nice
ingy (sorry, couldn't resist)
when the toolchain builds up we could try writing a toy P6 implemenation in P5 with it 13:02
13:02 JimmyZ joined
PerlJam ingy: It sounds like you're trying for similar goals as parrot, but directly with HLLs 13:02
(as far as interoperability goes that is) 13:03
13:03 bluescreen10 joined
jnthn moritz: Down from...58ish? 13:03
ingy well I will have a real toy (C'Dent) that will compile a p6 module to any language (including PIR, PerlJam :) next week at OSDC.fr
moritz jnthn: yes
jnthn moritz: OK, small but worth having.
ingy dukeleto: helped me write a PIR backend for the C'Dent toy last summer (which has a P6, Py and JS front ends) 13:04
moritz PerlJam: well, parrot requires a HLL compiler for interop, ingy's stuff requires the code to be written in a special language (or a special subset of an existing language)
ingy moritz: correct 13:05
C'Dent is defined as an in memory AST
PerlJam Well, DSLs are all the rage these days anyway :)
ingy which can produce equiv native code modules in 15 langs
PerlJam 15?!? 13:06
ingy I think so
PerlJam which?
ingy one sec
snarkyboojum BF? :D
PerlJam ingy++ for the shear brilliant craziness!
ingy cdent: error: option --to: invalid choice: 'x' (choose from 'pm', 'py', 'php', 'rb', 'js', 'scala', 'tcl', 'java', 'as', 'pm6', 'py3', 'go', 'pir', 'nqp', 'pyc', 'cd.yaml')
16 kinda 13:07
PerlJam where's haskell? ;)
ingy cdent.org/examples/hello-world/ 13:08
PerlJam: want commit? :)
PerlJam ingy: I think not. my commit bit would most likely just rot 13:09
13:09 pernatiy joined
ingy moritz: I'll prolly just use [ <a> ** <b> ]? 13:09
13:10 Holy_Cow left
ingy but it seems so common :( 13:10
moritz ingy: it isn't
ingy: if you write grammars that produce good error messages on parse failures, you need to do much more for parsing a delimited list 13:11
ingy the json grammar wants it
hmm
moritz I know
ingy I'll take your word for it for now :)
moritz but json also doesn't allow trailing commas
ingy which is perfect 13:12
does <a> ** <b> allow trailing <b>?
PerlJam idly wonders if pegex does or will have an equivalent to P6's ~
moritz ingy: no
PerlJam ingy: no 13:13
ingy PerlJam: what is it?
tadzik ingy: you missed vala
ingy so that would be perfect for json, right?
PerlJam ingy: <a> <b> ~ <c> == <a> <c> <b> Useful when <a> and <b> are delimiters
ingy hi tadzik
tadzik hello ingy
ingy vala?
tadzik yeah, on the list you poste
d
moritz <a> ~ <b> <c> is short for <a> <c> [<b> || <.panic('Unable to find closing <b>: $linenumber')> ] 13:14
tadzik we implemented vala on the yapc
ingy oh right
looks like we forgot a part
moritz very useful for things like '(' ~ ')' <statementlist>
PerlJam ingy: listen to moritz, he gets it righter than me this morning :) 13:15
moritz that's because it's not morning for me anymore :-) 13:16
ingy :D
15:16 here
tadzik same here
PerlJam aye, and I haven't had my caffiene yet either
moritz here too
ingy PerlJam: better get on that
ingy is at liz+wendy's house in .nl 13:17
tadzik sounds fun 13:18
moritz are liz and wendy the ones who bring Martian Fluxx to the YAPCs?
moritz tries to sort his brainz
ingy back to the trenches. thx all o/ 13:19
moritz: correct
moritz \o
tadzik I'm missing a like I think
ingy tadzik: add vala to the cdent list, please 13:20
tadzik I'll try, ok
I'll just finish dying my hair :>
moritz
.oO( and then your hair is dead? )
13:21
ingy :D
tadzik no, they look pretty lively
snarkyboojum all hair is dead :P (it had to be said) :D 13:22
tadzik : 13:23
:P
13:23 _ilbot joined 13:33 daniel-s left 13:43 wtw left, ilyuhan joined
snarkyboojum what's the easiest way to go about debugging something like Perl6/ModuleLoader.pm ? 13:59
13:59 _sri left 14:02 _sri joined
moritz add nqp::say() calls o it 14:04
*to
snarkyboojum moritz: cheers
moritz or write an NQP debugger, and use it :-)
snarkyboojum moritz: let me just whip one up :P
jnthn say(...) is fine in NQP 14:05
(won't get confused with Perl 6 say)
PerlJam snarkyboojum: what makes you think there's a problem with Perl6/ModuleLoader.pm? 14:06
snarkyboojum for the life of me I can't work out why panda bootstrap.sh can't find Shell::Command.. I've simulated the same thing.. setting PERL6LIB in a shell script prior to running the perl6 executable, and it works :|
so no need to debug ModuleLoader.pm now really ;)
moritz snarkyboojum: does it pick up right perl6 executable?
snarkyboojum I have a single perl6 available in the path which is a symlink to the built rakudo, so I'm assuming so 14:07
o
moritz did you 'make install'?
snarkyboojum yep
I've simulated the same thing.. shell script setting PERL6LIB and calling perl6 which loads an empty module, and it works, but not for good ol' panda :| 14:08
has anyone else tried using panda recently? :D
tadzik I did try :P 14:09
snarkyboojum tadzik: I thought you might - you don't have Shell::Command installed in ~/.perl6/lib or something by any chance?
tadzik hmm
I seem to have
snarkyboojum because that works for me
but the bootstrapper doesn't assume that..
and I'd rather not manually copy modules around to get it to work.. 14:10
tadzik ok, now I get Could not find Shell::Command in any of: lib, /home/tadzik/src/perl/panda/ext:/home/tadzik/src/perl/panda/lib, /home/tadzik/.perl6/lib, and so
snarkyboojum ah - excellent :)
me too
flussence me three!
tadzik clearly it did not pick up PERL6LIB
snarkyboojum aye
flussence that colon is confusing it somehow. 14:12
snarkyboojum flussence: oh - was wondering that
flussence rakudo should split that on its own
I'm guessing...
snarkyboojum which colon?
moritz is that nom or master?
flussence in PERL6LIB= in bootstrap.sh
fresh nom here
snarkyboojum moritz: I'm running nom
flussence: right 14:13
moritz correct, nom doesn't seem to do the splitting yet
snarkyboojum I thought PERL6LIB as an env var would be platform dependent - i.e. rakudo wouldn't do the splitting… ?
flussence unless it's been changed to some other delimiter...?
snarkyboojum I guess it has to :|
but then why is the error message splitting the lib folders correctly 14:14
e.g. Could not find Shell::Command in any of: lib, /Users/adrian/Development/Perl6/panda/ext:/Users/adrian/Development/Perl6/panda/lib, /Users/adrian/.perl6/lib
flussence (anyway bootstrap.sh itself can be a lot shorter now that ./lib is part of the default search path: "PERL6LIB=ext perl6 bin/panda install .")
snarkyboojum etc
moritz snarkyboojum: it doesn't
snarkyboojum moritz: no?
oh bugger 14:15
right
moritz snarkyboojum: the first path has a : in it
snarkyboojum :)
moritz the rest are WS separated
snarkyboojum kinda missed that
moritz @INC.push(%ENV<PERL6LIB>.split($VM<config><osname> eq 'MSWin32' ?? ':' !! ';')) if %ENV<PERL6LIB>;
the condition is inverted, no?
flussence er... yes.
moritz should be ';' !! ':'
snarkyboojum yep
true that!
moritz fixes
snarkyboojum what a team :) 14:16
flussence has no idea what win32's separator is so I'll just agree with everyone else there :)
moritz I'm pretty sure that linux' separator is not ; :-)
daxim need's mo' onfig 14:18
damn you, chat client
dalek kudo/nom: 10d9ee6 | moritz++ | src/core/terms.pm:
fix PERL6LIB separator
daxim need's mo' %Config
snarkyboojum even worse, I think the path separator can be set on the environment... 14:20
anyway - that'll fix it.. thanks moritz++ :)
flussence anyone who does that deserves to keep the pieces :)
snarkyboojum gotta love sniffing osname and munging stuff like that tho :) 14:21
14:21 alester joined
snarkyboojum tadzik: now i should be able to get to the json panda blocker ;) 14:22
tadzik :)
snarkyboojum 2 down.. n to go ;)
moritz well, if all the other n fixes turn out to be so easy... :-) 14:26
14:27 domm joined 14:28 woosley left
snarkyboojum excellent :) it works.. I now get 'protoregexes not yet implemented at line 10, near ";\ntoken va"' - as planned 14:28
what happened to kickarse error messages telling us which file the error occurred in? Or did I imagine that.. 14:29
moritz snarkyboojum: we never had file names in parse errors
snarkyboojum: only in runtime errors
snarkyboojum moritz: aww.. I always thought they were a little more usable.. 14:30
so this is in JSON::Tiny::Grammar - so is that truly NYI in nom? 14:31
tadzik yes 14:32
snarkyboojum okydoke
moritz (not even beijing/old master had file name in parse errors) 14:33
b: 1 1
p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Confused at line 22, near "1 1"␤» 14:34
moritz see, only a line number
std: 1 1
p6eval std bb4f150: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/CCd4o8Tp4G line 1:␤------> 1 ⏏1␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 119m␤»
sorear good * #perl6
moritz \o sorear
TCIF
snarkyboojum just tried Niecza, and it seems it can't find Shell::Command :) 14:35
moritz where does niecza look for modules?
snarkyboojum haven't dug into that yet 14:36
the author must know :)
sorear jnthn: yeah. I won't be happy until Rakudo or Niecza has an unmeasurably low startup time like Perl 5... (time perl -e '' reports 1-3 1/HZ, which seems quite unreliable)
snarkyboojum unmeasurably low startup times sound rockin'
moritz snarkyboojum: huh? it reliably gives real 0m0.005s here 14:37
sorry, meant sorear
moritz should not type s<tab>
sorear moritz: the current directory, $COMPILER_ROOT/lib, and anything specified with -I 14:38
moritz one could always not load the setting if the argument to -e is empty... :-) 14:39
snarkyboojum -l is an undocumented switch?
moritz -I is known from perl 5 14:40
(capital i, not small l )
snarkyboojum oh
so, undocumented ;)
sorear huh, so it is. 14:42
oversight
sorear files a bug so ey will not forget
moritz current S19 even forbids -Ifoo, iirc 14:43
(it doesn't allow single-letter options with arguments but without space) 14:44
moritz will have a hard time getting used to that, and no doubt others will too
sorear yeah I don't put much faith in S19
niecza's command parser was written to the getopt_long(3) documentation 14:45
snarkyboojum I enjoy that Niecza tells me the exact line no and file it has issues with
but it has other issues with panda unfortunately
sorear ...rakudo doesn't?
snarkyboojum just the line number
"protoregexes not yet implemented at line 10, near ";\ntoken va"" vs "$source is declared but not used at /Users/adrian/Development/Perl6/panda/ext/Shell/Command.pm line 14:" 14:46
moritz for parse time errors we don't know the file name :(
snarkyboojum: that's just a warning
snarkyboojum moritz: ok ;)
Niecza gives me line numbers without a filename too :) Undeclared routines: 'mkdir' used at line 43 14:47
or perhaps I'm not reading the info I'm given properly
moritz std: foo 14:48
14:48 silug left
p6eval std bb4f150: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 117m␤» 14:48
moritz std omits it too
snarkyboojum I guess std isn't being used to run and debug code using modules and other libraries? or is it? 14:49
moritz it's not 14:50
snarkyboojum in this case Niecza doesn't know about mkdir and unlink etc which is part of the core setting in rakudo 14:54
but well played I say :)
moritz snarkyboojum: open tickets at github.com/sorear/niecza/issues 14:55
14:56 jimmy1980 left, JimmyZ left
snarkyboojum moritz: even for NYI stuff? 14:56
ok
14:58 JimmyZ joined
snarkyboojum I see your point about std not giving line numbers.. it seems neither rakudo or Niecza does for parse errors.. 14:58
I'm a bit slow here atm, very early Sat morning in Oz ;) 14:59
how many tests does nom pass c.f. ng (old master).. much regression? 15:00
tadzik c.f.? 15:01
flussence about 15k
snarkyboojum "compared with"
flussence ng had about 21k
tadzik yes
snarkyboojum almost 30% less eh 15:02
15:02 mkramer left
flussence This is where we're at now... it seems to have hit a plateau: github.com/flussence/specgraphs/ra...-tests.png 15:02
snarkyboojum I wonder if that's a function of turning on tests, or missing functionality :)
does Niecza run the standard test suite yet? 15:03
tadzik yes
snarkyboojum sweet - so there's a point of comparison
flussence it does, but for some reason prove dies for me when I try it :(
snarkyboojum t/run_spectests? 15:04
tadzik possibly
snarkyboojum this is awesome tho
15:06 mkramer1 joined
snarkyboojum t/fudgeandrun seems to point to a non-existent t/spec/fudge 15:06
flussence you need to clone roast into t/spec first
snarkyboojum oic
15:07 sayu joined, colomon left
snarkyboojum how was I supposed to work that out? :D 15:07
15:07 mkramer1 left 15:09 thou joined 15:10 miso2217 joined
snarkyboojum would it make sense for the spectest make target to checkout the spectest as per rakudo? 15:11
TimToady obviously we all need to switch to GFS ;)
15:11 thou left
snarkyboojum TimToady: did you just use the G word? 15:12
TimToady I meant git, not google or global
snarkyboojum oh!
:)
w00t .. Niecza spectest is working :) 15:13
should add a roast checkout to the spectest make target tho ;)
15:14 birdwindupbird left
snarkyboojum man, how far has Niecza come 15:16
quite incredible
sorear has t/spec symlinked to a roast checkout elsewhere
snarkyboojum sorear: fair enough - not obvious to a newbie like me that I have to manually check it out tho
sorear I wonder why I didn't just have t/spec be a roast checkout. Probably a git clean issue
flussence probably - git clean doesn't recurse into other git trees 15:19
snarkyboojum just git clean the t/spec tree separately? 15:20
For the record, and I know I'm preaching to the converted, but this whole Perl 6 thing is very special.. not just the language, but primarily the community.. the availability of people who'd normally be cloistered in an ivory tower, and the openness. Pretty darn cool imo. 15:25
</emo> :D
15:26 colomon joined 15:27 jimmy1980 joined 15:30 woosley joined 15:31 MayDaniel joined 15:33 wolfman2000 joined 15:36 uasi joined 15:38 Sarten-X joined 15:39 MayDaniel left
sorear hahaha. 15:41
Woodi how in perl6 do s/^(.)/[$1]/ eg: option -> [o]ption ? 15:42
sorear s/^(.)/[$0]/ 15:43
15:43 thou joined
TimToady but doesn't work right in rakudo yet, methinks 15:43
sorear niecza: $_ = 'option'; s/^(.)/[$0]/; say $_
Woodi it work ? :)
p6eval niecza v9-30-g2b3ba1c: OUTPUT«[o]ption␤»
sorear TimToady: masak just filed a bug to the effect that it works in niecza
Woodi it will stay in perl6 ? 15:44
sorear TimToady: specifically he's complaining about $/ being changed by .subst. Do you know offhand where I should point him?
cosimo rakudo: my $x = "option"; $x =~ s/^(.)/[$0]/; say $x;
p6eval rakudo 10d9ee: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " s/^(.)/[$"␤»
cosimo ah, a few weeks, and I don't remember anything anymore... :-|
Woodi thanks sorear++ :) 15:45
TimToady certainly it will stay in P6
if matches can change $/, so can substs
15:47 masak joined
sorear is at a loss for google-keywords to find the old Rakudo subst/$/ discussion on perlgeek.de 15:47
masak TimToady: I don't like .subst clobbering $/
phenny masak: 01:53Z <sorear> tell masak You apparently missed moritz_ bringing up 'Match.ast' earlier
masak: 01:54Z <sorear> tell masak this behavior is obviously LTA, but without a definition of "expected behavior" I can't call it a bug. Needs discussion
masak TimToady: as in, really don't like it.
TimToady: reason: .subst is idempotent. it's the functional version of s/// 15:48
snarkyboojum cosimo: o/ - still in Melbourne?
masak TimToady: when I call it, I don't *expect* $/ in the current scope to be clobbered.
TimToady s/// is not functional
jnthn TimToady: I think masak++'s point was that s/// is not but .subst should be. 15:49
masak yes.
sorear o/ masak
TimToady I was being asked about s///
masak sorear \o
TimToady: in Niecza, .subst clobbers $/ in current scope.
15:50 jaldhar left
TimToady it would be nice if it could clobber $/ in the replacement closure's scope without having to pass it as a parameter *every* *time* 15:50
15:50 wolfman2000 left
masak aye. 15:50
sorear strawman: have .subst set $/ in the calling scope, but restore the original value on return 15:51
masak something like that.
TimToady well, but then we start needing the concept of single ownership :)
it's like the caller's $/ is an implicit rw param to .subst 15:53
is what I mean
15:53 am0c joined
TimToady but that's sorta what rw dynvars are, except everyone own's 'em 15:53
TimToady has not yet consumed sufficient caffeine to puzzle this through... 15:56
15:58 dukeleto left, dukeleto joined
masak decommutes 15:59
15:59 masak left, dukeleto left 16:00 dukeleto joined 16:05 ggoebel joined 16:06 woosley left 16:15 jimmy1980 left 16:16 jimmy1980 joined 16:24 ilyuhan left, [particle] joined 16:26 MayDaniel joined 16:44 Reaganomicon joined 16:47 aindilis joined
jnthn thinks he's found his multi cache bug from last night. 16:49
16:50 pernatiy left 16:52 plobsing left 16:54 plobsing joined 16:56 Woodi joined, silug joined 16:59 dukeleto left, dukeleto joined 17:01 onlineamateur joined
dalek kudo/nom: 946deda | jnthn++ | src/binder/multidispatch.c:
Be sure to decontainerize values before trying to use the type cache ID in the mutli-dispatch, otherwise we just get the type cache ID of Scalar (d'oh!). Enable multi-dispatch cache, which brings some performance gains.
17:03
17:04 onlineamateur left
jnthn ...and brings spectest runs in just under the 3 minute mark here. \o/ 17:06
17:08 Woodi left 17:16 vlixes joined 17:18 uasi left 17:19 Sarten-X left
diakopter jnthn: wow 17:20
phenny diakopter: 04:27Z <moritz> tell diakopter seems that a feather ugprade broke some perl dependencies on feather; working on it...
diakopter: 04:33Z <moritz> tell diakopter fixed.
sorear seems I'll be ditching the BValue optimization, maybe
jnthn: nice
diakopter moritz: cool thanks
17:21 lichtkind joined
TimToady are there any known segv bugs I should be avoiding in my 800 line program? 17:21
jnthn TimToady: In nom? 17:22
TimToady yes
sorear well, try not to overflow the C-stack...
TimToady it moves around, so it's probably corruption of some sort
jnthn TimToady: I don't have any known segfaults at present. The one tadzik++ had reliably reproducable got fixed the other day...
sorear nom: sub foo($x = foo) { }; foo 17:23
rakudo: sub foo($x = foo) { }; foo
p6eval nom 10d9ee: OUTPUT«(timeout)maximum recursion depth exceeded␤»
rakudo 10d9ee: OUTPUT«(timeout)maximum recursion depth exceeded␤»
jnthn sorear: That won't blow the C stack, Parrot uses CPS.
Oh...though it's a default arg so I guess it's nested runloop... 17:24
sorear jnthn: yes it will, sub defaults are called on an inferior runloop
jnthn Inferior runloops for the fail.
TimToady: Sometimes a gdb backtrace or two gives me a good hint.
sorear wonders what TimToady++ is writing 17:25
jnthn But if it is a corruption one then they're trickier to find.
TimToady oh, it's just my quiz editing program from last year, works fine (if slowly) on ng 17:26
seems close to working, after I did the workarounds I mentioned last night
nom: / $x / # that one, for instance
p6eval nom 10d9ee: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
TimToady and the absense of autoviv 17:27
17:27 Sarten-X joined
TimToady oh, and the mishandling of // in void and boolean context 17:27
17:29 alester left
jnthn The autoviv I may be able to fix up. The regex stuff could kinda use a pmichaud++ though. 17:29
TimToady nom: $_ = 'abc 01'; /'abc ' (\d+)/ and say $0 17:30
p6eval nom 10d9ee: OUTPUT«Nil␤»
jnthn nom: $_ = 'abc 01'; /'abc ' (\d+)/.Bool; say $0
TimToady nom: $_ = 'abc 01'; m/'abc ' (\d+)/ and say $0
p6eval nom 10d9ee: OUTPUT«01␤»
nom 10d9ee: OUTPUT«Nil␤»
17:30 thou left
jnthn nom: $_ = 'abc 01'; say /'abc ' (\d+)/.Bool 17:30
p6eval nom 10d9ee: OUTPUT«Bool::True␤»
jnthn nom: $_ = 'abc 01'; say /'abcdef ' (\d+)/.Bool 17:31
p6eval nom 10d9ee: OUTPUT«Bool::True␤»
jnthn ah, no method Bool in Regex...
TimToady nom: $_ = 'abc 01'; /'abc ' (\d+)/; say $0 17:32
p6eval nom 10d9ee: OUTPUT«Nil␤»
TimToady that also fails
jnthn ng: $_ = 'abc 01'; /'abc ' (\d+)/; say $0
moritz that one needs automagic .sink, I think
jnthn b: $_ = 'abc 01'; /'abc ' (\d+)/; say $0
p6eval b 1b7dd1: OUTPUT«Any()␤»
jnthn moritz: Right.
Oh.
We have PAST::Want now...
Wonder if that helps. 17:33
TimToady niecza: $_ = 'abc 01'; /'abc ' (\d+)/; say $0 17:34
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Any()␤»
17:34 masak joined
masak lol hi again 17:34
TimToady ooh, bug?
niecza: $_ = 'abc 01'; /'abc ' (\d+)/ and say $0
p6eval niecza v9-30-g2b3ba1c: OUTPUT«#<match from(4) to(6) text(01) pos([].list) named({}.hash)>␤»
jnthn lolitsmasak!
masak lol!
it's jnthn! 17:35
jnthn :P 17:36
sorear "what, you mean jnthn isn't a pmichaud?"
JimmyZ lolits*!
masak :P
jnthn sorear: I...didn't yet learn QRegex guts. :)
sorear TimToady: maybe bug maybe not
TimToady: you have a Regex object in void context there.
TimToady from a p5 viewpoint, certainly a bug
sorear TimToady: I don't recall anything in the spec saying regexes execute in void context, but even if there was, niecza doesn't really do void context yet 17:37
masak JimmyZ: 中国人是纠正我的lolcat水平。 ^^
sorear a single 'm' will improve the situation
TimToady that's a workaround, not a fix :)
JimmyZ masak: I can't follow you .... 17:38
jnthn > $_ = 'abc 01'; /'abc ' (\d+)/ and say $0
01
masak JimmyZ: I might've botched it up :/
jnthn masak: I understood "Chinese people" and "lolcat" :P
masak JimmyZ: meant to say, "A Chinese guy is correcting my lolspeak".
17:38 SHODAN left
JimmyZ masak: nope, * means Whatever, which is Perl 6 :) 17:39
sorear 水平 is a very odd construction for that
masak ooooooohh
sorear coming of water, really?
sorear wonders how it idomatically translates
TimToady not come
masak sorear: 平 isn't 'come'.
TimToady it's level 17:40
or even
masak it's "plain".
right, even.
JimmyZ 水平线
17:40 pernatiy joined
JimmyZ which means a level 17:40
moritz jnthn: method True() { self.ACCEPTS(pir::find_caller_lex__Ps('$_')) } # does your patch look roughly like this?
sorear erm.
masak JimmyZ: Google Translate probably went for "English level" or something, then.
sorear needs to study much more hanzi 17:41
JimmyZ 水平 is completely different from 水平线
TimToady waterline?
jnthn moritz: No
moritz: I think that'd set the wrong $/
moritz: Just pushed fine
dalek kudo/nom: 6f801ee | jnthn++ | src/core/Regex.pm:
Implement Regex.Bool (TimToady++ for noticing it was missing).
17:42
JimmyZ but they are the same origin, just like a role :)
jnthn moritz: Get some new passing TODOs also :)
moritz jnthn: btw, 51s for the mandelbrot thing
masak perl6: sub is-a-palindrome($_ is copy) { s:g/\W//; $_ eq .lc }; say is-a-palindrome "Dammit, I'm mad!"
p6eval pugs: OUTPUT«*** ␤ Unexpected "-"␤ expecting "::", "handles", "is", bare trait, subroutine parameters, trait or block␤ at /tmp/kikl0O2RsD line 1, column 7␤»
..rakudo 10d9ee, niecza v9-30-g2b3ba1c: OUTPUT«Bool::False␤»
17:42 kaleem joined
sorear 's brain interpreted 平 as 来 17:42
masak dammit.
jnthn nom: say "lol really ng, I run mandelbrot { (60 * 16 + 14) / 51 } times faster than you!" 17:43
p6eval nom 10d9ee: OUTPUT«lol really ng, I run mandelbrot 19.0980392156863 times faster than you!␤»
masak sorear: I once mixed up 平 and 半 on a test, and vowed never to mix them up again.
TimToady those are pretty easy to confuse 17:44
but the one on the right is obviously dividing something in half, and isn't level on top :)
JimmyZ 曰 and 日 are different
masak TimToady: that's my rule as well nowadays :P
I have a listing of characters which look like telephone poles: masak.org/carl/w/index.php/Characte...hone_poles
JimmyZ :)
曰 日日曰日曰曰日日日曰日日曰曰曰曰日日 17:45
TimToady masak: don't forget 耒 :) 17:46
masak ;)
sorear let me guess, that's a grammatical sentence
masak JimmyZ: looks like a Dr Who convention.
JimmyZ you will be confused with that
and me too 17:47
TimToady キ 㐄 专 𠂖
17:47 xinming left
sorear does the first really count? it's kana 17:47
TimToady 手 于 17:48
𡈼
diakopter wishes he had fonts for those
17:49 cotto_work joined
masak perl6: sub is-a-palindrome($_ is copy) { s:g/\W//; .lc.flip eq .lc }; say is-a-palindrome "Dammit, I'm mad!" 17:49
p6eval rakudo 10d9ee, niecza v9-30-g2b3ba1c: OUTPUT«Bool::True␤»
..pugs: OUTPUT«*** ␤ Unexpected "-"␤ expecting "::", "handles", "is", bare trait, subroutine parameters, trait or block␤ at /tmp/Bkki0VKIp0 line 1, column 7␤»
masak \o/
TimToady
I could go on :)
masak :)
masak likes キ 17:50
I know exactly how that telephone pole feels :P
JimmyZ night 17:51
17:51 JimmyZ left
TimToady commuting & 17:54
sorear perl6: sub is-a-palindrome($_ is copy) { s:g/\W//; .lc ~~ .flip }; say is-a-palindrome "Dammit, I'm mad!"
p6eval rakudo 10d9ee, niecza v9-30-g2b3ba1c: OUTPUT«Bool::True␤»
..pugs: OUTPUT«*** ␤ Unexpected "-"␤ expecting "::", "handles", "is", bare trait, subroutine parameters, trait or block␤ at /tmp/rlWAFHx3yA line 1, column 7␤»
masak sorear++ 17:55
'~~ .flip' is a *really* nice way to say 'is a palindrome'
Dammit, I shoulda thought of that! :)
JimmyZ: 甜蜜的梦,卓明亮 17:58
17:59 xinming joined
masak "Like her world-famous big sister, Perl 6 intends to carry forward the high ideals of the Perl community." -- I just realized that this sentence talks about Perl 5 the *community*, not about Perl 5 the *language*. 17:59
that's interesting.
both have high ideals, for sure. but they're different high ideals. 18:00
daxim masak, “晚安”
masak dang! 18:01
I swear I knew that one. overreliance on GT bad! :(
daxim also, I had a list of like 1000 characters which are are like a continuum of similarity
it drives me nuts. it's like those people who confuse qw( p q d b ), only a hundred times worse 18:02
masak there's also a difference between "Perl 6 [the language] intends to carry forward the high ideals of the Perl community." and "Perl 6 [the community] intends to carry forward the high ideals of the Perl [5] community."
daxim: I once sent an email to the Unicode Consortium, telling them they got the wrong Mandarin pronunciation on a character. got a very polite email back saying "you've probably missed a stroke". I had. :/ 18:03
daxim oh, self-pwn of the worst sort 18:04
PerlJam masak: are you proposing a rewrite of that sentence or just musing on the meaning? :)
masak PerlJam: I'm just trying to figger out the original intent. 18:06
ah, here's the email: "We believe that you are confusing 褔 U+8914 (FU4) with 福 U+798F (FU2." 18:09
:/
jnthn "In summary, F U 2!" 18:10
18:10 Woodi joined
masak interestingly, the person who replied had a microsoft.com address. 18:11
jnthn -> store
masak probably says something good about Microsoft's involvement in Unicode.
daxim you didn't learn the radicals, then 18:12
18:12 Tene joined, Tene left, Tene joined
masak no, not enough at that point. 18:14
now I know that the one in 福 has to do with deity and the one in 褔 has to do with clothes.
daxim ah, found my backup. here, knock yourself out: paste.scsys.co.uk/144125?tx=on 18:15
18:19 nebuchadnezzar joined
masak daxim: nice list. 18:19
18:24 fhelmberger_ joined 18:26 kaleem left
TimToady well, it's not that simple 18:28
18:28 saaki left
TimToady since there's also 礻 as well as 示 18:29
masak right. 18:30
TimToady it also doesn't help that 福/􏿽xF0􏿽xAF􏿽xA5􏿽x96􏿽xEF􏿽xA8􏿽x9B are the most distorted characters on the planet
daxim what do you mean with distorted? 18:31
TimToady if you start looking for it, you'll see that character in pretty much every Chinese restaurant, but it'll be highly stylized in some way
daxim oh, that's just handwriting 18:32
masak sometimes it's upside down. and not by mistake, but because it's said to bring luck.
TimToady it's *not* just handwriting 18:33
the right side means "fulljar" and is often drawn as a jar, for instance 18:34
daxim 福到了 ↔ 福“倒”了
it's a pun
masak doesn't get it 18:35
18:35 sayu left
daxim blessing has arrived (punctually for the new year/spring festival). "arrived" sounds like "inverted" 18:36
so write 福 upside down to convey this saying
masak ah! 18:37
hah!
moritz any objections to renaming S02-names_and_variables/ to S02-names-vars ? 18:39
sorear +1
masak go for it.
moritz I'll also rename some of the other long names
18:40 MayDaniel left 18:43 saaki joined
jnthn moritz: +1 18:43
18:46 frhodes left 18:51 molaf joined 18:53 Chillance joined
dalek ast: eae66cd | moritz++ | S0 (146 files):
mass rename; get rid of all top level underscores
18:53
18:53 thou joined
dalek ast: 6c2152e | moritz++ | S (3 files):
rakudo unfudges
18:56
18:56 envi left 18:57 daxim left, Kivutarrr joined
moritz how can I see the renames of a git commit? 18:58
flussence git diff -M --summary eae66~1..eae66 19:00
19:00 pernatiy left
moritz flussence++ 19:01
masak renames aren't sourced in git. they're calculated information.
flussence `git show eae66 --find-renames --summary` is probably a better cmdline to use... 19:02
moritz I don't think I have to care about that, as a user :-)
flussence (didn't realise git-show took git-diff options)
dalek kudo/nom: e1e0913 | moritz++ | t/spectest.data:
track test file rename
masak moritz: you probably don't, except insofar as "the renames of a git commit" don't exist, in the strictest sense.
flussence++ # it does? nice! 19:03
moritz masak: I don't care if it exists, as long as git tells me about them :-)
masak moritz: you have a point, and I see it. :)
flussence masak: the git-show manpage didn't contain "rename", which I found odd so I decided to experiment a bit and it worked :) 19:04
masak flussence: I also went looking at that manpage, and also drew a blank. didn't think to experiment, though :)
19:06 vlixes left, Kivutarrr left
dalek ecza: 37fcc8d | moritz++ | t/spectest.data:
track test file name changes
19:12
19:13 packetknife joined 19:21 packetknife left 19:22 mj41 joined 19:28 thou left 19:32 alvis joined
masak chromatic++ # www.modernperlbooks.com/mt/2011/09/...ix-it.html 19:32
chromatic, if you're reading this: s/ceteris paribis/ceteris paribus/
19:33 mj41 left 19:37 itz left
masak also, the aside about Wikipedia sounds overly bitter... 19:38
19:43 itz joined
masak anyway, good post. 19:51
I'm wondering how much of a correlation there is between leaving newbiehood and entering the Perl community as an active member -- and whether there's causation in any direction involved, too. 19:52
19:53 mj41 joined, carlin joined
im2ee Good night !:) 19:55
masak im2ee: n
19:55 im2ee left
masak hah! :) 19:55
19:55 miso2217 left 20:01 dukeleto left, dukeleto joined 20:04 localhost left 20:05 miso2217 joined, localhost joined 20:09 mj41 left
diakopter jnthn: ping 20:17
jnthn diakopter: pong 20:20
diakopter jnthn: where in rakudo would Object hashes be implemented? the setting? 6model? 20:21
20:21 Trashlord left
jnthn diakopter: It may well need some "glue" at the 6model level to provide the VM abstraction for mapping an object to a hash value. 20:23
masak perl6: my @a = [<foo bar baz>]; say "foo" eq any @a[0] 20:24
p6eval rakudo e1e091: OUTPUT«any(False)␤»
..niecza v9-31-g37fcc8d: OUTPUT«any(Bool::False, )␤»
..pugs: OUTPUT«any(VBool False)␤»
diakopter on a related note, would Sets, KeySet, KeyBag etc be entirely in the setting (can someone implement them now without magic/glue help)?
masak perl6: my @a = [<foo bar baz>]; say "foo" eq any @a[0].list 20:25
p6eval rakudo e1e091: OUTPUT«any(True, False, False)␤»
..niecza v9-31-g37fcc8d: OUTPUT«any(Bool::True, Bool::False, Bool::False)␤»
..pugs: OUTPUT«any(VBool False)␤»
masak rakudo++ niecza++
jnthn We had Set back in ng, so I'm sure that one is possible.
moritz diakopter: if .WHICH works properly, that should be possible in the setting
diakopter what would it take to get .WHICH working in nom 20:26
20:26 Trashlord joined
jnthn The way we do it at the moment, implementing WHICH methods 20:26
nom: say 'xyz'.WHICH 20:27
p6eval nom e1e091: OUTPUT«19954560␤»
jnthn nom: say 'xyz'.WHICH; say 'xyz'.WHICH
p6eval nom e1e091: OUTPUT«23313280␤23313280␤»
moritz thinks that should become Str:xyz or so
jnthn nom: say ('xy' ~ 'z').WHICH; say ('xy' ~ 'z').WHICH
p6eval nom e1e091: OUTPUT«11953912␤68550888␤»
jnthn ah, that's...very wrong.
moritz though the specs say that there's a special type for .WHICH
diakopter ObjAt
jnthn moritz: Yeah... 20:28
moritz jnthn: right, .WHICH needs to be overridden for value types
masak moritz: just declare Int a special type :P
masak removes all the debug statements from the grammar he just got working in Niecza... and things break again 20:30
oh, hello LTM! nice to meet you!
it will be a pleasure to get to know you better. :P
jnthn It looks like Hash_key_type_PMC exists in Parrot hashes
if (hash->key_type == Hash_key_type_PMC)
return VTABLE_hashvalue(interp, (PMC *)key);
In other words, we'd need to map hashvalue v-table to .WHICH 20:31
Though that's not really gonna give us a portable way to do it. 20:32
diakopter I'd postulate that a lot more of the setting could be written once such things worked correctly
jnthn diakopter: Indeed.
diakopter: It's totally worth doing. Just pondering the best/rightest way. 20:33
masak is {} the canonical way to say "declarative prefix ends here" in Perl 6 grammars?
jnthn masak: It seems like a popular one at least.
masak does it
jnthn checks what the spec says about ObjAt
masak I still don't see why and where I have to apply those, but applying them works. 20:34
moritz thought there was some better way to end declarative prefixes, but can't remember it
masak moritz: maybe you're thinking of <!!before 20:35
STD.pm6 is fullofem.
whoa, that 'f' looks very weird when written together like that.
20:37 bluescreen10 left
moritz -> sleep 20:37
masak ooh, :: seems to work just as well.
and I don't have to put them at the very beginning of the rules, either. sometimes I can move them a bit inwards. 20:38
aah. livin' the Perl 6 dream :) 20:39
diakopter masak: drat; I almost mentioned :: earlier
jnthn diakopter: I'm pondering that as a first cut, ObjAt is a type that basically boxes a string 20:40
diakopter: Can be along the lines of "int:...", "str:..." for objects that care about identify 20:41
masak ooh, there's even a use-case in S05:2276 matching mine!
jnthn And then just an obj:address for anything else 20:42
diakopter for really long strings (or ints) wouldn't that use a lot of memory
jnthn Hm 20:43
Yeah. :/
That'd suck.
Guess though since strings are immutable, if ObjAt had a pair of native str slots (prefix, value) then at least the long string case could just point to the original...then I guess it's knowing how to make a hash value out of the two hash values of the parts. 20:44
It'd probably be far cheaper overall though. 20:45
diakopter maybe if the string was really long, the system-wide string internment/caching uses memory location since the string is cached
jnthn Maybe. 20:46
diakopter that'd be some work 20:47
jnthn Yeah...probably want something that Just Works At All and is going to be reasonably efficient for the first cut, I suspect.
Anyway, seems that any solution involves introducing an ObjAt type. 20:48
And implementing the various WHICHs that return that.
Then working out what the "glue" layer to the VMs "gimme a hash value" looks like. 20:49
diakopter
.oO( wicked WHICH of the wrest )
jnthn :)
sorear this is giving me ideas 20:50
20:51 birdwindupbird joined, birdwindupbird left
diakopter oh noes 20:52
dalek kudo/nom: c8ebb4b | jnthn++ | src/ (5 files):
Previously, a sub foo($x = 1) { ... } would generate a thunk that returned the 1. However, it's a literal, so it was kinda silly to do that. Now in these cases we just hand back the value. Good, since these show up in places like MapIter.REIFY.
20:54
21:00 alester joined
masak jnthn++ 21:06
perl6: sub foo(Int $x = "foo") {}; say "this doesn't die at compile time" 21:07
p6eval niecza v9-31-g37fcc8d: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/LN8XmYT0a9 line 1:␤------> sub foo(Int ⏏$x = "foo") {}; say "this doesn't die at␤ &foo is declared but not used at /tmp/LN8XmYT0a9 line 1:␤------> sub foo⏏(Int …
..pugs, rakudo e1e091: OUTPUT«this doesn't die at compile time␤»
masak niecza: sub foo(Int $x = "foo") { say $x }; say "A"; foo() 21:08
p6eval niecza v9-31-g37fcc8d: OUTPUT«A␤Unhandled exception: Nominal type check failed in binding Int $x = "foo" in MAIN foo; got Str, needed Int␤ at /tmp/guqtcOXanL line 0 (MAIN foo @ 0) ␤ at /tmp/guqtcOXanL line 1 (MAIN mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2060 (COR…
masak I say catch it at compile time.
jnthn masak: Fairly easy to do 21:13
masak: Not sure where to put the check though.
sorear Is it really compile time, or :loadinit time? 21:17
jnthn sorear: Where I said I could catch it? 21:18
Compile time.
masak seems we would have all the information as soon as we've build the AST nodes for that part of the signature. 21:19
jnthn We don't build AST nodes for signatures really. 21:20
They're part of the model, not the AST.
21:21 dukeleto left, dukeleto joined
jnthn masak: Anyways, if you want to try a patch for it, then maybe the easiest place is inside create_parameter in Perl6::SymbolTable. 21:25
masak: You have the nominal type to hand, and the default value, and you know it's a litreal one from one of the flags that is set. 21:26
masak: Then it's just a case of nqp::istype($value, $nom_type)
sorear btw, I think PAST is a rather bad name. It's much lower level than a textbook "abstract syntax tree" 21:27
jnthn Lower level? 21:28
21:29 jimmy1980 left
sorear jnthn: abstract syntax trees normally have one kind of node for every source-language construct 21:30
jnthn omg omg! 21:31
er, wrong window
sorear: Ah, in that case then yes, I agree.
sorear wonders what jnthn is so excited about 21:32
masak "wait, this isn't privmsg, is it?" ;) 21:33
jnthn :P
sorear: Nothing Perl 6 related, I'm afraid.
It *woulda* been nice if it was like "oh, another 10% of mandelbrot" though :P
21:35 nebuchadnezzar left 21:36 jimmy1980 joined
masak perl6: say +$*ARGS 21:39
p6eval rakudo e1e091: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤ in method Numeric at src/gen/CORE.setting:560␤ in sub prefix:<+> at src/gen/CORE.setting:1732␤ in <anon> at /tmp/FxcVLgSRNB:1␤ in <anon> at /tmp/FxcVLgSRNB:1␤␤…
..pugs, niecza v9-31-g37fcc8d: OUTPUT«0␤»
jnthn perl6: say $*ARGS.WHAT 21:40
p6eval rakudo e1e091: OUTPUT«Failure()␤»
..pugs: OUTPUT«Scalar␤»
..niecza v9-31-g37fcc8d: OUTPUT«Any()␤»
21:40 soh_cah_toa joined
masak oh right. it's @*ARGS 21:40
that works just fine, it seems 21:41
perl6: say +@*ARGS
p6eval pugs, rakudo e1e091, niecza v9-31-g37fcc8d: OUTPUT«0␤»
masak \o/
21:41 molaf left 21:42 tokuhiro_ joined 21:53 djanatyn joined, nebuchadnezzar joined 22:01 s1n joined 22:05 fhelmberger_ left
masak nice. gist.github.com/1223133 22:12
dalek kudo/nom: 0a93f6e | jnthn++ | src/core/ (6 files):
Improve object creation performance in a few hot-path places (e.g. iterators).
22:14
kudo/nom: 58809bb | jnthn++ | src/ (2 files):
Don't re-check types at bind time that the multi-dispatcher already decided were fine.
jnthn First sub-170s spectest run I've managed.
22:14 alester left
masak oh, it's a prime sieve. 22:15
sorear mm, shifty 22:18
masak :)
"Waterbed postulate: all siggie-less programming languages are shifty." :)
jnthn
.oO( The S06 tests are smoking siggies... )
22:19
TimToady nom: given "foo" { when /f(o*)/ { say $0 } } 22:22
p6eval nom c8ebb4: OUTPUT«Nil␤»
TimToady jnthn: ^^
sorear would love to see a sub-1700s niecza spectest run
TimToady nom: given "foo" { when m/f(o*)/ { say $0 } }
p6eval nom c8ebb4: OUTPUT«oo␤»
jnthn sorear: Throw hardware at it :P
TimToady there's another
sorear prefers to throw software at problems 22:23
jnthn nom: given "foo" { when /f(o*) { say 'i waz here' }/ { say $0 } }
p6eval nom c8ebb4: OUTPUT«i waz here␤Nil␤»
jnthn sorear: I've adopted a hybrid approach. Faster hardware to help me see if my software throwing has worked out or not ;)
TimToady: ah, that one... 22:25
TimToady: Yeah, I know what's at the base of that one.
Getting a bit tired for that today though...will take a look tomorrow. 22:26
.u ъ 22:29
phenny U+044A CYRILLIC SMALL LETTER HARD SIGN (ъ)
22:30 nmourey joined 22:31 wknight8111 joined 22:37 donri left 22:45 am0c left 22:52 jimmy1980 left 23:13 am0c joined 23:15 wamba left 23:16 japhb joined
japhb is currently building niecza ... it's my first interaction of any kind with Mono/C#. 23:18
diakopter neat; which version of mono 23:19
japhb Where's the best place to start learning enough about Mono/C# to be able to at least do minor niecza fixes? (Later I'd love to do more, but that's a good start.) Any good tutorials for people that are competent programmers but just don't know that world yet? 23:20
diakopter, checking
diakopter, looks like 2.6.7
(The default in my Ubuntu)
diakopter crosses fingers
japhb The build died. :-/ 23:21
diakopter mberends reported the latest wouldn't build on 2.6.7
japhb *sigh*
diakopter and so did you it seems; sorear might be around
sorear intends for it to build on 2.6.7; I'm guessing he can fix it pretty quickly
sorear: pling 23:22
japhb diakopter, ah good. I was thinking it was just unsupported and was not looking forward to getting a new version to build, given the massive pile of stuff that just the package manager installed .... 23:23
diakopter later mono versions (2.10.5 latest?) have TONS of fixes and performance improvements though, and of course additional features. 23:24
error CS0006: cannot find metadata file `Kernel' ? 23:26
make: *** [boot/obj/CompilerBlob.dll] Error 1
is what mberends reported
japhb yup, that's the error (the first one)
Oh, actually both.
masak 'night, #perl6 23:27
diakopter n
japhb o/
23:27 masak left
japhb Well, while I wait for sorear to appear, no seems like a decent time to try current rakudo ... 23:28
*now 23:29
diakopter japhb: as far as contributing to niecza, sorear's code is extremely easy to read; things are named quite appropriately; logic is quite easy to follow
japhb diakopter, good, then hopefully experience with other "system" languages should serve well. 23:30
23:39 static_perl left 23:40 static_perl joined, thou joined 23:44 aindilis left 23:54 packetknife joined
sorear Hi! 23:55
japhb o/
sorear, How hard would it be to fix niecza to work on mono 2.6.7 again? 23:56
sorear japhb: no clue.
japhb: did I accidentally commit CompilerBlob to master?
oh, looks like it wasn't an accident. 23:57
01739806919 was before I made that change, very few changes rela have been made on the mainline since then 23:58
I'm doing a system redesign now of the compiletime/runtime boundary and output file generation, to enable BEGIN and better roles/metamodel handling 23:59
23:59 packetknife left
japhb Hmmm. If I start using niecza regularly, I'll probably want to ride the HEAD. How long until you plan to merge the work you're doing now? 23:59