pugscode.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 Tene on 29 July 2008. |
|||
00:06
sri_work left
00:07
bacek joined
00:25
finchely joined,
eternaleye joined,
sail0r joined
00:37
eternaleye left
00:39
eternaleye joined
00:46
wknight8111 is now known as wknight_lifeguar,
wknight_lifeguar is now known as wknight8111
00:53
[particle]1 joined
00:59
jferrero left
01:02
sail0r left
|
|||
ruoso can't get cmake to produce a debug build | 01:05 | ||
01:06
alanhaggai joined
01:09
[particle] left
01:26
Auzon left
01:27
Auzon joined,
finchely left
01:40
ywc joined,
ywc left
01:42
justatheory joined
|
|||
pugs_svn | r22187 | ruoso++ | [smop] array iterator almost working... the return of prefix:<=> needs to be better defined. re set SMOP_LOWLEVEL_MEM_TRACE in cmake and find out that the files .m0ld have many leaks... | 01:46 | |
ruoso | @tell pmurias, I found out that SMOP_LOWLEVEL_MEM_TRACE was not set in the compiling process... and now I've found a lot of leaks in mold | 01:47 | |
lambdabot | Consider it noted. | ||
01:53
SamB left
02:06
bacek left
02:12
bacek joined
02:26
charsbar_ joined,
charsbar left
02:37
jfredett joined,
a-jing joined
02:38
a-jing left
02:43
SamB joined
02:46
jfredett left
02:47
sail0r joined,
jfredett joined
02:51
Choco-ail left
03:08
wknight8111 left
03:18
sail0r left
03:19
justatheory left
03:28
ilogger2_ joined
03:36
awwaiid joined
04:03
rafl joined
04:49
cnhackTNT joined
04:50
pjcj joined
04:59
rafl joined
05:04
cnhackTNT joined
05:05
cnhackTNT joined
05:24
Psyche^ joined
05:48
ashizawa joined
06:02
Southen_ joined
06:52
ilogger2 joined
07:06
drbean joined
07:09
zamolxes joined
07:14
iblechbot joined,
pmurias joined
07:32
pmurias left
07:34
drbean left
07:36
barney joined
07:39
elmex joined
07:40
BinGOs joined
07:55
viklund joined
08:31
barney left
08:38
Myoma joined
08:41
zamolxes left
08:48
zamolxes joined
09:53
pmurias joined
10:06
PZt joined
10:13
a-jing joined,
a-jing left
10:23
baest joined
10:27
baest left
10:28
baest joined
10:35
smg joined
10:40
wknight8111 joined
11:15
meppl joined
11:30
jferrero joined
11:36
BinGOs left
11:38
wknight8111 left
11:40
BinGOs joined
12:00
jferrero left
12:01
a-jing joined,
a-jing left
12:10
jferrero joined
12:25
sri_work joined
12:33
jhorwitz joined
12:51
Lunchy joined
13:29
cognominal joined
13:34
barney joined
13:46
justatheory joined
13:49
TJCRI joined
14:01
clintongormley joined,
clintongormley left,
justatheory left
14:16
cjfields joined
14:18
ruoso joined
14:20
ron joined
|
|||
ruoso | pmurias, hi | 14:20 | |
ron | perl6: my $y = (12, 11, undef, 10).reduce({ $^a + $^b }); say "ok"; say $y; | 14:21 | |
p6eval | rakudo 30888: OUTPUT[Use of uninitialized valueok33] | ||
..pugs: OUTPUT[ok33] | |||
..elf 22187: OUTPUT[Useless use of a constant in void context at (eval 121) line 3.Useless use of a constant in void context at (eval 121) line 3.Use of uninitialized value $Main::b in addition (+) at (eval 121) line 3.Use of uninitialized value $Main::a in addition (+) at (eval 121) line | |||
..3.Can'... | |||
ron | is rakudo's final conclusion of * 33 * ok ?? | 14:23 | |
pmurias | ruoso: hi | 14:39 | |
moritz_ | ron: I think it is | 14:40 | |
ron: it's a good sign that it's the same as pugs' output (even thoug it contains a warning)) | 14:41 | ||
ron | you did notice the undef in the list which, I think, * should * at least have issued the warning ... | ||
moritz_ | ron: well, pugs doesn't do any warnings yet, I think | 14:42 | |
ron | that's right, I am working on 58646 and Failure handling and am wondering if reduce should have returned Failure in some form here. There is some code for that though it doesn't cover the case just tested ... | 14:43 | |
moritz_ | ron: I don't think it should. There'a resonable way to define undef+Int, so we shouldn't unnecessarily die | 14:44 | |
ron: just like in perl 5 | |||
14:45
rdice joined
|
|||
ron | s/is some/seems to be some/ | 14:45 | |
moritz_ | pmichaud experimented with making those warnings fatal, which broke too much stuff to be pratical | 14:47 | |
ron | Ok - thx much, I'll move on to other aspects of the problem then ... | ||
moritz_ | ron: if you're working on Failure stuff... it would be nice if $! could be tested for truthness | 14:48 | |
rakudo: my $x = try { die 1; } say "yes" if ?$x | |||
p6eval | rakudo 30888: OUTPUT[Statement not terminated properly at line 1, near "say \"yes\" "current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)] | ||
moritz_ | rakudo: my $x = try { die 1; }; say "yes" if ?$x | 14:49 | |
p6eval | rakudo 30888: OUTPUT[Null PMC access in can()current instr.: 'parrot;Perl6Object;infix:=' pc 37 (src/gen_builtins.pir:45)] | ||
moritz_ | rakudo: my $x = try { die 1; }; say "yes" if ?$! | ||
p6eval | rakudo 30888: OUTPUT[Null PMC access in can()current instr.: 'parrot;Perl6Object;infix:=' pc 37 (src/gen_builtins.pir:45)] | ||
moritz_ | rakudo: my $x = try { die 1; }; say $x | ||
p6eval | rakudo 30888: OUTPUT[Null PMC access in can()current instr.: 'parrot;Perl6Object;infix:=' pc 37 (src/gen_builtins.pir:45)] | ||
moritz_ | rakudo: my $x = try { die 1; }; say $! | ||
p6eval | rakudo 30888: OUTPUT[Null PMC access in can()current instr.: 'parrot;Perl6Object;infix:=' pc 37 (src/gen_builtins.pir:45)] | ||
moritz_ | uhm. | ||
rakudo: say "still alive" | |||
p6eval | rakudo 30888: OUTPUT[still alive] | ||
ron | I think I have at least part of the solution to the original request on failure changes and will try to look into your concern too ... | 14:50 | |
14:55
ruoso left
|
|||
pmurias | cycling& | 14:56 | |
14:56
pmurias left
15:11
ron left
15:13
zamolxes left
15:16
justatheory joined
15:25
justatheory left,
justatheory joined
15:30
justatheory left
15:31
justatheory joined
15:37
Exodist joined
15:44
justatheory left,
justatheory joined
15:45
justatheory left
15:51
orafu joined
15:57
REPLeffect joined
16:08
zamolxes joined
16:09
abwesend_ joined,
abwesend_ left
16:22
jferrero left
16:31
pmurias joined,
armagad joined
16:54
rdice left
17:03
cjfields left
17:08
ruoso joined
|
|||
meppl | good night | 17:08 | |
17:09
hercynium joined
|
|||
pmurias | meppl: good night | 17:10 | |
meppl | ;) | ||
17:10
meppl left
|
|||
ruoso | Hello! | 17:10 | |
pmurias | Hi! | 17:11 | |
ruoso: it is possible to determine a memory leak under ref counting without destroying everything | 17:19 | ||
ruoso | pmurias, I don't think so... | ||
pugs_svn | r22188 | ruoso++ | [smop] avoids stopping to release objects if there is a null constant... | 17:20 | |
ruoso | pmurias, that's the basic argument against refcounting | 17:21 | |
17:23
jan_ joined
|
|||
ruoso | pmurias, btw... test/31 is leaking only two values... it's probably going to be easier to catch the bug there... | 17:23 | |
pmurias always thought it's disposing of circural references correctly | 17:25 | ||
* incorrectly | 17:26 | ||
* not dispososing of circural references at all | |||
ruoso | er... we can't have circular references... | ||
that's the other basic argument against refcounting... | |||
pmurias | we leak memory when they happen | 17:28 | |
ruoso | sure, we do... | ||
but that's not the case in test/31 | 17:30 | ||
and I think when we catch that one, the others should become more evident... | |||
pugs_svn | r22189 | ruoso++ | [smop] fix leak in native_int... test/31 no longer leaks, but that means the other leaks are not related to this one. | 17:34 | |
ruoso | pmurias, one thing I didn't get... did you said that there are circular references in SMOP? | 17:39 | |
pmurias | no | 17:40 | |
ruoso | ah... ok | ||
pmurias | i'm not aware of any | ||
ruoso | good... | 17:41 | |
17:43
justatheory joined
17:48
justatheory left
17:56
zamolxes left
|
|||
TimToady | n | 18:10 | |
bleh | |||
18:10
meppl joined
18:12
armagad left
|
|||
pmurias | TimToady: what the context of an argument to a multi? | 18:15 | |
18:16
armagad joined
|
|||
pugs_svn | r22190 | ruoso++ | [smop] some code review, trying to hunt down the memory leaks | 18:17 | |
18:23
zamolxes joined
18:28
barney left
18:31
meppl left
|
|||
pugs_svn | r22191 | ruoso++ | [smop] still trying to find the leak | 18:31 | |
18:32
ron joined
18:34
justatheory joined
18:39
justatheory left
|
|||
TimToady | pmurias: depends on the proto, if any. when unknown, an argument assumes list context, (more like capture context, really) | 18:45 | |
18:47
justatheory joined
|
|||
ruoso | TimToady, but "capture context" is really "no context", isn't it? | 18:48 | |
18:50
justatheory left
|
|||
TimToady | more or less | 18:51 | |
18:51
justatheory joined
|
|||
TimToady | except that the capture boundaries are important insofar as a given capture will be bound to a single parameter (in the absence of prefix:<|>) | 18:52 | |
s/single parameter/single scalar parameter/ | 18:53 | ||
slurpies can pull from multiple captures, of course | |||
but given sub foo ($x, *@y) {...}, foo(bar(), baz()) will put all of bar's results into $x | 18:54 | ||
even if bar returns a list | |||
that's the sense in which capture context is more than "no context" | 18:55 | ||
ruoso | but... is there a way that the return of baz() will be treated as more than one argument? | 18:56 | |
I thought foo(bar(), |baz()) would be needed to provide that behaviour | 18:57 | ||
TimToady | the | there is useless because @y is slurpy | 18:58 | |
ruoso | o.O | ||
TimToady | a | is useful only for spreading a single capture out over multiple scalar parameters | 18:59 | |
ruoso | or to turn an object into a list of arguments... | 19:00 | |
foo(|@parameters) | |||
19:00
meppl joined
|
|||
TimToady | once you're binding slurpies in list context it doesn't care about capture/list boundaries | 19:00 | |
extension of the p5 notion that () is invisible in list context | |||
rakudo_svn | r30908 | pmichaud++ | [rakudo]: spectest-progress.csv update: 158 files, 3288 passing tests | 19:02 | |
19:02
zostay joined
|
|||
ruoso | pugs: sub foo ($a) {say $a.WHAT}; my @a = (1,2,3); foo(@a) | 19:02 | |
p6eval | pugs: OUTPUT[Array] | ||
ruoso | pugs: sub foo ($a) {say $a[0], $a[1], $a[2]}; my @a = (1,2,3); foo(@a) | ||
p6eval | pugs: OUTPUT[123] | ||
ruoso | pugs: sub foo ($a, $b, $c) {say $a, $b, $c}; my @a = (1,2,3); foo(@a) | ||
p6eval | pugs: OUTPUT[*** No compatible multi variant found: "&foo" at /tmp/kEMeQdRpyT line 1, column 57 - line 2, column 1] | ||
ruoso | pugs: sub foo ($a, $b, $c) {say $a, $b, $c}; my @a = (1,2,3); foo(|@a) | 19:03 | |
p6eval | pugs: OUTPUT[*** No compatible multi variant found: "&foo" at /tmp/5Misj5I2ZZ line 1, column 57 - line 2, column 1] | ||
TimToady | pugs: sub foo ($a) {say $a[0], $a[1], $a[2]}; foo((1,2,3)) | ||
p6eval | pugs: OUTPUT[123] | ||
TimToady | pugs: sub foo ($a) {say $a[0], $a[1], $a[2]}; foo(1,2,3) | ||
p6eval | pugs: OUTPUT[*** No compatible multi variant found: "&foo" at /tmp/59vf2YOldf line 1, column 41 - line 2, column 1] | ||
TimToady | pugs: sub foo ($a, *@b) {say $a[0], $a[1], $a[2], @b}; foo((1,2,3), (1,2,3)) | ||
p6eval | pugs: OUTPUT[123123] | ||
ruoso | pugs: sub foo ($a, @b) {say $a[0], $a[1], $a[2], @b}; foo((1,2,3), (1,2,3)) | 19:04 | |
p6eval | pugs: OUTPUT[123123] | ||
TimToady | pugs: sub foo ($a, *@b) {say $a[0], $a[1], $a[2], @b}; foo((1,2,3), 1,2,3) | ||
p6eval | pugs: OUTPUT[123123] | ||
TimToady | pugs: sub foo ($a, @b) {say $a[0], $a[1], $a[2], @b}; foo((1,2,3), 1,2,3) | ||
p6eval | pugs: OUTPUT[*** No compatible multi variant found: "&foo" at /tmp/Z5DoaKrKQI line 1, column 49 - line 2, column 1] | ||
TimToady | slurpy ignores the () | ||
ruoso | slurpy takes the rest of the positional arguments | 19:06 | |
but there needs to be positional arguments | |||
TimToady | which are scalars, and pay attention to () | ||
once you switch to slurpy, () is ignored | 19:07 | ||
19:07
justatheory left
|
|||
ruoso | but when that relates to foo(bar()) | 19:08 | |
bar() is a single positional argument | |||
TimToady | bar returns a capture, so how it gets bound depends on the definition of foo | ||
all bar knows by default is that it's returning a capture | |||
it doesn't necessarily know whether it will be bound to a scalar or a slurpy | |||
ruoso | sure... but it is a single positional argument anyway | 19:09 | |
prefix:<|> is the thing that does the capture expasion... | |||
*expansion | |||
TimToady | it's a single positional argument only when bound to a scalar | 19:10 | |
list context also does capture expansion | |||
(but not slice context) | |||
anyway, the pugs behavior seems to be correct here | 19:13 | ||
(except pugs doesn't implement slice context yet) | |||
ruoso | TimToady, capture seems too magical yet... | 19:17 | |
TimToady, if the user wants to implement a capture type on its own? which API it would need to follow? | |||
TimToady, I really can't see how capture gets from this magical state to low-level implementation... | 19:20 | ||
pugs: sub foo ($a, *@b) {say $a[0], $a[1], $a[2], @b[0]}; foo((1,2,3), (1,2,3)) | 19:21 | ||
p6eval | pugs: OUTPUT[1231] | ||
ruoso | pugs: sub foo ($a, *@b) {say $a[0], $a[1], $a[2], @b[0]}; sub bar { (1,2,3) }; foo((1,2,3),bar()) | 19:24 | |
p6eval | pugs: OUTPUT[1231] | ||
TimToady | I have no idea what you mean by "magical" here, unless you think pugs is magical somehow... | 19:25 | |
but it's likely that captures are an irreducably fundamental type | 19:26 | ||
ruoso | TimToady, hmm... that's a new assumption... | 19:28 | |
and it can indeed make our life much easier | 19:31 | ||
19:33
eternaleye joined
19:38
jferrero joined
|
|||
[particle]1 | captures have made their way into parrot core, mainly because of this design | 19:38 | |
ruoso | the problem is the opposite case... when someone wants to use a non-native capture... | 19:40 | |
TimToady | that's like asking for a non-native version of Lisp's . operator, I suspect | 19:54 | |
or user-defined quarks :) | 19:55 | ||
19:55
hercynium left
19:58
hercynium joined
|
|||
ron | rakudo: my $x = 1 .. 1; $x.pop; my $y = $x.pop; try {die $!}; say $!; try {die "abc"}; say $!; say "ok"; say $y' | 20:03 | |
p6eval | rakudo 30912: OUTPUT[Statement not terminated properly at line 1, near "'"current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)] | ||
ruoso | TimToady, alright... so "Capture" needs to be renamed to "capture" and promoted to a native type... which is not what's listed on the specs atm | 20:04 | |
ron | rakudo; my $x = 1 .. 1; $x.pop; my $y = $x.pop; try {die $!}; say $!; try {die "abc"}; say $!; say "ok"; say $y; | ||
rakudo: my $x = 1 .. 1; $x.pop; my $y = $x.pop; try {die $!}; say $!; try {die "abc"}; say $!; say "ok"; say $y; | |||
p6eval | rakudo 30912: OUTPUT[Null PMC access in get_string()abcokUndefined value popped from empty range] | ||
ron | working on Failure again ... Ranges have the new !FAIL technology and gives nice warning messages but am not sure about writing tests that capture and validate the messages ... | 20:07 | |
pugs_svn | r22192 | ruoso++ | [smop] more plumbing... there was circularity in some code... mold frames now dont add a refcount when it stores itself on its registers.. | 20:15 | |
ruoso home & | |||
20:15
ruoso left
20:38
Ehtyar joined
|
|||
ron | hmm... well I at least have patches that make other builtins behave like range so unless someone will claim I don't understand the area I will post them against the TODO report | 20:39 | |
20:45
wknight8111 joined
20:50
jhorwitz left
|
|||
rakudo_svn | r30914 | julianalbo++ | rename pmc attributes struct from Parrot_<type> to Parrot_<type>_attributes RT#48014 | 20:51 | |
20:54
simcop2387-vnc joined
20:59
pmurias left
21:20
smg left
21:24
TJCRI left
21:36
eternaleye left
21:39
eternaleye joined
|
|||
rakudo_svn | r30915 | julianalbo++ | forgot to update perl6 mutable_pmc.template in previous commit | 21:45 | |
21:45
simcop2387-vnc left,
ron left
21:56
xinming joined
22:02
justatheory joined
22:07
eternaleye left
22:11
elmex left
22:14
iblechbot left
22:25
eternaleye joined
22:31
simcop2387 joined
22:50
smg joined
22:58
s1n joined
23:05
dduncan joined
23:09
eternaleye left
23:18
Jedai joined
23:20
jferrero left
23:23
hercynium left
23:25
Auzon joined
23:26
pjcj joined
23:44
Exodist left
23:50
a-jing joined,
sri_work_ joined,
a-jing left,
armagad left
|