Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-04-28

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:18 orafu joined #perl6
00:30 hercynium joined #perl6
00:32 orafu joined #perl6
00:34 sri_kraih joined #perl6
00:38 LimbicRegion joined #perl6
00:41 pugs_svn r26509 | lwall++ | [STD] allow traits on subset, enum
00:41 pugs_svn r26509 | lwall++ | [STD] non-declarative enum listop now parsed as normal listop
00:44 TimToady dduncan: generally such language nestings are handled via context variables, which can either be tested directly with <?$*VAR>, or used to convey a derived language inward
00:44 TimToady as with $*LANG in STD
00:45 TimToady a derived language can enforce whatever restrictions it likes, though often the result is "syntax error", whereas explicitly testing can give better error messages
01:02 eternaleye joined #perl6
01:12 km2 joined #perl6
01:18 PhatEddy std: class A{ our $.x is rw = 12 } ; say $A::.x
01:18 p6eval std 26509: OUTPUT«ok 00:05 43m␤»
01:18 PhatEddy rakudo: class A{ our $.x is rw = 12 } ; say $A::.x
01:18 p6eval rakudo 467ade: OUTPUT«Scope not found for PAST::Var '$A' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)␤»
01:19 PhatEddy I'm guessing the problem is on the rakudo side but not 100% sure ...
01:19 LylePerl joined #perl6
01:20 aindilis joined #perl6
01:29 s1n rakudo: %*ENV<TEST> := 'foo'; %*ENV<TEST>.say
01:30 p6eval rakudo 467ade: OUTPUT«rtype not set␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)␤»
01:30 s1n hmm, seems ENV is just busted
01:30 nihiliad joined #perl6
01:33 pmichaud assignment to %ENV doesn't work yet.
01:33 s1n pmichaud: there's a ticket that said binding did though
01:33 pmichaud that was probably before binding was broken.
01:33 s1n heh okay
01:34 s1n pmichaud: okay thanks, where would i find the ENV code?
01:34 pmichaud the ENV stuff is based on Parrot's Env PMC
01:35 pmichaud what rakudo will have to do is to create its own Env type, and then override postcircumfix:<{ }> for that type.
01:35 s1n there is no Env type in rakudo?
01:36 kimtaro joined #perl6
01:36 pmichaud the postcircumfix:<{ }> for Rakudo's env type will have to return proxy objects that know how to rebind the underlying Env PMC objects whenever a value is stored into them.
01:37 PhatEddy rakudo: class A{ our $x is rw = 12; my $x = 4 } ; say $A::x
01:37 p6eval rakudo 467ade: OUTPUT«12␤»
01:37 pmichaud although, I suppose it might be sufficient to define postcircumfix:<{ }> directly on Parrot's Env PMC
01:37 pmichaud but we still need the proxy values.
01:38 PhatEddy pmichaud: I wonder if that last might not talk back more ...
01:39 pmichaud PhatEddy: yes, that looks like a redeclaration error to me.
01:44 dduncan TimToady, I hear that
01:45 nbrown joined #perl6
01:47 orafu joined #perl6
01:53 hercynium joined #perl6
01:53 dalek joined #perl6
02:09 orafu joined #perl6
02:17 spx2 joined #perl6
02:33 orafu joined #perl6
02:44 simcop2387 joined #perl6
03:18 orafu joined #perl6
03:37 orafu joined #perl6
04:06 sri_kraih_ joined #perl6
04:11 pugs_svn r26510 | lwall++ | [STD] allow «...» on enums, per S12
04:14 pugs_svn r26511 | lwall++ | [S12] doc syntax for exporting subset and enum
04:14 pugs_svn r26511 | lwall++ | [S12] enum uses (...) rather than [...], since <...> is defined as ()-like
04:14 pugs_svn r26511 | lwall++ | [S03] mention temp and let as named unary ops
04:34 jhorwitz_ joined #perl6
04:37 drbean joined #perl6
04:45 japhb joined #perl6
04:59 pugs_svn r26512 | pmichaud++ | [t/spec]:  Use isa_ok instead of WHAT to test types.  (more to come)
05:01 meppl joined #perl6
05:04 pugs_svn r26513 | pmichaud++ | [t/spec]:  Use isa_ok instead of WHAT to test types.
05:15 pugs_svn r26514 | pmichaud++ | [t/spec]:  Use isa_ok instead of WHAT to test types.
05:21 pugs_svn r26515 | pmichaud++ | [t/spec]:  Use isa_ok instead of WHAT to test types.
05:24 aindilis joined #perl6
05:35 pugs_svn r26516 | pmichaud++ | [t/spec]:  Use isa_ok instead of WHAT to test types.
05:36 pugs_svn r26517 | pmichaud++ | [t/spec]:  protoobjects stringify to shortname plus parens (S12)
05:45 orafu joined #perl6
05:45 pugs_svn r26518 | pmichaud++ | [t/spec]:  protoobjects stringify to shortname plus parens
06:19 azawawi joined #perl6
06:24 moritz_ with parrot r38385 rakudo fails t/spec/S02-builtin_data_types/catch_type_cast_mismatch.t
06:24 moritz_ oh wait, I didn't update the test...
06:25 mberends joined #perl6
06:28 iblechbot joined #perl6
06:36 amoc joined #perl6
06:37 pugs_svn r26519 | pmichaud++ | [t/spec]:  More protoobject stringification updates.
06:38 arnsholt Where are the arguments to a grammar's parse method specced? I've grepped through S05, but can't see anything
06:38 moritz_ pmichaud: did you see my patch for the test suite in RT?
06:41 pmichaud moritz_: alas, didn't see it until just now.
06:42 pmichaud anyway, I think everything's all cleared up again -- spectests are passing on my box.
06:43 * moritz_ gives it another try
06:44 moritz_ pmichaud: on parrot HEAD t/spec/S02-builtin_data_types/catch_type_cast_mismatch still fails
06:44 pmichaud moritz_: did you update rakudo?
06:45 moritz_ ah no
06:45 orafu joined #perl6
06:45 moritz_ (missing dalek)--
06:48 dalek joined #perl6
06:51 pmichaud time for sleep here
06:51 pmichaud be back in a few hours
06:53 moritz_ good night
07:06 rewt joined #perl6
07:10 DemoFreak joined #perl6
07:16 masak joined #perl6
07:19 wollmers joined #perl6
07:24 dduncan left #perl6
07:38 mberends masak: top o' the mornin' to you, sir.
07:38 lambdabot mberends: You have 1 new message. '/msg lambdabot @messages' to read it.
07:38 mberends @massage
07:38 lambdabot masak said 17h 10m 33s ago: check out the new dotty progress bars when proto installs Rakudo :)
07:38 masak mberends: and a very fine one to you, good sir.
07:38 mberends dotty.................. c.o.o.l.
07:39 masak still primitive, but it's a good start.
07:39 masak and only for 'proto' so far, none for 'installer'.
07:40 payload joined #perl6
07:41 mberends ok. did a bit a reading about .deb file format etc last night. It may suit Perl 6 as a package format. Windows lacks the essential building blocks ar, tar and gzip, so those would become dependencies :(
07:42 masak maybe we can implement small versions of them in Perl 6 :)
07:43 mberends gzip might be tough. it would probably need PIR to be fast enough.
07:43 moritz_ or a dynpmc for parrot that wraps the C library
07:44 mberends moritz_: that would still be a massive dependency on Windows :(
07:44 masak package management systems are hard!
07:45 moritz_ mberends: whatever you do, you can assume that windows can't handle it out of the box
07:46 pugs_svn r26520 | azawawi++ | [S:H:P6] Bundled latest STD in 0.47
07:47 amoc joined #perl6
07:48 mberends moritz_: yes. maybe the gzip library is simple enough to call in via NCI. probably, I hope.
07:49 km2 joined #perl6
07:49 mberends are the rumours that sockets are br0k3n true?
07:50 masak mberends: seems not.
07:51 mberends phew. I have a testing plan in the back of my mind, will try later today.
07:51 masak moritz_: I was going to debug the problem with sockets this morning. but when I did bin/run-nibbler, everything worked fine.
07:51 masak mberends++
07:53 azawawi @karma
07:53 lambdabot You have a karma of 135
07:53 azawawi :)
07:53 mberends @karma
07:53 lambdabot You have a karma of 33
07:53 mberends keep hacking, then :)
07:54 moritz_ masak: so, do you know what I did wrong?
07:54 moritz_ masak: I cargo-culted it straight from HTTP::Daemon
07:56 masak moritz_: will re-try your code later today.
07:56 masak it definitely should work.
07:56 mberends moritz_: can I help you with HTTP::Daemon?
07:56 orafu joined #perl6
07:59 moritz_ mberends: see my mail to perl6-users
07:59 moritz_ mberends: I tried to create a simple test for the test suite, and failed miserably
08:00 masak :/
08:00 masak moritz_: you did use the HTTP::Daemon in Web.pm, didn't you?
08:00 masak oh, wait. you must've.
08:00 mberends oops. no email here currently. is there a URL?
08:01 masak http://www.nntp.perl.org/group/perl.perl6.users/2009/04/msg1050.html
08:02 mberends first thought is that listen() is missing.
08:02 kidd_` joined #perl6
08:03 moritz_ ooh
08:03 mberends it all depends on BSD Sockets, and the specs I used for that were perldoc perlipc (P5)
08:04 mberends not the truest source, but practical for a perl programmer.
08:05 moritz_ I'll take a closre look tonight, thank you
08:05 amoc joined #perl6
08:15 azawawi moritz_: so .HOW or ^ methods are static class methods, right?
08:15 azawawi moritz_: and good morning first :)
08:16 moritz_ azawawi: it's a method on an instance of the method class
08:16 riffraff joined #perl6
08:17 * azawawi takes a look at t/spec
08:20 wollmers Good morning.
08:25 pmurias joined #perl6
08:26 |Jedai| joined #perl6
08:33 pmurias azawawi: would it be hard to make padre run mildew on F5?
08:35 azawawi pmurias: NOP :)
08:35 azawawi pmurias: i can its support if you need
08:36 azawawi pmurias: s/can/can add/
08:36 azawawi pmurias: you can do it by making a plugin that override the F5 behavior...
08:37 azawawi pmurias: or you can fake it by renaming your mildew to perl6.exe and use Padre::Plugin::Perl6
08:39 pmurias what would i would like most is to map different F* keys to running mildew with different options
08:39 pmurias so it could show the ast...
08:40 azawawi pmurias: let me check
08:41 bacek__ joined #perl6
08:42 azawawi pmurias: i can add it now for you if mildew builds on win32...
08:43 azawawi pmurias: in Padre::Document::Perl6.pm you need to modify subroutine 'get_command'
08:43 pmurias azawawi: i haven't tried building mildew/smop on win32
08:46 pmurias azawawi: i see that place
08:46 azawawi pmurias: no problem; so you need to customize the executable to run along with its arguments in Perl6 plugin
08:49 azawawi pmurias: you're using Padre over linux right?
08:50 pmurias azawawi: yes
08:51 * azawawi starts installing a linux vm :)
08:52 azawawi pmurias: use $ENV{MILDEW_DIR} or MILDEW_HOME ?
08:55 pmurias maybe $ENV{MILDEW_EXEC}?
08:55 orafu joined #perl6
08:57 azawawi pmurias: ok
08:57 moritz_ somehow the signatures in S16 and in Rakudo don't match at all
08:58 moritz_ s/S16/S32::IO/
08:58 moritz_ for example in the spec it's Int read(Buf, Int), in Rakudo it's Str read(Int) (which seems much saner to me)
09:02 azawawi pmurias: i will add it today once i get Padre and mildew running on my linux vm here.
09:04 ejs joined #perl6
09:14 szabgab what is mildew ?
09:14 pmurias szabgab: the Perl 6 compiler for smop
09:15 szabgab ic
09:15 moritz_ how much does smop actually run?
09:15 moritz_ s/smop/mildew+smop/
09:15 szabgab IMHO the Perl6 plugin should have an option to select which is the perl6 executable (from a list)
09:17 pmurias moritz_: the refactored smop runs very little
09:17 moritz_ and the old one?
09:19 pmurias v6/mildew/t
09:21 pmurias the feature set was more concept oriented like like return implemented as control exceptions rather then having user feature like &infix:<*>
09:23 azawawi szabgab: sure in a preferences dialog or something...
09:24 * azawawi finished installing a kubuntu vm...
09:24 moritz_ pmurias: right, it looks rather impressive, but as you said, not very user-oriented
09:35 lambdabot joined #perl6
09:38 aindilis joined #perl6
09:44 jnthn morning
09:45 azawawi good afternoon :)
09:52 payload joined #perl6
10:01 azawawi left #perl6
10:03 azawawi joined #perl6
10:04 azawawi pmurias: ping
10:04 jnthn std: constant $answer is export = 42;
10:04 p6eval std 26520: OUTPUT«ok 00:02 36m␤»
10:05 jnthn std: constant answer is export = 42;
10:05 p6eval std 26520: OUTPUT«ok 00:02 35m␤»
10:06 pasteling "azawawi" at 212.38.130.254 pasted "mildew failure on kubuntu" (34 lines, 2.6K) at http://sial.org/pbot/36250
10:07 azawawi pmurias: i could not get mildew to compile on kubuntu...
10:07 pancake joined #perl6
10:20 OuLouFu joined #perl6
10:26 synthetic56565 joined #perl6
10:29 synthetic56565 left #perl6
10:29 synthetic56565 joined #perl6
10:30 pancake is $fh.readline deprecated or it is just not yetd implemented in rakudo?
10:30 jnthn deprecated; use .get
10:32 synthetic56565 rakudo: say 5+5;
10:32 p6eval rakudo 931d23: OUTPUT«10␤»
10:33 masak rakudo: say [*] 1..10
10:33 lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
10:33 p6eval rakudo 931d23: OUTPUT«3628800␤»
10:33 masak @massage
10:33 lambdabot frettled said 1d 11h 48m 42s ago: (expt masak 2) for that blog post
10:33 masak @clear
10:33 lambdabot Messages cleared.
10:34 masak frettled: I didn't ask the last time around -- is that a Lisp sexpr?
10:39 synthetic56565 rakudo: say 1..9.map:{ rand }.sort;
10:39 p6eval rakudo 931d23: OUTPUT«Statement not terminated properly at line 1, near ":{ rand }."␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
10:41 masak rakudo: (1..9).map({rand()}).sort.perl.say
10:41 p6eval rakudo 931d23: OUTPUT«[0.0160124356198175, 0.12060063819807, 0.308289916295585, 0.427930465290906, 0.458597140425024, 0.467302533926233, 0.493214739157647, 0.630845762879716, 0.973159495965238]␤»
10:42 synthetic56565 thanks ;)
10:42 masak np.
10:42 synthetic56565 why doesn't the : syntax work?
10:42 masak synthetic56565: there's an RT ticket about it.
10:42 masak something to do with parsing, I think.
10:42 synthetic56565 ah, k
10:42 masak (or was that just for @array.sort:{...} ? hm, don't remember.)
10:45 pancake rakudo: say (open "/etc/issue",:r).get
10:45 p6eval rakudo 931d23: OUTPUT«Debian GNU/Linux 5.0 \n \l␤»
10:45 frodwith_ joined #perl6
10:45 pancake uhm, that can be dangerous O:)
10:46 masak pancake: feel free to write a sandbox environment for Rakudo before someone does something destructive with p6eval.
10:47 pancake i hope nobody does, i just wanted to ensure if it was possible/secure
10:48 pancake i have some perl scripts to prepare minimal chroot environments
10:48 pancake but we should probably run this in a virtual machine to have better control on the network
10:54 masak rakudo: sub by($s, $f is copy, $t) { gather while $f<=$t { take 0+$f; $f += $s } }; "Jpuesrtl  a6n ohtahcekre r".split("")[by(2,0,24),by(2,1,25)].join.say
10:54 p6eval rakudo 931d23: OUTPUT«Just another perl 6 hacker␤»
10:56 pmurias azawawi: pong
10:56 pmurias azawawi: run make in perl6-snapshot
10:58 pmurias also mildew is going to be replaced by re-mildew (the refactored version) soon
10:58 wollmers std: my $a'a = "foo";
10:59 p6eval std 26520: OUTPUT«ok 00:04 36m␤»
11:05 masak std: my $a'_'a = "foo";
11:05 p6eval std 26520: OUTPUT«ok 00:04 36m␤»
11:06 wollmers std: my $a-_-a = "foo";
11:06 p6eval std 26520: OUTPUT«ok 00:04 36m␤»
11:06 moritz_ rakudo: my $a'_'a = "foo"; say $a'_'a;
11:06 p6eval rakudo 931d23: OUTPUT«foo␤»
11:07 jnthn eww.
11:07 masak rakudo: my $_-_'-_ = 5; say $_-_'_-_
11:07 p6eval rakudo 931d23: OUTPUT«Statement not terminated properly at line 1, near "'-_ = 5; s"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
11:07 jnthn phew.
11:07 masak oops.
11:08 masak rakudo: my $_-_'_-_ = 5; say $_-_'_-_
11:08 p6eval rakudo 931d23: OUTPUT«5␤»
11:08 jnthn eww.
11:08 masak :)
11:08 masak and people worry about Perl 6 being too readable.
11:08 wollmers rakudo: my $a'a = "bar";
11:08 p6eval rakudo 931d23:  ( no output )
11:09 wollmers hmm, need a newer version of rakudo - $a'a fails here
11:10 jnthn rakudo: ::_'_ := Int
11:11 p6eval rakudo 931d23:  ( no output )
11:11 wollmers masak: readability does not depend on language - most is naming
11:11 jnthn rakudo: ::_'_ := Int; my _'_ $x = 42; say $x; $x = "hi"; say $x;
11:11 masak wollmers: I know. I wasn't 100% serious.
11:11 p6eval rakudo 931d23: OUTPUT«42␤Type mismatch in assignment.␤current instr.: 'die' pc 17540 (src/builtins/control.pir:225)␤»
11:11 jnthn omfg.
11:11 * jnthn hopes people do not use this too much...
11:11 jnthn otoh it'll be great for obsfucation.
11:12 moritz_ indeed
11:12 masak jnthn: that 'type mismatch' error... couldn't it be extended to says which two types mismatched?
11:12 * moritz_ should blog about it
11:12 masak s/says/say/
11:12 moritz_ that would be *really* great
11:13 masak feels like Rakudo must've just figgered out that there were two types not matching, so it should have them handy anyway in some form.
11:13 jnthn masak: It probably can.
11:13 jnthn masak: Should be easy-ish.
11:14 masak jnthn: do you want an RT ticket about it?
11:14 arnsholt Is there something that could stop action methods in grammars from being run?
11:15 masak arnsholt: not including the {*} in the rule? :)
11:15 moritz_ arnsholt: when you forget the {*} it won't run
11:15 moritz_ :-)
11:15 arnsholt Yeah. Not that simple though =)
11:15 masak arnsholt: also, not attaching an action class to it.
11:15 moritz_ also if the {*} is in a branch that didn't match
11:15 masak arnsholt: alternatively, not calling the grammar at all :)
11:15 masak there are many possibilities.
11:16 jnthn masak: It should be easy enough...let me get the current stuff I'm doing on constant done and then I'll take a look.
11:16 arnsholt I get a successful match, and actions at the lower levels run (I know this because calling say gives output there), but the two top rules just don't happen
11:16 moritz_ arnsholt: nopaste it?
11:16 masak jnthn: oki. jnthn++
11:20 pasteling "arnsholt" at 129.240.72.206 pasted "Action weirdness" (58 lines, 1.9K) at http://sial.org/pbot/36251
11:20 pugs_svn r26521 | pmurias++ | [re-mildew]
11:20 pugs_svn r26521 | pmurias++ | say works (with inlined return)
11:20 pugs_svn r26521 | pmurias++ | the default CONTROL block get an $_
11:20 pugs_svn r26521 | pmurias++ | [re-smop] added .FETCH,.STORE to capture, fixed capture.elems
11:20 dalek joined #perl6
11:21 arnsholt There. Some of the stuff isn't intended to work, but I can't see why it doesn't say "TOP" and "query", when it does say all the other stuff
11:21 xinming joined #perl6
11:21 diakopter joined #perl6
11:21 ejs joined #perl6
11:21 |Jedai| joined #perl6
11:21 amoc joined #perl6
11:21 wollmers joined #perl6
11:21 japhb joined #perl6
11:21 spx2 joined #perl6
11:21 kimtaro joined #perl6
11:21 eternaleye joined #perl6
11:21 lisppaste3 joined #perl6
11:21 broquaint joined #perl6
11:21 SamB joined #perl6
11:21 m-i-l-a-n joined #perl6
11:21 samlh joined #perl6
11:21 lumi joined #perl6
11:21 cls_bsd joined #perl6
11:21 kidd_ joined #perl6
11:21 s1n joined #perl6
11:21 hcchien joined #perl6
11:21 scook0 joined #perl6
11:21 c9s joined #perl6
11:21 phenny joined #perl6
11:21 ascent_ joined #perl6
11:21 estrabd joined #perl6
11:21 gfldex joined #perl6
11:21 rhr joined #perl6
11:21 frettled joined #perl6
11:21 Woody2143 joined #perl6
11:22 wollmers std: my $9 = 42;
11:22 p6eval std 26520: OUTPUT«ok 00:02 36m␤»
11:22 wollmers std: my $a9'9 = 42;
11:22 p6eval std 26520: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/oUkjZx3J8K line 1:␤------> [32mmy $a9[31m'9 = 42;[0m␤    expecting any of:␤   POST␤   infix or meta-infix␤        infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       shape definition␤ standard
11:22 p6eval ..stopper␤       statement modifi...
11:22 wollmers std: my $a9'9a = 42;
11:22 p6eval std 26520: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/O7Py8MOp3B line 1:␤------> [32mmy $a9[31m'9a = 42;[0m␤    expecting any of:␤  POST␤   infix or meta-infix␤        infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       shape definition␤ standard
11:22 p6eval ..stopper␤       statement modif...
11:22 wollmers std: my $a9-9a = 42;
11:23 p6eval std 26520: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/170gc2dvsq line 1:␤------> [32mmy $a9-9[31ma = 42;[0m␤    expecting any of:␤  POST␤   infix or meta-infix␤        infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       standard stopper␤
11:23 p6eval ..statement modifier loop␤  terminat...
11:23 * moritz_ didn't know that you can nest classes inside grammars
11:23 jnthn moritz_: I think that should work.
11:23 jnthn Or should be possible.
11:23 masak it's just namespaces.
11:23 jnthn The only things you can't nest things inside are roles.
11:23 arnsholt moritz_: Well, in that case, why are some of the methods being called, but not others?
11:24 cognominal joined #perl6
11:24 masak arnsholt: does the whole SQL.parse call match?
11:25 wayland76 joined #perl6
11:25 moritz_ it does not, and that's the problem
11:25 arnsholt Oh, right. Stupid strikes again >.<
11:26 moritz_ because there's no final ;
11:26 arnsholt Yeah, so I noticed
11:27 arnsholt There we go. Thanks for the help
11:27 wayland76 Well, if the actions are working, then we can call moritz_.....
11:27 wayland76 (please don't hit me for saying "Action man" :) )
11:28 masak I like the name.
11:28 wayland76 But not the joke? :)
11:28 masak wayland76: oh, was it a joke? :P
11:29 baest arnsholt: cool with a SQL grammar, I was doing one myself but got distracted by other stuff. Are you putting it somewhere public?
11:30 wayland76 I bet we end up with a namespace on 6PAN called "Grammar::...."
11:30 baest wayland76: that would be nice :)
11:30 arnsholt baest: I will, eventually. Assuming I get fer enough for it to be reasonably useful
11:30 masak someone better write 6PAN first.
11:30 wayland76 Then again, maybe not.  Maybe they should be under XML::Grammar, SQL::Grammar, etc
11:30 arnsholt Indeed. 6PAN is a cool name though. I like it
11:30 masak arnsholt: release early and often.
11:30 masak arnsholt: I like DPAN better. :)
11:31 moritz_ arnsholt: I just add a 'or die "no match"' after the .parse, that ususally helps
11:31 wayland76 well, I'm going to rough up the outlines of a software packaging system sometime
11:31 wayland76 Why DPAN?
11:31 wayland76 Dead Parrot Archive Network?
11:31 arnsholt masak: That reminds me of what Jaguar did after they made the C-type (for competition type). What would be more natural than the D-type? =p
11:31 wayland76 (excuse Monty Python reference)
11:32 masak wayland76: I guess that could be one of its expansions.
11:32 arnsholt But for grammars, I think I'd prefer Grammar::*, rather than *::Grammar. Although one could make an argument for both. Maybe, if we're lucky, we'll get an unholy mix of both =)
11:33 wayland76 Well, at least with the Dead Parrot/Monty Python reference, we might be able to build support for Python on Parrot :)
11:33 baest arnsholt: well, if you do, maybe somebody will help you (if you want that). I will be needing a SQL grammar at somepoint and will rather not start from scratch
11:34 arnsholt baest: I'll probably put it on github when I get that far
11:34 wayland76 arnsholt: I think we'll end up with *::Grammar, because people looking for an XML Grammar will be more likely to want to do other XML stuff than other Grammar stuff
11:34 arnsholt wayland76: Good point that
11:34 wayland76 afk 5-10 minutes.  Will backlog
11:35 baest arnsholt: ok, cool. Which db are you doing it for?
11:35 * baest looks forward to just subclassing a grammar for making it specific for some db
11:37 arnsholt baest: While listening to masak's talk at NPW it struck me that Perl 6 will need a DBI. So I figured I could start on that
11:37 arnsholt So I'm doing this so that I have some kind of "DB" to test with
11:37 baest it is possible to do grammar roles? I guess it should. That will be very cool for defining certain stuff like type parsing og commments or whatever
11:38 arnsholt I'll probably pilfer code and design liberally from DBI at CPAN, and DBDI from parrot
11:38 ascent_ btw, how is work on 6PAN?
11:38 jnthn baest: You can put rule/regex/token in a role and then compose them into a grammar, sure. That should already work.
11:39 baest arnsholt: oh, I was thinking the same thing. I wuold very much like some compile time checking of sql in p6, kinda like linq should do, but without the weird order of things
11:39 moritz_ arnsholt: http://www.nntp.perl.org/group/perl.perl6.language/2005/07/msg22054.html
11:39 baest jnthn: very nice. Wouldn't that be more obvious than subclassing PCT::Grammar?
11:40 arnsholt moritz_: Oooh. Thanks
11:40 jnthn baest: You think PCT::Grammar could become a role instead? Not sure...
11:41 moritz_ arnsholt: that's a bit old, but likely still interesting... somebody wrote a *very* basic DBI think for rakudo with mysql and pg backends... forget where...
11:41 jnthn I think it was posted on PerlBuzz
11:42 jnthn IIRC it was Simon Cozens that wrote it.
11:42 moritz_ http://perlbuzz.com/2008/12/database-access-in-perl-6-is-coming-along-nicely.html
11:42 wayland76 Quick question.  DBI (v1) takes a database engine as a parameter, and then uses that in an eval to create a driver class
11:43 wayland76 Is there a better way to achieve that in Perl 6?
11:43 moritz_ eval? string eval?
11:43 moritz_ well
11:43 wayland76 IIRC.  I haven't looked at DBI for a while
11:44 moritz_ you can of course pass in a reference to a proto object
11:44 baest jnthn: yes something like that. Well it works so no reason to rewrite. But I don't see any reason for having to subclass (maybe I'm not looking enough :) ) and it could be nice to rewrite names and picking the methods you wan't in your own grammar
11:44 moritz_ but that requires that you 'use' the DBD-class yourself first
11:45 wayland76 Yes.  I'm looking for something that's as simple for the interface user as the DBI setup
11:45 baest whoops, maybe it was thinking about delegating in that last comment. Hmmm
11:45 wayland76 But I've always felt that there should be a way to do the interface/implementation split where you could pass your desired implementation in as a parameter, without having to do an eval, etc
11:47 jnthn baest: Part of it is probably just that at the time this was all done, roles weren't an option (unimpl)
11:48 jnthn I'm not sure if it wins us a huge amount over subclassing.
11:49 baest jnthn: no, I think I was mixing roles and delegating in my head
11:49 jnthn baest: Ah.
11:49 ruoso joined #perl6
11:50 ruoso Hello!
11:51 wayland76 I notice that S17 still languishes.  Is this because the P6 community lacks experience with threads?  If so, should we be trying to find some Perl Threads people to help us?
11:52 moritz_ wayland76: I don't know if that's a very good idea, given the state of Perl 5 threads :-)
11:52 wayland76 Well, I see your point.  How about if we make that "carefully guided Perl Threads people"?
11:54 wayland76 (Well, maybe I don't see your point, but I know from hearsay that P5 threads changed from one model to the other, and some people are unhappy with both models)
11:55 pmurias ruoso: hi
11:55 wayland76 Anyway, assuming the answer was that we lacked the relevant expertise, my next question was going to be, does anyone know where we would find people like that?
11:55 ruoso hi pmurias
11:56 moritz_ wayland76: my point is that we don't have working and robust implementations anywhere in Perl 5 land
11:56 ruoso wayland76, Perl 6 is probably having a implicit threading model instead of a explicit threading model
11:56 wayland76 Do the Parrot people have or need threads?  What about the POE and AnyEvent people?  Those sorts of things
11:56 moritz_ the java people did a good job with threads
11:56 moritz_ wayland76: parrot has threads, but I don't know how good they are
11:56 ruoso moritz_, not in terms of syntax ;)
11:56 moritz_ POE and AnyEvent are asynchronous, not threaded
11:56 moritz_ ruoso: right.
11:57 ruoso wayland76, there is certainly going to be a event engine at the core of the Perl 6 interpreters
11:57 wayland76 EventEngine++ :)
11:57 ruoso and I tend to think that the threading will occour implicitly from the event engine
11:57 moritz_ yes, that's Larry's master plan
11:57 pmurias ruoso: return doesn't work properly
11:57 ruoso i.e.: you define how many working threads you want...
11:57 jnthn std: constant Num baz = 42;
11:57 p6eval std 26521: OUTPUT«ok 00:02 35m␤»
11:58 ruoso pmurias, what's the problem?
11:58 wayland76 I've skimmed over that white paper that describes threads on top of events
11:58 wayland76 But I still don't feel that I have any working expertise in threads
11:58 ruoso the erlang people has a good design
11:58 ruoso so does the IO language
11:59 wayland76 And I thought maybe we could find someone with the relevant experience, point them at that paper, and redirect the output into S17 :)
11:59 pmurias return seems to be a noop
11:59 pmurias when i extracted it's content it worked
12:02 pmurias ruoso: i'm removing capturize maybe it was the root of the problem
12:03 xinming_ joined #perl6
12:03 wayland76 Some guy came through on the 18th, complaining about threads in both P5 and P6.  I asked him who he thought did threads well, and he said "C++ with POSIX threads, python"
12:04 moritz_ I've heard that jruby does a decent job
12:04 ruoso pmurias, can it be made to work without capturize?
12:05 ruoso wayland76, moritz_, both C++ and python use explicit threading... I'm not sure that's what we're going to see in Perl 6
12:05 wayland76 But I have no experience with threads, other than some minor project at Uni over 10 years ago; I wish I could work on S17, but I think it would take me months just to get some sensible experience
12:05 wayland76 ruoso: Fine by me, although the guy the other day wasn't happy without it :)
12:05 pmurias ruoso: we have capture.new now
12:05 moritz_ ruoso: I'm more concerned about that backend for now...
12:06 ruoso pmurias, ah... ok...
12:06 ruoso moritz_, the problem with p5 was the excessive use of globals and magic variables
12:06 ruoso that was what made p5 threading a nightmare
12:06 wayland76 But I guess I don't mind about threads so much -- what I really want is a finite state machine and event-based programming.  Combined with grammars, protocols will almost write themselves :)
12:07 ruoso wayland76, the idea of using implicit threading is that you can write event-based programming as if you were programming a regular transactional flow...
12:08 ruoso but instead of blocking the whole program,
12:08 ruoso it just blocks that continuation
12:08 ruoso and other continuations can take place
12:08 moritz_ ruoso: that's not the only problem... for example it's nearly impossible to share something other than a scalar
12:08 wayland76 sounds good to me :)
12:09 ruoso moritz_, that's because you need to have the share-nothing model
12:10 ruoso and the share-nothing model is only required because of the excessive use of globals and interpreter-wide variables
12:10 ruoso which, thankfully, were sanitized in P6
12:11 jnthn rakudo: sub foo { 42 }; my $x = foo == 42; say $x;
12:11 p6eval rakudo 095f9b: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 22295 (src/builtins/misc.pir:17)␤»
12:11 moritz_ ruoso: so what share model will Perl 6 use?
12:12 * jnthn wonders how on earth we end up parsing prefix:= instead of infix:= there.
12:12 ruoso moritz_, for starts, everything is lexically bound...
12:12 ruoso then you have GLOBAL:: and PROCESS::
12:12 ruoso and that's all
12:12 ruoso much simpler
12:12 moritz_ jnthn: you can simply remove prefix:= :-)
12:13 moritz_ so in my $x; async { 1 }; asnyc {2 }; will $x be shared between the async blocks?
12:14 sri_kraih joined #perl6
12:14 jnthn rakudo: sub foo { 42 }; my $x = (foo == 42); say $x;
12:14 ruoso moritz_, yes
12:14 p6eval rakudo 095f9b: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 22295 (src/builtins/misc.pir:17)␤»
12:14 moritz_ ruoso: so we have 'share everything' and try to keep the 'everything' small
12:14 jnthn rakudo: sub foo { 42 }; my $x = (42 == foo); say $x;
12:14 p6eval rakudo 095f9b: OUTPUT«1␤»
12:15 jnthn ...ok srsly wtf
12:15 ruoso jnthn, that's probably being treated as list assignment
12:15 jnthn Oh!
12:15 ruoso moritz_, basically, that's it...
12:15 jnthn Yes, that'd explain it. Rakudo doesn't do item assignment parsing properly yet...
12:16 ruoso jnthn, but a lot of things that doesn't have a list in the rvalue should be parsed as list assignment
12:16 ruoso basically, TimToady said that list assignment is actually "i don't know which context"-assignment
12:16 orafu joined #perl6
12:17 wayland76 So, back to my original question, am I right in guessing that we have people with the appropriate experience, and we just have to wait for them to get around to it?
12:19 ruoso wayland76, I think none of the implementors got to that issue yet...
12:19 ruoso that's why it's mostly not spec yet
12:20 ascent_ I think S17 should be discussed as whole... Maybe post discussion about that on perl.poe? Model described at S17 is rather AnyEvent model than POE, but AnyEvent is only one person.
12:20 wayland76 Ok.  Well, I won't go around encouraging random threading types to work on S17 then :)
12:21 ruoso ascent_, S17 is a very early draft at this moment
12:21 wayland76 The first thing we need is someone with a clue to go through and make it vaguely coherent, in line with the few decrees that have come down from above
12:22 wayland76 My problem is that I don't have a clue.  So I gave it about as much as I felt competent for, and then stopped.  That means that I added a little about events and IPC, and then left it
12:23 ascent_ I write some POE apps and looked at AnyEvent model. AnyEvent is good for small apps really... If you got something more complicated it's very hard to use it.
12:23 ruoso ascent_, AnyEvent in S17 is more like an engine than a programming model
12:24 ruoso as I said above, the idea is not to have explicit event-based programming, but implicit
12:25 wayland76 The thing I liked about AnyEvent was that it supported non-POE event loops.  But when I actually wanted to write something, I went with POE, because I wanted a FSM :)
12:25 ruoso ok... let me expose my view of things...
12:25 ruoso basically, both events and threading are going to be implicit in the language...
12:26 ruoso which means that, in terms of programming, you're going to write a regular transactional algorithm
12:26 BinGOs "non-POE event loops" ?
12:27 ruoso BinGOs, using other event engines
12:27 ruoso like... EV
12:27 wayland76 BinGOs: Ie. the GTK event loop, or someone else's
12:27 BinGOs Yes, like POE can.
12:28 mberends joined #perl6
12:29 ruoso BinGOs, but as I said, none of the implementors got there yet... so every ideas are yet on the table...
12:30 BinGOs I have no idea what you are talking about, I just spotted 'POE'
12:30 ruoso BinGOs, heh... well... we're discussing concurrency model of Perl 6
12:31 ruoso and one thing that is already given, is that we're going to have an event loop in the core of Perl 6
12:31 ruoso (as if POE got merged inside p5 interpreter)
12:32 BinGOs As a complete lay-person here, it would make sense not to tie yourself to a specific event loop.
12:32 literal POE is a lot more than an event loop... :P
12:33 ruoso BinGOs, that was why AnyEvent came to table
12:33 pmurias ruoso: how was the subroutine return a capture problem solved?
12:33 literal ruoso: POE itself isn't even tied to one
12:34 BinGOs POE does the same, we abstract in POE::Loop, so you can plug any event loop in.
12:34 ruoso literal, that's why we^WI usually see POE as a reference model... but in a more generic sense...
12:34 ruoso pmurias, it returns a capture... and capture does both .[] and .{}
12:34 ruoso pmurias, but a capture with only one argument, named or positional, return it in item context
12:34 BinGOs I have no problems with AnyEvent
12:35 BinGOs apart from the attitude of the author.
12:35 wayland_ joined #perl6
12:35 ruoso BinGOs, literal, basically... I see something like AnyEvent + Worker Threads in the core
12:35 pmurias ruoso: item context = FETCH here?
12:35 kimtaro_ joined #perl6
12:35 ruoso pmurias, yes
12:36 BinGOs That'll work if you have a decent thread model
12:36 abra joined #perl6
12:37 wayland_ I understand the plan is to follow the PDF that says to build threads on top of events, rather than the other way around
12:37 ruoso BinGOs, that's why we're talking about implicit threading in the language, rather than explicit
12:37 pugs_svn r26522 | pmurias++ | [re-smop] removed capturize, fixed return and ritest
12:37 BinGOs you are going to be at mercy of the underlying OS' threads support as well.
12:38 ruoso BinGOs, of course, yes...
12:38 wayland_ BinGOs: I didn't know about the Gtk/POE linkup.  Thanks!
12:38 BinGOs wayland_: there is a Glib loop as well.
12:39 literal yeah, that's what you'd use for Gtk2
12:39 iblechbot joined #perl6
12:39 BinGOs Or if you want to run POE in irssi.
12:39 mberends wayland76: I suggested the DPAN name to pmichaud during the Oslo hackaton, as meaning Distributed or Decentralised, seeing the peer nature of the many repositories, and being the letter after C. pmichaud replied that he would look into registering some suitable domains, so it may go that way. The tough part is supporting 'use ABC:ver<1.2.3>:auth<jbloggs>;' on all file systems.
12:40 wayland_ Stop it!  My Netbook doesn't cope with drool on the eyboard
12:40 wayland_ s/eyboard/keyboard
12:40 wayland_ the drool must've landed on the K :)
12:41 wayland76 Anyway, my server that crashes when it gets cold has revived, so I can go back to not using my netbook :)
12:41 ruoso but basically... in my view...  we're going to have a ControlExceptionWouldThread that's going to put this continuation in a pool of waiting threads, while also scheduling an event of some sort...
12:41 ruoso s/ControlExceptionWouldThread/ControlExceptionWouldBlock/
12:41 pmurias ruoso: say "hello world" now works in re-mildew
12:42 ruoso cool
12:42 ruoso pmurias, I think the last step on the refactoring would then port the missing tests to re-smop
12:42 wayland76 Anyway, I'll stop talking about threads -- don't want to waste the developers' time :)
12:42 nihiliad joined #perl6
12:43 fridim_ joined #perl6
12:44 pmurias ruoso: s/missing/failing/ ?
12:44 wayland76 I can't stay up late this week; my parents arrive home 5:30am on Thursday, and I have to get them at the airport
12:44 ruoso pmurias, missing from being ported from smop to re-smop
12:44 wayland76 night all o/
12:45 pmurias ruoso: the ones left in smop/test aren't of much value
12:46 ruoso pmurias, ah... ok then...
12:48 pugs_svn r26523 | jnthn++ | [t/spec] Fudge constant.t for Rakudo; in a couple of places tweak the way we get at sigil-less constants to avoid a Rakudo parse bug, but leave it in place in other tests so we don't miss that there's a problem.
12:48 abra joined #perl6
12:50 ruoso pmurias, ok... last thing of the refactoring now... let's get the smop tests passing without leaks and the mildew tests passing as well..
12:50 ruoso then we close it, and merge it back...
12:51 pmurias merge being rm'ing the old one and renaming re-smop to smop ;)
12:52 ruoso pmurias, well.. basically yes... but let's just make sure it doesn't screw svn metrics (i.e. ohloh)
12:53 pugs_svn r26524 | pmurias++ | [re-smop] an 1 element capture returns that element in item context
12:53 ruoso oh... we're still missing p6opaque and friends
12:54 pmurias food&
13:01 wollmers joined #perl6
13:02 Matt-W Hello!
13:03 mberends Matt-W: Hello!
13:05 * Matt-W is back from holiday, with code!
13:05 mberends \o/         # working code?
13:06 Matt-W yes
13:06 Matt-W should be anyway
13:06 Matt-W just pushed it
13:06 Matt-W you can actually call Form::form() with certain subsets of parameters and it Works
13:07 Matt-W although my local copy is currently broken pending me figuring out what went wrong with trying to implement verbatim fields
13:09 eric256 joined #perl6
13:09 BinGOs ruoso: also read the docs for AnyEvent::Impl::POE sometime for unsubstantiated twaddle.
13:10 mberends Matt-W: ./proto test form splutters: Malformed routine definition at line 26, near "fit-in-wid" :(
13:10 Matt-W bum
13:10 Matt-W it worked before :'(
13:10 Matt-W possibly of course a rakudo update broke it while I was offline
13:12 awarefish joined #perl6
13:12 * Matt-W updates rakudo
13:12 * mberends updates rakudo too
13:14 mberends afk & # @life()
13:19 ispy_ joined #perl6
13:23 skids_ joined #perl6
13:26 ejs1 joined #perl6
13:27 azawawi left #perl6
13:28 alanhaggai joined #perl6
13:34 TimToady rakudo: sub foo { 42 }; my $x = foo() == 42; say $x;
13:34 lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
13:34 p6eval rakudo 095f9b: OUTPUT«1␤»
13:34 TimToady jnthn: the problem has nothing to do with list/item assignment
13:34 TimToady only with foo being parsed as a listop, so expecting a term at ==
13:35 jnthn TimToady: Yeah, I realized that bit after lunch...
13:35 pugs_svn r26525 | pmurias++ | [re-smop] fix memory leak
13:35 jnthn TimToady: How should Rakudo be parsing it?
13:35 masak Matt-W: welcome back! I will now pore over your new code for a while.
13:36 TimToady well, it would parse like std does if you remove prefix:<=>, I expect
13:36 Matt-W rakudo: class A {}; my $a = A.new; say A.WHAT;
13:36 p6eval rakudo 095f9b: OUTPUT«A()␤»
13:36 Matt-W what's with the ()?
13:36 TimToady protoobjects are supposed to stringify with parens
13:36 TimToady been specced for some time now
13:36 Matt-W rakudo: class A {}; my $a = A.new; say $a.WHAT;
13:36 p6eval rakudo 095f9b: OUTPUT«A()␤»
13:37 Matt-W that's actually the example I was supposed to write :)
13:37 skids_ @tell wayland76 RE:S17 I did start doing stuff on it catch me later for a URL, but decided the best thing for S17 is to wait for feeds and hypers to be implemented, and see what issues crop up on the inside of those.
13:37 lambdabot Consider it noted.
13:37 Matt-W As I understand it, $a there is not a protoobject
13:37 TimToady no, but .WHAT returns the protoobject
13:38 Matt-W ah
13:38 Matt-W so actually I'm doing something wrong here
13:38 Matt-W excellent
13:38 masak rakudo: class A {}; my $a = A.new; say $a
13:38 p6eval rakudo 095f9b: OUTPUT«A()<0xb66a63b0>␤»
13:38 skids_ @tell wayland76 you can get my work in progress URL from backlogs or catch me later for it.
13:38 lambdabot Consider it noted.
13:38 ruoso Matt-W, remember... .WHAT is not supposed to be used to do type identity (that is usually what people expect)
13:38 skids_ @tell wayland76 at least I managed to kick coroutines out to S07 :-)
13:38 lambdabot Consider it noted.
13:39 Matt-W ruoso: yeah bit of a stupid thing to try. Now I need to make it work the proper way
13:39 Matt-W woohoo
13:40 pugs_svn r26526 | pmurias++ | [re-smop] native booleans are installed in the lexical prelude as False and True
13:41 Matt-W form passes all tests again
13:41 pmurias ruoso: .shift'ing an capture is an error?
13:41 skids_ Captures are immutable
13:41 ruoso pmurias, yes... capture is immutable
13:44 pugs_svn r26527 | pmurias++ | [re-mildew] fixed test as captures are immutable
13:46 TimToady @messages
13:46 lambdabot perlmonkey said 2d 20h 29m 5s ago: got a chemistry question for you larry
13:46 ruoso pmurias, I think we need to get the defaultblocksignature ported...
13:46 TimToady @clear
13:46 lambdabot Messages cleared.
13:46 TimToady (again)
13:47 pugs_svn r26528 | pmurias++ | [re-smop] added Package to lexical Prelude
13:47 TimToady it's getting close to time to scrap lambdabot and write our own in p6
13:47 pugs_svn r26529 | pmurias++ | [re-mildew] removed excess \n from test
13:47 pmurias ruoso: what for?
13:47 ruoso pmurias, there's one test failing for missing it
13:48 pmurias fixing...
13:48 sbp phenny: tell TimToday that phenny has a messaging service that you don't have to @clear all the time after messages are delivered. good luck getting rid of the @tell reflex amongst #perl6 users though
13:48 phenny sbp: I'll pass that on when TimToday is around.
13:48 sbp also you need to be able to spell correctly
13:49 skids_ heh.
13:50 sbp and I'm vaguely planning on trying to write a perl6 version with Tene
13:50 masak phenny: pleased to meet you. I will use you for @telling next time.
13:50 masak sbp: ah, that's what you'd like the POE clone for. :)
13:51 sbp yeah, heh
13:51 sbp to be quite honest, doing it at the socket level wouldn't be so bad
13:51 sbp irc is not rocket science
13:52 masak .oO( socket science )
13:52 sbp ehheh
13:52 orafu joined #perl6
13:52 TimToady .oO(a phenny for your thoughts...)
13:53 frettled heh
13:57 * skids_ wonders what the "big file of messages to mispelled usernames" in long running bots looks like.
13:58 ejs2 joined #perl6
13:58 literal maybe it gets pruned after a certain time....
13:58 skids_ maybe...
13:59 skids_ but considering inebriation is a leading cause of typos, it might actually be amusing.
13:59 masak phenny: tell TomToody *hic*!
13:59 phenny masak: I'll pass that on when TomToody is around.
14:01 pugs_svn r26530 | szabgab++ | update some of the smartlinks
14:02 sbp on IRC, nobody knows whether you're drunk or just correcting someone's Latin
14:04 pugs_svn r26531 | jnthn++ | [t/spec] Couple of unfudges.
14:06 km2 joined #perl6
14:09 skids_ what's a good rakudo-centric parrot speed test?
14:11 masak skids_: that's a very general question.
14:11 masak skids_: what do you want to test the speed of? tight loops, file I/O, arith...?
14:11 skids_ Well, I want a general test :-)
14:12 masak rakudo: my $t1 = time; sleep(3); my $t2 = time; say $2 - $1
14:12 p6eval rakudo ae5e29: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤0␤»
14:12 masak oops "_
14:12 skids_ I see a reference to a "rakudo building" test in Parrot svn logs...
14:12 masak rakudo: my $t1 = time; sleep(3); my $t2 = time; say $t2 - $t1
14:12 p6eval rakudo ae5e29: OUTPUT«3.00701594352722␤»
14:13 jnthn skids_: That's just "how long does it take to build Rakudo".
14:13 jnthn skids_: Or maybe better is "how long does it take to compile actions.pm"
14:14 skids_ Thanks.  That might do.  Can't use t/ because it's mostly perl5 wrapping and scripting taking time.
14:15 pugs_svn r26532 | pmurias++ | [re-smop] log10(0) when stringifing 0 isn't a very good idea
14:16 pmurias joined #perl6
14:16 pmurias re defaultsignature it's just a matter of changing the signature mildew emits for that block
14:17 ruoso pmurias, but I mean... isn't it better to have a lower-level implementation of that instead of initializing the same signature over and over again?
14:19 pmichaud in addition to "how long to compile actions.pm" we now have "how long to comple gen_setting.pir"
14:19 lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
14:19 pmichaud @messages
14:19 lambdabot masak asked 2d 4h 37m 22s ago: no http://www.pmichaud.com/perl6/rakudo-2009-04.tar.this month?
14:19 pmichaud (already answered.)
14:19 pmichaud good morning, #perl6
14:20 jnthn morning pm
14:24 pmurias ruoso: i try to avoid C+m0ld RIs but writing signatures as mildew AST is also annoying
14:24 masak pmichaud: @clear
14:24 ruoso pmurias, I think we don't need to avoid C+m0ld
14:24 masak pmichaud: (oh, and good morning)
14:25 ruoso pmurias, soon enough it will be easier to write in Perl 6 than in m0ld
14:25 ruoso pmurias, and initializing the same signature over and over is probably a bad idea
14:27 pmichaud @clear
14:27 lambdabot Messages cleared.
14:27 pmichaud masak++
14:27 pmichaud 13:47 <TimToady> it's getting close to time to scrap lambdabot and write our own in p6
14:27 pmichaud yes, please.
14:29 masak anyone contemplating that would be well advised to start by talking to Tene, who is writing a POE clone in Perl 6.
14:36 payload joined #perl6
14:38 literal oooh
14:39 literal has he put any code online?
14:40 masak I don't believe so.
14:40 masak but poke him when he wakes up, and maybe he will.
14:41 masak rakudo: grammar A { regex TOP { foo } }; A.parse("foo").say; say "bar"; A.parse("foo").print; say "bar"
14:41 p6eval rakudo ae5e29: OUTPUT«foo␤bar␤bar␤»
14:41 * masak submits rakudobug
14:42 pugs_svn r26533 | jnthn++ | [t/spec] Re-fudge some things Rakudo ain't going to handle just yet.
14:43 pmichaud rakudo: grammar A { regex TOP { foo } }; A.parse("foo").say; say "bar"; A.parse("foo").say; say "bar"
14:43 p6eval rakudo ae5e29: OUTPUT«foo␤bar␤foo␤bar␤»
14:44 jnthn std: constant foo = 42; my foo $x;
14:44 p6eval std 26532: OUTPUT«ok 00:02 36m␤»
14:44 [particle]- rakudo: grammar A { regex TOP { foo } }; A.parse("foo").print;
14:44 p6eval rakudo ae5e29:  ( no output )
14:44 [particle]- wasn't that easier?
14:44 masak std: constant foo = Int; my foo $x;
14:44 p6eval std 26532: OUTPUT«ok 00:02 36m␤»
14:45 * jnthn thinks STDbug
14:45 [particle]- rakudo: grammar A { regex TOP { foo } }; A.parse("foo").print; print "\n";
14:45 masak [particle]-: yes, but I didn't know if buffering played into it.
14:45 p6eval rakudo ae5e29: OUTPUT«␤»
14:45 pmichaud std generally does syntax, not semantics.
14:45 masak [particle]-: that last one is easier.
14:45 pmichaud at the syntax level, "a name is as good as any other"
14:45 jnthn OK, but I'd argue that introducing a typename affects the parse and that they thus shouldn't be confused with things that are not typenames.
14:45 masak [particle]-: but I also wanted to show that .say works.
14:45 pmichaud introducing a typename affects the parse?
14:46 pmichaud differently than a constant name?
14:46 ruoso jnthn, it doesn't
14:46 ruoso actually... it depends
14:46 jnthn ruoso: it does
14:46 jnthn my something_undeclared $x; # error
14:46 ruoso it doesn't affect the parsing itself
14:46 jnthn as in, parse error
14:46 pmichaud ruoso: declaring a type definitely modifies the parse of that word later.
14:47 arnsholt What ways are there to modify Rakudo's search path?
14:47 jnthn foo ~~ TypeName # parses as a typename
14:47 jnthn foo ~~ notatypename # parses as a listop
14:47 pmichaud here's the specific case
14:47 ruoso I mean there is no ambiguity in the parsing caused by that being a type name or not
14:47 moritz_ arnsholt: @*INC.push('path')
14:47 moritz_ arnsholt: and you have to do it in a BEGIN { ... } block...
14:47 moritz_ because 'use' happens at compile time
14:47 pmichaud say foo 1     # valid
14:48 ruoso ok... smart match is an exception...
14:48 pmichaud module foo { };   say foo 1     #   syntax error (two terms in a row)
14:48 arnsholt moritz_: Thanks
14:48 jnthn no, smart match is nothing special in this case
14:48 pmichaud declaring a typename causes that name to be no longer treated as a listop
14:48 pmichaud (in parsing)
14:49 pmichaud std:  say foo 1;
14:49 p6eval std 26533: OUTPUT«Undeclared routine:␤   foo used at 1 ␤ok 00:02 35m␤»
14:49 pmichaud std:  module foo { };   say foo 1;
14:49 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/iQgaevyYbe line 1:␤------> [32mmodule foo { };   say foo [31m1;[0m␤    expecting any of:␤     infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤FAILED 00:02
14:49 p6eval ..35m␤»
14:49 ruoso ok...
14:50 pmichaud jnthn: my point is that     constant foo = 42;   just enters foo as a name the same way a type declaration would
14:50 pmichaud and thus affects the parse in the same way
14:50 * moritz_ agrees with pmichaud
14:50 [particle]- it registers foo as a term
14:51 pmichaud correct.
14:51 pmichaud so it's no longer a bareword listop.
14:51 jnthn I'm agreeing it affects the parse. I'm disagreeing that typename should match on it.
14:51 pmichaud you're saying we should have separate tables for typenames versus other terms
14:51 masak rakudo: grammar A { regex TOP { foo } }; (~A.parse("foo")).print; print "\n"
14:51 p6eval rakudo e9f631: OUTPUT«foo␤»
14:52 [particle]- the typename match happens during semantic analysis.  std doesn't fully do that yet.
14:52 masak that's a workaround.
14:52 jnthn pmichaud: Yes.
14:52 pmichaud jnthn: I'm thinking .... what particle said
14:52 jnthn We have to differentiate them at some point.
14:52 pmichaud semantic analysis would work
14:52 pmichaud it can also be a flag on the entry in the symbol table "this is a typename"
14:52 jnthn And differentiating them during the parse seems simpler to me.
14:53 jnthn True, we already do have such a flag.
14:53 TimToady my foo $x is perfectly valid
14:54 TimToady and would require $x to only be assigned that value
14:54 jnthn TimToady: if foo is a constant?
14:54 TimToady yes
14:54 pmichaud I wondered about that :-)
14:54 TimToady any value is also a type, in that sense
14:54 TimToady my True $x
14:54 jnthn std: my 42 $x;
14:54 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤Malformed my at /tmp/3Mw5nHWln5 line 1:␤------> [32mmy [31m42 $x;[0m␤    expecting scoped declarator␤FAILED 00:02 35m␤»
14:54 TimToady but not in that sense :)
14:54 [particle]- std: constant five = 5; my $x is five;
14:54 p6eval std 26533: OUTPUT«ok 00:02 36m␤»
14:54 [particle]- rakudo: constant five = 5; my $x is five; say $x;
14:55 cspencer joined #perl6
14:55 p6eval rakudo e9f631: OUTPUT«Use of uninitialized value␤␤»
14:55 jnthn Heh, in that case may as well just register it as a type then.
14:55 TimToady well, it's a type with a defined value, is all...
14:55 pancake joined #perl6
14:55 TimToady just like any enum
14:56 pmichaud afk (inspecting trees)
14:56 TimToady enums and constants are indistinguishable
14:56 pancake how can i count the elements in a Range?
14:56 masak moritz_: ping
14:56 pmichaud pancake: .elems ?
14:56 pancake is there a way to instrospect in perl6?
14:56 pancake pmichaud: i was looking for .elements . ok
14:56 jnthn TimToady: constant foo = 42; say foo() == 42 # should this work too?
14:56 jnthn or just say foo == 42 ?
14:56 jnthn If just the second, that makes things easier...
14:56 TimToady foo() is calling function &foo, not bare 'foo' there
14:57 TimToady just use bare foo
14:57 jnthn OK, good. I seemed to remember reading somewhere but constant foo introduced a unary sub foo
14:57 jnthn But I musta been wrong.
14:57 jnthn urm, nullary
14:57 TimToady we have explicitly broken the notion that named values are 0-ary functions
14:57 jnthn pl
14:57 jnthn *ok
14:58 pancake is "for(1..3)->$n{say $n}" failing because of its invalid syntax (missing spaces) or it is a bug in rakudo?
14:58 [particle]- missing spaces
14:58 TimToady must have spaces
14:58 TimToady otherwise you're calling a function and subscripting $n
14:58 [particle]- rakudo: for(1..3)->$n{say $n}
14:59 p6eval rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "->$n{say $"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
14:59 [particle]- rakudo: for (1..3) -> $n {say $n}
14:59 p6eval rakudo e9f631: OUTPUT«1␤2␤3␤»
14:59 [particle]- rakudo: for 1..3 -> $n {say $n} # no need for parens
14:59 p6eval rakudo e9f631: OUTPUT«1␤2␤3␤»
14:59 TimToady std: for(1..3)->$n{say $n}
14:59 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤Obsolete use of -> to call a method; in Perl 6 please use . instead at /tmp/iwpFpumIKV line 1:␤------> [32mfor(1..3)->[31m$n{say $n}[0m␤FAILED 00:02 35m␤»
15:00 TimToady std: for 1..3 ->$n {say $n}
15:00 Eevee joined #perl6
15:00 p6eval std 26533: OUTPUT«ok 00:03 42m␤»
15:00 masak rakudo: for (1..3)->$n {say $n}
15:00 p6eval rakudo e9f631: OUTPUT«1␤2␤3␤»
15:00 TimToady bogus
15:00 masak hm, did I report that one already?
15:00 * masak checks
15:00 TimToady std: for (1..3)->$n {say $n}
15:00 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤Obsolete use of -> to call a method; in Perl 6 please use . instead at /tmp/U6rKFMT7BF line 1:␤------> [32mfor (1..3)->[31m$n {say $n}[0m␤FAILED 00:02 35m␤»
15:00 amoc rakudo: for(1..3)   -> $n { say $n }
15:00 masak exactly.
15:01 p6eval rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "-> $n { sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
15:01 TimToady std: for(1..3)   -> $n { say $n }
15:01 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤for() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/zL4jjJsty9 line 1:␤------> [32mfor(1..3)   [31m-> $n { say $n }[0m␤    expecting any of:␤   infix or
15:01 p6eval ..me...
15:01 masak hm, seems I didn't.
15:01 * masak submits rakudobug
15:02 amoc rakudo: if(1)  { say "hey" }
15:02 p6eval rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "{ say \"hey"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
15:02 TimToady std: if(1)  { say "hey" }
15:02 p6eval std 26533: OUTPUT«##### PARSE FAILED #####␤if() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/ePgBVjtfHv line 1:␤------> [32mif(1)  [31m{ say "hey" }[0m␤    expecting any of:␤    infix or
15:02 p6eval ..meta-infix␤...
15:02 pancake std is for pugs?
15:02 TimToady no
15:02 TimToady it happens to live in the pugs repo though
15:02 orafu joined #perl6
15:03 TimToady STD.pm is the standard parser written in Perl 6
15:03 TimToady std is running a version of that translated to p5
15:03 pancake ah ok
15:04 Psyche^ joined #perl6
15:15 ejs joined #perl6
15:17 hercynium joined #perl6
15:18 masak what's the difference between .ast and .text on a Match object, really? in my .perl outputs, they are always the same.
15:19 jnthn masak: have you used make anywhere?
15:19 jnthn I suspect that's what makes the difference.
15:19 masak nope.
15:19 masak ok.
15:19 jnthn .ast will return what was set with make.
15:19 masak oh, right.
15:19 jnthn While .text should always be the matched text.
15:20 pmichaud .text is deprecated
15:20 pmichaud it's now .Str, I think.
15:20 masak pmichaud: it's still in .perl
15:21 moritz_ masak: feel free to patch that out
15:21 masak moritz_: will do.
15:22 moritz_ but somehow the matched string should appear in Match.perl
15:22 moritz_ so maybe s/text/Str/
15:22 masak moritz_: I'm trying my best to recurse through a tree of Matches, but I'm still only dragging up buckets of frustration.
15:22 masak moritz_: will change s/text/Str/
15:22 pmichaud we still have issues with arrays in positionals, yes.
15:22 pmichaud because PGE doesn't return arrays of matches in a form that Rakudo can recognize as being an Array
15:22 pmichaud (that doesn't flatten)
15:22 masak moritz_: are there any known cases of successful traversal of a Match tree?
15:23 moritz_ masak: yes
15:23 masak moritz_: I was hoping you'd say that.
15:23 pmichaud ultimately what I suspect will happen is that ResizablePMCArray in parrot will map to Array in Rakudo, instead of List as it does now.
15:23 masak moritz_: well, the hitomi script is poised to be traversed, so if you have the time, please check it out and show me how.
15:23 jnthn To the degree that such mapping makes sense, I guess...
15:24 jnthn (Once Array has-a RPA rather than is-a, not sure how the mapping will work out.)
15:24 moritz_ masak: action methods or recursion?
15:24 pmichaud jnthn: in most cases I think that ResizablePMCArrays in Parrot really correspond to arrays in a Perl 6 sense, and not to a List.
15:24 masak moritz_: I've done the parse and the action methods. now I want to recurse.
15:24 masak and traverse.
15:24 pmichaud and yes, it has to be done after we switch out of the is-a mode.
15:25 pluto joined #perl6
15:25 masak moritz_: so, the end goal is to go down the tree of nodes, keeping an eye out for attributes prefixed 'pe:'
15:25 jnthn pmichaud: Yes, agree.
15:25 pmichaud masak: positional captures might have some difficulties.  named captures shouldn't be posing many issues.
15:26 masak pmichaud: sounds promising.
15:26 jnthn rakudo: constant Num π  = atan(2,2) * 4;
15:26 moritz_ masak: you don't need recursion in action methods
15:26 p6eval rakudo e9f631:  ( no output )
15:26 moritz_ masak: but I'll take a look at it tonight
15:26 jnthn rakudo: constant Num π  = atan(2,2) * 4; say π
15:26 p6eval rakudo e9f631: OUTPUT«Could not find non-existent sub atan␤current instr.: 'block_10' pc 102 (EVAL_20:57)␤»
15:26 masak moritz_: not sure we're not talking past each other here.
15:26 masak moritz_: action methods aren't enough here.
15:27 jnthn rakudo: use Num :trig; constant Num π  = atan(2,2) * 4; say π
15:27 masak at least, I cannot see that they are.
15:27 p6eval rakudo e9f631: OUTPUT«Could not find non-existent sub atan␤current instr.: 'block_10' pc 152 (EVAL_20:1)␤»
15:27 pmichaud jnthn: atan2
15:27 jnthn rakudo: use Num :trig; constant Num π  = atan2(2,2) * 4; say π
15:27 p6eval rakudo e9f631: OUTPUT«Could not find non-existent sub atan2␤current instr.: 'block_10' pc 152 (EVAL_20:1)␤»
15:27 pmichaud arggh
15:27 jnthn rakudo: use Num :Trig; constant Num π  = atan2(2,2) * 4; say π
15:27 p6eval rakudo e9f631: OUTPUT«3.14159265358979␤»
15:27 * jnthn wonders if we should explode on un-known tags.
15:28 [particle]- hrmm...
15:28 * [particle]- consults S11
15:28 jnthn Also, I copy-pasted the atan from S04.
15:28 moritz_ masak: so what do your action methods construct?
15:28 jnthn Should I patch it to say atan2?
15:28 [particle]- aye
15:28 TimToady yes
15:28 TimToady overloaded atan was a fossil
15:28 masak moritz_: I haven't changed Tene's code much; they construct XML::Node objects.
15:29 [particle]- buubot: spack -w atan
15:29 buubot [particle]-: Sorry, I couldn't find any matches for: -w
15:29 masak moritz_: I'm at a loss for how to get at them in an orderly fashion.
15:29 [particle]- buubot: spack \batan\b
15:29 buubot [particle]-: S04-control.pod:1 S29-functions.pod:2
15:30 pugs_svn r26534 | jnthn++ | [spec] s/atan/atan2/
15:30 moritz_ masak: is that code in a repo somewhere?
15:31 masak moritz_: http://github.com/masak/web/
15:31 pugs_svn r26535 | szabgab++ | some more smartlinks updated
15:31 masak drafts/hitomi
15:31 moritz_ masak: ok
15:31 masak moritz_: perl6 hitomi < hitomi-example.xml
15:31 mncharity joined #perl6
15:31 masak moritz_: see, my objective is twofold: one, reproduce most of the content normally.this I can already do by iterating over .chunks and printing the values. two, as soon as I find those special attributes, go into a special mode and print according to other rules.
15:32 masak after I can consistently do two, we can haz XML templater prototype.
15:33 mncharity random fyi, Yarr! (yet another regex runtime) is again enabled in webkit core.  yay.  http://trac.webkit.org/browser/trunk/JavaScriptCore/yarr
15:33 * jnthn refactors constant handling a bit and is happy to see that foo == 42 and my foo $x just fall out of the refactor nicely. :-)
15:33 mncharity left #perl6
15:33 pmichaud jnthn++
15:34 jnthn wow, Yarr actually JIT-compiles regexes. :-)
15:35 jnthn (otoh, PGE just emits PIR, which becoems Parrot bytecode, which can be jitted :-))
15:35 kimtaro joined #perl6
15:37 ZuLuuuuuu joined #perl6
15:37 szabgab TimToady, are the X<> tags welcome in the Synopsis ?
15:38 [particle]- X<> tags are valid pod... :)
15:38 TimToady why not?
15:38 szabgab I like them and then will add more of them...
15:39 [particle]- X<szabgab>++
15:39 literal which synopsis?
15:39 [particle]- all sysopses, i presume.
15:40 jnthn In Rakudo, should parsing constant λ = 42; depend on having ICU?
15:40 literal ah
15:40 pmichaud yes.
15:40 jnthn Ah, OK.
15:40 pmichaud otherwise it can't figure out that λ is an alpha.
15:40 [particle]- jnthn: it must.
15:40 jnthn Right.
15:40 jnthn Thus why I can't run that here, but it works here on channel with the bot.
15:44 [particle]- spack: units
15:44 [particle]- buubot: spack units
15:44 buubot [particle]-: S02-bits.pod:5 S05-regex.pod:1 S11-modules.pod:1 S29-functions.pod:1
15:44 arnsholt Does the {*} #=foo trick work in Rakudo, or only in PCT?
15:44 pmichaud in Rakudo also.
15:45 pmichaud note that #= requires a space.
15:45 [particle]- *trailing space
15:45 arnsholt And that was the bug. 'ta muchly
15:46 Tene arnsholt: you use it like this: http://gist.github.com/102833
15:46 literal rakudo: use Num :Trig; constant Num ?  = atan2(2,2) * 4; say ?
15:46 pmichaud Okay, I've now moved perl6-examples into github.com/perl6/perl6-examples .  Who wants commitbits?
15:46 p6eval rakudo e9f631: OUTPUT«Malformed declaration at line 1, near "Num ?  = a"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
15:46 literal oops
15:47 literal rakudo: use Num :Trig; constant Num π  = atan2(2,2) * 4; say π
15:47 pjcj joined #perl6
15:47 p6eval rakudo e9f631: OUTPUT«3.14159265358979␤»
15:47 literal why does this not work on my copy of rakudo?
15:47 pmichaud literal: do you have ICU installed?
15:47 literal hm, maybe not
15:47 literal nope
15:47 * literal installs it
15:48 masak pmichaud: how's the new roadmap coming along?
15:48 * masak is expectant
15:48 pmichaud masak:  slowly, but I'm gaining on it.  I've been fixing bugs.
15:48 masak :)
15:48 mberends pmichaud: commitbit please :) github.com/mberends
15:49 masak pmichaud: I guess we'll see a blog post when it lands.
15:49 pmichaud masak: absolutely.
15:50 pmichaud mberends: added
15:50 arnsholt Hmmm. Speaking of the namespaces and grammar discussion we had earlier, what Tene has done makes sense as well. The XML grammar lives in the module called XML
15:50 moritz_ pmichaud: I also want a commitbit
15:50 arnsholt There might be other stuff as well that has a claim to the root node though
15:50 pmichaud moritz: added
15:50 mberends pmichaud: thanks. maybe eric256++ can send you his committers list?
15:50 moritz_ pmichaud: thanks
15:50 masak commit bit to what? :)
15:50 moritz_ masak: perl6/perl6-examples
15:50 pmichaud masak:  github.com/perl6/perl6-examples
15:50 masak yes, please.
15:50 * [particle]- hops on bandwagon
15:50 pmichaud (migrated from eric256)
15:51 pmichaud masak, particle: added
15:51 pmichaud (yay, particle updated his gravatar image :-)
15:51 masak I'll set proto to download perl6-examples from perl6 from now on, if nobody protests.
15:51 literal hm, there's no make target to wipe the parrot configuration so it will be rebuilt? (make realclean is not enough)
15:52 pmichaud literal:  "make realclean" in the parrot directory.
15:52 literal ah, ok
15:52 pmichaud yes, if eric256 can send me the committers list, we can add them.
15:53 omega joined #perl6
15:53 pdc303 joined #perl6
15:54 c1sung joined #perl6
15:54 jnthn rakudo: prompt("] "); say "this shouldn't be printed"
15:54 p6eval rakudo e9f631: OUTPUT«] this shouldn't be printed␤»
15:54 jnthn *sigh* I fixed that once. :-S
15:55 pmichaud :-)
15:55 pmichaud I know the feeling :=)
15:55 * masak tries to find the resolved RT ticket
15:55 jnthn masak: It was unresolved, I wrote it was fixed and forgot to resovle it.
15:56 jnthn Just went to check I really could resolve it now and it's broken again.
15:56 masak jnthn: how convenient. :)
15:56 moritz_ jnthn: note that p6eval pipes an empty string to STDIN
15:56 jnthn oh, curious
15:56 jnthn moritz_: aha
15:56 jnthn moritz_: Yeah, locally it works.
15:56 jnthn .get when called the first time gets taht empty string I guess.
15:57 jnthn rakudo: prompt("] "); prompt("] "); say "this shouldn't be printed"
15:57 p6eval rakudo e9f631: OUTPUT«] ] this shouldn't be printed␤»
15:57 jnthn heh
15:57 pmichaud why shouldn't it?
15:57 jnthn locally it pauses there.
15:57 jnthn pmichaud: It should.
15:57 pmichaud I mean, why shouldn't the string be printed when run from p6eval ?
15:57 masak jnthn: if it pauses locally, it's probably fixed.
15:57 jnthn I'm a tad confused why for the second time it prints the prompt and thinks it can read.
15:57 jnthn masak: Yeah.
15:58 pmichaud because it gets eof ?
15:58 jnthn masak: Before, it didn't pause locally.
15:58 masak jnthn: moritz_ has said not to trust p6eval and IO.
15:58 jnthn Consensus? Close the ticket?
15:58 masak jnthn: I say resolve.
15:58 pmichaud p6eval isn't going to pause at that point
15:58 pmichaud it's going to see EOF on STDIN and return Nil
15:58 pmichaud and continue executing.
15:58 masak pmichaud++
15:59 pmichaud anyway, if it works locally, I say resolve.
15:59 jnthn resolved, with note added about p6eval
15:59 pmichaud jnthn++
15:59 pugs_svn r26536 | szabgab++ | add X<> collector to the smartlink processor
15:59 masak maybe we should default to piping the national anthem of Austria into p6eval, so it has something to read.
16:00 moritz_ masak: patches welcome :-)
16:00 jnthn What have you got about Austria? :-)
16:00 jnthn (Not that it isn't a beautiful country, but... :-))
16:00 moritz_ though Lore Ipsum might be self explanatory
16:00 masak jnthn: see? already a lot in common with Perl 6 :)
16:01 jnthn ;-)
16:01 literal hm, http://sial.org/pbot/36256
16:01 FurnaceBoy joined #perl6
16:02 moritz_ literal: there's a bug with -e and unicode
16:02 szabgab a first shot at reusing the X<> tags: http://perlcabal.org/syn/x.html
16:02 literal oh
16:03 literal szabgab: nice
16:03 pugs_svn r26537 | pmichaud++ | [perl6-projects]:  Add link to perl6-examples on github.
16:05 awwaiid joined #perl6
16:06 justatheory joined #perl6
16:09 pugs_svn r26538 | jnthn++ | [t/spec] Tests that constants are lexically scoped and that they can be used as type constraints.
16:09 pugs_svn r26539 | szabgab++ | smartlinks: remove unused code
16:10 pugs_svn r26540 | pmichaud++ | [perl6-projects.org]:  Forgot a closing </li> tag   (pmichaud--)
16:10 jnthn html fail
16:10 literal has there been any interested expressed for docstrings in Perl 6?
16:11 moritz_ literal: yes
16:12 pmichaud there's a "perl6examples:" target on #perl6 ?
16:12 pmichaud i.e., to add collaborators?
16:12 literal they sound interesting but I don't know exactly how they're used, I haven't used Python, for example
16:12 moritz_ pmichaud: I think you can just make all the people administrators, then they can hand out commit bits
16:13 pmichaud that's fine with me, yes.
16:13 literal I can see how docstrings would be useful in a REPL
16:13 Tene I can't figure out how to make someone an admin on github.
16:14 pmichaud there is that.  I'm wondering how the perl6examples target did it.
16:14 literal but maybe something similar could be accomplished by tying Pod paragraphs to methods/subs/etc
16:15 moritz_ pmichaud: what do you mean by "target"?
16:15 moritz_ literal: yes, that's the "plan", but it depends on S26
16:16 braceta joined #perl6
16:16 pmichaud according to the readme in perl6-examples, one can do  "perl6examples: add <username>"  to add a collaborator to the perl6-examples repo (in eric256's account)
16:17 pmichaud perl6examples: add pmichaud
16:17 pmichaud ...but I'm guessing it's not active/working.
16:17 pmichaud that's okay, I think we can manage it manually for a while.
16:17 eMaX joined #perl6
16:17 eMaX hi
16:18 Tene Hi, eMaX!
16:18 eMaX Hi Tene
16:19 eMaX I just read an old interview with Audrey Tang and thought I should tune into #Perl6 regularly
16:19 pmichaud eMaX:  Yes, you should.  :-)
16:19 moritz_ though sadly audreyt isn't around anymore :(
16:20 eMaX moritz_, what has happened? I read she's very sick and wasn't able to find out anything
16:21 moritz_ eMaX: she got hepatitis, and her doctors told her to have less stress in her live
16:22 pmichaud afk, lunch
16:22 eMaX ok so she's still alive at least. But anyway that's sad to hear that someone, particularly so precious, has to drop out. but anyway, health comes first.
16:22 moritz_ aye
16:22 TimToady nevertheless, we're still making good progress
16:22 moritz_ she still does some hacking, but not so pulicly as before
16:23 moritz_ s/so/as/
16:24 eric256 pmichaud: yea i don't think that bot is working atm
16:24 eMaX ok. Well I recently read an article that Perl6 "is coming" - I'm not a real perl programmer (so was I told when I quit smoking, a colleague insisted that every real programmer has to smoke - Camel) - but what I have heard about the object oriented improvements in Perl6 makes me very interested.
16:25 moritz_ TimToady: can I assume that Camelia is Artistic 2, as most of the pugs repo?
16:25 TimToady yes
16:25 moritz_ thanks
16:25 cspencer left #perl6
16:25 eMaX but anyway I'll just step back and try things out.
16:25 cspencer joined #perl6
16:25 pugs_svn r26541 | szabgab++ | some improvement (?) in indeX<>ing
16:25 cspencer hello all
16:25 TimToady eMaX: OO is one of the dimensions in which we're trying to be disruptive technology...
16:26 TimToady so have the appropriate amount of fun
16:26 pugs_svn r26542 | szabgab++ | add some X<>-es to the docs
16:26 eMaX tnx
16:26 TimToady OO is actually one of the places where rakudo is leading the other implementations, I think
16:26 eric256 i just added pmichaud and moritz
16:27 eric256 anyone else want a commit bit on perl6-examples
16:27 moritz_ ... except perhaps for smop, but since it's hard to run code on smop right now I can't tell :-)
16:27 moritz_ it's surely leading on regexes
16:27 jnthn smop has done some nice work on nailing down the underlying metamodel stuff.
16:27 eMaX lots of the code I write on customer projects is in Perl - basically for scripting - and I wonder whether I'll be able to write a new "Perl6" Style so that it can run in their Perl5 environment.
16:28 jnthn Rakudo has already borrowed - and will borrow more - from that.
16:28 TimToady up to a point; we can currently translate a subset of p6 back to p5; that's how STD works
16:29 TimToady but p5 as an engine isn't really up to supporting all of p6 semantics
16:29 jnthn eric256: I'm happy to have a commit bit while you're on it. :-)
16:29 TimToady that's part of the smop project's intentions
16:29 eric256 jnthn: done ;)
16:29 eMaX any how2 somewhere how to get up and running a perl6 environment so that I can run it side by side?
16:29 eMaX ok found smop
16:30 TimToady see instructions on rakudo.org for how to get going on that
16:30 eric256 anyother takers?
16:30 TimToady or you can play with the online bots here
16:30 * jnthn gives moritz++ a couple of tickets that will need spectests
16:30 TimToady perl6: say "Hi eMax"
16:30 p6eval elf 26542, pugs, rakudo 82ca8d: OUTPUT«Hi eMax␤»
16:31 eMaX :)
16:31 TimToady note that smop isn't one of those yet
16:31 TimToady they've been concentrating on the underpinnings
16:31 TimToady not the user interface
16:31 eMaX Ok I'm going to have the appropriate amount of fun:)
16:31 TimToady to try out syntax, you can also use std
16:32 TimToady std: for 1..10 -> { frob }
16:32 p6eval std 26542: OUTPUT«Undeclared routine:␤   frob used at 1 ␤ok 00:02 35m␤»
16:32 TimToady but it's just a parser, so far
16:32 TimToady std: for(1..10) -> { frob }
16:32 p6eval std 26542: OUTPUT«##### PARSE FAILED #####␤for() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/WRnnMzUu3y line 1:␤------> [32mfor(1..10) [31m-> { frob }[0m␤    expecting any of:␤ infix or
16:32 p6eval ..meta-inf...
16:33 TimToady errands &
16:33 ruoso TimToady, although say "Hello" is something that smop+mildew does run ;)
16:33 ruoso mildew: say "Hello!"
16:33 p6eval mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is"␤  (Missing operator before is?)␤Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is"␤   (Missing operator before is?)␤Bareword found where operator expected
16:33 p6eval .....
16:34 ruoso moritz_, it's missing a make in the mildew directory
16:40 ispy_ joined #perl6
16:42 eMaX re
16:42 eMaX Hmm. While changing trains, parrot refused to build. http://nopaste.org/p/aN725CP9bb
16:43 eMaX ah
16:48 [particle]- you need to install subversion
16:51 awarefish joined #perl6
16:52 eMaX saw it sorry for not noting one should probably not do things on a train station :=)
16:52 moritz_ mildew: say 'Hello'
16:52 p6eval mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is"␤  (Missing operator before is?)␤Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is"␤   (Missing operator before is?)␤Bareword found where operator expected
16:52 p6eval .....
16:53 moritz_ ruoso: it's not so easy... some haskell stuff missing during build...
16:54 perl6-examples joined #perl6
16:54 perl6-examples perl6-examples: 3Eric Hodges master0 SHA1-0cad360
16:54 perl6-examples Adding some perl6 examples from perlmonks
16:54 perl6-examples http://bit.ly/irfwv
16:54 perl6-examples perl6-examples: 3Eric Hodges master0 SHA1-3b9a0df
16:54 perl6-examples Creating 99 Problems directory and including some solutions.
16:55 perl6-examples http://bit.ly/dLWmn
16:55 perl6-examples left #perl6
16:55 eric256 opps ..sorry that was a bit loud.... stupid github bot
16:55 * moritz_ thinks that's fine
16:56 zamolxes joined #perl6
16:56 [particle]- eric256: bit me
16:57 jnthn btw, it seems we are missing reporting (from dalek) of rakudo commits?
16:58 payload joined #perl6
16:59 moritz_ jnthn: aze. I just complained to Infinoid on #parrot
17:00 moritz_ s/z/y/ # (switching keyyboard layouts)--
17:00 [particle]- bit as in commitbit btw
17:06 jnthn rakudo: class A { }; subset B of A where 1;
17:06 p6eval rakudo b105f4: OUTPUT«Null PMC access in get_string()␤current instr.: '!CREATE_SUBSET_TYPE' pc 19200 (src/builtins/guts.pir:235)␤»
17:06 jnthn rakudo: role A { }; subset B of A where 1;
17:06 p6eval rakudo b105f4: OUTPUT«Null PMC access in getprop()␤current instr.: '!CREATE_SUBSET_TYPE' pc 19180 (src/builtins/guts.pir:227)␤»
17:06 abra joined #perl6
17:07 aindilis joined #perl6
17:07 alester joined #perl6
17:09 moritz_ ruoso: it seems I can't fix the mildew compilation easily... but I can give you access to that server so you can try it yourself if you want
17:15 ispy_1 joined #perl6
17:15 moritz_ my $x = do { { $/.perl.say } }; 'a' ~~ /a/ && $x.();
17:16 moritz_ rakudo: my $x = do { { $/.perl.say } }; 'a' ~~ /a/ && $x.();
17:16 p6eval rakudo b105f4: OUTPUT«undef␤invoke() not implemented in class 'Integer'␤current instr.: '_block14' pc 126 (EVAL_21:59)␤»
17:16 moritz_ should that work?
17:16 braceta left #perl6
17:20 arnsholt Is there a reduce operator that lets you call an arbitrary method on the elements in a list/array?
17:20 moritz_ rakudo: say (1..6).reduce: { $^a + $^b }
17:20 p6eval rakudo b105f4: OUTPUT«21␤»
17:21 moritz_ rakudo: my $x = do { { $^a.perl.say } }; 'a' ~~ /a/ && $x.($/);
17:21 p6eval rakudo b105f4: OUTPUT«too few arguments passed (0) - 1 params expected␤current instr.: '_block27' pc 217 (EVAL_21:103)␤»
17:21 arnsholt As a method on the list object, of course. Retrospect strikes again
17:21 moritz_ I don't understand
17:22 moritz_ do you want to call a method on each array item?
17:22 moritz_ or reduce something?
17:22 moritz_ or both?
17:22 moritz_ rakudo: my $x = { $^a.perl.say }; 'a' ~~ /a/ && $x.($/);
17:23 p6eval rakudo b105f4: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast  => "a",␤ text => "a",␤ from => 0,␤ to   => 1,␤)␤»
17:23 arnsholt moritz_: Never mind. I crossed some wires in my brain
17:25 eMaX hmm. Why do I keep seeing ␤ like a box with 24
17:25 arnsholt It's not 2 and for, it's capital N and capital L, for "newline"
17:25 moritz_ ... unless your font doesn't support it
17:25 arnsholt Er, s/for/4/ I've no idea why I wrote that
17:27 eMaX r8
17:27 eMaX er
17:27 eMaX right
17:27 eMaX hmm. rakudo built as it seems and the tests passed.
17:30 moritz_ literal: in perl6.vim quotes in char classes still look for a closing quote
17:31 eMaX I wonder whether perl6 as a binary is sufficient for reasonable programming - like /usr/bin/perl6 - I'd expect all sorts of modules to also be needed. or does it consume the perl5 modules?
17:31 moritz_ it needs modules.
17:31 literal moritz_: hm, I'll look into tha
17:31 literal t
17:33 literal moritz_: does it only happen with <-[]> classes? if so, then I fixed that recently
17:34 moritz_ literal: seems like...
17:34 moritz_ literal: we need a perl6.vim feed bot ;-)
17:35 moritz_ literal++
17:35 moritz_ I've just pulled, it now works perfectly
17:37 pugs_svn r26543 | ron++ | documented some tests and added some tests for RT #53814
17:42 ruoso moritz_, better see that with pmurias... he's the one that undesrtands haskell
17:42 ruoso ;)
17:43 moritz_ ruoso: he already has root acess on that server
17:43 ruoso ah... cool
17:43 ruoso pmurias, any chance on getting the mildew evalbot up?
17:50 eric256 particle: added
17:52 pmichaud eric256: I had made a copy/migration of perl6-examples into the perl6 github account
17:52 pmichaud do we want to maintain two separate repos, or ... ?
17:53 pmichaud or perhaps there's a way that I can get the perl6 repo to automatically track the eric256 one...?
17:54 eMaX_ joined #perl6
17:54 moritz_ pmichaud: make() doesn't seem to look in its caller for $/
17:54 eMaX_ re
17:54 eMaX_ moritz_, ok I compiled perl6 according to rakudo.org. Modules are not found - http://nopaste.org/p/ai4EU12rqb - is there some walkthrough how to get to a more working environment?
17:55 moritz_ pmichaud: so calling make from a block fails
17:55 jan_ joined #perl6
17:55 pmichaud moritz_: example?
17:55 moritz_ eMaX_: well, I don't think there's such a module yet
17:55 pmichaud eMaX_: rakudo doesn't make use of perl 5 modules.
17:55 pmichaud at least ,not yet.
17:56 moritz_ rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 } }; A.parse('foo', :action(B.new)).ast.perl.say
17:56 eMaX_ ok then. Hmm. At least that motivates to do things oneself :)
17:56 p6eval rakudo b105f4: OUTPUT«"foo"␤»
17:56 moritz_ rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 }; method TOP($/) { $x() } }; A.parse('foo', :action(B.new)).ast.perl.say
17:56 p6eval rakudo b105f4: OUTPUT«Method '!make' not found for invocant of class 'Failure'␤current instr.: 'make' pc 22031 (src/builtins/match.pir:40)␤»
17:56 moritz_ pmichaud: that's it
17:57 pmichaud moritz:   .... but the $/ that is in scope when make is called isn't the one from TOP
17:58 pmichaud { make 3 }   has its own $/
17:58 moritz_ pmichaud: shouldn't the $/ of that block be OUTER::$/?
17:58 pmichaud yes, it is.
17:58 pmichaud OUTER::$/, not CALLER::$/
17:58 moritz_ ah
17:59 pmichaud however
17:59 eMaX_ moritz_, ok thanks I think I've got all that I need to get me going. particularly, your blog :)
17:59 pmichaud rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 }; method TOP($/) { $x($/) } }; A.parse('foo', :action(B.new)).ast.perl.say
17:59 p6eval rakudo b105f4: OUTPUT«Method '!make' not found for invocant of class 'Failure'␤current instr.: 'make' pc 22031 (src/builtins/match.pir:40)␤»
17:59 pmichaud hmm.
17:59 moritz_ that binds $/ to $_
17:59 moritz_ not to $/
17:59 pmichaud oh, yeah.
18:01 pmichaud rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = -> $/ { make 3 }; method TOP($/) { $x($/) } }; A.parse('foo', :action(B.new)).ast.perl.say
18:01 p6eval rakudo b105f4: OUTPUT«3␤»
18:01 moritz_ nice
18:01 moritz_ I still find the behaviour a bit unintuitive, but I think I can work with that
18:02 pmichaud when 'lift' is implemented in Rakudo, one might be able to solve it with that.
18:02 pmichaud I still need to review the details of 'lift'
18:02 PhatEddy joined #perl6
18:07 moritz_ does 'make' also return from the current method?
18:07 pmichaud no, it doesn't do a return exception.
18:07 pmichaud it simply sets the .ast value on $/ .
18:07 azawawi joined #perl6
18:07 moritz_ can I say 'make $stuff; return', or will that return interfere somehow?
18:07 Jedai joined #perl6
18:08 azawawi pmurias: ping
18:08 moritz_ I guess I'll just try ;-)
18:08 cognominal joined #perl6
18:08 pmichaud moritz:  you mean in a different closure?
18:08 moritz_ pmichaud: no, in the same
18:09 pmichaud inside of an action method, you can certainly do   make $stuff; return;
18:09 eMaX_ where does the runtime/ directory need to be for a working perl6 install? I've copied perl6 to /usr/bin and created /usr/lib/perl6 and added the files from blib/lib there and added /usr/lib/perl6 to LD_LIBRARY_PATH. Now if I don't have the runtime directory as subdirectory to cwd, apparently I get problems like PCT.pbc cannot be found
18:09 pmichaud eMaX_: the perl6 binary depends on the original build tree
18:09 pmichaud we plan to fix that at some point, but we're a little limited in what we can do with parrot.
18:10 eMaX_ pmichaud, so that means for testing I need the runtime directory in my working directory?
18:10 eMaX_ seems even a symlink suffices
18:10 azawawi @tell pmurias i managed to get mildew/smop to work finally but the build process is not straightforward and a lot of things need to be installed along the way.
18:10 lambdabot Consider it noted.
18:10 pmichaud eMaX_: I'm not sure where Parrot currently expects to find the .pbc files
18:10 pugs_svn r26544 | jnthn++ | [t/spec] Tests for subtypes based on classes and roles.
18:10 pmichaud current "best practice" is to leave the build tree in place.
18:10 eMaX_ ok would be great if that was in some env variable
18:11 pmichaud eMaX_: sure; again, I'm not sure what Parrot's current status for that is.
18:11 eMaX_ ok thanks
18:11 moritz_ eMaX_: I leave the binary in the build tree, and symlink it from somwhere in $PATH
18:13 PhatEddy If I come across a ticket that looks mergeable (or closeable) and want to reply suggesting the merge, should I cc the list?  Does it matter?
18:13 pmichaud PhatEddy: whatever you think seems most reasonable.
18:13 pmichaud PhatEddy: I think I might be able to give you merge/close permissions, if you want.
18:13 eMaX_ brb / changing trains
18:14 barney joined #perl6
18:15 PhatEddy pmichaud: thanks for the offer but I think I'll take a rain check until my current guesses seem to be validated :).
18:16 moritz_ PhatEddy: cc'ing the list is not necessary - replies to tickets automatically go to p6c
18:17 PhatEddy I think there's a link I've been pressing to request that cc though ...
18:17 pmichaud when replying via the web interface, I think one has to explicitly request the cc
18:17 moritz_ there's "reply" and "comment on"
18:17 moritz_ I think that "comment on" needs it
18:18 pmichaud there's also "Click here to toggle cc of perl6-compiler@perl.org"
18:18 ruoso azawawi, yes... the build process is quite sad... but that is hopefully being solved with re-smop
18:18 ruoso where we will be able to make some things optional
18:22 LylePerl joined #perl6
18:26 eMaX_ moritz_, thanks, that worked. Had to rebuild as the build path is apparently encoded, but now that approach works fine.
18:28 azawawi ruoso: ok i  managed finally to really get it mildew/smop to work... i think so... how can i run a perl 6 script over it? what are the arguments?
18:28 ruoso perl mildew file.pl
18:30 azawawi ruoso: i get segmentation fault over a simple say "Hello world"... any ideas?
18:30 ruoso hmm...
18:30 ruoso try rebuilding the CORE
18:30 ruoso rm CORE/*.so
18:30 ruoso make CORE
18:31 eMaX_ moritz_, following your blog, I try my @array = 1, 2, 3; say "@array[1]"; it does not output 2, but @array[1] unless not quoted.
18:32 TimToady I think rakudo doesn't implement
18:32 TimToady array interpolation with trailing [] yet
18:32 TimToady you can put {@array[1]} currently
18:32 eMaX_ ok tnx
18:33 moritz_ eMaX_: that blog tries to tech Perl 6 (as it was specified when I wrote it), not just the subset that Rakudo implements
18:33 eMaX_ moritz_, ok thanks. What Tim suggested, works.
18:34 azawawi_vm joined #perl6
18:35 eMaX_ wow. that language is so much nicer now :)
18:37 pasteling "azawawi_vm" at 212.38.137.139 pasted "mildew make" (72 lines, 4.7K) at http://sial.org/pbot/36258
18:37 hercynium joined #perl6
18:38 azawawi_vm ruoso: still doesnt work; plz check out the link above...
18:41 ruoso azawawi_vm, do you have a debugger enabled?
18:41 ruoso installed, actually
18:44 ejs joined #perl6
18:45 orafu joined #perl6
18:47 azawawi_vm ruoso: debugger as in perl debugger or gdb? :)
18:47 ruoso gdb
18:48 azawawi_vm ruoso: yes, im in it... what should i do?
18:48 ruoso ok... first...
18:48 ruoso perl mildew -o/tmp/foo test.p6
18:48 ruoso then
18:48 ruoso LD_LIBRARY_PATH=../smop/build/:CORE/ gdb /tmp/foo
18:48 eMaX_ ok thanks for the nice kickstart and have a nice evening
18:50 azawawi_vm ruoso: and?
18:50 ruoso inside gdb, go "r"
18:51 cspencer_ joined #perl6
18:52 pasteling "azawawi_vm" at 212.38.137.139 pasted "gdb output" (9 lines, 251B) at http://sial.org/pbot/36259
18:53 ruoso "bt"
18:53 schmalbe joined #perl6
18:53 ruoso azawawi_vm, use "bt" to get the backtrace
18:54 pasteling "azawawi_vm" at 212.38.137.139 pasted "gdb bt output" (9 lines, 482B) at http://sial.org/pbot/36260
18:54 moritz_ pmichaud: http://nopaste.snit.ch/16420 - my current regexes + action methods woes written down
18:57 ruoso azawawi_vm, hmmm... did you made any customization in the course of getting it to build?
18:57 pmichaud moritz_: okay, I'll look at it right after #ps
18:58 moritz_ pmichaud: great
18:58 azawawi_vm ruoso: using kubuntu 9.04; no customizations but gimme5/tryfile needed /usr/local/bin/perl and i have /usr/bin/perl
18:59 ruoso azawawi_vm, hmm...
19:01 eric256 pmichaud: about the repo i'm not sure.... advantages to keeping it seperate are seperate lists of committers, but that is only an advantage if the policy is different, if everyone can get a commit bit on either then we should standardize into one location i think.  but is the rakudo repo the right place for implementation agnostic examples?
19:01 ruoso azawawi_vm, does "make test" in smop works?
19:01 eric256 pmichaud: i'm not realy for or agianst, just makeing the points.  another advantage of moving it is that i'm lazy and it would remove me as a block on it ;)
19:02 pmichaud eric256: note that it's not the rakudo repo
19:02 pmichaud it's a separate "perl6" repo
19:02 pmichaud http://github.com/perl6/perl6-examples
19:02 pmichaud and yes, my intent is that commit bits will be liberally given
19:02 azawawi_vm ruoso: let me check it on feather...
19:03 eric256 so..whats going to go in it?
19:03 eric256 well then i realy don't mind, but i have no idea how to *move* a repo on github
19:03 pmichaud eric:  I already moved it :-)
19:03 pmichaud "move" is essentially "clone and point everyone to the new location"
19:04 ZuLuuuuuu joined #perl6
19:04 ruoso azawawi_vm, hmmm... i rebuilt mildew and it started breaking here...
19:04 eric256 so i could delete mine then clone yours, and mine would point to yours?
19:04 eric256 mm
19:04 pmichaud yes, I believe so.
19:04 pmichaud you could rename yours to begin with if you didn't want to commit to a delete
19:04 * eric256 pictures new cpan growing up on github/perl6 ;)
19:07 cognominal joined #perl6
19:08 mberends pmichaud: we'll have to deal with granularity soon. perl6-examples contains many modules, more than any single user needs.
19:08 ruoso azawawi_vm, we're getting really close to finish the smop and mildew refactoring... so I'm not really able to get to the old code to see what's the problem...
19:08 pmichaud mberends: I'm not at all opposed to creating separate repos within the perl6 accoutn.
19:08 pmichaud *account
19:09 pmichaud s/separate/additional/
19:09 mberends ok :)
19:10 azawawi_vm ruoso: anyway i will add Perl 6 Padre plugin run script support for mildew tomorrow... i think i need only to refactor the run script to have command and command arguments. I was hoping to make the user select from a Perl 6 implementation (mildew/rakudo/...)...
19:11 ruoso azawawi_vm, well... maybe pmurias is able to solve it fast... but the refactoring is really close to an end...
19:11 * azawawi_vm logs off his linux vm pet :)
19:11 [particle]- does git support sparse checkouts?
19:11 pmichaud [particle]-: I'm not aware of them.  Git likes to clone entire repos.
19:11 pmichaud Fortunately it does it quickly.
19:11 [particle]- yeah, which doesn't scale
19:12 orafu joined #perl6
19:12 pmichaud [particle]-: that's why I'm okay with creating many repos :-)
19:12 mberends pmichaud: will you be prepared to consider adding :ver() and :auth() to 'use XYZ;' soon? I'm trying to boil down the filesystem and configuration options that would fit all OS'es.
19:12 moritz_ if you don't want history, you can rm -rf .git; git init .d
19:12 moritz_ s/\.d/./
19:12 moritz_ git add *
19:13 moritz_ git commit -am 'initial checkin#
19:13 pmichaud mberends: if you want to add the ability to parse :ver() and :auth(), no problem.
19:13 Tene and :from
19:13 pmichaud If you want them to do something reasonable (like select only a specific library from a set), then we're going to need some design work
19:14 pmichaud given the other tasks on our list, it's not something I see likely before August.  (But shortly after August it's much more likely.)
19:14 pmichaud First we have to refactor quite a few things so that use statements do lexical imports instead of package-scoped ones.
19:14 Tene if we get :from parsed, I'll add the bits to load foreign libraries.
19:14 azawawi ruoso: thx for helping me out. How many spec tests was mildew passing before?
19:14 Tene well, foreign libraries that don't have their own PMCs.
19:15 Tene s/libraries/languages/
19:15 pmichaud Tene: okay, but I have some very specific ideas about how I want that to happen (per my message on load_language on parrot-dev)
19:15 Tene pmichaud: Yes, I agree.  That's exactly how I want to do it.
19:15 ruoso azawawi, well... it still didn't support "use" statement, so only a few sanity tests passed... but you can see the features supported in the t directory
19:16 Tene It seems more important to me to get rakudo into a .HLL first, though, and I can't do that.  I didn't get very far in my last attempt.  I started running into nasty segfaults.
19:16 ruoso azawawi, mildew is concept-oriented development... I mean... if we support something, it is made to support as Perl 6 really specs it... no shortcuts taken to make it pass in the tests
19:16 Tene stack overflow, and then gdb segfaulting when it tries to walk down 280k stack frames.
19:16 Tene etc.
19:16 pmichaud I agree, getting Rakudo into a .HLL is a somewhat higher priority
19:16 Tene So I couldn't even get it into a point demonstrating the PMC issues for allison to look at.
19:17 azawawi ruoso: cool
19:17 pmichaud Tene: my suggestion would be to build a simple language that uses some of Rakudo's PMCs
19:17 pmichaud I suspect some of the issues may be in the fact that Rakudo has its own PMCs
19:17 Tene Hm.  That could work.
19:18 pmichaud (i.e., port Rakudo's PMC into the simple language)
19:18 azawawi ./goodnight * &
19:18 pmichaud afaik, we don't have a good example (other than Rakudo and partcl) of languages that have custom PMCs
19:20 Tene pmichaud: http://nopaste.snit.ch/16422
19:20 jnthn Tene: I'm guessing it's blowing up while trying to create the PMCProxy for one of the dynpmcs.
19:20 Tene ... oh, nm, that fails anyway without the .HLL
19:21 Tene it's not finding the .so
19:21 jnthn Tene: Perl6Hash isn't a PMC
19:21 jnthn Tene: Try Perl6MultiSub
19:21 pmichaud or ObjectRef, or Perl6Scalar
19:21 Tene jnthn: what is src/pmc/perl6hash.pmc ?
19:21 pmichaud Tene: obsolete, I bet.
19:21 jnthn Aye, I didn't know that one existed...
19:21 Tene Ah.
19:21 pmichaud Tene: I don't think that's compiled anywhere.
19:22 pmichaud we should get rid of it if it's not actively being used, that's for sure.
19:22 Tene Ah, yes, that does work.
19:23 Tene Even in the .HLL
19:23 Tene So, nm on that.
19:23 Tene jnthn: gdb tells me that it's trying to create a Hash
19:24 Tene lemme show you...
19:24 moritz_ pmichaud: I've delete it locally, and now try to build + spectest if it still works
19:25 pmichaud I'm curious if perl6hash even appears in the Makefile
19:25 pmichaud I suspect it doesn't.
19:26 Tene doesn't
19:26 Tene should we rm it?
19:26 * moritz_ does that
19:26 pmichaud yes, rm it.
19:27 moritz_ it builds without it
19:27 * Tene waits for gdb
19:27 cspencer_ what would cause a "Non-zero wait status: 10" error from a spec test, even though all tests pass?
19:27 Tene jnthn: check out http://nopaste.snit.ch/16423
19:27 moritz_ cspencer_: wait status = exit status, I think
19:28 Tene look at the strstart = 0x7ffff786f920 "Hash"
19:28 pmichaud Perl6Hash isa Hash, if that helps at all.
19:29 pmichaud Tene: what's the code that produced that segfault?
19:29 Tene pmichaud: rakudo, in the 'hll' branch
19:29 jnthn Tene: looking
19:29 literal Tene: I've been told you're writing a POE clone in Perl 6
19:29 Tene literal: yeah.  Lemme push to github for you
19:29 literal did you base it on the old POE clone in the pugs repo?
19:30 Tene literal: a little bit.
19:30 literal ok
19:30 jnthn Tene: OK, I am guessing from this, that when in the Perl6 HLL we try to get the PMCProxy for the Parrot Hash PMC, we fail.
19:30 Tene I think I copied from it and then edited heavily.
19:30 jnthn Tene: Perhaps we're looking it up in one place but then sticking it in a different one...
19:31 pmichaud there are a few places where Rakudo is storing things in namespaces that it shouldn't be.
19:31 pmichaud or expecting to find things (e.g. methods) in namespaces.
19:32 cspencer moritz_: ah yes, it was a "#?rakudo todo" that was dying in an eval block
19:34 Tene literal: pushed to http://github.com/tene/Doten/tree/master but still waiting on github to notice
19:34 cspencer rakudo: (0,1)[ * .. * ]
19:34 p6eval rakudo b9c034: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤current instr.: 'parrot;Range;!to_test' pc 10695 (src/classes/Range.pir:250)␤»
19:34 ejs joined #perl6
19:34 Tene literal: there, it's up now
19:34 Tene literal: why are you asking about it?
19:35 jnthn Tene: Maybe out of curiosity just try running this under .HLL 'Perl6'
19:35 jnthn loadlib 'P6Object.pbc' # something like this
19:35 jnthn p6meta = get_hll_global ['Perl6Object'], '$!P6META'
19:35 jnthn mappingproto = p6meta.'new_class'('Mapping', 'parent'=>'Hash')
19:35 Tene loadlib a pbc?
19:35 jnthn erm, damm
19:35 jnthn load_bytecode
19:35 jnthn well, the comment was accurate ;-)
19:35 jnthn check the name too :-)
19:36 jnthn I don't think you'll need to load any dynpmcs or perl6.pbc to try this anyway.
19:36 jnthn Just p6object
19:36 jnthn If that works, it eliminates one possibility.
19:36 jnthn (say mappingproto should report Mapping if it's successful)
19:36 Tene jnthn: don't I also need the :init of Object.pir ?
19:37 jnthn perhaps
19:37 jnthn Tene: Yes
19:38 literal Tene: curiosity, since I maintain some POE-related modules :P
19:38 Tene jnthn: it works, when i replace 'Hash' with 'parrot;Hash', as I did in the branch
19:38 Tene jnthn: so that's not the problem.
19:39 Tene jnthn: btw, it compiles perl6_s1.pbc just fine.  It just dies when trying to *run* it.
19:40 jnthn Tene: Have you tried running it with --trace to see where we end up failing?
19:40 Tene I can do that.
19:40 jnthn --trace=4 might give a reasonably sized output.
19:40 jnthn (just what subs we call)
19:40 Tene # current instr.: '' pc 0 (perl6.pir:14)
19:40 Tene Segmentation fault
19:41 Tene ... load_bytecode 'PCT.pbc' ???
19:41 Tene the very first thing we do?
19:53 moritz_ rakudo: my @m = <elems perl>; say <a b>.@m
19:53 p6eval rakudo ab7f97: OUTPUT«invoke() not implemented in class 'ResizablePMCArray'␤current instr.: '_block14' pc 122 (EVAL_20:56)␤»
19:55 orafu joined #perl6
20:03 skids_ Interesting Rakudo/Parrot trivia: between 20 and 60 percent of arguments to Parrot_str_equal/compare are 5 characters long.  Generally more the longer a program is.
20:04 skids_ about 25% of arguments reach these functions without a cached hash value
20:05 skids_ There are pretty reliably no hash collisions between different strings,
20:05 skids_ and only a very small fraction (<1%) of comparisons have to look at the string (as it should be.)
20:07 jnthn Just stuck in some stuff that improves error messages for type check failures, etc.
20:07 Matt-W hurrah!
20:07 jnthn masak++ for nudging me to do it.
20:07 meppl good night
20:09 * jnthn -> dinner, bbiab
20:11 DemoFreak joined #perl6
20:12 barney joined #perl6
20:18 skids_ oops amend that, about 2.5% of comparisons deeply inspect string operands -- digit fell off the side of the screen :-)
20:23 skids_ (when operands are equal)
20:24 pmichaud moritz_: ping
20:31 pugs_svn r26545 | ruoso++ | [re-smop] the ri language now supports a %has directive that provides extra help with initialization and destruction. It also defines the type of the container.
20:31 pugs_svn r26545 | ruoso++ | [re-smop] first part of p6opaque ported, Im making it splitted in different files... for now the prototype storage (how, who, isa, does, attributes, methods...) is ported... now we miss the default how (which only provides item context for a recently created p6opaque) and the
20:31 pugs_svn ..p6opaque itself. We are probably going to need yet another construct to make it easier to delegate methods to some attr of the struct
20:31 ruoso pmurias, take a look at this last commit... specially tools/ri and p6opaque/src/p6opaque_proto.ri
20:33 ispy_ joined #perl6
20:39 kidd joined #perl6
20:41 * eric256 finaly goes back in the irc log....sorry pmichaud i missed that you had already moved it ;)  /me will catch up eventualy
20:42 * eric256 breaks eric256/perl6-examples with a little regret ;)
20:43 eric256 its sitting at http://github.com/eric256/perl6-examples-moved-to-perl6 for the time beign
20:43 eric256 being
20:45 eric256 so now is it better to git the clone of that and work/commit there....or put a branch in my own github account, work there and push to that, then from that to perl6?  this git/fork/clone thing is still a bit cloudy
20:45 pmichaud eric256: I don't quite know the answer to that.  Whatever works best for you.
20:46 pmichaud For some people, local branches and then pulling to the perl6 repo might work best.
20:46 pmichaud For others, pushing directly to the perl6 repo might work best.
20:55 * jnthn back from dinner
20:56 Tene hi jnthn
20:56 jnthn Tene: hi
20:56 jnthn So you were finding it was failing on load_bytecode of PCT.pbc?
20:56 Tene that's what it looked like
20:57 jnthn Does a plain file doing that with .HLL 'Perl6'
20:57 jnthn also cause the same thing?
20:57 keta joined #perl6
20:57 Tene No.
20:59 jnthn Tene: OK. Best is maybe to start by adding in the other things that are done before that.
20:59 jnthn .loadlib 'perl6_group'
20:59 jnthn .loadlib 'perl6_ops'
20:59 jnthn Also .include 'src/pctextensions/state.pir'
20:59 jnthn After those though, you're onto .include 'src/gen_builtins.pir' - if it's in there, that's going to be trickier.
21:00 pmichaud fwiw, that entire sequence really wants reordering.
21:00 Tene It has been reordered in the branch
21:01 pmichaud oh.  There's another reording that needs to be done also, to get Perl6::Grammar to properly be a subclass of Grammar.
21:01 Tene jnthn: you could 'git checkout origin/hll' and try it yourself
21:02 jnthn Tene: Building that.
21:02 keta hello, it's my first time on irc, so please excuse all mistakes i will do
21:02 keta a question regarding rakudo:
21:02 jnthn Tene: I got
21:02 jnthn Note: moving to "origin/hll" which isn't a local branch
21:02 Tene right
21:02 jnthn Does that matter?
21:03 keta class Test { has @.foo; method bar {say @.foo.perl} }
21:03 keta this works:
21:03 Tene to make a local branch, git checkout -b hll
21:03 keta Test.new(foo => (1,2)).bar;
21:03 jnthn Tene: Do I need one?
21:03 Tene I think there's an easier one-step way of doing that, but I don't remember.
21:03 keta this doesn't:
21:03 keta "Test".new(foo => (1,2)).bar;
21:03 Tene jnthn: if you're going to be making commits, it's nice
21:03 Tene yes, I recommend it.
21:03 keta this does not work either:
21:03 keta my $nn = "Test";"$nn".new(foo => (1,2)).bar;
21:03 keta why is that?
21:03 Tene keta: what are you trying to do here?
21:04 Tene keta: classes aren't strings in Perl 6.
21:04 jnthn keta: Because in the first you are calling .new on a string.
21:04 jnthn Oh, and in the second too.
21:04 jnthn Neither are expected to work.
21:04 keta how do i do that i want to do with the sendond then?
21:04 eric256 perl6 ne perl5 ;)
21:04 jnthn keta: What do you want to do?
21:04 jnthn Find a class by name?
21:05 keta call new on a class whose name is in $nn
21:05 [particle]- rakudo: class Test {}; $nn = "Test"; {$nn}.new;
21:05 p6eval rakudo c76d8d: OUTPUT«Scope not found for PAST::Var '$nn' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)␤»
21:05 jnthn Tene: OK, reproduced the failure.
21:05 [particle]- feh. i forgot the syntax....
21:05 jnthn keta: We don't do namespace interpolation etc yet, probably bet is...
21:05 eric256 pmichaud: current commit list: unobe, masak, mortiz, particle, s1n, pmichaud, mberends, cspencer, jnthn
21:05 Tene rakudo: class Test {}; my $n = Test; $n.new();
21:06 p6eval rakudo c76d8d:  ( no output )
21:06 [particle]- std: class Test {}; $nn = "Test"; {$nn}.new;
21:06 p6eval std 26545: OUTPUT«Potential difficulties:␤  Variable $nn is not predeclared at /tmp/qfKBNgPHdt line 1:␤------> [32mclass Test {}; $nn[31m = "Test"; {$nn}.new;[0m␤  Variable $nn is not predeclared at /tmp/qfKBNgPHdt line 1:␤------> [32mclass Test {}; $nn = "Test"; {$nn[31m}.new;[0m␤ok 00:04
21:06 p6eval ..3...
21:06 Tene [particle]-: 'my'
21:06 [particle]- std: class Test {}; my $nn = "Test"; {$nn}.new;
21:06 p6eval std 26545: OUTPUT«ok 00:04 36m␤»
21:06 charsbar joined #perl6
21:06 pmichaud @message moritz  my analysis of the xml parsing problem: http://nopaste.snit.ch/16427
21:06 lambdabot Maybe you meant: messages messages?
21:06 [particle]- 'my' mistake :)
21:06 pmichaud @tell moritz  my analysis of the xml parsing problem: http://nopaste.snit.ch/16427
21:06 lambdabot Consider it noted.
21:06 jnthn rakudo: class Test { }; eval('Test').new.WHAT.say;
21:06 p6eval rakudo c76d8d: OUTPUT«Test()␤»
21:07 keta BTW: The two second forms return an object of type 'Test'
21:07 jnthn keta: That way works.
21:07 pmichaud eventually it should be ::('Test')  or ::($nn)
21:07 keta That is what made me believe that this is the way to go
21:07 pmichaud i.e., when we do namespace interpolation.
21:07 pmichaud afk, have to run errands
21:08 keta jnth: The eval {} one you mean?
21:08 keta eval (), sorry
21:08 eric256 there forked perl6/perl6-examples on eric256/perl6-examples  .... i think thats the right thing to do
21:09 [particle]- duh! i totally blanked on ::()
21:10 jnthn keta: Yes, the eval one will work for now.
21:10 jnthn keta: There will be a neater way in the long run (the syntax pmichaud showed)
21:10 jnthn Tene: See nopaste
21:11 jnthn http://nopaste.snit.ch/16428
21:12 jnthn Tene: oh, hang on a moment...
21:12 keta jnthn: okay, it does work. thank you!
21:12 jnthn Tene: Once I put a :main on the main there that much works...
21:14 PerlJam rakudo: class Foo { }; my $x = "Foo";  my $y = $x.new;  $y.WHAT.say;
21:14 p6eval rakudo c76d8d: OUTPUT«Foo()␤»
21:14 PerlJam So, is that a bug then?
21:15 pmichaud it sure looks like one to me.
21:15 [particle]- yes.
21:15 pmichaud I would've expected Str
21:15 [particle]- Str()
21:15 [particle]- WHAT adds parens, dunnit?
21:15 [particle]- rakudo: Int.WHAT.say
21:15 p6eval rakudo c76d8d: OUTPUT«Int()␤»
21:15 [particle]- ja.
21:16 pmichaud current commit list for perl6-examples in perl6:  masak moritz particle eric256 pmichaud mberends jnthn unobe s1n cspencer
21:16 pmichaud I bet that when .new tries to get the class of $x, it's doing a class lookup (because of the way Parrot's various get_class operations work)
21:17 pmichaud it's more of that evil "classnames aren't strings" problem.
21:17 jnthn ewww.!
21:17 pmichaud we're going to be paying for that for some time, I fear.
21:18 pmichaud there are just too many parts of parrot that think that strings identify classnames and vice versa
21:18 pmichaud okay, gotta run to store.  back later.
21:19 [particle]- buy something, or the terrorists win!
21:21 jnthn Tene: It's certainly some stuff in .include 'src/gen_builtins.pir' that is causing it.
21:24 jnthn Tene: Narrower - it's something in src\classes\Hash.pir
21:26 jnthn Tene: And closer yet - changing in Hash.pir the line:
21:26 jnthn hashproto = p6meta.'new_class'('Perl6Hash', 'parent'=>'Mapping', 'name'=>'Hash')
21:26 jnthn to
21:27 jnthn hashproto = p6meta.'new_class'('Perl6Hash', 'parent'=>'Mapping')
21:27 jnthn Avoids the explosion too.
21:27 Tene Interesting.
21:27 jnthn So, curious now to look at what happens in new_class with the name parameter...
21:30 jnthn Tene: We end up doing a set_root_global ns, $S0, protoobject
21:31 jnthn (The relevant code is in P6object.pir, in .sub 'register' :method
21:32 jnthn Tene: My guess (may be wrong) is that we store the proto-object in the wrong place, or something looks it up in the wrong place.
21:33 jnthn And then it calls Hash.new explecting to call it on the proto-object
21:33 jnthn But instead calls it on Parrot's Hash PMC
21:33 jnthn Which then goes bananas.
21:35 jnthn Tene: Or vice versa.
21:35 Tene interesting
21:35 Tene could be
21:35 jnthn I did a --trace=1
21:35 jnthn The line we crash on:
21:35 jnthn new P0, "Hash"
21:35 jnthn erm, the instruction, not line...
21:35 Tene ouch
21:36 jnthn Tene: If we want to create a Parrot-level Hash, what's the correct incantation?
21:36 jnthn (Under .HLL 'Perl6')
21:37 Tene I have no idea whatsoever.  Seriously.  There are so many different ways to instantiate a class I can't remember them.
21:37 Tene by strings, by namespaces, by classes, getting classes from strings, getting classes from namespaces, etc.
21:40 kane__ joined #perl6
21:42 [particle]- $P0 = new ['parrot';'Hash']
21:42 jnthn [particle]-: been there, tried that
21:42 [particle]- nyi i suppose
21:43 jnthn Tene: OK, the long and the short of it is...
21:43 jnthn Whenever we want to use a Parrot class from 'Perl6'
21:43 jnthn we gotta explicitly state it's coming from parrot
21:43 jnthn (Note: maybe only if it's something we associated with another name ourself though)
21:44 [particle]- $P0 = get_root_namespace ; $P0 = $P0.'find_type' 'Hash' ; $P0 = new $P0 ??
21:44 [particle]- er, forgot parens
21:44 [particle]- i need to build a parrot here...
21:45 wknight8111 joined #perl6
21:45 Tene jnthn: looks like it might be $P0 = get_root_namespace ['parrot';'Hash']; $P1 = get_class $P0; $P2 = new $P1
21:45 Tene oslt
21:46 jnthn Tene: I found a way that worked, I've been patching it up all over. :-)
21:46 Tene what is it?
21:46 jnthn Tene: I've got us to an error rather than a segv now
21:46 jnthn can I push?
21:46 Tene Yes, please.
21:47 jnthn Tene: Hmm. I did a git commit .. then a git push origin master and got
21:47 jnthn git push origin master
21:47 jnthn erm
21:47 [particle]- jnthn: macro?
21:48 jnthn Everything up-to-date
21:48 Tene jnthn: git push origin hll
21:48 jnthn error: src refspec hll does not match any.
21:48 jnthn fatal: The remote end hung up unexpectedly
21:48 jnthn error: failed to push some refs to 'git@github.com:rakudo/rakudo.git'
21:49 jnthn (that was for git push origin hll)
21:49 Tene huh
21:49 arnsholt Quick poll: should it be Grammar::SQL, or SQL::Grammar?
21:51 Tene try: git push origin hll:hll
21:51 mberends SQL::Grammar # the Grammar word is so overloaded
21:51 jnthn same
21:51 jnthn Tene: I did git branch -a and I see
21:51 jnthn * (no branch)
21:51 jnthn As the current branch.
21:52 Tene git checkout -b hll
21:52 jnthn ah, that helped
21:52 jnthn then did git push origin hll
21:52 Tene ah
21:52 PerlJam arnsholt: I always (granted I haven't done it much), use Thingy::Grammar
21:52 jnthn See if you can pull the patches now
21:52 jnthn It pushed *something*
21:53 Tene yes, got it
21:54 jnthn Tene: OK. Next failure is here:
21:54 jnthn proto = p6meta.'new_class'('Multi', 'parent'=>'Perl6MultiSub Code Any')
21:54 jnthn Or in fact anywhere that we list something in parent where the class lies in the Parrot ns
21:54 Tene parrot;Perl6MultiSub
21:54 jnthn OK, but that is a Perl6 PMC.
21:55 jnthn (dynpmc)
21:55 jnthn Or do those go into the Parrot HLL anyway?
21:55 Tene yes, but there's no way to put PMcs in the HLL namespace
21:56 jnthn OK, that helped
21:56 jnthn Now we get stuck here
21:56 jnthn matchproto = p6meta.'new_class'('Match', 'parent'=>'PGE::Grammar Any')
21:57 Tene yeah, 'sec
21:57 Tene issue with exports... my screwup
21:57 jnthn Ah, OK.
21:57 * jnthn is glad we're getting somewhere.
21:58 eric256 left #perl6
21:59 Tene jnpull
22:00 Tene jnthn: pull
22:00 Tene ah, need to export PAST too
22:00 jnthn Tene: Hm, it's whining about not knowing what branch to merge into now?
22:00 Tene eh?
22:01 Tene try: git fetch; git rebase origin/hll
22:02 jnthn Tene: Yup, gets us further now.
22:02 jnthn Tene: Guess you're sorting out exporting PAST too?
22:02 Tene yes
22:02 jnthn ok
22:02 Tene pushed
22:03 Tene and another segfault!
22:03 jnthn oh joy
22:03 Tene 24275 new P1, PC3005                                        P1=Object(PAST;Var)=PMC(0x1ca98a0) PC3005=Key=PMC(0x1d70e10)
22:04 cspencer joined #perl6
22:04 jnthn I guess what's interesting is what's in that key...
22:05 cspencer rakudo: class Foo { our List of Pair multi method bar() { } }
22:06 p6eval rakudo c76d8d: OUTPUT«Use of protoobject as value␤»
22:06 arnsholt Does anyone know if it's possible to convert an OpenSSH RSA key to DSA? Looks like github doesn't like RSA
22:06 jnthn cspencer: List ain't a parametric role just yet.
22:06 cspencer jnthn: that'd explain it :)
22:06 jnthn A nicer error could be good.
22:07 jnthn Positional of Pair would work by the way
22:08 cspencer in the definition for "classify" it says: (:@even, :@odd) := classify { ... } - how do things get sorted into the @evn and @odd arrays?
22:08 cspencer (sorted is probably the wrong word)
22:10 Tene jnthn: should %?CLASSMAP be a parrot hash or a perl 6 hash?
22:10 Tene jnthn: the segfault is a new ['Hash'] on perl6.pir :120
22:10 Tene but it's a var exposed to perl 6, so should be get_hll_global 'Hash', yes?
22:10 jnthn parrot one probably
22:11 Tene oh?  'kay.
22:11 jnthn or could be either I guess
22:11 jnthn yeah, by that point I think it could safely be either.
22:11 TimToady [particle]-: no, it dun't.  stringification adds the parens, not .WHAT
22:11 Tene ah, it's for the compiler
22:11 jnthn Yes, it is.
22:11 * Tene commits
22:11 jnthn But we'd get away with either.
22:11 jnthn I had figured out we didn't survive the onload
22:11 jnthn in main.pir
22:11 jnthn looiks like you just nailed why.
22:11 Tene pushed
22:12 Tene now another error
22:12 PerlJam cspencer: what do you mean ?
22:12 jnthn Tene: s/hll/root/
22:13 jnthn $P0 = get_root_global ['parrot'], 'Hash'
22:13 jnthn or
22:13 Tene pushed
22:13 Tene thanks
22:13 jnthn Great
22:13 jnthn Now we actually make it into parse
22:13 PerlJam cspencer: classify builds a list of pairs, where the keys are determined by the code and the values are values from the list
22:13 Tene I know the problem here.
22:13 cspencer PerlJam: right, i got that part
22:14 jnthn In fact, ..\..\parrot perl6.pir now gets us to a prompt. :-)
22:14 [particle]- timtoady: aha! thanks for the clarification
22:14 cspencer PerlJam: in the example though, the odd numbers and even numbers get separated out into two arrays after being returned from classify
22:14 cspencer PerlJam: (the @odd and @even arrays) and I'm wondering how that bit of magic happens
22:14 bacek joined #perl6
22:14 jnthn cspencer: Looks like it may be named parameter binding.
22:15 PerlJam cspencer:  ....  :@even is the same thing as :even(@even)
22:15 jnthn We don't do taht yet in Rakudo.
22:15 cspencer jnthn: so it's not classify that's doing that
22:15 jnthn (for return values)
22:15 PerlJam cspencer: oh, no.  there's nothing special about classify in this regard.
22:15 jnthn cspencer: classify will do something like building a hash { odd => [ ... ], even => [ ... ] } I expect
22:15 jnthn And then return it as something like return |%the_hash
22:16 jnthn Tene: OK, let me know what you want me to pull again and look at anything more. :-)
22:16 eMaX_ joined #perl6
22:16 cspencer thanks for the clarification :)
22:16 eMaX_ re
22:16 Tene got to another segfault!
22:17 jnthn ;-)
22:17 jnthn Surprise! ;-)
22:17 jnthn Tene: pushed?
22:17 Tene no, 'sec
22:17 jnthn kk
22:18 nihiliad joined #perl6
22:18 Tene pushed
22:18 PerlJam jnthn: wait ... rakudo does named parameters in signatures, doesn't it?  Wouldn't that be the same code for  (:@even, :@odd) := ...   ?
22:20 mberends TimToady: re underscore is alpha per http://irclog.perlgeek.de/perl6/2009-04-27#i_1097419, would it not be more Posix compatible to have <alpha> without _ and <word> with _, as here: http://en.wikipedia.org/wiki/Regular_expression#POSIX_character_classes
22:20 TimToady POSIX is so 20th century...
22:21 mberends oh :)
22:21 TimToady I pay about >< this much attention to POSIX anymore
22:21 mberends lol
22:21 LylePerl left #perl6
22:22 jnthn PerlJam: The problem is probably not there.
22:22 jnthn PerlJam: The problem is more that return with more than a single value doesn't work just yet.
22:22 LylePerl joined #perl6
22:22 PerlJam jnthn: oh.
22:22 jnthn Tene: pulling
22:23 jnthn std: my (:@foo, :@odd) = foo();
22:23 p6eval std 26545: OUTPUT«Undeclared routine:␤   foo used at 1 ␤ok 00:02 36m␤»
22:23 jnthn std: :(:@foo, :@odd) = foo();
22:23 p6eval std 26545: OUTPUT«Undeclared routine:␤   foo used at 1 ␤ok 00:02 36m␤»
22:23 jnthn Tene: IIRC the second of those may not do what you want.
22:24 jnthn erm
22:24 TimToady yes, it doesn't actually declare any variables
22:24 jnthn PerlJam: ^^
22:24 jnthn TimToady: Well, more than that, it doesn't actually update any existing declared variables either.
22:24 TimToady that too
22:24 Tene jnthn: oh?
22:24 jnthn Tene: pulled but still see failure in parse?
22:25 Tene jnthn: yes
22:25 Tene I get a segfault now
22:25 jnthn Tene: sorry, the messages was for PerlJam
22:25 Tene ah
22:25 Tene Right, I see now
22:26 hercynium joined #perl6
22:26 PerlJam TimToady: is :@foo a syntactic feature?  Or could :(my @foo) be used to declare and assign?
22:26 jnthn Tene: Yup, see the segv
22:27 TimToady my makes no sense inside a signature
22:27 TimToady std: :(my @foo)
22:27 p6eval std 26545: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/FZWCFfzdpH line 1:␤------> [32m:([31mmy @foo)[0m␤    expecting any of:␤   parameter␤        signature␤        type_constraint␤  typename␤       whitespace␤FAILED 00:02 37m␤»
22:28 PerlJam okay.
22:28 jnthn Tene: ..\..\parrot perl6.pir -e "42" is more helpful
22:28 jnthn Tene: Note that --target=pir works
22:28 jnthn Tene: So we make it all the way to runtime
22:28 TimToady std: class my {...}; :(my @foo)
22:28 p6eval std 26545: OUTPUT«ok 00:02 38m␤»
22:29 Tene jnthn: also past
22:29 Tene erm... past is before pir
22:29 Tene ><
22:29 jnthn Tene: ish. We segfault as soon as we try say 42 though (even --target=parse fails for say 42)
22:30 TimToady commuting &
22:33 jnthn Tene: we crash on a 171690 callmethodcc P11, "list"
22:33 jnthn When parsing say 42
22:33 jnthn P11=Object(PAST;op)
22:33 jnthn erm, Op
22:34 jnthn Tene: I don't know if this is interesting, but I think the list method is inherited from the Capture PMC
22:35 jnthn Tene: Line 546 of capture.pmc looks scary
22:36 angelixd joined #perl6
22:36 pmichaud hello
22:36 pmichaud looks like jnthn++ Tene++ are making great progress on .HLL
22:36 moritz_ pmichaud: thanks for your analysis, I think it's spot on. Unfortunately I've failed to reduce it to a simple example with which I could debug .chunks
22:36 moritz_ well, that'll have to wait until tomorrow
22:36 pmichaud moritz_: if I get a bit of time tonight or tomorrow I might be able to look at it
22:37 pmichaud jnthn: (Line 546)  I wonder if that's still needed.
22:37 pmichaud I'm guessing "yes".
22:37 jnthn Tene: Actually, I just set a breakpoint in the list method
22:37 jnthn And we don't make it into there.
22:38 jnthn pmichaud: Is list in Capture PMC the one that is inherited by a PAST::Op?
22:38 pmichaud iirc, yes.
22:38 jnthn I'm wondering if we're hitting some oddness in calling PMC methods in a foreign HLL.
22:39 pmichaud seems like a lot of things would fail if that's the case
22:39 pmichaud I would think we'd see failure much earlier.
22:39 jnthn Well, we fail at parsing say 42, so that counts. ;-)
22:39 pmichaud I would think we'd never even be able to build a perl6.pbc
22:39 jnthn We can't.
22:39 jnthn This is with the stage 1.
22:39 pmichaud a _s1.pbc, then?
22:40 pmichaud I think even that would fail.
22:40 jnthn Hmm.
22:40 pmichaud oh, perhaps not.
22:40 jnthn All we've done up to that point is set up various built-in classes.
22:40 pmichaud right, and compiling the grammar is still being done in the 'parrot' HLL
22:40 pmichaud so... hm.
22:41 jnthn my crappy debugger doesn't give me many hints where we stack overflow on.
22:41 jnthn But a --trace=1 shows it's on a callmethod with list
22:41 jnthn And on a PAST::Op instance.
22:41 pmichaud I should check out a copy of what you guys are working on
22:41 pmichaud how do I get to the branch you're on (in git)?
22:42 moritz_ git checkout -b hll origin/hll
22:42 moritz_ (probably)
22:42 moritz_ if that's the branch they're working on
22:42 jnthn yes, that one
22:43 pmichaud that branch is still tied to parrot r38250, yes?
22:43 moritz_ (and 'git checkout master' to get back)
22:43 pmichaud I just cloned a new repo for this :-)
22:43 pmichaud easier to be doing several things at once
22:45 jnthn hmm
22:46 jnthn I think it maybe isn't so simple
22:46 pmichaud wait a second
22:46 pmichaud I think the problem _cannot_ be in the 'list' method of Capture
22:46 jnthn http://nopaste.snit.ch/16430
22:46 pmichaud at least, that can't be the core of the problem.
22:46 jnthn pmichaud: I suspect too now.
22:47 pmichaud If that's the problem, then none of the languages in other HLLs would work.
22:47 jnthn Because if it was just that, I'd expect us not to print "alive"
22:47 * Tene back from phone call
22:47 pmichaud because all HLLs using PCT ultimately have to call 'list' on Capture PMCs (and presumably do so from within their HLL space)
22:47 jnthn Aye
22:48 pmichaud well, perhaps it's possible that none of those HLLs are doing that at runtime, though.
22:48 pmichaud oh wait, of course they are.
22:48 pmichaud Otherwise they couldn't compile anything.
22:48 jnthn rakudo: say Capture
22:48 p6eval rakudo c76d8d: OUTPUT«Capture()␤»
22:48 pmichaud unless their actions.pm equivalent is running in 'parrot', which I suspect is not the case.
22:49 dextius joined #perl6
22:50 dextius anyone here use parrot/perl6 on a mac?
22:52 pmichaud okay, when I try to build the hll branch, I end up at the gen_setting.pm step and it starts consuming all my memory
22:52 pmichaud I suspect if I wait long enough it'll segfault :-)
22:52 pmichaud dextius: I'm not on a mac, sorry.
22:53 jnthn pmichaud: There's certainly something odd going on because if I remove .include 'src\classes\Capture.pir' in gen_builtins.pir we fail in a different place.
22:53 dextius no problem.. did an update and am having trouble compiling it..  (parrot builds fine)
22:53 moritz_ dextius: masak does, but he's not online right now
22:53 dextius that's cool.. I'll come back later.. thanks!
22:53 moritz_ dextius: after rebuilding parrot you have to do a 'make clean' in rakudo#s dir
22:53 moritz_ s/#/'/
22:53 dextius yeah, tried that..
22:54 pmichaud jnthn: fail in a different place is often normal with segfaults (more)
22:54 jnthn (We then fail in doing a P2, "Iterator", P0 in HLLCompiler when handling the --target=parse)
22:54 pmichaud jnthn: I've also noticed that -t1 is not a reliable indicator of where things fail.
22:54 jnthn That's true, but it's been serving fairly well so far tonight in showing up what is wrong.
22:55 moritz_ dextius: can you please nopaste the error message?
22:55 dextius sure, one sec..
22:55 jnthn Anyway from what I can see this boils down to us confusing our Captures.
22:55 dextius perl -e "" > src/gen_setting.pir
22:55 dextius src/string/api.c:762: failed assertion 'encoding'
22:55 jnthn Or one problem does anyways..
22:56 pmichaud jnthn: I don't quite follow that.
22:56 jnthn pmichaud: re-read
22:56 jnthn (about removing Capture.pir)
22:56 jnthn Or is it still not clear?
22:56 pmichaud it's still not clear, sorry.
22:57 jnthn Ah, OK. I'll try and explain better.
22:57 jnthn If I remove Capture.pir being .include'd from gen_builtins.pir then we do not fail at calling .list
22:58 jnthn We've been fixing a lot of issues where we'd do something like new 'Hash' and it would look at the Rakudo Hash rather than the Parrot Hash PMC, which is what those cases needed.
22:58 pmichaud but I can't think of any instances where we ever do   new 'Capture'
22:58 jnthn I'm suspecting that our Capture namespace entry is obscuring our lookup of the Capture PMC that we are inheriting from.
22:59 jnthn We don't; I'm fearing that the Object PMC gets it wrong.
22:59 pmichaud Parrot's Object PMC ?
22:59 jnthn Yes. When it creates the proxy object.
22:59 pmichaud Oh.  I think that's highly likely.
22:59 Tene btw, if I remove all of the .HLLs from the hll branch, everything succeeds.  This is not particularly relevant, but still good.
22:59 pmichaud I think I even filed some tickets on this issue, or at least some messages to parrot-dev
23:00 pmichaud bundled in with my complains about Parrot's object system using strings for classnames instead of something more unique.
23:00 pmichaud *complaints
23:00 jnthn Actually VTABLE_instantiate in class.pmc
23:01 jnthn is what I meant
23:01 jnthn not object.pmc itself
23:02 jnthn hmm
23:02 jnthn doesn't look so obviously wrong as I first expected
23:02 pmichaud here's what bugs me (more)
23:02 pmichaud both Parrot_oo_get_class and Parrot_oo_get_class_str want to do all of their lookups based on the interpreter's current hll
23:03 pmichaud including proxies.
23:03 jnthn oh, hang on
23:04 jnthn What HLL would we be in when PAST::Op adds Capture as a parent?
23:04 pmichaud parrot
23:04 jnthn OK.
23:04 pmichaud because that's done in PCT.pbc
23:04 pmichaud (at least that's where I think it should be done)
23:04 pmichaud and all of the subs in PCT.pbc are in the 'parrot' hll namespace
23:06 jnthn OK
23:06 * jnthn stares at object.pmc's find_method
23:06 jnthn some bits of Parrot don't look like I used to know 'em... :-S
23:06 pmichaud oh!
23:06 pmichaud here's a problem.
23:07 pmichaud at least, I think it's a likely problem.
23:07 pmichaud see if you can follow my logic here
23:07 pmichaud when I call PAST::Op.list from actions.pm, I'm in the perl6 hll
23:07 pmichaud yes?
23:07 jnthn I'd imagine so.
23:08 nbrown joined #perl6
23:08 pmichaud since PAST::Op ultimately inherits its list method from Capture, we jump straight to Parrot_Capture_nci_list
23:08 pmichaud (well, not "straight", but there aren't any intermediate things that might be changing our interpreter's idea of the current HLL)
23:08 pmichaud so it then tries to run Capture.list in the perl6 HLL namespace
23:09 pmichaud but we ultimately get to
23:09 pmichaud if (PObj_is_object_TEST(pmc)) {
23:09 pmichaud STRING *classname = CONST_STRING(interp, "Capture");
23:09 pmichaud PMC    *classobj  = Parrot_oo_get_class_str(interp, classname);
23:09 km2 joined #perl6
23:09 pmichaud and Parrot_oo_get_class_str tries to get the class/proxy based on the interp's current HLL
23:09 pmichaud which happens to be 'perl6' instead of 'parrot' at this point, because nothing has changed it.
23:09 jnthn That would seem to be a good explanation apart from, why does http://nopaste.snit.ch/paste work?
23:10 pmichaud which nopaste?
23:10 jnthn heh, fail
23:10 jnthn http://nopaste.snit.ch/16430
23:10 pmichaud let me try it and think for a second
23:11 jnthn $P0 = $P0.'new'(1,2,3)
23:11 jnthn say "instantiated"
23:11 jnthn $P1 = $P0.'list'()
23:11 jnthn say $P1
23:11 jnthn If you change it to that it becomes more explicit btw
23:11 jnthn (that it does the right kinda thing)
23:11 jnthn (rather than just lives)
23:11 jnthn Other than that, though, it does all make a lot of sense.
23:12 jnthn Aside from when I set a breakpoint inside list it didn't trigger.
23:12 pmichaud one difference is that rakudo has its own ['Capture'] namespace.
23:12 pmichaud or, more precisely, its own Capture protoobject.
23:12 pmichaud which would occupy a slot in the HLL symbol table.
23:12 pmichaud where Parrot_oo_get_class_str would be attempting to read a namespace.
23:14 pmichaud that doesn't seem to be causing a problem here, though.
23:14 jnthn Aye, tried that here and it didn't recreate it.
23:15 pmichaud it still seems like it has to be something more subtle; otherwise other HLLs would be encountering problems.
23:15 arnsholt What's the incantation to call a method in a superclass?
23:15 jnthn Actually
23:15 jnthn .namespace ['Perl6Capture']
23:15 jnthn So it isn't a .namespace ['Capture'] that's doing it.
23:16 pmichaud but there's still a 'Capture' protoobject.
23:16 moritz_ arnsholt: I think it sould work with SUPER or with WALK, but I don't think that either is implemented ATM
23:16 pmichaud callnext, I think.
23:17 moritz_ doesn't that just use the next nearest dispatching candidate?
23:17 pmichaud sure, which would often be the superclass.
23:17 pmichaud but there can be more than one superclass, so SUPER doesn't cut it.
23:18 payload joined #perl6
23:18 pmichaud (this question came up at NPW hackathon, and istr that TimToady's answer was "callnext")
23:18 jnthn pmichaud: I just tried to stick something random into Capture with set_hll_global and that didn't make it fail either.
23:18 pmichaud jnthn: yes, I tried that also.
23:18 moritz_ rakudo: class A { multi method a(Int $x) { 'A' } }; class B { multi method a(Int $x) { say 'A1'; say callnext(3) }; multi method a(Int $x, $y?) { 'A2' } }; B.new().a(4)
23:18 p6eval rakudo c76d8d: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:(Object() self, Int() $x)␤:(Object() self, Int() $x, Any() $y?)␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 472 (src/classes/ClassHOW.pir:103)␤»
23:19 moritz_ Object self?
23:19 moritz_ why not A self or B self?
23:20 jnthn moritz_: It should be that, that's a known not-done-yet thing.
23:20 moritz_ jnthn: ok
23:20 moritz_ rakudo: class A { multi method a(Int $x) { 'A' } }; class B { multi method a(Int $x) { say 'A1';  }; multi method a(Int $x, $y?) { 'A2' } }; B.new().a(4)
23:21 p6eval rakudo c76d8d: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:(Object() self, Int() $x)␤:(Object() self, Int() $x, Any() $y?)␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 472 (src/classes/ClassHOW.pir:103)␤»
23:21 arnsholt Right. And the workaround was with WALK?
23:21 moritz_ am I right in assuming that the first method a in B should be tighter?
23:23 Tene I need to go home now... I'll read scrollback later tonight.
23:24 pmichaud jnthn:  http://nopaste.snit.ch/16431   # this succeeds also
23:24 jnthn moritz_: I'm not sure on that one. I have run across that one before and wondered what an exact arity match means.
23:24 jnthn moritz_: IIRC, it wasn't clear from the spec...I should check it again though.
23:25 jnthn pmichaud: Ouch. :-S
23:25 pmichaud jnthn: I think that pretty clearly establishes Capture the same way that perl6.pbc is doing it :-|
23:25 jnthn pmichaud: Does .list return something sensible too, say if you'd called .new(1,2,3)
23:26 jnthn pmichaud: Also, can you re-produce that removing Capture.pir from gen_builtins.pir makes a difference to where we make it to in the trace?
23:26 moritz_ bed&
23:26 pmichaud pmichaud@orange:~/hll$ parrot/parrot x.pir
23:26 pmichaud Op
23:26 pmichaud instantiated
23:26 pmichaud 3
23:26 pmichaud alive
23:26 pmichaud (where the '3' is the result of printing the result of $P0.'list'()
23:27 jnthn sure
23:27 pmichaud jnthn: when I try to build past the stage 1 compiler I never get to a segfault.
23:27 pmichaud I just loop for a very long time and eat up tons of memory.  On this box, that could take a while.
23:27 jnthn 32 or 64 bit?
23:27 pmichaud 64
23:27 jnthn Also
23:27 jnthn it's a stack overflow rather than a segfault.
23:28 pmichaud okay
23:28 jnthn So if you offer much stack space, yes, it may go on for a while. ;-)
23:28 pmichaud my stack will take a long time to overflow :-)
23:28 pmichaud trying w/o Capture.pir
23:28 jnthn patience ;-)
23:28 jnthn Re-verifying that it really does make a difference here.
23:29 pmichaud Could not find non-existent sub !fixup_routine_type
23:29 pmichaud current instr.: '' pc 71 (EVAL_30:32)
23:29 pmichaud (that's with Capture.pir commented out of src/gen_builtins.pir)
23:31 jnthn That means we're making it to runtime.
23:31 pmichaud more likely we're making it to BEGIN blocks
23:31 pmichaud not necessarily to runtime.
23:31 jnthn sure
23:31 jnthn I fail elsewhere, but anyways
23:31 jnthn We can both re-produce that this moves the point of failure.
23:32 pmichaud but what happens if I just move Capture.pir earlier...?
23:33 jnthn try it
23:33 pmichaud trying it now
23:34 pmichaud oh, here's an intresting test.  Just a sec.
23:34 pmichaud (I think my build is on its way to stack overflow.)
23:36 jnthn also
23:36 jnthn If I change
23:37 jnthn captureproto = p6meta.'new_class'('Perl6Capture', 'parent'=>'parrot;Capture Any')
23:37 jnthn to
23:37 jnthn erm, that's what I changed it to
23:37 jnthn Note I removed , 'name'=>'Capture'
23:37 jnthn That moves the problem jsut the same too.
23:39 pmichaud that still seems to imply a problem with a ns lookup, then.
23:39 jnthn Yes.
23:40 pmichaud the 'name'=>'Capture' is what causes the protoobject to be stored as 'Capture' instead of 'Perl6Capture'
23:40 jnthn Right.
23:40 jnthn I still don't understand why http://nopaste.snit.ch/16431 works though.
23:40 pmichaud my suggestion would be to see how much farther we can get without the Perl6Capture class.
23:40 pmichaud me neither.
23:40 jnthn I even moved the .include lines above the thing just to make sure it's not an ordering issue. It's not.
23:42 skids_ joined #perl6
23:43 pmichaud omfg
23:43 pmichaud you aren't going to like this.
23:43 pmichaud oh, wait
23:44 pmichaud let me do a very clean rebuild before I report it :-)
23:45 * jnthn is curious
23:45 pmichaud okay, starting with clean version of hll branch
23:45 pmichaud no modifications
23:46 pmichaud building from perl6_s1.pbc eats up my memory
23:46 pmichaud but if I repeat the compilation of gen_setting.pm
23:46 pmichaud *with* the -G flag
23:46 jnthn omfg
23:46 pmichaud I get nearly instant segfault.
23:47 pmichaud oh!
23:47 pmichaud but hey!  that means I can gdb it!
23:48 pmichaud and I do have some sort of bizarre loop.
23:48 pmichaud backtrace is at least 1759 levels deep.
23:49 pmichaud (any easy way to determine the depth of the backtrace...?)
23:49 jnthn Dunno, don't have much gdb foo
23:49 jnthn Can you paste me the top of it?
23:49 cspencer is it safe to assume that when classify.t says "classify { $_ * 5 } 1,2,3,4", it intends for a comma to be present between the code block and the remaining args?
23:49 pmichaud nopasting
23:49 TimToady yes
23:49 jnthn cspencer: think so.
23:50 jnthn looks like a p5ism
23:50 cspencer i'll fix that up in the spec tests then
23:50 TimToady p6 never allows two terms in a row
23:50 pmichaud jnthn: http://nopaste.snit.ch/16432
23:50 * jnthn wrote a C# version of classify, then wrote an article about it, and most of the comments were "omfg what's that lambda expression stuff?"
23:51 jnthn "Multi-Paradigm C#" is a book that needs writing...and reading.
23:51 jnthn pmichaud: Ah. That's a familiar backtrace...
23:52 jnthn pmichaud: Any idea what is at the base of it?
23:52 pmichaud see, I *told* you it was Parrot_oo_get_class_str !!!   :-) :-)
23:52 jnthn bt -20
23:52 jnthn maybe
23:52 jnthn ;-)
23:52 jnthn pmichaud: Yes, it's *certainly* doing the wrong thing in there for exactly the reaons you mention.
23:53 pmichaud okay, Parrot_PMCProxy_init_pmc is prominent
23:53 pmichaud I bet it's trying to find the Capture proxy
23:53 pmichaud in the wrong hll
23:54 jnthn right
23:55 pmichaud everytime I see "
23:55 pmichaud PMC *pproxy = Parrot_oo_get_class_str(interp, cname);
23:55 pmichaud in the parrot source it really makes me want to cry.
23:55 pmichaud or go bash a kitten.
23:56 jnthn Well, what underlies this I guess is
23:56 moritz_ joined #perl6
23:56 orafu joined #perl6
23:56 PacoLinux joined #perl6
23:56 patmat joined #perl6
23:56 presh joined #perl6
23:56 antiphase joined #perl6
23:56 kolibrie joined #perl6
23:56 jnthn interp->vtables[type_num]->mro
23:56 jnthn Is a list of strings.
23:56 wknight8111 or go csh a kitten
23:56 pmichaud some things are too cruel even for kittens.  :-)
23:57 r0bby joined #perl6
23:57 pmichaud jnthn: A list of strings.  Really.  Why am I not surprised?
23:58 pmichaud shouldn't it be... umm... a list of pointers to the class objects?
23:58 jnthn Well, back in the day, I guess there wasn't much else for it to be.
23:58 jnthn Because PMCProxy only started to exist relatively late.
23:58 kolibrie joined #perl6
23:58 jnthn To try and deal with the "there is no class object for a PMC" issue.
23:58 orafu joined #perl6
23:58 pmichaud a proxy has a mro?
23:59 jnthn A proxy builds a list of the parents for introspection purposes.
23:59 wknight8111 jnthn: maybe adding classes to existing PMCs is a way forward
23:59 jnthn But it has to do it off the mro list in the VTABLE
23:59 wknight8111 i.e. replace all PMCProxys with proper classes
23:59 pmichaud shouldn't that list be a list of other proxy pmcs?
23:59 pmichaud as opposed to names?

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

Perl 6 | Reference Documentation | Rakudo