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
|