parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
00:00 bacek joined 00:03 Theory joined 00:08 jonathan joined, Maddingue joined, slavorg joined 00:09 AndyA joined 00:15 nopaste joined 00:16 leo_ joined 00:25 sjn joined 00:41 TonyC joined 01:47 Ontolog joined 01:52 bacek joined
bacek pmichaud: around? 01:56
pmichaud: I'll fix junction patch. Except junction_dispatcher. It's just too much for single refactoring... 01:57
pmichaud bacek: I've already got a more complete junction refactor done -- just running spectest now 02:14
you can work on cleaning up my refactor :-)
I'll go ahead and commit what I have now even before spectest has finished -- we can test/clean after that. 02:20
committed, r32745. 02:21
dalek r32475 | pmichaud++ | trunk: 02:22
: [rakudo]: Refactor of Junction handling, with ideas from bacek++ (RT #60168)
diff: www.parrotvm.org/svn/parrot/revision?rev=32475
bacek pmichaud: yak... :) 02:29
bacek marking #60168 as resolved 02:33
163 open/new tickets in rakudo queue 02:35
02:41 apeiron joined
bacek t/spec/S03-junctions/boolean-context......................ok 02:47
4/45 skipped: various reasons, 4/45 unexpectedly succeeded
TODO PASSED tests 38-41
t/spec/S03-junctions/misc.................................ok
21/78 skipped: various reasons, 3/78 unexpectedly succeeded
TODO PASSED tests 19, 63, 65
02:56 notbenh joined 03:16 Andy joined
bacek pmichaud: 2 minor issues... 1) "Eigenstates" wasn't in vocabulary; 2) .true is too shortcutted from my POV. 03:21
in my vocabulary
03:26 cognominal joined
pmichaud eigenstates came from a Damian suggestion. 03:32
in last week's design meeting Larry said that there would be a method on Junction to return the values, but it wouldn't be called 'values' 03:33
Damian suggested 'eigenstates' so I went with that for now.
...why is .true too shortcutted?
bacek At least 2 "fall through" :) 03:37
I'm going to add uniquefication of eigenstates. Any objections? 03:38
pmichaud I'm not quite sure of a good way to do that.
the Hash approach causes "3" and 3 to be treated identically. 03:39
bacek you missed part of my patch :) I stored values in hash
pmichaud I didn't miss it. Storing the values in the hash will cause "3" and 3 to be treated identically. 03:40
bacek ah, ok...
pmichaud at least, I'm pretty sure that's the case.
bacek List.uniq is still unspecced...
pmichaud we probably need to have infix:cmp implemented properly 03:41
to be able to detect when two values are really equivalent
bacek rakudo: say 3 cmp "3" 03:42
polyglotbot OUTPUT[0␤]
bacek rakudo: say 3 cmp 3
polyglotbot OUTPUT[0␤]
bacek hm...
inline op cmp_str(out INT, invar PMC, invar PMC) :base_core { 03:43
$1 = VTABLE_cmp_string(interp, $2, $3);
}
inline op cmp(out INT, invar PMC, invar PMC) :base_core { 03:44
$1 = VTABLE_cmp(interp, $2, $3);
}
this one.
purl i think this one is bugged too now
bacek Then in Integer.cmp cast LHS to integer... 03:45
pmichaud ah, I was wrong, it's infix:<===> 03:46
(S03) 03:48
bacek current implementation of infix:=== looks good for me.
cmp.pir +163
rakudo: say 3 === "3" 03:49
polyglotbot OUTPUT[0␤]
bacek rakudo: say 3 === 3
polyglotbot OUTPUT[1␤]
pmichaud looks okay to me, if you want to try that. 03:51
bacek pmichaud: do you mind to apply patch from #55484 ? 03:52
pmichaud looking.
bacek Then I can just call List.uniq passing infix:<===> as predicate
03:59 Psyche^ joined
pmichaud 55484 looks pretty good, but needs some changes 04:02
04:02 cognominal_ joined
pmichaud $I0 = comparer(uval, val) isn't a valid way to test a boolean 04:02
04:06 bacek joined 04:07 notbenh joined
bacek yak... Australian internet bad even in Telco... 04:07
$I0 = comparer(uval, val) 04:08
$P0 = comparer(uval,val); $I0 = istrue $P0? 04:09
pmichaud sure, but even better is simply
if $P0 goto ...
no need to get an integer.
bacek ok 04:10
there is also handmade .namespace[] functions. THis patch was made before '!EXPORT'... 04:14
pmichaud we can't use !EXPORT here anyway 04:19
although perhaps .uniq belongs in any-list
although it'll probably be a different one.
bacek agreed. List.uniq is still unspecced... 04:22
dalek r32476 | pmichaud++ | trunk: 04:23
: [rakudo]: Update .uniq method for List (bacek++, RT #55484)
: * Patch courtesy Vasily Chekalkin <bacek at bacek.com>, with modifications
diff: www.parrotvm.org/svn/parrot/revision?rev=32476
nopaste "bacek" at 211.29.157.151 pasted "Uniquefy eisgenstates for pmichaud" (20 lines) at nopaste.snit.ch/14527 04:24
bacek Nice. Last 3 of 4 commits have my nick in it :) 04:26
04:29 samlh joined
pmichaud S03-junctions/misc.t #78 fails. 04:30
bacek pmichaud: strange
t/spec/S03-junctions/boolean-context....ok 1/45Use of uninitialized value
t/spec/S03-junctions/boolean-context....ok
t/spec/S03-junctions/misc...............ok
21/78 skipped: various reasons
All tests successful, 21 subtests skipped.
Files=2, Tests=123, 10 wallclock secs ( 9.79 cusr + 0.15 csys = 9.94 CPU)
afk # reading specs on $dayjob 04:32
pmichaud I'm going to wait a bit on that patch (feel free to send it as a ticket). 04:33
but I'm not sure that we end up with the correct result.
In particular, ?one(0, 1, 1) almost certainly should not be True. 04:34
I'd like a clarification on p6l, first.
bacek pmichaud: good point... 04:41
dalek r32477 | pmichaud++ | trunk: 04:48
: [rakudo]: Implementation of Bool.pick (RT #60290, bacek++)
: * Patch courtesy Vasily Chekalkin <bacek@bacek.com>, with minor changes
diff: www.parrotvm.org/svn/parrot/revision?rev=32477
bacek 4 of 5 :) 04:49
pmichaud: #60444 with uniquefy 04:51
dalek r32478 | pmichaud++ | trunk: 04:59
: [rakudo]: Implementation of .fmt (RT #60382, masak++)
diff: www.parrotvm.org/svn/parrot/revision?rev=32478
pmichaud bacek: Instead of updating so many methods, I'd rather just put the test in !MAKE_JUNCTION 05:02
i.e., make unique if type != JUNCTION_TYPE_ONE
but I'll still want some clarification from p6l before doing anything here. :-)
bacek Ok :) 05:04
pmichaud on the "fall-through" bits of Junction.pir, would you feel better if I put goto's there? ;-) 05:10
or perhaps just comments that say "# goto none" 05:11
?
bacek pmichaud: my personal preference to have 4 separated loops. Even if they very common. Just less coupling 05:14
pmichaud except the second part of a 'one' loop is exactly the same as a 'none' loop 05:15
and the first part of a 'one' loop is exactly the same as a 'any' loop
bacek spagetti :) 05:16
pmichaud not really. :-)
it's only spaghetti if we're jumping around from place to place. here everything moves forward. :-) 05:17
anyway, I'm happy with this for now.
bacek probably replace 'any_one:' with 'find_first_true:' and put some comments will help to understand it better and faster 05:27
pmichaud: I have a question about Enum.pick. Can you take a look at nopaste.snit.ch/14518? 05:30
05:31 MariachiElf joined
pmichaud I know next-to-nothing about how roles are set up in Rakudo. You'd probably have to ask jonathan. 05:47
at any rate, the thing that gets returned by '!keyword_role' is almost certainly something that cannot have its method invoked 05:48
i.e., if r is a Role, then one cannot do r.'foo' but must instead invoke 'foo' on something that is an instance of r (or has had r composed into it) 05:49
dalek r32479 | pmichaud++ | trunk: 06:07
: [rakudo]: Change given_statement to follow STD.pm.
diff: www.parrotvm.org/svn/parrot/revision?rev=32479
06:09 chromatic joined
dalek r32480 | moritz++ | trunk: 06:50
: [rakudo] add tests for .fmt to spectest.data
diff: www.parrotvm.org/svn/parrot/revision?rev=32480
bacek moritz: good morning :) 07:11
dalek r32481 | pmichaud++ | trunk: 07:22
: [pct]: Update 'for' nodes to follow body pattern of if/unless/while/until .
diff: www.parrotvm.org/svn/parrot/revision?rev=32481
r32482 | pmichaud++ | trunk:
: [rakudo]: Update for_statement to use xblock.
diff: www.parrotvm.org/svn/parrot/revision?rev=32482
r32483 | pmichaud++ | trunk: 07:27
: [nqp]: Update for_statement to use correct block body.
diff: www.parrotvm.org/svn/parrot/revision?rev=32483
07:28 uniejo joined 07:35 Zaba joined 07:49 TiMBuS joined 07:55 elmex joined
dalek r32484 | pmichaud++ | trunk: 08:13
: [rakudo]: Refactor statement modifiers
diff: www.parrotvm.org/svn/parrot/revision?rev=32484
nopaste "pmichaud" at 76.183.97.54 pasted "nested statement modifiers... \\o/" (13 lines) at nopaste.snit.ch/14528 08:16
"pmichaud" at 76.183.97.54 pasted "does this look right? (RT #58392)" (30 lines) at nopaste.snit.ch/14529 08:25
08:28 bacek joined
moritz good morning bacek :) 08:28
bacek moritz: veery long morning :)
pmichaud it's definitely morning here :) 08:29
moritz only a long mourning is a good mourning ;) 08:30
08:31 iblechbot joined
bacek moritz: can you review #59552 and #59560 and apply or close them? 08:33
moritz bacek: I have no parrot checkout here at $work ;(
bacek moritz: ah, ok. 08:34
pmichaud: any particular bug/area that I can spend couple of hours? 08:38
dalek r32485 | pmichaud++ | trunk: 08:48
: [rakudo]: spectest-progress.csv: 211 files, 4435 passing, 58 failing
diff: www.parrotvm.org/svn/parrot/revision?rev=32485
bacek 58 failing??? 08:49
pmichaud I think it could be our segfaults
or something with the test harness
bacek running spectest 08:51
pmichaud keep in mind that I use tools/test_summary.pl to generate the progress file, instead of using make 08:52
bacek I'll compare results of both runs
pmichaud I'll probably update test_summary.pl to provide a summary of failed tests at the end
but, that's for tomorrow. right now is 3am and time for sleep. 08:53
bacek invoke() not implemented in class 'Integer'
pmichaud: good night
purl sleep well too
08:59 masak joined 09:15 Ademan joined 09:25 donaldh joined 10:06 tomyan joined
bacek msg pmichaud I've got only 8 failing tests. All of them in S03-operators/precedence 10:38
purl Message for pmichaud stored.
bacek msg pmichaud segfault after ok 43 - # SKIP list infix and assignment 10:40
purl Message for pmichaud stored.
bacek msg pmichaud GC bug... Segfault disappear with -G 10:42
purl Message for pmichaud stored.
bacek karma 10:43
karma bacek
purl bacek has karma of 81
bacek holy... Too close to 100...
11:10 AndyA joined 12:01 iblechbot joined 12:24 Lorn joined 12:55 ruoso joined 13:19 ruoso joined, AndyA joined 13:24 ruoso joined 13:25 DietCoke joined 13:27 cosimo joined
DietCoke misses all review. 13:27
Coke pokes purl.
purl punches Coke inna nose.
13:28 bacek joined
Coke returns to work after being the last in his family to get the narsty stomach bug last thursday at 3am. 13:28
13:42 Andy joined 14:02 ruoso joined 14:03 gryphon joined 14:12 gaz joined 14:26 jan joined 14:30 jhorwitz joined 14:41 gargamel joined 14:54 PacoLinux joined 14:58 Andy joined 15:04 barney joined
dalek r32486 | bernhard++ | trunk: 15:14
: RT#60450: [PATCH] minor pod tweaks memory_internals.pod core.ops
: Courtesy of Brad Bowman
diff: www.parrotvm.org/svn/parrot/revision?rev=32486
15:20 jimmy joined
jimmy hello, i write a function for pipp, but i think it can be more better. can anybody give me some suggestions? 15:22
here is the ticket. rt.perl.org/rt3/Ticket/Display.html?id=60432 15:23
barney jimmy: I take a look at it
jimmy thanks 15:24
dalek r32487 | bernhard++ | trunk: 15:27
: Pipp: revert accidental commit in r32486.
diff: www.parrotvm.org/svn/parrot/revision?rev=32487
15:29 silug joined 15:31 jan joined
barney jimmy: Could you add a test case, maybe in new file t/php/filesystem.t ? 15:32
jimmy I will give it a try. 15:35
there is not any test case for pipp? oops!! 15:40
15:40 Andy joined
moritz there are tests. I see plenty in svn.perl.org/parrot/trunk/languages/pipp/t/ 15:42
jimmy i got a wrong dir. Nice. 15:43
barney cd languages/pipp ; make smolder_test should work
As a second step a library runtime/parrot/library/File/Basename.pir could be created and used by Pipp and other languages 15:45
jimmy: the PIR code for basename() looks fine 15:47
jimmy is it a good idea to create a basename.pir for only a function? 15:53
15:55 magnachef joined
barney It could also be added to File/Spec/*.pir 15:55
In Perl 5 however there is a separate Module File::Basename, so Perl hackers might expect a separate Module 15:56
I'm tempted to add a dummy language impl to t/compilers/pct for testing special case in PGE grammars and NQP actions 16:02
I want to reproduce a simple case where 'our' variables seem to be disappearing in NQP actions 16:04
jimmy File::Basename is a bit complex 16:05
i had a suggestion 16:06
barney Yes, cross platform file names are complex 16:08
jimmy .sub '_get_osname' 16:10
.local pmc config
.local pmc osname
config= '_config'()
osname= config['osname']
.return( osname )
.end
can be written:.sub '_get_osname' 16:11
sysinfo $S0, 4
.resturn($S0)
.end
this function is in runtime\\parrot\\library\\File\\Spec.pir, is it OK? 16:12
particle actually, i'm not sure either of those is correct 16:13
what you want is the *runtime* osname
both of these seem to be *compile* time 16:14
jimmy _config function is a bit complex. and sysinfo is not.
and _config function need to open a file.
particle yes 16:15
jimmy sysinfo just resturn a BUILD_OS_NAME
it is the same.
particle it should .include 'sysinfo.pasm' and use sysinfo $S0, BUILD_OS_NAME
but yes. 16:16
my point is that the build os isn't what you want when running your program, you want the os you're running on
16:16 Theory joined
particle i'm not sure parrot makes that available atm 16:16
16:17 hercynium joined
jimmy where is sysinfo.pasm? 16:18
particle runtime/parrot/include/
jimmy this file contains some macro_const 16:19
not any function
particle yes, that's correct, so you don't need to use the magic number 4 16:20
magic numbers are bad.
jimmy but this function implemented by src\\ops\\ops.num 16:21
sorry ,it is src\\ops\\sys.ops
particle .include 'sysinfo.pasm'
.sub '_get_osname'
sysinfo $S0, .SYSINFO_PARROT_OS
.resturn($S0)
.end
see?
".SYSINFO_PARROT_OS" is much clearer and thus easier to maintain than "4" 16:22
i'll patch that up, because it's a good suggestion, but it's still not what should really be there :( 16:23
jimmy yes, .SYSINFO_PARROT_OS is much clearer 16:24
16:25 hercynium joined
jimmy i will use it for pipp function 16:26
particle i've made that change locally, i'm rebuilding and testing now. jimmy++ 16:27
jimmy and there is some place like BASIC language use magic number such as syinfo $S0, 4 , i copy it from there
barney In PHP there is the constant PHP_OS, that contains the system where PHP was built 16:28
php_osname() is the system where PHP runs
jimmy deos it work for pipp now?
particle yes, perl 6 has $?OS and $*OS 16:29
moritz pipp: echo php_osname()
polyglotbot OUTPUT[echo php_osname()]
particle but it seems parrot only supports compile-time os name
barney PHP_OS is not set yet
moritz pipp: <% echo php_osname() %>
polyglotbot OUTPUT[<% echo php_osname() %>]
moritz my PHP-fu is approx. zero ;)
jimmy but i can not find where it is implemented.
particle actually, i suppose we can assume where parrot is built is the runtime os 16:30
jimmy yes, i think so
particle although that feels a little funny to me, i'm certain that it's more correct than assuming it's where the pbc was compiled
moritz I think it's easier to exchange compiled .pbc files between different platforms than parrot executables 16:31
jimmy i can't find php_osname implemented by pipp
barney pipp: <?php echo php_uname() ?>
polyglotbot OUTPUT[linux]
jimmy but i can't find in source code. 16:32
barney fperrard++
php_uname ist is, not php_osname in php_info.pir 16:33
jimmy got it 16:34
it is use
$S0 = sysinfo .SYSINFO_PARROT_OS
.RETURN_STRING($S0)
so i think _config function can be not used. 16:36
dalek r32488 | particle++ | trunk: 16:37
: [library] replace "_get_osname" body with sysinfo call; jimmy++
diff: www.parrotvm.org/svn/parrot/revision?rev=32488
barney According to docs/ops/sys.pod, the runtime OS should be returned 16:39
by sysinfo 16:40
I suppose that it is hard to write a test case for "build OS ne runtime OS" 16:41
16:42 rdice joined
particle yes, that's a hard test to write, unless we can build a pbc file manually 16:44
jimmy but sysinfo implemented by returning a BUILD_OS_NAME
not a runtime OS 16:45
particle jimmy: the platform parrot is built on is the runtime
that's the current implementation, anyway
the platform the bytecode file is built on is the build time
the current bytecode format doesn't store this info 16:46
jimmy it is a bit confused. oops
particle so there's no way we can get it
yes, it is
dalek r32489 | bernhard++ | trunk: 16:47
: Move unused file NoneGrammar.tg into t/compilers/tge
diff: www.parrotvm.org/svn/parrot/revision?rev=32489
jimmy It is 00:48 in china, i have to work tomorrow. god evening. 16:49
particle see you later
barney good night jimmy++
jimmy see you all later.
goodbye
16:53 bacek joined
dalek r32490 | bernhard++ | trunk: 16:58
: RT#60432: [PATCH]basename function implementation for pipp
: Courtesy of Jimmy
diff: www.parrotvm.org/svn/parrot/revision?rev=32490
r32491 | bernhard++ | trunk: 17:05
: Give credit to jimmy++
diff: www.parrotvm.org/svn/parrot/revision?rev=32491
Coke hearts svn. 17:18
svn > cvs > shared directory on app server.
Coke can now actually get back to writing code.
17:23 ruoso joined 17:37 chromatic joined
dalek r32492 | bernhard++ | trunk: 17:43
: [testing] Start on a test script for a complete PCT workflow.
diff: www.parrotvm.org/svn/parrot/revision?rev=32492
r32493 | bernhard++ | trunk: 17:46
: [commit] Remove some trailing whitespace
diff: www.parrotvm.org/svn/parrot/revision?rev=32493
r32494 | bernhard++ | trunk: 17:48
: [codingstd] Set SVN props for gen_junction_pir.pl
diff: www.parrotvm.org/svn/parrot/revision?rev=32494
r32495 | bernhard++ | trunk: 17:49
: [codingstd] Uncuddle an else
diff: www.parrotvm.org/svn/parrot/revision?rev=32495
r32496 | pmichaud++ | trunk: 17:54
: [rakudo]: Some updates to assignment operators (RT #60452)
diff: www.parrotvm.org/svn/parrot/revision?rev=32496
moritz pmichaud: infix:<**=> needs the same updates 17:57
17:57 silug joined
moritz I have a test file here which I think I haven't commited yet... 17:57
oh yes, it is... t/spec/S03-operators/autovivification.t 17:58
pmichaud arguably that's a worthless item, though. :-) 18:01
since $x **= $n; will always end up with $x == 1
still, it assigns a value, so....
moritz but I just noticed that the tests aren't self-consistent 18:02
pmichaud $x *= 2; results in 2, not 0
moritz right. 18:03
dalek r32497 | pmichaud++ | trunk:
: [rakudo]: Add infix:<**=> initialization (moritz++)
diff: www.parrotvm.org/svn/parrot/revision?rev=32497
moritz I'll take a thourough look at that test later and fudge, but now I've gotta run 18:04
pmichaud okay
not too much needs fudging there.
18:06 iblechbot_ joined
moritz actually I found a few more minutes before running... 18:08
it's corrected + fudged now
though the comments are not 100% up-to-date
but if it runs for you, you can add it to spectest 18:09
(now gone for real ;-)
jonathan pmichaud++ # fixing lots of stuff :-) 18:15
pmichaud: Please do blog about it sometime, especially on rakudo.org - feels quite lonely there!
pmichaud jonathan: will do, I'll be doing weekly perl 6 reports soon, if not more quickly 18:16
I'm now committed (grant announcement) :-)
jonathan Oh, it's announced?
pmichaud news.perlfoundation.org/ 18:17
18:17 bacek joined
jonathan Yes, it's not mentioned from the front page, which I had expected. 18:17
Great though! :-)
pmichaud I see it mentioned there 18:18
the official announcement is now the third item down, though.
jonathan No, I menat just from www.perlfoundation.org 18:19
Anyway, good news, and that Jerry has got his announced too.
Coke i am seeing failures for Parrot_test on smolder, but my current run on feather doesn't reproduce. 18:20
particle coke: it's likely nan/inf related in Complex pmc, neh?
Coke ... why would those failures be duplicated in Parrot_test? 18:21
particle what's Parrot_test?
Coke t/perl/Parrot_Test.t
particle oh.
pmichaud afk, lunch
particle pmichaud: !INIT_IF_PROTO seems hacky. could an 'is default' trait be used instead? 18:22
response after lunch is fine :) 18:23
pmichaud particle: it's actually following the spec to some degree
operator assignment calls the reduction equivalent.
see S03 18:24
(afk for real this time)
jonathan particle: is default? That's related to MMD? 18:25
jonathan tries to see how it fits
particle jonathan: i figured something like...
proto infix:<~=> is equiv(infix:<:=>) is lvalue(1) is default('') { ... }
would be prettier than hiding '!INIT_IF_PROTO'(a, '') in the source 18:26
jonathan is default is already taken. It takes no parameters.
particle ok, so it's not a good name
jonathan And chooses the default function to dispatch to, when there's a multi ambiguity.
particle sorry for the confusion
jonathan I see where you mean now, though...
I was mostly curious if you really meant is default 'cus it's on my "to implement" list soon. :-) 18:27
particle heh, no, sorry i didn't remember it existed already
EBRAINTOOFEEBLE
19:21 gaz joined
bacek good morning 19:24
rakudo: my Num $a; say $a.WHAT; 19:25
polyglotbot OUTPUT[Num␤]
bacek rakudo: my Num $a; $a += 1; say $a.WHAT;
polyglotbot OUTPUT[Multiple Dispatch: No suitable candidate found for 'i_add', with signature 'PP'␤current instr.: 'infix:+=' pc 12507 (src/gen_builtins.pir:7739)␤called from Sub '_block11' pc 92 (EVAL_11:42)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1141 (src/PCT...
pmichaud rakudo: my Num $a; $a = 0; 19:28
polyglotbot OUTPUT[Type check failed␤current instr.: 'parrot;Perl6Object;infix:=' pc 60 (src/gen_builtins.pir:52)␤called from Sub '_block11' pc 93 (EVAL_11:43)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1141
..(src/PCT/HLLCompiler.pir:631)␤called from Sub 'parrot;PCT...
particle my Num $a; $a = 0.0; 19:30
rakudo: my Num $a; $a = 0.0;
polyglotbot RESULT[0]
particle rakudo: my Num $a; $a += 1.0; 19:31
polyglotbot OUTPUT[Multiple Dispatch: No suitable candidate found for 'i_add', with signature 'PP'␤current instr.: 'infix:+=' pc 12507 (src/gen_builtins.pir:7739)␤called from Sub '_block11' pc 93 (EVAL_11:42)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1141 (src/PCT...
particle hrmm
pmichaud need to fix the = 0 case, first. 19:32
19:41 bacek joined
bacek hates own ISP... 19:41
$ ../../parrot perl6.pbc -e 'my Num $a; $a += 1.0; say $a.WHAT;'
Type mismatch in assignment.
pmichaud yes. 19:42
we have to fix the = 0 case first.
$ ./parrot perl6.pbc -e 'my Num $a; $a = 0; say $a.WHAT';
Type mismatch in assignment.
when that is fixed, the other will work. 19:43
bacek rakudo: class Foo { method succ { new Foo } }; my Foo $a; $a++
polyglotbot OUTPUT[Could not find non-existent sub new␤current instr.: 'parrot;Foo;succ' pc 224 (EVAL_12:103)␤called from Sub 'prefix:++' pc 16156 (src/gen_builtins.pir:10126)␤called from Sub 'postfix:++' pc 16115 (src/gen_builtins.pir:10109)␤called from Sub '_block11' pc 89 (EVAL_12:41)␤called from Sub
..'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompi...
bacek rakudo: class Foo { method succ { Foo.new } }; my Foo $a; $a++ 19:44
polyglotbot RESULT[Method 'perl' not found for invocant of class ''␤current instr.: '_block11' pc 25 (EVAL_12:12)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1141 (src/PCT/HLLCompiler.pir:631)␤called from Sub
..'parrot;PCT;HLLCompiler;command_line' pc 1320 (src/PCT/HL...
bacek rakudo: class Foo { method succ { Foo.new } }; my Foo $a; $a++; say $a.WHAT
polyglotbot OUTPUT[Foo␤]
bacek hmm. This one works
pmichaud $ ./parrot perl6.pbc -e 'class Foo { method succ { Foo.new } }; my Foo $a; $a++; say $a.WHAT' 19:45
Type mismatch in assignment.
(polyglotbot is not up to date.) 19:46
(polyglotbot needs to report its svn revision number.)
bacek EBRAINSTILLSLEEP
bacek needs coffee
purl Then go make some, you lazy bum.
particle polyglotbot rebuilds every hour on the hour iirc
bacek purl: bad girl! 19:47
purl bacek: sorry...
pmichaud still, iwbni polyglotbot could report the svn revision number so we'd know for sure.
particle pmichaud: agreed 19:48
particle wonders where tene is 19:49
bacek $ ../../parrot perl6.pbc -e 'my $a = Failure.new; $a++; say $a.WHAT'
Int
:)
cotto can rakudo play with Parrot's config hash?
particle cotto: as in, read? 19:50
cotto yes
writing wouldn't make much sense
particle correct. but your wording wasn't clear how much coffee you'd had today ;)
we haven't exposed parrot's config info in rakudo yet... maybe something like %?COMPILER<config><foo>? what do you think pmichaud? 19:51
pmichaud there's a $?VM variable now 19:52
so maybe %?VM is more appropriate.
particle ah, yes
%?VM<config><foo> 19:53
pmichaud oh
%*VM
particle i can make that happen, if you like
pmichaud since it's runtime.
sure, that sounds cool.
bacek llvm.org/releases/2.4/docs/ReleaseNotes.html 19:54
The VMKit project is an implementation of a JVM and a CLI Virtual Machines (Microsoft .NET is an implementation of the CLI) using the Just-In-Time compiler of LLVM. 19:55
jonathan pmichaud: Have chance to try/break is also yet? 20:03
Coke pmichaud: is the PGE speedup discussed earlier covered by the grant that was just posted? (congrats, btw.) 20:04
particle coke: yes, ltm and protoregex are pge speedpus 20:05
*speedups
and covered by the grant
Coke so I can expect that sometime in the next 4 months?
bacek ping blog.perl.org
purl I can't find blog.perl.org in the DNS.
particle yep
bacek yak...
Coke just trying to plan my effort on tcl.
pmichaud Coke: yes
Coke in that case, I'll probably concentrate on adding features rather than speedups, and revisit the speedups later. Danke.
pmichaud I think I have ltm occurring sooner than that. 20:06
particle i think the first two months are protoregex and ltm
20:10 Lorn joined
PerlPilot particle++, pmichaud++ 20:11
particle thanks pj
PerlJam congrats you guys
bacek: were you looking for news.perlfoundation.org ? 20:14
bacek PerlJam: I don't understand question... 20:15
particle bacek: ping blog.perl.org 20:16
purl I can't find blog.perl.org in the DNS.
bacek particle: I'm in Sydney
particle ?
you pinged blog.perl.org, which doesn't exist. pj asked if you were looking for news.perlfoundation.org 20:17
do you mean use.perl.org?
bacek It was some old link in firefox history.
I definitely mean use.perl.org :)
PerlJam whoever manages the DNS for perl.org should add a CNAME for blog.perl.org :) 20:18
bacek PerlJam: +1
purl 1
particle mailto:webmaster@perl.org
purl somebody said mailto:webmaster@perl.org was a good generic address for patches, tec.
bacek really wants D3 from grant :) 20:20
particle which grant? 20:21
pmichaud and i both got grants :)
and both have D3's
bacek pm's
O! particle's D3 too! 20:22
CAN I HAZ THEM NOW?
particle :) 20:23
PerlJam bacek: only if you invent a time machine and travel forwards in time until then is now.
Coke wait, when's that? 20:24
PerlJam Or just cryogenically freeze yourself until such time and then your now will be at the right time.
bacek PerlJam: I have this time machine. It's called "bed". I can sleep for couple weeks :)
Infinoid Coke: the actual value of that is lazily evaluated
particle speaking of bytecode... hi infinoid! :P
Infinoid hi :) 20:25
PerlJam bacek: you need to recalibrate a bit, since I don't think a "couple weeks" is going to do ti.
particle how's your tuit supply?
Infinoid not so great.
bacek my $week := $month :)
tewk D3?
purl rumour has it D3 is gonna be the most amazing thing, graphics-wise
particle may lose his client anytime now :(
news.perlfoundation.org/2008/11/tpf..._jerr.html 20:26
news.perlfoundation.org/2008/11/tpf...ant_t.html
tewk: each of those has a third deliverable, D3
Coke PerlJam: I saw that episode of south park. I can wait. =-) 20:31
shorten that
purl That URL is at xrl.us/owwro [news.perlfoundation.org]
pmichaud D3 is likely to come well before the other items. 20:33
Coke msg notfound finally got around to applying the other half of your patch, sorry for the delay. 20:39
purl Message for notfound stored.
Coke msg notfound And thanks for the patch!
purl Message for notfound stored.
Coke seen mdiep? 20:40
purl mdiep was last seen on #parrot 31 days, 5 hours, 17 minutes and 16 seconds ago, saying: is off to work [Oct 10 15:23:38 2008]
particle dang, aapl has long workdays! 20:41
Coke seen chromatic? 20:43
purl chromatic was last seen on #parrot 1 days, 12 hours, 49 minutes and 25 seconds ago, saying: purl, msg tewk JITted NCI functions leak 1024 bytes each. We could stuff a reference count in the first INTVAL bytes and increment/decrement appropriately, returning the next 1020/1016 bytes as the function and freeing them with a special function from the NCI PMC in its destroy(). [Nov 9 07:53:46 2008]
dalek r32498 | coke++ | trunk: 20:46
: [docs] remove last release from upcoming release list.
diff: www.parrotvm.org/svn/parrot/revision?rev=32498
chromatic can see his house from here
Coke best line from _Enterprise_, ever. 20:49
I was going to poke you about profiling parrot, but then got distracted by type ids, but then got distracted by work. 20:50
chromatic I'm distracted by how bad Star Trek is.
20:54 johbar joined
Coke wonders when the new one is due. 20:56
tewk chromatic: fixing the NCI leak sounds good to me.
1024 bytes is a hard code that should go away too, it pre-dates me, but I wasn't going to try to rewrite the jitting infrastructure at the time. 20:57
20:57 japhb joined
Coke chromatic: anything else need doing on type ids? I think you got the big ones while I was out sick. 20:57
chromatic Coke, the big thing is removing hard-coded type IDs now. 20:58
Coke I thought you just did that? 20:59
20:59 boots joined
Coke or did you just remove the .const ability to refer to them? 20:59
can I still say $I0 = .Integer ?
chromatic I meant enum_class_Integer in C code. 21:00
I did just remove the .const ability.
If .Integer works in PIR or PASM now, it's an error. 21:01
Coke I am under the impression we're not removing it from C code.
chromatic I am under the opposite impression.
Coke just from pir/vtables.
chromatic vtables?
purl vtables are more trouble to maintain than if they were all in raw C and duplicated
Coke there are some vtables which handle that info. 21:02
chromatic Right. Yes.
Coke both of which (remaining) have tickets for their removal.
I mentioned here removing it everywhere, and someone (particle?) said something along the lines of "I heard from allison that we were keeping that until 1.0"
chromatic That's a relief. 21:03
Coke I throw particle under the bus, because he's usually the one there, depending on what 'that' is.
pmichaud I think I'm the one who said that.
Coke So, c., one of us should probably bug allison about her recollection on that issue. 21:04
chromatic Will do. 21:06
Coke if it's just a "too much code to rip out", we should still document on the ticket what's left, and then update the deprecation cycle for what's left to be 1.0 21:10
er.
yes on 1, no on 1.0 there; if it's just a coding thing, then leave it as "as soon as we get to it"
if it's really that we need to rethink things more, then we can up the anticipated rip out release #. 21:11
what is this syntax? /* {{**DEPRECATE**}} */ 21:12
purl Hmm. No matches for that, Coke.
Coke (found it in one of the .ops files.)
any reason not to just remove that and add :deprecated to the op?
particle use svn blame 21:13
no idea where that line came from
chromatic It looks like the PDD notation Allison uses. 21:15
particle cotto: i have %*VM working locally, running spectest now 21:16
at least, %*VM<config> works now....
dalek r32499 | coke++ | trunk: 21:18
: Remove docs for 2 nonexistant op variants; use standard ":deprecated" syntax instead of C comment; mark morph as deprecated (covered by the integer type ids [DEPRECATED] status.)
diff: www.parrotvm.org/svn/parrot/revision?rev=32499
jonathan Hmm. Would that mean the morph vtable was going away too? Or is morph becoming just for internal use? Or do other ops do it? 21:20
chromatic I remember fixing something morph-like a while back.
Coke jonathan: morph based on int type is going away.
I know nothing about the other morph variant.
so yes, morph(intval) should probably be on the pile. 21:21
(the vtable)
21:21 parrot-poke joined
Coke idly wonders if we want a BOOLVAL. 21:22
parrot-poke true! :)_
particle !true
parrot-poke sorry, probably misunderstood the context, wasn't addressed, etc ... will but out
particle parrot-poke: you don't need to be addressed to speak here 21:23
Coke jonathan: removing VTABLE_morph will be on a par with removing VTABLE_type 21:28
jonathan Coke: I think VTABLE_morph is used less widely.
Thing is, the only way we have to morph today is by specifing a type ID, as far as I know (but correct me if I'm wrong) 21:29
Coke at the opcode level, that's not true.
jonathan OK.
And the VTABLE level?
Coke true
(all the STR variant of the opcode does is convert the string to an int and call the vtable.) 21:30
jonathan I feared so.
chromatic We need some sort of string registry of PMCs.
jonathan Can't we just stick 'em in the namespace?
Coke well, step one of this integer id removal will be getting it out of the PIR. 21:31
jonathan (As in, put the PMCProxy in the namespace...)
Coke and We're pretty close on that.
chromatic++
chromatic We don't want to create PMCProxy PMCs of built-in types from C, in general.
jonathan Oh, yes. 21:33
My original vision for PMCProxy never did quite play out as hoped... :-(
Coke chromatic: it would be nifty, btw, if I were able to compare profiling output of partcl before and after patrick finishes his PGE speedups. 21:35
<innocent whistle>
particle stares at coke's visible tuit supply 21:36
Coke I have plenty of time to posit!
particle chromatic: the big sticking point (so far) to pir profiling is finding the invoke calls and tying it to which subs are called, right? 21:38
or, getting the info about the subs being called (file, line, name, etc) 21:39
21:41 register joined
chromatic Getting the info is easy. 21:43
The API for that is horrible, but we have one.
The hard part is identifying how an op changes control flow.
Then there's the fact that many exception handlers start new runloops. 21:44
dalek r32500 | particle++ | trunk:
: [rakudo] create %*VM hash, and expose parrot config info under %*VM<config><...> ; cotto++ for asking for it
diff: www.parrotvm.org/svn/parrot/revision?rev=32500
chromatic Mostly the problem is transcribing a program's control flow into the Callgrind format.
21:47 rob joined
particle well, it's nice that it has a spec, and even a grammar (sec 3.2.1): www.hlrs.de/organization/amt/servic...ormat.html 21:48
chromatic That helps. 21:49
particle even if we can get a runcore that creates a valid callgrind header, we'd be on the right track 21:50
we could start adding Instruction info then, perhaps
chromatic I think I posted a patch for that.
cotto perl6: say %*VM<config><revision> 22:09
polyglotbot OUTPUT[get_pmc_keyed() not implemented in class 'Undef'␤current instr.: '_block11' pc 40 (EVAL_12:23)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1141 (src/PCT/HLLCompiler.pir:631)␤called from Sub
..'parrot;PCT;HLLCompiler;command_line' pc 1320 (src/PCT/HL...
moritz perl6: say %*VM.perl 22:10
polyglotbot OUTPUT[{}␤]
moritz not very informative yet.
perl6: say %*VM<config>.perl
polyglotbot OUTPUT[undef␤]
jonathan Perhaps polyglotbot is not yet updated?
moritz my local checkout isi more informative 22:11
particle ../../parrot perl6.pbc -e 'say %?VM<config><osname>'
linux
moritz same here 22:12
pmichaud books his room for pds
tewk Anyone want to share a room at pds? 22:17
chromatic Several of us should. 22:18
moritz isn't there a wiki page about that? 22:19
Coke answers vadim's question. 22:20
pmichaud www.parrot.org/wiki/parrot-developer-summit-2008
particle coke++ beats me to it
Coke Not that I -advocate- using it, mind you, but if someone wants to. =-)
22:21 ruoso joined
tewk My understanding is that we are responsible to pair up and book rooms. 22:21
particle tewk: correct. 22:22
you may find it convenient to create or use a wiki page to coordinate, or do it via email
chromatic tewk, I haven't booked yet.
Coke is there a bog-standard command line way of dealing with zip files in xp? 22:27
22:29 TiMBuS joined
particle coke: either via 7-zip or Archive::Zip 22:31
here's an archive::zip example: www.onfocus.com/2007/01/3900
moritz I'd call neither of this "bog-standard" ;)
Coke nothing that requires perl is standard. =-) 22:32
particle open explorer and use your mouse
Coke Just trying to automate something for my developers, is all. 22:34
(they'll have a JVM lying about, that's probably my path of least resistance.) 22:37
23:20 Limbic_Region joined, bacek_ joined 23:22 Whiteknight joined
Coke bops chromatic 23:42
ambs++ vote early, vote often. 23:44
-> 23:49
chromatic on the phone, sorry 23:50
dalek r32501 | japhb++ | trunk: 23:51
: [OpenGL] Translate first two OpenGL examples to Perl 6
: * Add new examples/opengl/{static-,}triangle.p6, fairly
: direct conversions of the .pir equivalents to Perl 6.
: * Yes, they work under Rakudo now!
: * i386 NCI JIT is still broken, so build Parrot with
: Configure.pl --jitcapable=0 on i386 platforms.
diff: www.parrotvm.org/svn/parrot/revision?rev=32501
r32502 | japhb++ | trunk: 23:54
: Set SVN properties on new OpenGL Perl 6 examples
diff: www.parrotvm.org/svn/parrot/revision?rev=32502