Camelia, the Perl 6 bug

IRC log for #parrot, 2008-11-10

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced