Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-12-26

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 alester joined #perl6
01:20 alanhaggai joined #perl6
01:24 alester joined #perl6
01:37 mercutioviz joined #perl6
01:46 alc joined #perl6
02:25 abebae joined #perl6
02:35 pugs_svn r24611 | lwall++ | [parameterized.t] generic types indicated by :: rather than ^
02:36 pugs_svn r24612 | lwall++ | [STD] allow method ^foo
02:55 flw joined #perl6
03:06 buu lambdabot: help
03:06 buu lambdabot: prod
03:11 buu Anyone know anything about lambdabot ?
03:16 agentzh left #perl6
03:17 kisu joined #perl6
03:30 literal @help
03:30 lambdabot help <command>. Ask for help for <command>. Try 'list' for all commands
03:30 literal @list
03:30 lambdabot http://code.haskell.org/lambdabot/COMMANDS
03:36 kisu_ joined #perl6
03:37 meppuru joined #perl6
03:47 mercutioviz left #perl6
03:55 meppuru good night
04:03 elmex joined #perl6
04:17 cspencer joined #perl6
04:18 plash_ joined #perl6
04:31 alanhaggai_ joined #perl6
05:03 cspencer joined #perl6
05:07 xinming joined #perl6
05:11 pugs_svn r24613 | cspenser++ | More tests for infinite ranges.
05:13 pugs_svn r24614 | cspenser++ | Update plan for range tests.
05:18 alc joined #perl6
05:32 cspencer rakudo: (1..10).reverse.say
05:32 p6eval rakudo 34362: OUTPUT«01 9 8 7 6 5 4 3 2 1␤»
05:33 cspencer rakudo: (1..10).reverse.shift.say
05:33 p6eval rakudo 34362: OUTPUT«Method 'shift' not found for invocant of class 'String'␤current instr.: '_block14' pc 85 (EVAL_15:42)␤»
05:33 ingy hi
05:33 cspencer hi
05:55 ejs joined #perl6
06:05 justatheory joined #perl6
06:22 c9s joined #perl6
06:48 kisu_ joined #perl6
07:15 alester joined #perl6
08:17 mberends_ joined #perl6
08:24 maerzhase joined #perl6
08:30 zev joined #perl6
08:43 azawawi joined #perl6
08:47 alech joined #perl6
08:50 iblechbot joined #perl6
08:54 barney joined #perl6
09:15 xinming joined #perl6
09:36 alech joined #perl6
10:06 ejs joined #perl6
10:07 alech joined #perl6
10:15 alech joined #perl6
10:20 ejs1 joined #perl6
10:29 alech joined #perl6
10:35 alech joined #perl6
10:48 DemoFreak joined #perl6
10:53 alech joined #perl6
10:56 masak joined #perl6
11:12 araujo joined #perl6
11:17 pugs_svn r24615 | pmurias++ | [smop] a smop linked m0ld is *not* built by default
11:17 pugs_svn r24615 | pmurias++ | [mildew] --exec compiles the file to an executable and runs it
11:17 pmurias joined #perl6
11:19 pmurias ruoso: what command line interface would be best for mildew?
11:20 pmurias i'm leaning towards changing it towards a perl5-like one with -C compiler-backend and -B runtime-backend and -o output-file
11:56 pugs_svn r24616 | pmurias++ | [mildew] changed the CLI to a kp6y one
11:57 ruoso pmurias, hi
11:57 abebae joined #perl6
12:00 pmurias ruoso: hi
12:01 ruoso it seems that you spent the christmas working ;)
12:04 pmurias well mostly slacking off ;)
12:06 ruoso pmurias, I've been thinking.. It would be cool if mildew generated a m0ld AST instead of generating a string, and then we could have a m0ld-AST->whatever
12:06 pmurias -Cyaml?
12:07 ruoso no... I mean this AST being an intermediary representation
12:09 pmurias you mean having -Cdesugar in yaml?
12:10 pmurias how should it be called?
12:11 ruoso the intermediary representation?
12:11 ruoso what other fungus-related name do we have?
12:14 pmurias you mean the AST::* by the "intermediary representation"
12:15 ruoso hmm... the AST::* is still not mold specific
12:16 pmurias we go from AST::* straight to .m0ld
12:17 ruoso I know... but we assign registers in that transformation
12:17 pmurias it's a bit mold specific atm but i could relatively easily generalise it to other backends
12:17 ruoso I was thinking on a mold AST
12:17 ruoso no no... on the contrary...
12:17 ruoso I was talking about an even more specific mold AST
12:17 ruoso one that was already assigning registers
12:18 ruoso because we could then run optimizations on this AST
12:18 ruoso like, reducing the number of registers
12:22 pmurias hm, i'm not sure a more lowlevel form would be better for an optimizer
12:22 ruoso my idea is to have alternative ways of outputting for mold
12:23 pmurias you want to rewrite m0ld in p5 right? ;)
12:23 alester joined #perl6
12:23 ruoso not really...
12:24 ruoso I want to be able to avoid the string form of m0ld entirely
12:25 ruoso for instance, once we have this intermediary runtime representation
12:25 ruoso we can generate a C file and compile to a .so
12:25 ruoso so smop can load it as a plugin
12:26 ruoso or generate some bytecode format
12:26 ruoso or instantiate the molds directly using SMOP XS and run it
12:27 ruoso or even output the .m0ld and go through m0ld
12:28 pmurias it shouldn't be to hard to m0ld and AST::* are very close to each other so you would have to just write a simple tree transform which mixed in registers
12:29 ruoso I'm not sure how this AST should look like, tho
12:29 ruoso because the current AST::* is stack based
12:29 ruoso and mold is register-based
12:30 pmurias currently AST is tree based
12:30 pmurias adding an AST::Set with lvalue and rvalue attributes would allow using AST::*
12:31 pmurias as it has a AST::Reg which represents an register
12:32 ruoso I see, but I think a mold AST would need to have a flattened structure
12:33 pmurias you can flatten it in a simple tree traversal
12:34 ruoso I know... I know...
12:34 ruoso It's just a matter of deciding how it should look like
12:35 ruoso then from the already flattened structure, it should be much easier to produce the various outputs
12:38 pmurias got to go to grandparens for lunch&
12:38 pmurias bbl
12:48 alanhaggai_ joined #perl6
12:49 jferrero joined #perl6
12:52 Ehtyar joined #perl6
12:54 ruoso does the value that a CONTROL or CATCH block "leave" count as the "leave" for a routine?
12:57 ruoso pugs: sub foo { fail 'foo'; }; sub bar { foo(); 2; CATCH { when 'foo' {1} } }; say bar();
12:57 p6eval pugs: OUTPUT«2␤»
12:57 ruoso rakudo: sub foo { fail 'foo'; }; sub bar { foo(); 2; CATCH { when 'foo' {1} } }; say bar();
12:57 p6eval rakudo 34376: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 3994 (src/classes/List.pir:281)␤»
12:57 ruoso hmpf...
12:57 masak what does 'isa()' have to do with it?
12:57 ruoso I feel that pugs is wrong here...
12:58 ruoso I think it's the smartmatch of when
12:58 ruoso rakudo: sub foo { fail 'foo'; }; sub bar { foo(); 2; CATCH { when Str {1} } }; say bar();
12:58 masak ah.
12:58 p6eval rakudo 34376: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 3994 (src/classes/List.pir:281)␤»
12:58 ruoso rakudo: sub foo { fail 'foo'; }; sub bar { foo(); 2; CATCH { .handled = 1; 1;} } }; say bar();
12:58 p6eval rakudo 34376: OUTPUT«Syntax error at line 1, near "}; say bar"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
12:58 masak should we report the Null PMC access?
12:58 ruoso rakudo: sub foo { fail 'foo'; }; sub bar { foo(); 2; CATCH { .handled = 1; 1; } }; say bar();
12:58 p6eval rakudo 34376: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 3994 (src/classes/List.pir:281)␤»
12:58 ruoso masak, sure..
12:58 * masak reports
12:59 ruoso but anyway, should it have printed 1 or 2?
12:59 masak 1, methinks.
12:59 ruoso I think it should be 1... because "2;" was supposedly never executed
13:00 masak right.
13:00 ruoso rakudo: sub foo { fail }; sub bar { foo(); 2; CATCH { .handled = 1; 1; } }; say bar();
13:00 p6eval rakudo 34376: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 3994 (src/classes/List.pir:281)␤»
13:00 ruoso rakudo: sub foo { fail }; sub bar { foo(); 2; CATCH { 1; } }; say bar();
13:00 p6eval rakudo 34376: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 3994 (src/classes/List.pir:281)␤»
13:00 ruoso meh
13:01 masak that's strange.
13:01 masak that one didn't involve any 'whan' clause.
13:01 masak no smartmatching.
13:02 masak I might have misdiagnosed the bug in my summary, then.
13:04 * masak corrects
13:07 ruoso pugs: sub foo { fail }; sub bar { foo(); 2; CATCH { 1; } }; say bar();
13:07 p6eval pugs: OUTPUT«2␤»
13:07 ruoso elf: sub foo { fail }; sub bar { foo(); 2; CATCH { 1; } }; say bar();
13:07 p6eval elf 24616: OUTPUT«Unknown rule: statement_control:CATCH␤It needs to be added to ast_handlers.␤ at ./elf_f line 1918␤»
13:11 masak rakudo: my $a; given $a { $_ = 5 }; say $a
13:11 p6eval rakudo 34376: OUTPUT«5␤»
13:11 masak Rakudo++
13:14 ruoso should the topicalizer signature be rw?
13:14 masak good question.
13:14 masak I don't remember reading anything to that effect in the synopses.
13:15 * masak checks
13:15 araujo joined #perl6
13:16 * masak finds nothing
13:16 masak let's reason a bit about it.
13:16 masak parameters are readonly by default.
13:17 ruoso indeed
13:17 masak what about things like `for @a -> $elem`. they're readonly too, ya?
13:17 ruoso yes... but rakudo will probably pass this test for another reason
13:17 masak ...which is?
13:17 ruoso rakudo: my @a = <1 2 3 4 5>; for @a { $_ = 0 - $_ }; say @a;
13:17 p6eval rakudo 34376: OUTPUT«-1-2-3-4-5␤»
13:18 ruoso nope.. it failed
13:18 masak are you sure that's a bug, not a feature?
13:18 ruoso I'm pretty sure the default block signature doesn't contain "is rw"
13:19 masak ah - here: "Arguments bound to the formal parameters of a pointy block are by default readonly within the block."
13:19 masak but that goes only for pointy blocks.
13:19 masak "If you rely on $_ as the implicit parameter to a block, then $_ is considered read/write by default. "
13:19 masak case closed.
13:20 masak rakudo: my $a; given $a -> $foo { $foo = 5 }; say $a
13:20 p6eval rakudo 34376: OUTPUT«Cannot assign to readonly variable.␤current instr.: 'die' pc 14705 (src/builtins/control.pir:204)␤»
13:20 masak :)
13:20 ruoso ok
13:21 * ruoso just finished writing the m0ld code for ControlExceptionReturn.throw
13:22 masak what's the status of m0ld right now. I have the feeling you've been playing around with p5 bindings lately.
13:22 masak that seems like exciting work.
13:23 masak there are many times I've been wishing I could call a CPAN module from November :)
13:23 ruoso masak, take a look at v6/mildew/t/p5.t
13:23 * masak takes a look
13:24 masak $p5interpreter.eval("local \$|=1;print 'ok 1\n'");
13:25 ruoso yeah... it works
13:25 masak why don't you write it as $p5interpreter.eval('local $|=1;print "ok 1\n"'); instead?
13:25 ruoso I'm not sure mildew supports double quotes...
13:25 ruoso single quotes, actually
13:25 ruoso let's see
13:25 masak oh
13:26 * masak is wary of using eval with double quotes nowadays
13:26 ruoso mildew: $OUT.print('Hello "World"');
13:26 p6eval mildew: OUTPUT«Use of uninitialized value $output in concatenation (.) or string at mildew line 539.␤output= too many arguments --exec --file /tmp/8f67Gvfn3a at mildew line 539.␤»
13:26 masak strange error.
13:26 ruoso ah... pmurias changed the argument format
13:26 masak :)
13:27 masak well, it says $OUT.print($foo.Str); in the test file.
13:29 meppl joined #perl6
13:32 masak ruoso: ok, so you run Perl 5 code in a separate P5Interpreter?
13:32 masak that's pretty cool.
13:33 masak is there a way to exchange data between Perl 5 and Perl 6?
13:33 ruoso masak, yes...
13:33 ruoso at this moment, pmurias implemented a basic wrapping for the value returned by p5
13:33 masak ok.
13:33 ruoso but you might want to take a look at
13:33 masak been thinking about that SV* stringifying thing.
13:33 ruoso http://www.perlfoundation.​org/perl6/index.cgi?smopp5
13:34 masak the absolute best scenario would of course be if it behaved exactly like a Perl 6 scalar.
13:34 * masak looks
13:34 ruoso masak, the concept of scalar in p5 is very much different from p6
13:35 ruoso in p5 there's no much difference between the container and its value
13:35 masak true.
13:35 ruoso in p6 that difference is much visible
13:35 ruoso so a p5 scalar is a p6 Object
13:35 masak if you say so.
13:35 ruoso heh
13:36 masak it just feels to me as if `my $a = 5` in perl 5 should correspond to `$a = 5` in perl 6.
13:36 masak but you've studied these things more than I have.
13:36 ruoso masak, in practical terms, it means the same thing
13:37 ruoso concptually, in p5 "5" is a scalar
13:37 masak aye.
13:37 * azawawi wakes up
13:37 masak azawawi: ahoy!
13:38 ruoso good morning
13:38 * azawawi wakes up after a terrible headache caused by Inline::C + PPI optimizing
13:38 masak :)
13:38 azawawi lol
13:38 masak was that one or two wakings-up?
13:39 azawawi whenever i look at the NYTProf results, i get more headaches ;-)
13:39 * masak tries to run November, after a long hiatus
13:39 masak I haven't really hacked on November since November.
13:40 azawawi maybe that's why it is named November ;-)
13:40 masak azawawi: no, that's not why. :)
13:40 masak the causality actually flows more or less in the other direction.
13:41 masak (that is, I hacked on November in November because it's called November)
13:41 azawawi btw, who's hacking at mildew at the moment? and what's its status?
13:41 ruoso me and pmurias
13:41 ruoso it runs what is in v6/mildew/t
13:42 ruoso what looks like a little, but as we're not rushing in the number of tests, but instead on the number of concepts,
13:42 * azawawi takes a look
13:42 ruoso it looks a lot more than at first sight
13:45 * azawawi wonders how to make mildew
13:45 pugs_svn r24617 | ruoso++ | [smop] ControlExceptionReturn implemented
13:45 ruoso well, you actually don't need ot
13:45 ruoso it's in p5
13:45 ruoso what you need is to have smop built
13:45 ruoso mildew uses STD.pm directly
13:46 azawawi any instructions?
13:46 ruoso just run make inside the smop dir
13:46 azawawi ok
13:46 ruoso you probably will need to fetch some dependencies
13:46 ruoso unless you already run pugs
13:46 azawawi im running on feather1
13:47 ruoso ah... so it should just work, i think
13:47 azawawi so smop is what?
13:47 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop
13:48 * azawawi readws
14:21 cspencer joined #perl6
14:28 DemoFreak joined #perl6
14:29 justatheory joined #perl6
14:48 ejs joined #perl6
14:58 pugs_svn r24618 | ruoso++ | [smop] initializes return control exception
15:08 maerzhase joined #perl6
15:11 * ruoso working to make CONTROL blocks work in mildew
15:14 pmurias joined #perl6
15:14 pmurias rehi
15:15 pmurias masak: p5/smop integration is in a very early stage but it's my university "ANSI C" project so it will be progressing rapidly ;)
15:38 ruoso hmm... mildew is not running bare blocks
15:39 cspencer is anyone here a pugs svn admin?
15:41 pugs_svn r24619 | ruoso++ | [mildew] initial support for CONTROL, the control is being set, but it is still not working...;
15:41 ruoso cspencer, there are admins on this channels, but they might be away
15:43 cspencer ruoso: thanks :)
15:47 pmurias ruoso: re bare blocks - you know how to implement them yourself?
15:49 Chillance joined #perl6
15:51 vixey joined #Perl6
15:53 alanhaggai joined #perl6
15:55 Chillance joined #perl6
15:57 justatheory_ joined #perl6
15:59 pugs_svn r24620 | pmurias++ | [mildew]
15:59 pugs_svn r24620 | pmurias++ | newlines in strings works
15:59 pugs_svn r24620 | pmurias++ | added -Cast-yaml
15:59 pugs_svn r24620 | pmurias++ | [smop]
15:59 pugs_svn r24620 | pmurias++ | passing SV* back and forth works
16:05 pmurias azawawi: if smop fails to build for you with some strange error mention it, i recently moved smop to scons
16:28 stephens joined #perl6
16:30 rakudo_svn r34382 | pmichaud++ | [rakudo]: spectest-progress.csv update: 264 files, 5880 passing, 1 failing
16:30 rakudo_svn r34382 | pmichaud++ | Failure summary:
16:30 rakudo_svn r34382 | pmichaud++ |     S29-array/kv.t 9 - (42).kv works
16:31 pugs_svn r24621 | pmichaud++ | [t/spec]:  Fix error in kv.t test.
16:35 barney joined #perl6
16:38 jferrero joined #perl6
16:43 leroge joined #perl6
16:52 pugs_svn r24622 | pmurias++ | [mildew] fixed single quote handling a bit
16:52 pugs_svn r24622 | pmurias++ | [smop] added S1P::IO.unbuffered to turn off the buffering so that smop and perl5 prints can be intermixed
17:09 icwiener joined #perl6
17:12 pugs_svn r24623 | pmurias++ | [mildew] t/p5.t now uses single quotes to quote p5 code
17:17 pmichaud std:  for 3 < -> $a { $a } { .say }
17:17 p6eval std 24623: OUTPUT«00:05 87m␤»
17:18 pmichaud std:  for 3 <-> $a { $a } { .say }
17:18 p6eval std 24623: RESULT«############# PARSE FAILED #############␤Syntax error at /tmp/R2SY0CuNmx line 1:␤------> [32m( ( do { for 3 <-> $a { $a } [31m{ .say }[0m␤    expecting terminator␤00:03 36m␤»
17:22 pmurias ruoso: still working on control exceptions?
17:22 jferrero joined #perl6
17:26 pmurias ruoso: there is a problem with perl mildew file, that the Segmenentation Fault messages is not displayed
17:27 pmurias so it's best to compile the file to an executable and see what's the root of the problem
17:32 pmurias ruoso: the prototype is *not* the RI
17:32 kisu joined #perl6
17:37 ruoso pmurias, I always get that wrong
17:40 ruoso pmurias, re bare blocks: I'm not sure wow we could detect that...
17:41 pmurias wow = ?
17:41 ruoso how
17:42 pmurias ruoso: i'm currently fixing the control exception
17:42 ruoso oh... I have some changes here
17:42 ruoso let me commit it then
17:43 masak joined #perl6
17:43 pugs_svn r24624 | ruoso++ | [smop] mold supports .true, ControlExceptionReturn supports FETCH, RI assignment fixed
17:43 ruoso but now I have an infinite loop
17:44 pmurias fixed exactly that changes
17:44 pmurias :(
17:44 ruoso sorry...
17:44 pmurias np
17:45 pmurias ruoso: the infinite loop is cause by you always checking interpreter.continuation.back
17:45 ruoso what do you mean?
17:45 ruoso ah... I see...
17:48 pugs_svn r24625 | pmurias++ | [smop] fixed the infinite loop added DESTROYALL
17:48 ruoso hah
17:50 rakudo_svn r34388 | pmichaud++ | [rakudo]:  Enable -> pointy blocks to be parsed as a term.  (RT #61672)
17:50 pugs_svn r24626 | ruoso++ | [smop] fix infinite loop in ControlExceptionReturn.throw
17:51 azawawi_ joined #perl6
17:53 pmurias ruoso: does your client allow you to commit without updating?
17:53 ruoso pmurias, no, but I still had my changes after the merge
17:56 pugs_svn r24627 | ruoso++ | [smop] now I understood pmurias++ changes, reverting mine
17:57 ruoso ok, now we have a segfault
17:58 pmurias ruoso: do you know how to make mildew print out a "Segmentation Fault message"?
18:00 rakudo_svn r34390 | pmichaud++ | [rakudo]:  Make more comparison infixes "junction aware" (RT #61692)
18:00 ruoso pmurias, I think the parent process receives a signal
18:01 ruoso but wait... let me try something
18:03 pugs_svn r24628 | ruoso++ | [mildew] uses exec in place of system, and let segfaults be displayed
18:04 ruoso pmurias, any idea where this segfault comes from?
18:05 pmurias ruoso: fixed it
18:05 ruoso cool
18:06 pugs_svn r24629 | pmurias++ | [smop] fixed the cause of the segfault
18:08 ruoso I still get them
18:11 pmurias yeah, they reappeared after make
18:11 pmurias wtf is Bus error?
18:12 masak "In computing, a bus error is generally an attempt to access memory that the CPU cannot physically address."
18:12 masak Wikipedia++
18:12 masak "Bus errors can also be caused by any general device fault that the computer detects. A bus error rarely means that computer hardware is physically broken - it is normally caused by a bug in a program's source code."
18:12 masak http://en.wikipedia.org/wiki/Bus_error
18:15 ruoso pmurias, the problem appears to be in the goto call
18:17 ruoso ok... not in this goto call
18:18 alester joined #perl6
18:18 ruoso I enabled MOLD_DEBUG
18:18 ruoso and the segfault appears after a lot of DESTROYALL calls
18:18 ruoso I presume it's the moment that it is unwinding the stack
18:23 pmurias a REFERENCE on frame turns the segfault into an unhandled exception
18:24 ruoso which file/line?
18:25 ruoso it's interesting because it triggers a DESTROYALL in a moment I wasn't expecting it to
18:25 pmurias just after the mold_throw frame is created if you REFERENCE the frame the segfault doesn't happen
18:26 ruoso right... that's it...
18:26 ruoso I think
18:26 ruoso heh
18:27 pmurias ruoso: so what's the problem?
18:27 ruoso actually, I'm not sure
18:28 ruoso it seems someone is doing an additional RELEASE somewhere
18:29 masak I'd be happy if someone would look at/critique this subroutine: http://github.com/masak/druid/commit/778513
18:29 Psyche^ joined #perl6
18:30 masak it took far too long to get right in Rakudo, due to some unexpected bugs, but it's still quite nice, and makes creative use of closures.
18:32 dalek joined #perl6
18:33 ruoso_ joined #perl6
18:37 * ruoso turning MEM_DEBUG on
18:39 * pmurias has turned RELEASE off and is removing other bugs
18:39 cspencer joined #perl6
18:40 rakudo_svn r34393 | pmichaud++ | [rakudo]:  Fix regression on Range.reverse, reported by Tene++ .
18:41 pugs_svn r24630 | pmurias++ | [smop] added Code.true
18:42 kst joined #perl6
18:43 ruoso pmurias, what do you mean by "turned RELEASE off"?
18:45 ruoso oh wait... I think I got it
18:45 ruoso maybe not
18:50 rakudo_svn r34394 | pmichaud++ | [rakudo]:  Undo autothreading of infix:<===>, reopening RT #61692.
18:50 rakudo_svn r34394 | pmichaud++ | Autothreading infix:<===> causes Junction creation to fail,
18:50 rakudo_svn r34394 | pmichaud++ | and we should check if it indeed should autothread at all.
18:50 rakudo_svn r34395 | pmichaud++ | [rakudo]:  Improve parsing of -> pointy blocks to be full terms.
18:54 ruoso pmurias, ok... there's a mold being released at the wrong time
18:59 pmurias ruoso: turned RELEASE of commented out the refcount decrementation
19:00 ruoso ah... ok
19:01 cspencer pugs: my $r = 1..100:by(2); $r.shift.say
19:01 p6eval pugs: OUTPUT«*** ␤    Unexpected ":by"␤    expecting "_", fraction, exponent, term postfix or operator␤    at /tmp/Id5fMJcYt0 line 1, column 15␤»
19:15 * mberends_ trying out masak++ 's druid game. first impression: nice!
19:15 pugs_svn r24631 | pmurias++ | [mildew] fixed CONTROL block moving
19:15 pmurias ruoso: only getting the refcounts right is left
19:17 pmurias joined #perl6
19:19 ruoso pmurias, it's interesting because at some point DESTROYALL is called on a code object
19:20 ruoso and I don't have any idea why it's calling that
19:27 pmurias ruoso: we could print the smop stack trace
19:27 pmurias ...
19:28 ruoso that would be helpful
19:29 Khisanth joined #perl6
19:31 Chillance joined #perl6
19:37 masak mberends_: thank you. :) do you also get double frees/segfaults upon exit?
19:57 cspencer joined #perl6
20:10 ruoso pmurias, ok, I was using MOLD_DEBUG and I forgot that not every DESTROYALL call recurses
20:11 ruoso this means that it's not a s1p code that is destroyed suddently
20:11 ruoso it starts by destroying a mold frame
20:12 ruoso which I presume to be the outermost frame
20:19 ruoso which was what you said earlier, btw
20:23 vixey pugs: 1 + (2|3|4)
20:23 p6eval pugs: RESULT«(3 | 4 | 5)»
20:25 pugs_svn r24632 | ruoso++ | [smop] there is someone doing one improper RELEASE of a mold frame somewhere, while we dont find that, lets just leave the additional reference here, so it can work... There are a lot of other leaks and memory errors in other places, so Ill just postpone a cleanning of all that
20:25 pugs_svn ..errors
20:26 ruoso pmurias, now we need Routine, that would add the implicit CONTROL block
20:26 ruoso and the return function...
20:26 vixey pugs: (0|1) + (2|3|4)
20:26 p6eval pugs: RESULT«((2 | 3 | 4) | (3 | 4 | 5))»
20:31 Ehtyar joined #perl6
20:38 pmurias ruoso: one thing that might make refcouting errors easier to find would be to have a version of SMOP_REFERENCE specifing the thing that will keep the reference
20:42 ruoso hm?
20:42 ruoso what do you mean?
20:43 pugs_svn r24633 | pmichaud++ | [t/spec]:  Unfudge arity tests on blocks and pointy subs.
20:43 ruoso pmurias, I've been thinking... It is possible to implement the implicit CONTROL directly in mildew instead of defining a new s1p type, what do you think?
20:43 pmurias ruoso: when SMOP_REFERENCE'ing mark which object stores that extra reference
20:43 pmurias ruoso: why not?
20:43 jhorwitz joined #perl6
20:44 ruoso pmurias, hmm... making a back trace to the references would really be helpful
20:44 moritz_ perl6: my (@a, @b); @a.push(@b.pop); say @a.elems
20:44 p6eval elf 24632: OUTPUT«Can't call method "pop" on an undefined value at (eval 117) line 5.␤ at ./elf_f line 3861␤»
20:44 p6eval ..pugs, rakudo 34399: OUTPUT«1␤»
20:45 pmurias ruoso: would determining if at a given moment references are set correctly help?
20:45 ruoso pmurias, if we have a way to do that, sure it would
20:45 pugs_svn r24634 | pmichaud++ | [t/spec]:  Unfudge some pointy block tests.
20:45 alester joined #perl6
20:45 ruoso it's like adding a trace GC as a debug tool to a refcount GC
20:48 ruoso pmurias, we even already have the list with all the pointers alloc'ed
20:48 ruoso that we use to check for leaks in the end
20:50 pugs_svn r24635 | pmichaud++ | [t/spec]:  Unfudge some tests for rakudo.
20:51 ruoso pmurias, we then could add checkpoints in the program to check the sanity of the refcounting
20:51 ruoso pmurias, and make it easier to figure out where it started to go wrong...
20:52 ruoso pmurias, that would be a very important debug tool to smop/mildew
20:52 ruoso if you'd like to take that challenge it would be very much helpfull
20:52 pmurias i'll do it then ;)
20:52 pmurias shower&
20:56 kisu joined #perl6
21:02 PZt joined #perl6
21:03 pugs_svn r24636 | pmichaud++ | [rakudo]:  Unfudge a pointy block test for rakudo.
21:04 pugs_svn r24637 | pmichaud++ | [t/spec]:  Update skip message in rakudo fudge.
21:07 pmurias ruoso: i'll replace the trace_list with a beefed version which will contain the memory block size and liveness flag
21:08 ruoso alright... you're the memory czar now ;)
21:09 cspencer joined #perl6
21:12 TimToady mberends: /msg me your email and preferred nick
21:12 dduncan joined #perl6
21:12 pugs_svn r24638 | pmichaud++ | [rakudo]: unfudge a pointy block test for rakudo
21:13 gourav joined #perl6
21:13 dduncan question - I thought I read somewhere about possible syntax or otherwise discussion of invoking non-Perl6 routines etc in Perl, and what namespace this would use ... what is a current documentation source about this?
21:14 dduncan or something about common practices in Parrot for how different hosted languages invoke each other?
21:17 dduncan also, an opinion question ... what might be a good term to use for a value of some class defined by a peer language but that is visible in the current one, probably just treated as a black box in the non-declaring language such that routines from the declaring language would be needed to look inside it
21:18 dduncan for example, "foreign value", or "nonnative value" or "blackbox value" etc?
21:18 gourav hi is there anyone who could kindly help me to start my contributions to PERL development
21:18 dduncan gourav, do you mean Perl 6 specifically, or Perl 5?
21:18 gourav PERL 6
21:18 gourav there are too many documentation and too many links
21:18 dduncan I could give you a few pointers
21:18 dduncan what do you already know?
21:18 gourav that will be great
21:19 dduncan or what do you want to know?
21:19 dduncan do you want to know how to help the project?  if so, writing tests is always helpful
21:19 gourav C++, PERL, PHP and learning JAVA.... Oh! you mean on the development front
21:20 gourav I have just started reading the book PERL6 Essentials
21:20 gourav yes
21:20 gourav absolutely
21:20 pmurias don't use the PERL spelling
21:20 gourav okies perl is that right?
21:20 pmurias s/spelling/capitalisation/
21:20 dduncan that is, try writing some Perl 6 code and store it appropriately under the t/ directory of the Pugs source repository
21:21 dduncan the name of the language is capitalized Perl
21:21 gourav where is the repository and how do i know what to write? can any one mentor me on the same
21:21 dduncan gourav, have you used subversion version control before?
21:22 gourav yeah
21:22 gourav that is what we use in the office
21:22 ruoso TimToady, you mentioned once about the context of a return control exception being inside the "return" function
21:23 TimToady that's true of all exception handlers
21:23 gourav i remember once i had downloaded perl6 sourcecode as well but then the system would hang while trying to initiate the SVN
21:23 ruoso TimToady, if you would write the implicit CONTROL block of a routine, how would it look like?
21:23 gourav anyways so how do i get started?
21:24 aindilis joined #perl6
21:24 dduncan gourav, any book about Perl 6 is quite out of date, I'll point you to some online documentation ...
21:24 gourav okies
21:24 ruoso TimToady, and I mean that I'm going to copy and paste your code into mildew ;)
21:24 TimToady it would catch a return control exception that matches its identity
21:25 dduncan my internet's being slow at the moment ...
21:25 ruoso TimToady, how do you test the identity?
21:25 slavik joined #perl6
21:25 ruoso (I mean, it's more than simply a "when ControlExceptionReturn"
21:25 gourav its fine
21:25 slavik jhorwitz: mod+parrot make test segfaults ...
21:25 slavik rakudo: say "hi"
21:25 p6eval rakudo 34399: OUTPUT«hi␤»
21:26 dduncan gourav, look at http://www.perlfoundation.org/perl6/index.cgi to start with
21:26 TimToady exceptions often have some kind of a smartmatch against the context, so that has to be something like :WHICH(0xdeadbeef) where that matches the .WHICH of the routine's context
21:26 dduncan that's the official Perl 6 wiki and says where you can go from here
21:27 gourav i went through most of it but it does not exactly mention how to start
21:27 TimToady though I'd say it's not necessary that return exceptions actually use smartmatching
21:27 ruoso I was about to ask that
21:27 jhorwitz slavik: paste the output?
21:27 slavik jhorwitz: will do once I update both ...
21:27 slavik 1sec
21:28 TimToady but in general, exceptions need to be targetable to a particular context associated with a lexical scope
21:28 TimToady return is just one example of that
21:28 ruoso TimToady, right... the main question is what is the API to that?
21:28 TimToady targeting labels is a similar situation
21:28 dduncan gourav, do you want to mainly run Perl 6 code or do you want to just read about the language?
21:28 TimToady you keep asking me that question, and I keep answering, "make one up"  :)
21:29 TimToady or negotiate one with parrotfolk
21:29 TimToady I'm not actually very good at defining APIs
21:30 gourav i want to contribute in the development of PERL6 language, if that is possible and allowed. The link http://www.perlfoundation.org/perl6/ind​ex.cgi?what_can_i_do_with_perl_6_today does not provide much of support on that
21:30 TimToady I just know the effect I want
21:30 ruoso conceptually, can it be specific to the type of exception?
21:30 ruoso or should it be somewhat general?
21:30 TimToady conceptually, any exception can smartmatch against its context, but a given type, such as return exceptions, may simplify
21:31 ruoso alright... I'll implement the simplified version then
21:31 TimToady we can always generalize later if it makes sense
21:31 TimToady but return semantics are rather tightly controlled at the moment
21:31 ruoso my concern right now is that I don't want to implement smartmatch before full bootstrap
21:32 ruoso so I'd prefer using an explicit API
21:32 TimToady seems like return is a fairly primitive concept
21:32 dduncan gourav, you're allowed to do almost anything ... if you're interested in the design of the language, then the mailing list pel6-language@perl.org is one place thats discussed and you can contribute ideas there
21:32 slavik hmm, how difficult would it be to build a Perl6 application server?
21:32 dduncan that said, design is mostly done, and most work is in implementation now
21:32 dduncan you could try downloading and running Parrot + Rakudo
21:33 ruoso slavik, you mean in JBoss sense?
21:33 slavik ruoso: yes
21:33 gourav_ joined #perl6
21:33 slavik jboss, weblogic, websphere ...
21:33 ruoso as someone that has been in the "enterprise software" market for a while
21:33 dduncan once you have a test bed to play in, one big way to help out the Perl 6 effort is to write Perl 6 code and try to run it, then tell people if anything doesn't work
21:33 ruoso I'd recommend not trying to copy JBoss
21:33 slavik from working with them, app servers is really the only thing that keeps java ahead
21:34 gourav okies, so
21:34 ruoso slavik, not really... sun marketing department does
21:34 slavik ruoso: not trying to copy jboss itself, but having the same idea
21:34 gourav that looks a great place to start
21:34 ruoso slavik, I implemented something very much cool using XMPP
21:34 ruoso it sure looks like an application server
21:34 slavik XMPP?
21:34 ruoso a.k.a. Jabber
21:34 slavik oh
21:34 ruoso using SOAP over XMPP
21:34 ruoso with Catalyst
21:35 gourav so will this command "svn co https://svn.perl.org/parrot/trunk parrot" help me in doing so
21:35 dduncan this channel is a good place to discuss what you try or figuring out how to do things
21:35 ruoso it works like charm
21:35 slavik ruoso: for Perl?
21:35 gourav yeah i guessed so
21:35 ruoso slavik, yes
21:36 slavik neat
21:36 ruoso slavik, Catalyst::Controller::SOAP, Catalyst::Model::SOAP, Catalyst::Engine::XMPP2 and DJabberd do the trick
21:36 dduncan gourav, I would guess so ... you should ask someone else ... while I've been involved in the effort for a few years, I'm not currently running any Perl 6 code
21:36 dduncan right now I have a project I'm prototyping in Perl 5 first, then porting to Perl 6
21:37 dduncan I figure to do the latter around March when Parrot 1.0 is planned to be out
21:37 gourav so can i get involved in it? or is there anyone else who could kindly help me on this
21:38 slavik jhorwitz: looks like it's good now ... guess the rakudo update fixed it
21:38 slavik jhorwitz: I got a 500 error in the test
21:38 jhorwitz probably parrot...mod_parrot doesn't use rakudo
21:38 slavik instead of access granted, doesn't look important
21:38 slavik ahh, ok
21:38 slavik revision at 500
21:38 jhorwitz yes, i'm tracking that one down.
21:38 slavik but before it would fail with a segfault, now it doesn't
21:38 dduncan gourav, others around here can help you, but some may be slow to respond ... be patient and don't lose hope
21:39 dduncan oh, oh,
21:39 jhorwitz slavik: right, so now you just get one test failure in one of the legacy tests, right?
21:39 gourav okies
21:39 slavik yes
21:39 jhorwitz ok, that's normal.
21:39 slavik t/legacy/03AuthenHandler....NOK 2/2
21:39 jhorwitz yep
21:39 dduncan gourav, try joining the perl6-users@perl.org mailing list, introduce yourself there and say you want to help
21:39 slavik t/legacy/04AuthzHandler.....ok
21:39 dduncan also an option
21:39 gourav great
21:40 jhorwitz slavik: fyi, mod_perl6 is broken right now -- waiting on some rakudo fixes.  and registry scripts are waiting for some parrot fixes.  :(
21:40 dduncan though this #perl6 channel is still one of the best places, try around
21:40 Limbic_Region joined #perl6
21:40 slavik jhorwitz: you make baby jesus cry
21:40 slavik :(
21:40 gourav got that
21:41 jhorwitz difficult trying to hit two moving targets.  :)
21:41 slavik jhorwitz: apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file.. ???
21:42 jhorwitz hrm, i wonder if the module load failed
21:42 slavik I have load/conf for the module
21:42 jhorwitz that's all apache specific stuff.  if mod_parrot tests work, the module works...
21:42 slavik k, ty
21:42 jhorwitz never seen that happen...  hm
21:42 dduncan actually, gourav, have you looked at http://www.perlfoundation.org/p​erl6/index.cgi?getting_involved specifically yet?
21:43 dduncan that might be exactly what you want
21:43 slavik ... waiting Null PMC access in get_pmc_keyed_int()
21:43 jhorwitz that could be anything...
21:43 gourav okies i am looking at it now
21:43 slavik how do I debug that?
21:44 jhorwitz is that the only message?
21:44 slavik on terminal, yes, let me look at the error log
21:45 slavik [Fri Dec 26 15:06:35 2008] [notice] Apache/2.2.9 (Ubuntu) mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations
21:45 slavik [Fri Dec 26 16:43:20 2008] [notice] caught SIGTERM, shutting down
21:45 jhorwitz and that's it, right?
21:45 slavik yes
21:46 jhorwitz wow, it's having issues loading the module.  something is very wrong
21:46 slavik I remember moving some files around before
21:46 slavik into the isntalled runtime and such
21:46 jhorwitz ah, installed parrot.  that can wreak havoc.
21:47 pasteling "slavik" at 67.100.227.140 pasted "mod_parrot files ..." (14 lines, 518B) at http://sial.org/pbot/34067
21:47 slavik but just in case
21:47 slavik does that look ok?
21:48 jhorwitz did you copy the latest mod_parrot.pbc to /usr/local/runtime/parrot/library?
21:48 jhorwitz oh wait
21:48 jhorwitz you have mod_perl6 configured
21:48 gourav Mr Duncan thanks a lot
21:48 jhorwitz it's broken right now.  comment out the <Files> block and the last two lines that configure mod_perl6.
21:48 dduncan good luck with your contributions
21:49 gourav i will surely work on the instructions and get back as soon as possible
21:49 gourav left #perl6
21:52 jhorwitz slavik: meeting someone at 5.  feel free to e-mail me any other info. jeff at smashing.org
21:58 slavik jhorwitz: will do, ty
22:02 zev anyone remember off the top of their head what the syntax will be for getting the pod on a method or class?
22:10 pmurias ruoso: i need to wrap malloc,calloc and free to keep track of all the pointers which SMOP__Object keep in "subservient" chunks of memory
22:11 ruoso pmurias, SMOP doesn't do such memory management
22:11 ruoso it always calls malloc/free directly
22:11 ruoso so feel free to change it
22:14 pmurias what i forgot to ask is how should the wrapped functions be called?
22:14 pmurias s/?/
22:15 yahooooo joined #perl6
22:17 zev I don't see anything in S26.  I ask because I was thinking that it is really useful to be able to look up documentation via the python repl by just saying for example, "print sort.__doc__"
22:17 mberends_ joined #perl6
22:22 jlf` joined #perl6
22:23 ruoso pmurias, wrapped_malloc ?
22:23 aindilis` joined #perl6
22:32 jlf` left #perl6
22:32 pmurias ruoso: i currently named it smop_malloc
22:32 ruoso that's cooo
22:32 ruoso cool
22:43 masak joined #perl6
22:50 pugs_svn r24639 | pmurias++ | [smop] initial version of the refcounting validation tool
22:50 rakudo_svn r34400 | pmichaud++ | [rakudo]:  Autothread junctions on lhs of infix:<~~>.
22:55 masak where do I put my perl6.vim so that vim can find it?
22:56 pmurias ruoso: seen the refcounting validator?
23:00 ZuLuuuuuu joined #perl6
23:06 * ruoso going to look
23:07 maerzhase joined #perl6
23:10 maerzhase left #perl6
23:12 kisu_ joined #perl6
23:19 dduncan left #perl6
23:33 ruoso pmurias, so how do you call the "checkpoint" to test the sanity of the refcounting...
23:33 ruoso ?
23:36 pmurias ruoso: you call smop_mem_mark_as_roots to mark the object on the tracelists as assesible from an outer source
23:37 pmurias and smop_mem_mark_phase(additional root objects);smop_mem_print_dead_objects prints out dead object on the list of references
23:43 ZuLuuuuuu left #perl6

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

Perl 6 | Reference Documentation | Rakudo