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