|
Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches | Review and vote GSoC applications Set by moderator on 20 April 2010. |
|||
|
00:06
dalek left,
dalek joined
|
|||
| particle is working on a PaFo GSoC press release | 00:07 | ||
| darbelo | particle++ | 00:09 | |
| We need more press. | |||
| dalek | kudo: a27dfef | jonathan++ | src/cheats/eval.pm: Re-enable :lang attribute for eval. Now we can eval Perl 5 code using Blizkost. |
00:28 | |
|
00:29
dalek left,
dalek joined
|
|||
| tcurtis | particle: if you're curious as to how the GSOC students reacted to learning that their proposal had been accepted, my reaction involved a lot of dancing around and jumping up and down. | 00:35 | |
| cotto_work | vids or it didn't happen | 00:36 | |
| ;) | |||
| japhb | cotto_work, these days: "vids and it didn't happen" | ||
| darbelo lacks a camera. | |||
| japhb | darbelo, not even on your cell phone? | 00:37 | |
| darbelo doesn't exist. | |||
|
00:37
preflex joined
|
|||
| darbelo lacks a functional camera. | 00:37 | ||
| The one on the cellphone is, indeed, still there. | 00:38 | ||
| japhb wonders whether you can even buy a new cellphone without one .... | 00:39 | ||
| tcurtis has an iPhone, leaving him without a video camera. Or many other things that would one expect to be basic features of modern phones, especially smartphones. | 00:40 | ||
| darbelo only expects mobile phones to work the same as regular phones, but mobile. | 00:41 | ||
| japhb | I'm with you, darbelo. Well, actually, come to think of it, I *was*. Now I think my next phone will need to be able to ssh. | 00:42 | |
| tcurtis wants his mobile phone to work the same as his laptop, but a phone, and of pocketable size. | |||
|
00:48
dalek left,
dalek joined
00:51
dalek left,
dalek joined
01:12
ash_ joined
|
|||
| dalek | rrot: r46047 | chromatic++ | branches/compact_pool_revamp/src (3 files): [GC] Removed a memset() when returning a fresh header, as PMCs will overwrite can figure out how to remove it. This improves the stress_strings benchmark by 1.315% and oofib by 1.778%. Allocating PMCs is now faster. |
01:34 | |
|
01:58
Psyche^ joined
02:15
JimmyZ joined
02:45
patspam joined
03:00
janus joined
03:15
ash_ joined
|
|||
| sorear | Agh. More shadowing horrors. | 03:23 | |
| Do not name a PMC attribute 'value'. | |||
|
03:25
tetragon joined
|
|||
| bacek_at_work | sorear, I removed -Wno-shadow already. | 03:28 | |
| at r46018 | 03:29 | ||
| dalek | izkost: 801e519 | sorear++ | (5 files): Hash iteration should return pairs about this for a while. |
||
| sorear | bacek_at_work: I'm on 2.3.0 :( | 03:30 | |
| bacek_at_work | sorear, bad luck... | ||
| 2.3.0 is way too old. It was around for AGES. | |||
| I mean more than one week already :) | |||
| cotto | Seriously. That's old and busted. | 03:33 | |
| You should be using 2.4.0. | 03:34 | ||
| sorear | cotto: I have to interoperate with 2.3.0-specific legacy code | ||
| cotto | oic | ||
| sorear | specifically, Rakudo | ||
| cotto | Heh. Legacy code. | ||
| bacek_at_work | seen rurban | 03:57 | |
| purl | rurban was last seen on #p5p 6 hours, 34 minutes and 37 seconds ago, saying: All the p5 gsoc projects in the last years are not really technical. parrot the opposite. They would really need more housekeeping and less technical invention. | ||
|
04:24
arnsholt_ joined
|
|||
| dalek | izkost: bddf41a | sorear++ | Configure.pl: Try to warn earlier when problematic configuration is detected |
04:30 | |
|
04:54
khairul joined
|
|||
| khairul | cotto: Hi cotto, thanks for being my mentor. I'm in the midst of exams now, so won't be free much till 5th may. | 04:55 | |
|
05:01
rurban_ joined
|
|||
| cotto | ok | 05:02 | |
| Don't let gsoc distract you. | |||
| It's ok to get started during the bonding period but not at all required. | |||
| If you haven't sent in a CLA, now would be a good time. | 05:07 | ||
| what os is mikehh running? | 05:08 | ||
| JimmyZ | ubuntu 10.04 RC | ||
| cotto | Odd that he'd see the io.t failures. The test is quite happy for me. | 05:09 | |
| khairul | thanks alot. i'll submit the cla later. have to read it first. | ||
| JimmyZ | parrot never builds with me. | 05:10 | |
| sigh | |||
| cotto | orly? What happens? What OS are you on? | 05:11 | |
| JimmyZ | TT #888 | ||
| win32 | |||
| cotto | not just any windows, but Chinese windows | 05:12 | |
| JimmyZ | Nope, config_lib.pir can't have chinese words | 05:13 | |
| cotto | Is there an easy way to repro for us decadent westerners? | 05:14 | |
| or at least us ethnocentric westerners | 05:15 | ||
| ;) | |||
| What does "ę£č±ē§äŗŗ" mean? | 05:17 | ||
| JimmyZ | a user name | 05:18 | |
| purl | a user name is the identity | ||
| JimmyZ | an | ||
| cotto | I have Parrot configured with /tmp/ę£č±ē§äŗŗ as temp dir. Let's see what happens. | ||
| JimmyZ | purl: an user name? | ||
| purl | an user name is the identity | ||
| JimmyZ | purl: user name? | 05:19 | |
| purl | it has been said that user name is the identity | ||
| cotto | In American English you'd use "a". | ||
| JimmyZ | Yeah. | ||
| cotto | My build is sad. | ||
| JimmyZ | that is parrot only supprot ascii config file? | 05:20 | |
| err supports | |||
| cotto | Urgh. I hope not. | ||
| I know you can safely use some non-ascii characters. | |||
| JimmyZ | another ticket is trac.parrot.org/parrot/ticket/326, it built before. | 05:21 | |
| I removed line 2839, 2840, 2841 in api.c with r40203, and then it pass all. | 05:23 | ||
| nopaste | "cotto" at 192.168.1.3 pasted "quick for JimmyZ++" (13 lines) at nopaste.snit.ch/20379 | 05:37 | |
| cotto | there you go | ||
| I'm not sure if it's correct but it'll let you build again. | |||
| Thanks for complaining. | |||
| In fact, I'm pretty sure it's wrong. | 05:38 | ||
| JimmyZ | Thanks. | ||
| once again, could I request a commit bit act as cage cleaner? | 05:39 | ||
| cotto | Have you requested one in the past? | 05:41 | |
| (that won't disqualify you. I'm just curious.) | |||
| JimmyZ | in the past you and coke mentioned it and mikehh | 05:44 | |
| coincidence, there almost no one on #ps | |||
| cotto | No. People only show up there for the Tuesday meeting. That's when commit bits need to be requested. | 05:45 | |
| JimmyZ | yes | ||
| cotto | Right. I remember that. I'll bring it up tomorrow. | ||
| Can you build Parrot ok now? | 05:46 | ||
| JimmyZ | I will try it tonight. | ||
| Any way, thank | 05:47 | ||
| cotto | sure | 05:49 | |
|
06:06
uniejo joined
|
|||
| cotto | When you have a chance to build, please post whether that patch allows you to build again. | 06:08 | |
| JimmyZ | No problem ;) | 06:09 | |
| cotto | Also, feel free to bump the importance of any bugs that break the build for you. Having failing tests is bad, but you can't do much of anything if you can't build. | 06:10 | |
| dalek | rrot: r46048 | petdance++ | trunk (6 files): starting to convert the virtual functions to const STRING * |
06:12 | |
|
06:15
fperrad joined
06:16
fperrad_ joined
|
|||
| JimmyZ | nopaste | 06:17 | |
| nopaste? | |||
| purl | nopaste is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com | ||
| nopaste | "JimmyZ" at 192.168.1.3 pasted "make smoke failed for cotto(It's not use chinese username.)" (12 lines) at nopaste.snit.ch/20380 | 06:18 | |
| JimmyZ | aslo see smolder.plusthree.com/app/projects/...ails/33485 | 06:19 | |
| err It doesn't use chinese username. | |||
|
06:22
riffraff joined
06:23
alexn_org joined
06:28
viklund joined
06:45
fperrad_ joined
06:56
aukjan joined
07:14
iblechbot joined
|
|||
| dalek | rrot: r46049 | chromatic++ | branches/compact_pool_revamp/src/gc (4 files): [GC] Moved PMC attribute allocation functions to a different file, where a good improves oofib.pir by 2.109% by making PMC allocation faster. |
07:18 | |
| rrot: r46050 | chromatic++ | branches/compact_pool_revamp/src/pmc/callcontext.pmc: [PMC] Made CallContext PMC avoid unnecessary calls to static performance by 1.539% and speeds up PCC in general. Rethinking the static function might be useful. |
07:51 | ||
| rrot: r46051 | fperrad++ | trunk/t/op/annotate-old.t: fix warning : Use of uninitialized value $ENV{"TEST_PROG_ARGS"} in pattern match (m//) |
08:07 | ||
| izkost: 352d8b6 | sorear++ | perl5.pir: Add a forgotten newclosure |
08:21 | ||
| sorear | What's the PIR syntax for "branch if strings equal"? | 08:25 | |
| moritz | $I0 = iseq $S0, $S1 \\n if $I0 goto foo | 08:29 | |
| or something like that | |||
| JimmyZ | if $S0 == 'GET' goto serve_get ? | 08:30 | |
| moritz | I think you have to do it in two statements | ||
| JimmyZ | if $S0 == 'GET' goto serve_get # from runtime\\parrot\\library\\HTTP\\Daemon.pir | ||
| moritz | but my PIR fu is rather week | ||
| nopaste | "Austin" at 192.168.1.3 pasted "== 'foo' works" (10 lines) at nopaste.snit.ch/20381 | 08:31 | |
| dalek | rrot: r46052 | chromatic++ | branches/compact_pool_revamp/src/call/context.c: [PCC] Added a very minor optimization and consted Parrot_pcc_free_registers(). |
08:40 | |
| rrot: r46053 | chromatic++ | branches/compact_pool_revamp/compilers/imcc/parser_util.c: [IMCC] Refactored IMCC's INS() instruction creation function slightly to be |
|||
| sorear | How do I delegate to the inherited version of a vtable in a PIR override? | 08:47 | |
| or, hmm, I could just actually inherit | 08:49 | ||
| Is it possible to implement namespaces in PIR? | 08:58 | ||
| JimmyZ | PIR supports namespaces | 09:00 | |
| Isn't it? | |||
| sorear | I mean, implementing a NameSpace PMC subclass | 09:02 | |
| bacek | ~~ | ||
| sorear | the Parrot core seems very insistant on ignoring my homemade namespace | 09:03 | |
| sorear is now stepping in gdb | |||
| ooh | 09:11 | ||
| get_class <pmc> does not return a canonical PMCProxy | |||
| which makes it effectively useless | |||
| I can't use it for inheriting because it doesn't compare same to the results of Parrot_oo_get_class | |||
| Austin | You might mean "class <pmc>" | 09:12 | |
| sorear | so it doesn't make VTABLE_isa work | ||
| bacek | We do need "a champion" to clean up all this PMCProxy/Class/Object mess... | ||
| dalek | rrot: r46054 | fperrad++ | trunk/runtime/parrot/library/ProfTest/PIRProfile.nqp: [prof] fix on Windows ( newline \\r\\n ) |
||
| Austin | Also, IIRC, there's a problem with overriding some of the get_xxx_keyed vtables, so I don't think you can code a full-on namespace in pir alone. | 09:13 | |
| Sorry. | |||
| sorear | It doesn't matter, because I can't even convince Parrot to *accept* my namespace | 09:14 | |
| inheriting from class 'NameSpace', isa NameSpace is still false | |||
| so Parrot happily decides it's a variable and not a valid namespace | 09:15 | ||
| (isinstanceof considered harmful) | |||
| Austin | nopaste? | 09:18 | |
| purl | nopaste is probably nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com | ||
|
09:22
snarkyboojum joined
09:29
gaz joined
09:33
clinton joined
|
|||
| dalek | kudo: 0a04ef3 | (Solomon Foster)++ | src/ (4 files): Rename Range.minmax to Range.bounds. Change Any.minmax to return a Range, and take Ranges as arguments, too. (Though note that in many conditions the Range is expanded to a list going in, which muddles things.) Add minmax operator which uses Any.minmax internally. |
10:03 | |
|
10:08
bakkdoor joined
|
|||
| bacek | ( 16256732900 - 15006995754) / 16256732900 * 100 | 10:17 | |
| purl | 7.68750494756545 | ||
| bacek | msg chromatic Branch is 7.68% faster then trunk. I'm going to merge it tomorrow morning at about 8AM SYD. | 10:19 | |
| purl | Message for chromatic stored. | ||
| dalek | TT #1577 closed by bacek++: gitignore files | 10:37 | |
| TT #1577: trac.parrot.org/parrot/ticket/1577 | |||
|
10:47
jsut_ joined
|
|||
| bakkdoor | is there a complete overview of all built-in past nodes? | 10:57 | |
| bacek | bakkdoor, I don't think so... | 10:58 | |
| bakkdoor | oh :/ | 10:59 | |
| Austin | bakkdoor: perldoc in the pct/src/PAST/Node.pir file | 11:00 | |
| bacek | Austin++ | 11:01 | |
| bakkdoor | Austin: ah ok thanks | ||
| bacek | Niiice... Why TGE isn't deprecated??? | 11:34 | |
| dalek | rrot: r46055 | bacek++ | trunk (24 files): Replace deprecated in-place substr ops |
11:39 | |
|
11:59
bluescreen joined
12:09
whiteknight joined
|
|||
| mikehh | get 2 failures in make test - t/compilers/pge/p5regex/p5rx.t and t/compilers/pge/perl6regex/01-regex.t - error:imcc:The opcode 'substr_s_i_ic_sc' (substr<4>) was not found. | 12:11 | |
| bacek: so what do you use instead of inplace susstr | 12:18 | ||
| substr | 12:19 | ||
| bacek | mikehh, non-in-place substr or replace | 12:21 | |
|
12:32
ash_ joined
12:40
ruoso joined
12:41
tetragon joined
12:43
bluescreen joined
|
|||
| Coke | (TGE) ISTR allison wanted to keep it. | 12:43 | |
| there's plenty of other stuff to rip out. go get 'sizeof' | 12:44 | ||
| mikehh | bacek: compact_pool_revamp branck All tests PASS up to fulltest at r46055 - Ubuntu 9.10 amd64 RC (g++) | 12:46 | |
| bacek | mikehh, thanks | 12:47 | |
| Coke, I'll finish strings first! | 12:51 | ||
| Coke | bacek: you and your crazy "logical order". | 12:52 | |
|
12:52
iblechbot joined
|
|||
| bacek | It's very new order for parrot! | 12:52 | |
|
12:56
uniejo joined
13:01
rurban_ joined
13:07
cosimo joined
13:09
cosimo joined
|
|||
| dalek | rrot: r46056 | mikehh++ | trunk/t/compilers/pge/p5regex/p5rx.t: change in-place substr to replace |
13:17 | |
| purl | dalek: that doesn't look right | ||
| rrot: r46057 | mikehh++ | trunk/t/compilers/pge/perl6regex/01-regex.t: change in-place substr to replace |
|||
| purl | dalek: that doesn't look right | ||
| rrot: r46058 | fperrad++ | trunk/src/embed.c: fix segmentation fault of pbc_disassemble.exe on mingw #0 0x686d491d in PDB_free_file (interp=0x3f4050, file=0xbaadf00d) at src/debug.c:2745 #1 0x686d4a75 in PDB_disassemble (interp=0x3f4050, command_unused=0x0) at src/debug.c:2612 #2 0x686d87a2 in Parrot_disassemble (interp=0x3f4050, outfile=0x0, options=0) at src/embed.c:969 #3 0x00401385 in do_dis (interp=0x3f4050, outfile=0x0, options=0) at src/pbc_disassemble.c:161 #4 0x00401527 in main (argc=1, argv=0x3f402c) at src/pbc_disassemble.c:141 |
|||
| rrot: r46059 | mikehh++ | trunk/t/compilers/pge (2 files): forgot to change the Copyright |
|||
|
13:23
atrodo joined
|
|||
| dalek | rrot: r46060 | bacek++ | trunk (26 files): Remove more deprecated string ops: bitwise, chomp, case and encoding |
13:50 | |
| rrot: r46061 | bacek++ | trunk/src/ops (2 files): Resurrect inplace downcase. I can't figure out how PGE emits it for |
|||
|
13:53
plobsing joined
13:56
JimmyZ joined
|
|||
| JimmyZ | msg cotto the patch doesn't work for me. | 13:57 | |
| purl | Message for cotto stored. | ||
| dalek | a: c84044b | fperrad++ | lua/lua51.pir: Replace deprecated in-place substr ops |
||
| rrot: r46062 | bacek++ | trunk (3 files): Revert "Resurrect inplace downcase" and fix PGE to not emit it. |
14:07 | ||
|
14:10
Essobi joined
14:15
davidfetter joined
|
|||
| Coke | removed bascorp's spam/account. | 14:18 | |
| dalek | rrot: r46063 | mikehh++ | trunk/t/pmc/namespace.t: remove diag that clutters test output with comment |
14:23 | |
|
14:24
Andy joined,
bubaflub joined
|
|||
| JimmyZ | hello bacek | 14:28 | |
| dalek | a: 1a3df97 | fperrad++ | lua/lib/luastring.pir: update downcase & upcase uses |
14:30 | |
| tracwiki: v11 | coke++ | TracSpammers | 14:32 | ||
| tracwiki: trac.parrot.org/parrot/wiki/TracSpa...ction=diff | |||
|
14:32
lucian joined
14:40
lucian joined
|
|||
| dalek | TT #1595 created by jimmy++: [PATCH][PCT]removed deprecated in-place ops | 14:44 | |
| TT #1595: trac.parrot.org/parrot/ticket/1595 | |||
|
14:44
fperrad joined
14:45
khairul joined
|
|||
| mikehh | bacek: bunch of examples_tests fail in trunk | 14:51 | |
| dalek | kudo: f8987e4 | (Solomon Foster)++ | src/Perl6/Grammar.pm: Make minmax have list_infix precedence. |
||
| kudo: cb8446c | (Solomon Foster)++ | src/core/Cool-str.pm: Add special cases to infix:<cmp> involving +Inf and -Inf (so they can be compared against any type). |
|||
| kudo: 083e3ea | (Solomon Foster)++ | t/spectest.data: Turn on S03-operators/minmax.t. |
|||
| kudo: 1cdbc19 | (Solomon Foster)++ | src/core/Cool-str.pm: Revert "Add special cases to infix:<cmp> involving +Inf and -Inf (so they can be compared against any type)." Revert patch because it broke infix:<cmp> pretty badly. |
|||
| rrot: r46064 | petdance++ | trunk (7 files): all charset virt funcs now take const STRING * |
14:56 | ||
|
14:57
ruoso joined
14:58
GodFather joined
|
|||
| particle | purl: be mjd | 15:01 | |
| purl | I, DOMINVS | ||
| mikehh | AFAICS all the examples_test failures are missing opcodes (recently removed) | 15:15 | |
|
15:20
iblechbot joined
|
|||
| dalek | kudo: 8d99ca2 | moritz++ | CREDITS: update my CREDITS entry |
15:32 | |
| kudo: c868fc1 | moritz++ | tools/contributors.pl: [tools] new script contributors.pl announcements |
|||
| purl | i guess announcements is a table and who is the column? | ||
| kudo: 082caee | moritz++ | docs/release_guide.pod: [docs] instruct release manager to include a list of contributors in the announcement |
|||
| nxed: r452 | julian.notfound++ | trunk/winxedst1.winxed: use s_s_i form of trans_encoding, s_i form is gone |
15:35 | ||
| cotto | JimmyZ, it'd be very helpful if you could bisect TT #888 to find out which revision broke the build for you. | 15:37 | |
| NotFound | cotto: I think it was the change to assume command line parameters are utf8 | 15:38 | |
| JimmyZ | cotto: It's failed about 66 test, though it builds for me. | 15:39 | |
| cotto | ok. I don't see any test failures, so they may be unrelated to the patch. | 15:40 | |
| JimmyZ | err, built | ||
| cotto | win32 doesn't get enough love | ||
| JimmyZ | so biescting is unuseful | 15:41 | |
| NotFound | cotto: no strange, given that most of us don't use it. | ||
| cotto | ok. It'd be good to get those other test failures fixed (and verify that my patch is sane) before committing it. | ||
| cotto heads to work | 15:42 | ||
| nopaste | "JimmyZ" at 192.168.1.3 pasted "quick patch for myself, it passed all tests. but I don't it's the right patch FOR cotto" (17 lines) at nopaste.snit.ch/20383 | ||
| mikehh | JimmyZ: codetest will reject the patch - c++ comments not allowed | 15:48 | |
| JimmyZ | mikehh: Yeah, It shouldn't be committed | 15:49 | |
| Coke | mikehh: it's just a POC. | ||
| mikehh | or at least object to it | ||
| Coke | if it were real, we'd just delete those lines anyway. | 15:50 | |
| JimmyZ | mikehh: Itself was wrong patch | ||
| sigh, poor english again. | 15:51 | ||
| mikehh | hey English is my first (and only really) language and I still screw up | ||
| that is of course spoken as opposed to so-called computer languages - not that I don't screw up there | 15:53 | ||
| darbelo knows people who have FORTRAN as their first language. | 15:59 | ||
| mikehh it was mine | 16:00 | ||
| darbelo | mikehh: I thought you spoke english ;) | ||
| mikehh | hah - was we talkin' or codin' | 16:01 | |
| Andy | ANDY ON CONSTRING FRENXY | ||
| ANDY CONST EVERYTHING | |||
| darbelo | "Punched first card at the age of fieve" | 16:02 | |
| Andy | ANDY NOT ABLE TYPE ANDY SO EXCITED | ||
| darbelo | Andy: Hulk CONST!! | ||
| Andy | darbelo: Probably for me it was about age 4 I think. | ||
| darbelo | Andy: In FORTRAN you can make both be the same ;) | ||
| mikehh | the first computer I used had paper tape - an IBM 1620 | ||
| Andy | where's the web page that shows the smoke results? | 16:03 | |
|
16:03
theory joined
|
|||
| Andy | oh found it | 16:03 | |
| mikehh | smolder.plusthree.com/app/projects/..._reports/8 | 16:04 | |
| Andy | tt.taptinder.org/buildstatus/pr-Parrot/rp-trunk iks what I was lookin' for | 16:05 | |
| thanks. | |||
| cotto_work | JimmyZ: that was the first thing I tried. It works but it's definitely not the right fix. | 16:06 | |
| NotFound | In Russian Fortran formula translates you. | ||
| mikehh | in pir I changed substr target, $I0, 2, "\\n" to target = replace target, $I0, 2, "\\n" how do I change substr S3, 5, 1, S2 in pasm | 16:21 | |
| darbelo | target = replace target, $I0, 2, "\\n" is sugar for PASM replace target, target, $I0, 2, "\\n" | 16:22 | |
| mikehh | 'k | 16:23 | |
| darbelo | Any time you see arg0 = op arg1, arg2 it's the same as op arg0, arg1, arg2 | 16:26 | |
| japhb | seen allison | 16:28 | |
| purl | allison was last seen on #parrot 5 days, 20 hours, 23 minutes and 48 seconds ago, saying: is anyone else having trouble getting in to the conf call? [Apr 21 20:04:32 2010] | ||
| darbelo | japhb: She'll most likely be here by the parrotsketch time. | 16:30 | |
| japhb | nod | 16:32 | |
| darbelo | Based, of course, on the answers my magic 8-ball gave after shaking it. | 16:33 | |
| japhb | ah | ||
| darbelo | I'm mostly guessing based on past experience. She usssually logs into IRC a few minutes before #ps | 16:34 | |
| dalek | rrot: r46065 | mikehh++ | trunk/examples/japh/japh3.pasm: change in-place substr to replace |
||
| purl | dalek: that doesn't look right | ||
| darbelo | Except when she doesn't. | ||
| The magic 8-ball says "This time for sure" however. | 16:35 | ||
| Which I find highly encouraging. | |||
|
16:36
bakkdoor joined
|
|||
| darbelo | bacek: ping | 16:52 | |
| whiteknight | seen Chandon | 16:56 | |
| purl | Chandon was last seen on #parrot 24 days, 20 hours, 52 minutes and 53 seconds ago, saying: It really depends on the application and the algorithm. For some things, nothing, for others, everything. [Apr 2 20:03:14 2010] | ||
|
16:59
riffraff joined
|
|||
| particle | that's some algorythm | 16:59 | |
| y/y/i/ | |||
|
16:59
chromatic joined
|
|||
| darbelo | particle: It can be incaurate, but it's for sure fast ;) | 16:59 | |
|
17:07
allison joined
|
|||
| cotto_work | Is this patch a good idea: trac.parrot.org/parrot/attachment/t...path.patch | 17:10 | |
| chromatic | I'd rather do it only if the string contains characters outside of Latin-1. | ||
| cotto_work | What's the best way to do that? | 17:11 | |
| purl | i guess the best way to do that is not always by telling you what you think you want to know. | ||
| cotto_work | forget the best way to do that | ||
| purl | cotto_work: I forgot best way to do that | ||
| chromatic | something like grep { $_ > 127 } unpack( "W*", $maybe_has_utf8_chars ); | 17:16 | |
| dalek | nxed: r453 | julian.notfound++ | trunk/examples/Xlib.winxed: update hardcoded value in example Xlib |
17:21 | |
| rrot: r46066 | mikehh++ | trunk/src/string/charset/ascii.c: fix codetest failure - line length |
17:23 | ||
| rrot: r46067 | NotFound++ | trunk/examples/nci/Xlib.pir: fix Xlib search in example Xlib module |
|||
| rrot: r46068 | mikehh++ | trunk/examples/json/postalcodes.pir: change in-place string ops |
17:39 | ||
| purl | dalek: that doesn't look right | ||
| mikehh | maybe it realy should be replace | 17:40 | |
| purl botsnacki | 17:41 | ||
| purl | thanks mikehh :) | ||
|
17:55
joeri joined
18:10
lucian_ joined
18:11
kjeldahl_ joined
|
|||
| dalek | rrot: r46069 | mikehh++ | trunk/examples/library/ncurses_life.pir: replace in-place string ops - I think this example is TODOed but at least it now compiles |
18:12 | |
| tracwiki: v27 | allison++ | GCTasklist | 18:24 | ||
| tracwiki: trac.parrot.org/parrot/wiki/GCTaskl...ction=diff | |||
| chromatic | compact_pool_revamp is ~7% faster than trunk now. | 18:25 | |
| dalek | rrot: r46070 | mikehh++ | trunk/examples/pge/demo.pir: replace in-place string op |
18:29 | |
| whiteknight | 7%? | 18:37 | |
| purl | 7% is potentially 100%. | ||
| whiteknight | purl, that's the worst math I ever heard | ||
| purl | whiteknight: i'm not following you... | ||
| whiteknight | of course you're not | ||
| chromatic: what does that branch do? | 18:38 | ||
| darbelo | It revamps compact_pool() | 18:42 | |
|
18:42
tewk joined
|
|||
| darbelo | It manages string storage in a smarter (and fater) way. | 18:42 | |
| s/fater/faster/ | 18:43 | ||
| chromatic | It removes some stupidity from the GC. | ||
| darbelo | That's another way to put it. | ||
| mikehh | ok my attempts at replacing upcase and downcase did not work | 18:45 | |
| dalek | rrot: r46071 | mikehh++ | trunk/examples/shootout/revcomp.pir: replace in-place string op |
||
| rrot: r46072 | mikehh++ | trunk/examples/pir/substr.pir: replace in-place string op |
|||
| chromatic | It also has some optimizations that immutable strings made possible. | 18:46 | |
| darbelo | mikehh: bacek fixed some stuff with downcase in TGE, have you seen it? | 18:47 | |
| chromatic | Informed guess: trunk is 10-11% faster than 2.3.0. | ||
| darbelo | mikehh: r46062, I think | 18:48 | |
| Coke | chromatic: not bad for a week's work. | ||
| (i know, I know, a week's commits on trunk != a week's work.) | |||
| mikehh | darbelo: I looked, but imcc reports errors and when I try to change it still get an error | 18:49 | |
| chromatic | If we can turn more STRINGs into PBC constants, we might see even more benefit in Rakudo. | ||
| darbelo | mikehh: Can you nopaste the errors? | ||
| mikehh need to take a bit of a break before I do something really stoopid | |||
| t/examples/catchall.t .. 51/149 error:imcc:The opcode 'upcase_s' (upcase<1>) was not found. Check the type and number of the arguments | 18:50 | ||
| in file 'examples/pir/pirric.pir' line 419 | |||
| I tried changing the got: | 18:51 | ||
| t/examples/catchall.t .. 40/149 error:imcc:The opcode 'upcase_s_p' (upcase<2>) was not found. Check the type and number of the arguments | |||
| in file 'examples/pir/pirric.pir' line 1799 | |||
| there are a bunch in the file | 18:52 | ||
|
18:52
avar joined
|
|||
| NotFound | mikehh: I'll take care, pirric is my toy. | 18:52 | |
| Coke stares at www.cpan.org/src/parrot.txt | 18:53 | ||
| mikehh | NotFound: 'k - I'll look when you have done it :-} | ||
| darbelo | ls | ||
| mikehh | anyway I think I am going squint - I can't see the screen anymore - bbl - in time for #ps I hope | 18:55 | |
| NotFound | What's the modifier to put a method in the namespace? | 19:00 | |
| cotto_work | :nsentry | ||
| purl | i heard :nsentry was a new feature, no deprecation involved | ||
|
19:07
avar left
|
|||
| particle | purl, no, :nsentry is the pir modifier to put a method in the namespace | 19:08 | |
| purl | okay, particle. | ||
|
19:17
smash joined
|
|||
| smash | hello everyone | 19:17 | |
| Coke | smashing! | 19:20 | |
|
19:31
Andy joined
|
|||
| dalek | rrot: r46073 | NotFound++ | trunk/examples/pir/pirric.pir: stop using deprecated and gone features in example pirric |
19:34 | |
| rrot: r46074 | mikehh++ | trunk/examples/shootout/knucleotide.pir: replace in-place string ops |
|||
| mikehh | cotto_work: the test y/op/io.t was failing another ASSERT which dukeleto++ fixed - so it passes for me now | 19:41 | |
| s/y/t/ | |||
| cotto_work | OK. Can you close the bug? | 19:42 | |
| mikehh | NotFound: do you still have problems related to TT #1592, or can we close it now? | 19:46 | |
| NotFound | mikehh: My problem is that I don't know what that test is testing | 19:47 | |
| dalek | a: f2bd831 | fperrad++ | dynext/pmc/lua (2 files): now Parrot strings are immutable |
19:48 | |
| NotFound | mikehh: the example i put in the ticket still segfaults. | ||
| cotto_work | I suspect that it falls under the "don't do that" category. | 19:49 | |
| NotFound | cotto_work: Don't HLL map a PBC? =:O | ||
| PMC | 19:50 | ||
| cotto_work | No. Don't hll map RPA to FileHandle. | ||
| mikehh | NotFound: have to ask dukeleto about that, but is the test still failing for you? Maybe we should open a new ticket. | ||
| cotto_work | (but handling the case wouldn't be a bad idea) | ||
| NotFound | cotto_work: RPA is used for brevity. I'm not going to write a language with a dynamic PMC fof FileHandle just to test that. | 19:51 | |
| rurban | chromatic: already timed immutable strings? | 19:52 | |
| cotto_work | #ps in 38 | 19:53 | |
| NotFound | The problem is not the example, is the lack of logic in the procedure. | 19:54 | |
| mikehh | NotFound: BTW re pirric - I thought I did all that - well maybe not the :nserntry bits, must have messed up somewhere (didn't commit it anyway) | 19:56 | |
| NotFound | mikehh: I don't care if the test pass, because I don't know what is testing for. You can do some nasting things and still write some code that pass? Sure, I don't need a test to verify that X-) | ||
| mikehh | NotFound: yeah - there are some tests I am very dubious about | 19:57 | |
| NotFound | mikehh: I've already commited the fix. | ||
| mikehh | NotFound - that's what I was looking at - can't see what I did wrong when I tested it - never mind, lot's more to do :-} | 19:58 | |
| NotFound | I don't like the :nsentry but is the quickest fix I've found. | 20:00 | |
|
20:03
eternaleye joined
20:08
Austin_Hastings joined
|
|||
| Util | PDD19 and book draft ch11 both mention a 2-arg form of the .meth_call directive, where the second arg is RETCONT. | 20:09 | |
| 1) Is the 2-arg form actually supported? | |||
| 2) Are there any examples of the 2-arg .meth_call in anyone's working code? | |||
| 3) Is there an equivalent non-directive form with RETCONT, (like ` r = obj."method"(x, y, z) ` is a alternate way to write a non-RETCONT method call)? | |||
| nopaste | "darbelo" at 192.168.1.3 pasted "Sample file-based config for RTEMS cross-compiles, still has some way to go." (80 lines) at nopaste.snit.ch/20385 | 20:13 | |
| darbelo | bubaflub: See nopaste.snit.ch/20385, it was half-working for me on a fedora box when I left it. | 20:14 | |
| bubaflub | darbelo++ | ||
| i'm glad we both got to rock the GSoC this year | |||
| darbelo | Yeah, me too. | 20:15 | |
| NotFound | Util: I don't see that in pdd19 | 20:16 | |
| ttbot | Parrot trunk/ r46075 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/284591.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 20:18 | |
| Coke | that actually doesn't look like a bug in the build. | 20:19 | |
| darbelo | Coke: Is there a way to tell checkdepend.pl that I only care about a specific subset of the failures? | 20:20 | |
| Util | NotFound: In the example code on line 1391 of pdd19: | ||
| .meth_call "method" [, $P1 ] # r = obj."method"(x, y, z) | 20:21 | ||
| japhb | I saw in passing earlier someone had talked about a press release for our GSoCs ... is that live somewhere? | ||
| Util | the bracketed $P1 is the optional second argument | ||
| NotFound | I wonder what tha example exemplifies. What's supposed to be on $P1? | 20:22 | |
|
20:23
dmagnus joined
|
|||
| nopaste | "darbelo" at 192.168.1.3 pasted "Cobled together rtems hints file to go with the config file. It's not completely coprrect, since I made some changet that I0ve since lost." (64 lines) at nopaste.snit.ch/20386 | 20:23 | |
| dalek | rrot: r46075 | mikehh++ | trunk/examples/shootout/regexdna.pir: replace in-place string ops |
||
| darbelo | bubaflub: Also see nopaste.snit.ch/20386 | ||
| Coke | darbelo: you seem to be able to pass in file names... | ||
| NotFound | <allison> - Experimented with HLLs that compile to pure assembly (no runtime) and bypassing NQP, for a lightweight language. --> Are you trying to beat Winxed? ;) | 20:24 | |
| allison | NotFound: nah, just experimenting | 20:25 | |
| darbelo | Coke: Oh, hadn't seen that. I'll play with that later in the week. | ||
| allison | NotFound: mostly a course assignment | ||
| NotFound | allison: Feel free to borrow from Winxed if you want. | 20:26 | |
| allison | Coke: re #389 and rakudo, yes it probably is p6object, I had to tag a few of those methods with :nsentry | 20:27 | |
| NotFound | How can I look for a method given a class object? inspec_str('methods')['methodname'] ? | 20:29 | |
| Coke | allison: I have to leave halfway through the new meeting time. | 20:30 | |
| allison | Coke: makes sense | ||
| Coke | allison: I think jnthn is looking at that tonight. | 20:31 | |
|
20:35
bluescreen joined
|
|||
| moderator | Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test compact_pool_revamp and exceptions_refactor branches | Review and vote GSoC applications | 20:36 | |
| particle | aye, i spoke to jnthn, he's hoping to update rakudo tonight | 20:41 | |
| moderator | Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test compact_pool_revamp and exceptions_refactor branches | welcome our GSoC students | 20:42 | |
| cotto_work | Coke: lkm when jimmyz's commit bit is flipped. | 20:53 | |
| Coke | I'll even lyk. | ||
| cotto_work | yeah. that. | 20:54 | |
| purl | hmmm... yeah. that is an impediment. | ||
| dalek | rrot: r46076 | NotFound++ | trunk/examples/pir/pirric.pir: stop using get_global to check methods and drop the no longer needed :nsentry modifers in example pirric |
20:56 | |
|
21:01
rurban_ joined
21:02
eternaleye joined
21:13
Whiteknight joined
21:16
lucian joined
21:17
TiMBuS joined
21:19
plobsing joined
|
|||
| darbelo | smash: I've done some small work in corss-compilation, I've already sent some of my results to bubaflub. The most important features on that front are file-based configuration and out-of-tree building. | 21:21 | |
| file-based config works, building out-of-tree doesn't. | 21:22 | ||
| smash | darbelo: *nods* | ||
| darbelo | Making parrot's src tree look like the installed tree will probably help a lot in that regard. | 21:23 | |
|
21:23
particle joined
|
|||
| allison | darbelo: do we want that, or do we want to build into a separate tree? | 21:23 | |
| darbelo: like, a build/ directory at the top level? | |||
| smash | even the configuration process isn't cross-compilation friendly | 21:24 | |
| particle | sigh | ||
| NotFound | darbelo: Is possible to dump Configure result to a file and use it in another platform? | ||
| darbelo | NotFound: Not really, nopaste.snit.ch/20385 is as close as you can get to that. | ||
|
21:25
chromatic joined
|
|||
| NotFound | It will be halpful for example to run Configure in mingw under windows and use it in a linux mingw package. | 21:25 | |
| darbelo | If you know what the Configure probes would find, you can put that in a file like the one I nopasted and have th ebuild mostly work. | 21:26 | |
| bacek | Good morning, humans. | ||
| darbelo | smash: It involves a little more work than a native build, but file-based-configuration should be powerful enough to support cross compilation. | 21:28 | |
| smash: The real problem is in the makefiles. | |||
| bacek | chromatic, ping | ||
| chromatic | pong | ||
| bacek | Any objections on merging now? | ||
| smash | darbelo: file-based-configuration would be a good step yes | ||
| chromatic | Merge away! | 21:29 | |
| darbelo | smash: We have, even if we do not advertise, file-based-configuration. | ||
| perldoc Configure.pl for more info. | 21:30 | ||
| What you want is under the "CONFIGURATION-FILE INTERFACE" heading. | |||
| smash | great, will dig into it.. thks | 21:31 | |
| bacek | Done. r46077 | ||
| chromatic | Bang! Kapow! | ||
| bacek | Cheap karma to someone with svn checkout. Few branches can be removed now. | 21:32 | |
| darbelo | smash: The examples are outdated and reference steps that have been removed, so watch out. | ||
| bacek: which branches? | |||
| bacek | compact_pool_revamp, immutable_strings_part2, strings_consting | ||
|
21:33
tcurtis joined
|
|||
| smash | darbelo: ok, thks | 21:33 | |
| bacek | Whiteknight, ping. Do you still need compact_strings branch? | ||
| bakkdoor | i have a problem with my action for integer literals. it tells me: "Method 'item' not found for invocant of class 'Regex;Match'" any ideas? | 21:34 | |
| bacek | And looks like tt389_fix isn't useful anymore. | ||
| bakkdoor, you probably want to call .ast first | |||
| bakkdoor, or just stringify it via ~ | |||
| dalek | TT #1272 closed by mikehh++: Problems with codetest on files in ext/ directory (should ext/ be included ... | 21:35 | |
| TT #1272: trac.parrot.org/parrot/ticket/1272 | |||
| allison | bacek: yes, tt389_fix can be removed | ||
| moderator | Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test exceptions_refactor branch | welcome our GSoC students | 21:35 | |
| particle | no codetests on ext/ please! | 21:36 | |
| bakkdoor | bacek: within the action for integer literals? i basically have the same code as for example in the squaak example language.. | ||
| chromatic | Please hold off on removing tt389_fix, if that's the one I think it is. | 21:37 | |
| bakkdoor | bacek: and there's no call to .ast as well | ||
| bacek | chromatic, I'm going to create StringBuilder PMC soon. Just to offer "canonical" way of creating strings in immutable world. | ||
| particle | will the recent branch merges make it harder for rakudo devs to get compiling on parrot's head of trunk? | 21:38 | |
| chromatic | Let's try it as a dynpmc first. | ||
| bacek | bakkdoor, squaak is slightly outdfated. .ast used to be $() | ||
| chromatic | particle, they should have no effect. | ||
| particle | excellent. | ||
| jnthn++ said he'd try to get rakudo working tonight or tomorrow | |||
| bakkdoor | bacek: so, I should use .ast where I'm currently using $( .. ) instead? | ||
| bacek | bakkdoor, yes. | ||
| chromatic | I'd like to see Rakudo using trunk again. I want to profile it. | ||
| particle | $(...) has been deprecated | 21:39 | |
| bakkdoor | bacek: alright. i'll try that | ||
| particle | yeah, and rakudo is looking forward to the speedups | ||
| bacek | bakkdoor, check r45980. I updated squaak to "modern parrot" recently. | 21:40 | |
| bakkdoor | bacek: now i'm getting this: "too few positional arguments: 2 passed, 3 (or more) expected" | ||
| bacek: alright, i'll look at it | |||
| plobsing | chromatic: I'm looking at implementing that frozen string as PBC const optimization | ||
| bacek | bakkdoor, can you nopaste you code? | ||
| plobsing | We currently traverse the PMC constant object graphs too late because imcc has already allocated the space for the constants | 21:41 | |
| GeJ | `gmake test` PASS on FreeBSD/amd64 with trunk @r46079 | 21:42 | |
| NotFound | BTW, we need a packfiledebug.pmc | ||
| plobsing | I see 3 options: 1.) traverse the objects again at an earlier time | ||
| 2.) rearrange IMCC so it makes use of smaller sections which it only concatenates at the end | 21:43 | ||
| 3.) use this as an opportunity to use the PackFile PMCs in stead of the structs | |||
| chromatic | What's your preference? I know mine. | ||
| NotFound | Mine is 3) | 21:44 | |
| plobsing | 1.) Is probably easier, 3.) is probably cleaner | ||
| chromatic | How much easier is "easier"? | ||
| bacek vote for "3" | 21:45 | ||
| dalek | rrot: r46077 | bacek++ | trunk (14 files): Merge branch 'compact_pool_revamp' |
||
| rrot: r46078 | darbelo++ | branches/compact_pool_revamp: Branch has merged to trunk as is no longer needed. |
|||
| rrot: r46079 | darbelo++ | branches/immutable_strings_part2: Branch has merged to trunk as is no longer needed. |
|||
| purl | i already had it that way, dalek. | ||
| rrot: r46080 | darbelo++ | branches/string_consting: Branch has merged to trunk as is no longer needed. |
|||
| purl | i already had it that way, dalek. | ||
| NotFound | plobsing: my experiments with pirado show that using the packfile pmc is not hard. | ||
| plobsing | Its not using the packfile PMC, its that the structs (and their use) is woven into imcc (which I try to avoid touching) | 21:46 | |
| chromatic | Removing code from IMCC can only help. | ||
| plobsing | fair enough. 3.) it is. | ||
| chromatic | From a scheduling point of view, how much work is it to do #1 instead of #3? | ||
| NotFound | But as I said, we still need a packfile for the pir debug segment. | 21:47 | |
| chromatic | Rough estimates are fair. | ||
| NotFound | Er, a pbc | ||
| plobsing | chromatic: #1 I can do on my own in >1 week. | ||
| (probably) | |||
| NotFound | Ugh, a PMC | ||
| Mst sleep | |||
| plobsing | with #3, that seems like an unlikely timeline | 21:48 | |
| s/>/</ | |||
| chromatic | Does #1 preclude, help, or hinder #3? | ||
| plobsing | It does nothing to help or hinder. It's my way of avoiding IMCC. | 21:49 | |
| bacek | OTOH, we can just use consttable from pf during freezeing/thawing Subs. | ||
| plobsing | (which is what would be changing for #3) | ||
| chromatic | Okay. We could get at least some of the benefit of this optimization sooner if we do #1, and it doesn't hurt our chances of doing #3 as well. | 21:50 | |
| particle | what will a second traversal to for freeze timings? | ||
| plobsing | most of these objects are shallow | 21:51 | |
| particle | that's promising | ||
| chromatic | Also freezing less data means going faster. | ||
| I can imagine PBCs getting 20% smaller. | 21:52 | ||
| At least, NQP-generated code. | |||
| bacek | msg jimmyz Your commit bit approved. I'll leave TT#1595 for you :) | ||
| purl | Message for jimmyz stored. | ||
| chromatic | How about this? | 21:53 | |
| purl | this is rithgt | ||
| chromatic | plobsing works on #1 in the next week, and makes a wiki page with notes on doing #3. | ||
| NotFound creates the missing PMC. | |||
| We try to merge #1 as soon as possible, then make a plan to make #3 feasible. | |||
| NotFound | chromatic: that's already my intention. | ||
| chromatic | This gives us concrete information on how much of a benefit we get from #1 without requiring a huge investment in IMCC. | ||
| NotFound | Thres is some doc about the steps for adding a new core PMC? | 21:55 | |
| bakkdoor | bacek: sorry, for the delay. had to answer a phone call. heres my code (extract): nopaste.info/8ee85a633b.html | 21:56 | |
| bacek | NotFound, just dump .pmc file into src/pmc/ | ||
| plobsing | you'll have to bump pbc compat and remake the native pbcs as well (PMC numbering is part of PBC) | ||
| bacek | bakkdoor, try "method literal_value($/, $key?)" | 21:57 | |
| NotFound | We are in 6.9... Are two digits supported? | ||
| bacek | NotFound, should be. | 21:58 | |
| darbelo | Shouldn't there have been a major bump for the release? | ||
| bakkdoor | bacek: that gives me: "Method 'ast' not found for invocant of class 'Undef'" | 21:59 | |
| dalek | tracwiki: v28 | bacek++ | GCTasklist | ||
| tracwiki: compact_pool is revamped now | |||
| tracwiki: trac.parrot.org/parrot/wiki/GCTaskl...ction=diff | |||
| bacek | darbelo, gerd missed it... | ||
| bakkdoor | bacek: and whats the question mark in $key? for ? | ||
| bacek | bakkdoor, "optional" | ||
| bakkdoor | bacek: ah ok. | ||
| bacek | bakkdoor, you have to check manually if it's passed. In nqp-rx '{*}' is optional as well an invoked implicitly at the end of rule | 22:00 | |
| s/an/and/ | 22:01 | ||
| dalek | rrot: r46081 | plobsing++ | branches/pbc_frozen_strings1: create branch to try low-cost, unclean implementation of PBC constant strings optimization |
||
| bakkdoor | bacek: but where's the Undef coming from? i only have integer literals currently in literal_value (as shown in my code) | 22:02 | |
| bacek | bakkdoor, on second call to "literal_value" | ||
| bakkdoor, without $key passed | 22:03 | ||
| afk #morning duties, $dayjob | |||
| bakkdoor | bacek: but why is it called twice? my parsetree only has one literal value node | 22:04 | |
| bacek | "In nqp-rx '{*}' is optional as well and invoked implicitly at the end of rule" :) | ||
| Check nqp-rx sources for more inspirations :) | 22:05 | ||
| bakkdoor | bacek: ah I see. alright thanks | 22:07 | |
| Austin | bakkdoor: nopaste.info/e785a9d4b4.html | 22:25 | |
| Coke finds a CLA from jimmy in a dusty old corner of gmail. | |||
| Austin | whoops | ||
| ${key} = {$key} | |||
| bakkdoor | Austin: yeah, i did it like that. now it's kinda working. :) well all i have for now are assignments. but more will come ;) | 22:26 | |
| Austin | woot | ||
| bakkdoor | :) | 22:27 | |
| Austin | Keep in mind the squaak stuff is dated by now - pmichaud++ has done a bunch of work on nqp(-rx), and so there are some differences between the tutorials and the current state of the system | ||
| bakkdoor | i still have to get used to the grammar & action stuff. i'm used to bison&flex. they're quite a bit different | ||
| Austin: yeah, i realized that ^^ | |||
| Coke | msg jimmyz I just need to confirm your trac.parrot.org ID before I can flip the commit bit. | 22:28 | |
| purl | Message for jimmyz stored. | ||
| Coke has a guess, but wishes it confirmed. | |||
| bakkdoor | Austin: where can i find the latest squaak version? its not here: svn.parrot.org/languages/ . in the git repo (master branch)? | 22:29 | |
| Util | NotFound: re: how to check a method - gist.github.com/381431 has my code example. Short answer: use `can` on an object, or `inspect class, 'methods'` on a class. | ||
| Austin | I dunno, bakkdoor. | 22:30 | |
| cotto_work | Coke: his trac id is jimmy | 22:31 | |
| trac.parrot.org/parrot/ticket/888 is one of his bugs | |||
| Austin | Util: Not for nothing, but classes have a .find_method($name) method, too. | 22:32 | |
| Util | Austin: Thanks! | ||
| Austin | It searches the mro, so it will get parentclass methods if available (by default). | ||
|
22:33
jnthn joined
|
|||
| jnthn | Hi | 22:34 | |
| purl | niihau, jnthn. | ||
| jnthn | purl: I don't miss you at all. | ||
| purl | jnthn: i'm not following you... | ||
| jnthn | Good. | ||
| gist.github.com/381436 | |||
| darbelo | bakkdoor: examples/languages/squaak/ in a parrot checkout. | ||
| jnthn | This is a pure PIR, no Perl 6 required at all, very short example of why Rakudo doesn't work on current Parrot | 22:35 | |
| In a nutshell, it seems that adding a method to a PMC doesn't work if it's only marked :method | |||
| Austin | Yeah. | ||
| That's a "feature." | |||
| jnthn | It's wrong. | ||
| jnthn files ticket. | |||
| chromatic | That's why I asked not to delete the tt389_fix branch. | ||
| jnthn | Huh? | 22:36 | |
| Util | bakkdoor: several parts of en.wikibooks.org/wiki/Parrot_Virtua...k_Tutorial were updated this month to work with the current Parrot | ||
| jnthn | branch in...Rakudo? | ||
| chromatic | In Parrot. | ||
| jnthn | Ah. | ||
| :-/ | |||
| bakkdoor | darbelo, Util: thanks! | ||
| chromatic | I agree. It's wrong. | ||
| jnthn | So is there already a ticket with this example? | ||
| If so, should I add to it? | |||
| chromatic | I'm not aware of one. If there is, we can merge the dups. | 22:37 | |
| jnthn | I've golfed my way from the Rakudo build fail down to the gist I pasted, anyway. | ||
| OK, will file. | |||
| chromatic | I had a feeling we'd find something like that. Thanks for confirming. | ||
| Coke | I'd add it to tt #389. | ||
| (instead of opening a new ticket.) | |||
| bakkdoor | btw, who is making the debian/ubuntu packages for parrot? | 22:38 | |
| darbelo | allison, IRC | ||
| Eh, IIRC. | |||
| Coke | one wonders why declaring a :method in a namespace means "add a method" not "put this sub in this namespace.". | ||
| (the syntax on that is LTA) | |||
| bakkdoor | ah ok. because the latest version is still 2.0 ;) | ||
| jnthn | Coke: How do you declare a method that's not in a namespace? :) | 22:39 | |
| Austin | Actually, Coke, I thought that saying ".sub" meant "put this sub in the namespace," and that adding ":method" on top of it meant "and it's a method." | ||
| chromatic | TT #389 says don't put methods in the namespace. | ||
| Except that you have to put methods in the namespace if the namespace represents a PMC. | 22:40 | ||
| Unless that PMC has a class associated with it, like if it's subclassed from PIR. | |||
| darbelo | How cute. | 22:41 | |
| Austin | Well, when you put it that way it makes total sense... | ||
| chromatic | For my next trick, let me tell you how method dispatch works. | ||
| There are two method dispatchers. | |||
| There are two method caches. | |||
| One method dispatcher doesn't look in the namespace for methods, because methods don't go in namespaces. | |||
| The other method dispatcher looks in the namespace for methods, because built-in PMCs don't have classes. | |||
| Usually. | |||
| purl | usually is the key word | ||
| Coke | jnthn: "add_method" ? | 22:42 | |
| Austin | jnthn: $namespace.get_class.add_method($name, &sub) | ||
| chromatic | add_method is a bad fix, because we already have a perfectly valid way of marking something as a method. | ||
| It's :method | |||
| jnthn | TT#1596 - feel free to merge it as you see fit though. | 22:43 | |
| allison | chromatic: what #389 says is that methods don't get stored in the part of the namespace accessible for sub lookups | ||
| chromatic | Sure, but I don't want to type all of that by way of explanation. | ||
| allison | chromatic: it's fine to cache them in a separate table in the namespace object waiting for the class to be created | ||
| jnthn | Coke: I'm sure I *could* find workarounds, but I'd rather the bug was fixed. | 22:44 | |
| allison | once the class is created, the cache disappears | ||
| chromatic | Except that that strategy didn't work, which is why the branch stalled. | ||
| jnthn | allison: I thought we once had something like that, fwiw. | ||
| jnthn hasn't looked at that area of the code in a long, long time though. | 22:45 | ||
| allison | there are a few places in p6object that depend on being able to look up certain methods as sub | ||
| but, it's a simple fix, just add :nsentry to those specific methods | |||
| jnthn | allison: I've got some (local) patches to p6object too. | ||
| allison: If you're looking at add_parent anyway. | |||
| Though it turns out we're not running into anything in p6object. | 22:46 | ||
| At least, not *yet*. | |||
| The current build fail is purely the :method-doesn't-add-method-to-PMC issue. | |||
| allison | jnthn: do you have more details on what the Rakudo failure was after tt389? | ||
| Coke | Might be important to note that you don't need an overridden core pmc for that to fail. snippet also fails on a new class. | ||
| allison | jnthn: doesn't add it to a C-level PMC? | 22:47 | |
| jnthn | allison: In the case I've run into, yes. | ||
| allison | jnthn: did that ever work? | ||
| jnthn | allison: I'm pretty sure it *is* the same issue. | ||
| Erm, as in, is the same issue that we ran into directly after tt389. | |||
| Coke | (did that ever work) yes. | 22:48 | |
| jnthn | I get the same backtrace now as I saw reported when people first tried it. | ||
| chromatic | It worked because methods were stored *both* in the namespace as subs and in the method hash of classes. | ||
| allison | it must be adding the methods to the proxy object | ||
| jnthn | allison: Yes, it did - evidenced by the fact that Rakudo is now broken. :-) | ||
| allison | since it can't store them on the actual PMC | ||
| (there's no way to dynamically add methods to a static C PMC) | |||
| jnthn | Oh? Ouch. | 22:49 | |
| allison | jnthn: can you produce a PIR test of the behavior? | ||
| jnthn kinda expected those would end up getting looked up through PMCProxy. | |||
| Coke | whoops. I lied. it does work when done on a new class, with or without :nsentry. | ||
| jnthn | allison: I just filed at ticket with one - trac.parrot.org/parrot/ticket/1596 | ||
| allison | jnthn: (it's clearly not tested now, or would have been caught already) | ||
| chromatic | But it *was* tested. | 22:50 | |
| jnthn | allison: What's in the ticket doesn't depend on anything Rakudo related at all (golfed it down from the original issue - we actually have a dynpmc, but I don't believe that plays into it, since it fails the same way with a Parrot built-in PMC too.) | ||
| chromatic | This was the failure on the P6Object test I had on tt389_fix. | ||
| allison | jnthn: is it only HOW and siblings? | ||
| jnthn: because I ran into that during the merge | 22:51 | ||
| jnthn: and the problem was in p6object looking up methods in the namespace | |||
| chromatic | PMCProxy also has nothing to do with this. | ||
| dalek | rrot: r46082 | plobsing++ | branches/pbc_frozen_strings1 (2 files): add ImageIOStrings pmc to traverse objects and get their strings |
||
| jnthn | allison: The fact that the method is called HOW is unimportant to the bug report, if that's what you mean. | ||
| allison | jnthn: I'll dig up the lines of code | ||
| jnthn: not how it's called, how it's created | |||
| chromatic | Methods on built-in PMCs get stored in pmc->vtable->_namespace | ||
| Coke | allison: did you look at his code? | ||
| jnthn | allison: The method isn't "created". | ||
| It's just a PIR method marked :method | 22:52 | ||
| allison: The issue is also seperate from any P6object bug. | |||
| purl | okay, jnthn. | ||
| jnthn | purl: I still hate you and am overjoyed we don't have you on #perl6. | ||
| purl | jnthn: i'm not following you... | ||
| allison | yah, but proto was doing some fancy business of looking up methods in the namespace | ||
| Coke | let's ignore P6O for a minute. | 22:53 | |
| jnthn | allison: My current blocker isn't a P6object issue though. | ||
| cotto_work | plobsing: imageiostrings.pmc has some leftovers from imageiosize.pmc | 22:54 | |
| allison | Coke/jnthn: the similarity may be a red herring | ||
| jnthn | allison: I agree there may be issues there. | ||
| allison: But until the current issue I hit that's independent of it is resolved, I can't actually get far enough into the Rakudo build to know. | |||
| Coke | allison: the bug is in /pure pir/ | ||
| purl | Hmm. No matches for that, Coke. | ||
| jnthn | Coke: Right. I thought that if I took the time to get down from the whole Rakudo to a 12 line PIR program, it would make things easier. :-) | 22:55 | |
| Coke | Me too. | 22:56 | |
| chromatic | It's definitely easier. I know what the bug is and why. Someone please listen to me. | ||
| allison | chromatic: I'm listening, but I'm not sure you're right | 22:57 | |
| chromatic | I know I am. | ||
| I debugged this months ago. | |||
| I'm looking at the culprit code right now. | |||
| I spent a week tracing it down. | |||
| I predicted your version of the TT #389 fix wouldn't work. | |||
| jnthn | allison: Unless Parrot has epicly changed in this area since I used to hack on Parrot, chromatic is almost certainly correct. | ||
| allison | chromatic: the thing is, built-in PMCs don't store methods in the namespace either | 22:58 | |
| plobsing | cotto_work: where? | ||
| chromatic | Please see src/pmc/default.pmc lines 557 through 560. | ||
| dalek | TT #1596 created by jonathan++: PIR methods fail to be added to PMCs unless marked :nsentry | ||
| TT #1596: trac.parrot.org/parrot/ticket/1596 | |||
| allison | chromatic: and, even if you are right about the cause, the fix is to change it so that no method dispatcher looks in the namespace | 22:59 | |
| chromatic | I agree. | ||
| That was damn hard. | |||
| That's why the branch stalled. | |||
| Whiteknight and I couldn't figure out the right way to do it. | |||
| cotto_work | plobsing: right at the top. Just look for 'imageiosize'. | ||
| jnthn 's hope of a quick resolution starts to ebb away | 23:00 | ||
| allison | jnthn: it's not *that* difficult | ||
| chromatic | Did you try? | ||
| allison | chromatic: the code in default PMC is fine | 23:01 | |
| chromatic | Did you debug this? | ||
| allison | chromatic: NameSpace's "set_pmc_keyed" does correctly divert methods to the separate cache instead of putting them in the main namespace storage | 23:02 | |
| chromatic | No, it doesn't. | 23:04 | |
| jnthn | allison: But unless get_pmc_keyed also goes looking there, line 1050 in oo.c isn't going to end up looking in said seperate cache. | 23:05 | |
| And if it does it's a horrible entanglement of hate. | |||
| chromatic | It's indeed a horrid entanglement of hate, and it doesn't work the way anyone thinks it should. | ||
| I know it works the way I described it, because I traced my way through the whole hateful thing to figure out what was happening. | 23:06 | ||
|
23:06
tetragon joined
|
|||
| Whiteknight apparently has a lot of backlogging to do | 23:06 | ||
| Coke | I'm adding jnthn's test. | ||
| allison | looks like the problem is in src/oo.c, the static function find_method_direct_1 | 23:07 | |
| Whiteknight | find_method_direct_1 is horribly broken, as I understand it | ||
| but I wasn't able to figure out why it appears to "work" mostly, or how to fix it so it doesn't stop working | |||
| allison | yes, it's doing a VTABLE_get_pmc_keyed_str directly on the namespace | ||
| which won't work | 23:08 | ||
| Coke ponders how to fail() a test in parrot. | |||
| Whiteknight | it appears also to be recursing on a different PMC type | ||
| allison | besides which, we have a find_method interface for a reason | 23:09 | |
| chromatic | Here is where the "easy" fix gets fun. There are order of initialization concerns. | ||
| allison | well, it's a static function, and only called in one place | ||
| chromatic | Yes, from default's find_method VTABLE. | ||
| jnthn | allison: We reach this function after going through find_method. | ||
| allison | chromatic: but, it's calling VTABLE_get_namespace on the class object, so the class object must already exist by the time it's called | 23:11 | |
| chromatic | _class there means PMC | ||
| Don't mistake it for an instance of Class | |||
| Whiteknight | yes, the names are all wrong | ||
| _class is the instance, not the metaclass | |||
| although when it recurses, _class does become the metaobject | |||
| allison | if not, we can alter it to look in the cache in the namespace if the class object doesn't exist yet | ||
| and do a real lookup if the class object does exist | 23:12 | ||
| Coke | test added. | ||
| chromatic | Good luck. I tried something like that. It's not as easy as it looks. | 23:13 | |
| Whiteknight | the problem is order-of-initialization at Parrot startup | 23:14 | |
| that's a tangled web where many things are interdependent | |||
| chromatic | Though if you decide the code can be ugly and you don't have to create a PMCProxy for every PMC at startup, maybe you can avoid that mess. | 23:15 | |
| Whiteknight | at steady-state, the solution is easy. It's startup where the problems and special cases happen | ||
| chromatic | Maybe you only create a PMCProxy when something tries to invoke a method on a builtin. | ||
| Oh right, that mess with vtable->pmc_class. | 23:16 | ||
| allison | Whiteknight: we already know it has a namespace object there, since the current code is using it | 23:17 | |
| Whiteknight: we don't know if the namespace object has a class, but that can be worked around | 23:18 | ||
| Whiteknight | allison: but methods on built-in types aren't stored in the namespace at that point | ||
| allison | no, they're stored in a cached in the namespace | 23:19 | |
| and the cache is later sucked into the class | |||
| anyway, working on a fix, will try it | |||
| it will likely involve adding 'inspect' to NameSpace, any objections? | 23:20 | ||
| (it really should have it anyway) | |||
| Whiteknight | no objections from me | 23:24 | |
| what if we had a MethodCache PMC type? | |||
| jnthn wears a slightly puzzled look | 23:25 | ||
| dalek | rrot: r46083 | coke++ | trunk/t/oo/methods.t: Add a test for TT #1596 |
||
| darbelo | Whiteknight: How would that help here? | ||
| Whiteknight | we could have a pointer to the MethodCache wherever it lives: in the namespace originally, then in the PMCProxy later | ||
| chromatic | You're forgetting something. | 23:26 | |
| darbelo | Whiteknight: What if I add a method to the MethodCache? | ||
| s/the// | 23:27 | ||
| Austin | Isn't a MethodCache the same as a NameSpace? A container that maps strings to subs? | ||
| darbelo | Austin: Yes, but more bootstrappy. And not all methods live on the NameSpace, that's what the TT is about. | 23:29 | |
| Austin | To the extent that they live anywhere, they live in the namespace before the class gets created, right? So you clone the hash, filter out the non-methods, and you've got your class' "cache." Then what other use for a MethodCache is there? | 23:31 | |
| darbelo | allison: ping. | 23:34 | |
|
23:40
ruoso joined
|
|||
| allison | darbelo: pong | 23:41 | |
| dalek | rrot: r46084 | plobsing++ | trunk (2 files): correct some misuses of PARROT_CAN_RETURN_NULL which were applied blindly |
23:42 | |
| allison | Whiteknight: the method cache is just a hash in the namespace | ||
| darbelo | Melange claims you'll be mentoring me on the NFG GSoC proposal, I'll be setting up a blog (for status reports) and a branch fro experimentation on the next week. Can you think of anything else I should do to get started. | 23:44 | |
| allison | Austin: there are no non-methods stored in it | ||
| Austin: it's not the main namespace storage, it's a separate bucket | |||
| darbelo | Also, I'm not sure what's your timezone, but I don't see you much on IRC, what's your preferred way of communication for this? | 23:45 | |
| Oh, also, do we have backup mentors this year? | 23:46 | ||
| allison | darbelo: I'm on IRC when I'm in one place, but not when I'm traveling (which has been a good bit the past few months, but will be less over the summer) | 23:48 | |
| darbelo: email works too, and I'll give you a number for SMS (I can even call you over skype if it's useful) | 23:50 | ||
| darbelo: I suspect it may make sense for us to check in during or after parrotsketch every week | 23:51 | ||
|
23:52
Austin_Hastings joined
|
|||
| allison | darbelo: it would make sense to spend some time talking through the architecture before you dive in | 23:52 | |
| darbelo | allison: Excellent. Works for me. I'll set things up and get experimenting. | 23:54 | |
| plobsing | how do I get distutils to build a general parrot dynext (not dynops or dynpmcs) | 23:55 | |
| ? | |||
| jnthn -> sleep o/ | |||
|
23:55
jnthn left
|
|||
| darbelo | allison: I'll start with some expanatory blog posts, I tried that last year and it seemed to work. | 23:56 | |
| Coke | (backup mentors) we have several mentors "on deck". I'm happy to be put down as a backup. | ||
| allison | darbelo: yup, those were great | 23:57 | |
| darbelo | Once I have what I think I know on paper we can start going over how wrong everything I know is ;) | ||