|
Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: merge branches, remove deprecations | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs Set by moderator on 9 February 2010. |
|||
| Whiteknight | what other MRO algorithms are there besides C3? | 00:00 | |
| Wikipedia is strangely silent on the issue | |||
| Austin | Well, the C3 paper mentions "the Dylan linearizer", L*Loops, CLOS | ||
| nopaste | "Austin" at 68.37.46.53 pasted "Linearization" (5 lines) at nopaste.snit.ch/19548 | 00:02 | |
| Austin | So apparently, either your language doesn't support MI (Java), or it supports MI but requires explicit MRO input from the coder, or it has an algorithm that is probably named after the language, unless it's a Lisp dialect in which case the algorithm may have its own name if you wrote a paper about it. | 00:05 | |
| Whiteknight | soo...C3 is the only game in town | 00:06 | |
|
00:08
tetragon joined
|
|||
| chromatic | There's also depth first, but that's... complex and not necessary accurate. | 00:10 | |
| Austin | C3 is far from the only game in town. | 00:14 | |
| It's important because Python uses it, and because of Parrot's historical ties to Python. | |||
|
00:16
payload left
|
|||
| Austin | But if someone were to try to implement CLOS atop Parrot, they would need a different MRO, since C3 is definitely not the MRO that CLOS uses. | 00:16 | |
|
00:19
cotto_work joined,
patspam joined
|
|||
| Whiteknight | so it might very well make sense to encapsulate the C3 linearizer as a PMC, and add an option for HLLs to override it as the default | 00:28 | |
| dukeleto | Whiteknight++ | ||
| did someone say GSoC project? | |||
|
00:29
cotto_work joined
|
|||
| Whiteknight | just encapsulating it isn't a worthy project, but adding a few more options in addition might be | 00:29 | |
| dukeleto | Whiteknight: by the way, i have been enjoying your GSoC project idea blog posts. thanks for mentioning RTEMS. my blog-fu is definitely rusty | ||
| Whiteknight | I've been thinking about adding an HLLInfo PMC, which stores HLL-global configuration information like that | ||
| dukeleto: No problems, I like to do it because I'm full of hot air and I spend too much time on the computer | |||
| Austin | This may just be "rewrite class.pmc" | 00:30 | |
| dukeleto | Whiteknight: i meant adding a pluggable MRO subsystem, as a GSoC project | ||
| Austin | Or maybe it's "rewrite oo.c and class.pmc into a pluggable shape" | ||
| Whiteknight | ah, okay. That might be good, but would still have to add at least one other option to prove pluggability | ||
| Austin | Since C3 is, for no very good reason, in oo.c | ||
| Fine. | 00:31 | ||
| What's the P5 mro like? | |||
| Whiteknight | class.pmc could use plenty of improvements | ||
| dukeleto | "Make the Parrot MRO subsystem pluggable, so languages can decide which MRO algorithm to use" | ||
| Whiteknight | Ability to properly subclass built-in PMC types is high on the list | ||
| Austin | :) | ||
| Austin gives Whiteknight a biiiiiig *smooch*. | 00:32 | ||
| dukeleto | Austin: have you seen search.cpan.org/~tty/kurila-1.19_0/lib/mro.pm ? | ||
| Austin | Nope. | ||
| What is it? | |||
| purl | it's it! | ||
| dukeleto | Austin: also, search.cpan.org/~flora/MRO-Compat-0.../Compat.pm | ||
| Austin: C3 + friends for Perl 5 | |||
| Austin | Okay, reading it now. | ||
| Whiteknight | Austin: That's it, you're now on my valentines card giving list | 00:33 | |
| Austin | P5 uses depth-first-search, Whiteknight. There's your "for comparison" alternative. | ||
| dukeleto | Austin: doing "prior art" research is almost always very helpful ;) | ||
| Austin: depth-first, left-most first ;) | |||
|
00:34
s1n joined
|
|||
| Austin | Hmm. | 00:34 | |
| Not really depth first. | |||
|
00:34
s1n left
|
|||
| Austin | preorder? | 00:35 | |
| dukeleto++ | 00:37 | ||
| Thanks for pointing to that. | |||
| Whiteknight: I'm thinking that class.pmc maybe needs to method-ize a bunch of its internal operations, and then the GSC thing would be to do that plus write two sets of methods: C3 and P5dfs | 00:41 | ||
| Whiteknight | Austin: And then when the next algorithm comes down the pike we add another set of methods? | 00:42 | |
| Austin | Right. | ||
| Whiteknight | better, I think, is a C3Linearizer PMC object, which we can replace with other PMC types later without having to hack into class again | 00:43 | |
| Austin | Eh? | ||
| Sorry. By "set of methods" what I secretly mean is "non-abstract class" | |||
| Maybe you could explain what a PMC offers in this context. | 00:45 | ||
| That is, a separate pmc for the linearization algorithm. | |||
|
00:46
mikehh_ joined
|
|||
| Whiteknight | cotto: ping | 00:49 | |
|
00:52
mikehh_ joined
|
|||
| cotto_work | Whiteknight, pong | 00:52 | |
| Whiteknight | cotto: Where does the Parrot_DynOps_core_2_0_0 function get called? | 00:53 | |
| cotto_work | beats me. Let me dig a bit. | ||
| Why do you ask? | 00:54 | ||
| Whiteknight | I'm trying to make a PMC type to encapsulate the op_table, and provide access to it from PIR | 00:55 | |
| so I'm trying to figure out where it gets initialized | |||
| but I think the code is generated, because an ack doesn't turn up any results and I have build errors locally | |||
| cotto_work | That function is #defined in op.h to PARROT_CORE_OPLIB_INIT, which appears to be what's used directly. | 00:57 | |
| config.h | 00:58 | ||
| purl | hmmm... config.h is guaranteed to be available on systems which didn't build their perl but installed the sources/headers from some package manager? | ||
| cotto_work | Is that what you're looking for? | 01:06 | |
| Whiteknight | ah, yes | 01:12 | |
| that's cotto++ | |||
| cotto_work | I wonder how such PMCs could affect the pct-based ops and pmc compilers. | 01:14 | |
| Whiteknight | I'm hoping significantly | 01:15 | |
| especially if we provide the ability to compile an op | |||
| Austin | Whiteknight: (re: your blog) Can you cast in C#? | 01:16 | |
| That is, would (bool)(b[x] & 0x80) work? | |||
| Whiteknight | Austin: I don't know if that would work, no | 01:17 | |
| Austin | Oh, well. | ||
| Whiteknight | certainly no less verbose than != 0 | ||
| Austin | Nope. | 01:18 | |
| close-parrot.blogspot.com/2010/02/m...-code.html | |||
| More pictures - mostly white. | |||
|
01:20
jan joined
|
|||
| Austin | That's weird. I tried calling '.new' on a non-existant class / namespace, and it hung. | 01:27 | |
| Given that the trace shows a P-register with PMCNULL in it, shouldn't I have received an exception? | |||
| cotto_work | nopaste? | 01:28 | |
| purl | i guess nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl | ||
| Austin | Aha. | 01:29 | |
| Inferior runloop doesn't have trace enabled. I *did* receive an exception. | |||
|
01:30
allison joined
|
|||
| Austin | Perhaps an nqp bug? | 01:32 | |
| cotto_work | We can't know without a nopaste. | 01:35 | |
| kid51 | re yapc::na::2010 theme: robonperl.blogspot.com/2010/02/what...erl-5.html | 01:48 | |
|
01:50
allison joined
|
|||
| kid51 | pmichaud: YAPC::NA::2010 Call for Presentations (conferences.mongueurs.net/yn2010/) states: "Perl 6 is going to be great, but we can't wait until 'Christmas' for Perl 6." Which implies that they're not expecting much re Rakudo/Perl 6 at YAPC. Comment? | 01:52 | |
|
02:06
plobsing joined
02:35
mikehh__ joined
|
|||
| Whiteknight | NotFound: ping | 02:48 | |
| Austin | Whoa. | 02:51 | |
| If you automatically generate and compile source code as an accessor method, that method goes into a space where it has offset 0. It's pretty weird making a call from 59131 and landing at 0, but not an error. | 02:52 | ||
| dukeleto is about to give his parrot talk | 02:57 | ||
| Austin | Live feed? | ||
| purl | well, Live feed is a little lame right now but there are some nifty archived realaudio dj shows at www.groovetech.com | ||
| dalek | rrot: r43878 | whiteknight++ | branches/op_pmcs/src/pmc (3 files): remove opfamily PMC, it was a non-starter. Flesh out oplib and opcode a little bit. Now contains all the basic functionality I think we need |
||
| rrot: r43879 | whiteknight++ | branches/op_pmcs/src/pmc/pmc.num: make pmcrenumber |
|||
| rrot: r43880 | whiteknight++ | branches/op_pmcs/src/pmc (2 files): add some plumbing that I had neglected |
|||
| rrot: r43881 | whiteknight++ | branches/op_pmcs/src/pmc/oplib.pmc: extra vtable + comment |
|||
| kid51 | portland.pm.org/kwiki/ | ||
| dukeleto | we have "parrot-curious" people here! | 03:06 | |
|
03:06
mugwump joined
|
|||
| mugwump | git head rakudo test failures on topic? :) | 03:07 | |
| t/spec/S02-literals/quoting-unicode.rakudo Dubious | |||
| eternaleye | mugwump: #perl6 on freenode is the canonical rakudo channel | 03:08 | |
| mugwump | ah true | ||
| I was looking ... rakudo, no | |||
| forgot it was once called perl 6 | |||
| so long ago | |||
| eternaleye | Lots of overlap peoplewise though | ||
|
03:08
Austin_Hastings joined
|
|||
| eternaleye | mugwump: rakudo is _a_ perl 6 implementation, but it is explicitly not the only onw | 03:08 | |
| *one\\ | 03:09 | ||
| Austin_Hastings | Well, there went the first inevitable power outage. | ||
| mugwump | no, I think that only if the real pumpkin started interpreting perl 6 it could be called that | ||
|
03:18
Austin_Hastings joined
|
|||
| Austin_Hastings | And there's another one. | 03:18 | |
|
03:27
tetragon joined
|
|||
| kid51 | vtable_massacre branch: t/pmc/bigint.t Failed tests: 35-45 Parse errors: Bad plan. You planned 34 tests but ran 45. | 03:29 | |
| fixed plan | 03:31 | ||
| dalek | rrot: r43882 | jkeenan++ | branches/vtable_massacre/t/pmc/bigint.t: Correct quantity of tests in plan. |
03:32 | |
| mugwump | ooo, I like the name of that branch | 03:36 | |
|
03:54
janus joined
03:55
Austin joined
04:20
notbenh1 joined
04:41
Austin joined
04:47
mikehh__ joined
04:55
JimmyZ joined
|
|||
| dukeleto | live demo fail! but it went well | 04:55 | |
| mugwump | dukeleto: what? where? when? who? | 04:57 | |
| plobsing | seen japhb | 05:01 | |
| purl | japhb was last seen on #parrot 2 days, 2 hours, 26 minutes and 3 seconds ago, saying: And, as I said, it will currently be incomplete because there are a number of signatures that current Parrot NCI just can't handle. [Feb 9 02:35:34 2010] | ||
| cotto | mugwump, portland.pm.org/kwiki/index.cgi?Feb...010Meeting | 05:02 | |
|
05:02
kurahaupo joined
|
|||
| cotto | dukeleto, are they generally quick about putting up recordings of presentations? | 05:03 | |
| I'd also like to listen to Schwern's presentation. That sounds interesting. | 05:05 | ||
| Coke | . o O (BOOYAH!) | 05:10 | |
| Coke once again ponders a poker BOF at yapc. | 05:12 | ||
|
05:25
ashleyb joined
05:29
patspam joined,
bacek joined
06:04
dduncan joined
|
|||
| cotto | pmichaud, ping | 06:12 | |
| dalek | rrot: r43883 | cotto++ | branches/ops_pct/compilers/opsc (6 files): [opsc] remove a now-unneeded cheat and get closer to passing tests (though still not there) |
06:31 | |
|
06:44
chromatic joined,
kurahaupo joined
06:45
dduncan left
06:50
kurahaupo joined
07:05
baest joined
07:09
kurahaupo1 joined,
Austin joined
07:13
uniejo joined
07:16
AndChat| joined
07:34
kurahaupo joined
08:02
kurahaupo joined
08:04
eiro joined
08:07
iblechbot joined
08:16
barney joined
08:34
payload joined
09:11
bacek joined
|
|||
| dalek | TT #1435 created by gerd++: Tru64 report | 09:18 | |
| bacek | aloha | 09:58 | |
|
10:23
eternaleye joined
10:40
Austin_Hastings joined
10:49
eternaleye joined
|
|||
| dalek | rrot: r43884 | bacek++ | trunk/src/gc/api.c: Made block/unblock GC functions optional. |
11:25 | |
| rrot: r43885 | bacek++ | trunk/src/interp/inter_create.c: Propogate GC type from parent interpreter in allocate_interpreter. |
|||
| rrot: r43886 | bacek++ | trunk/src/gc/api.c: Mage pmc_needs_early_collection optional. |
|||
| rrot: r43887 | bacek++ | trunk/src/gc/gc_inf.c: Update GC INF to latest GC encapsulation API. |
|||
|
11:28
cognominal joined
11:51
bluescreen joined
11:54
Whiteknight joined
|
|||
| Whiteknight | good morning #parrot | 12:03 | |
| mikehh__ | hi whiteknight | 12:04 | |
| bacek | Whiteknight, aloha. You are early today :) | 12:07 | |
| Whiteknight | yes, I can't go to work this morning because of snow. So I am working the morning from home | 12:08 | |
| Austin | And the boss believes this? | ||
| :) | |||
| Yaay, snow! | |||
| bacek | Show? Do you mean one of water's state? | ||
| On streets??? | 12:09 | ||
| NO WAY! | |||
| Austin | close-parrot.blogspot.com/ | ||
| I don't live very far away from Whiteknight. | |||
| Maybe 25 km. | 12:10 | ||
| Whiteknight | Austin: They haven't really plowed my apartment complex, I can't get my car out onto a real road | ||
| and from that point, I have zero faith that PennDOT has done any productive work since the storm stopped | 12:11 | ||
| bacek | img-fotki.yandex.ru/get/4114/bacek....a738cdc_XL | 12:13 | |
| Photo was taken less than a month ago :-P | |||
| Austin | Yeah, yeah. It's always nicer in the _other_ hemisphere... | 12:14 | |
|
12:14
ruoso joined
|
|||
| bacek | Of course :) | 12:15 | |
| Austin | :) | ||
| Whiteknight | replace the sand with snow, then turn all the colors to white, and remove all the people, and take away the beach, and that's exactly what it looks like from my window | 12:16 | |
| bacek | Yay. Like a beautiful dawn but green :) | 12:17 | |
| btw, gc_inf needs some love. | 12:18 | ||
| Especially of someone with good literacy skills to update documentation :) | |||
| Whiteknight | I'll see what I can do about gc_inf now. | 12:23 | |
| gc_inf doesn't really have an "algorithm", so it's hard to imagine that it's too broken | 12:25 | ||
| mikehh__ | fixed some codetest failures - missing function docs still needed | ||
| bacek | Whiteknight, it works. But documentation is outdated | 12:28 | |
| badly | |||
|
12:28
mikehh joined
|
|||
| Whiteknight | bacek: doesn't work, I just tried it and segfault magic | 12:29 | |
| no, wait. now it works. I had something weird before | |||
| dalek | rrot: r43888 | mikehh++ | trunk/src/gc/gc_inf.c: fix codetest failure - there should be at least one space between a C keyword and any subsequent open parenthesis |
12:30 | |
| rrot: r43889 | bacek++ | branches/boehm_gc_2: Yet another attempt to bring Boehm GC into Parrot |
|||
| rrot: r43890 | bacek++ | branches/boehm_gc_2 (2 files): Copy configure auto::boehm from old branch |
|||
| bacek | Whiteknight, "it was looong time ago" :) | ||
| Whiteknight | I made a hack to get it working with make test | 12:31 | |
| mv parrot parrot-exe; echo "#!/bin/sh\\n./parrot-exe --gc inf $@" > parrot; chmod +x parrot | |||
| urg, it hangs on the stupid string_mem.t test | |||
| I hate that test, because it assumes too much about the operation of the GC | 12:32 | ||
| bacek | Whiteknight, +1 | 12:34 | |
| Whiteknight | In fact, I might just "accidentally" disable it. On accident | 12:35 | |
| bacek looking at nice night sky | 12:36 | ||
| Whiteknight | we need to add a selector in interpinfo to get information about the current GC | ||
| each GC needs a string name that we can return | |||
| bacek | Sounds reasonable | ||
| Whiteknight | that way in tests like this we can detect current GC and disable unnecessary tests | 12:38 | |
|
12:38
KingOfKarlsruhe joined
|
|||
| mikehh | bacek, Whiteknight: doyou want me to fix the documrntation stubs - or shall mI leave it for now? | 12:39 | |
| Whiteknight | which documentation stubs? | ||
| in gc_inf.c | |||
| bacek | mikehh, yes please. You can also add ASSERT_ARGS (I missed them) | ||
| dalek | rrot: r43891 | bacek++ | branches/boehm_gc_2 (3 files): Copy gc_inf into gc_boehm and add it into build. |
12:46 | |
| rrot: r43892 | bacek++ | branches/boehm_gc_2/src (2 files): Add Boehm GC into list of available GCs. |
|||
| rrot: r43893 | bacek++ | branches/boehm_gc_2/src/gc/api.c: Initialize Boehm GC in gc_init. |
13:03 | ||
| rrot: r43894 | mikehh++ | trunk/src/gc/gc_inf.c: fix codetest failure - correct missing documentation stubs |
|||
| rrot: r43895 | bacek++ | trunk/compilers/imcc (8 files): Fix IMCC to use mem_sys_alloc/mem_sys_realloc/mem_sys_free |
13:19 | ||
| rrot: r43896 | bacek++ | branches/boehm_gc_2/src/gc/gc_boehm.c: First cut - use GC_* functions in gc_boehm. |
|||
| rrot: r43897 | bacek++ | branches/boehm_gc_2/src/gc/alloc_memory.c: Copy alloc_memory.c from old branch |
|||
| rrot: r43898 | bacek++ | branches/boehm_gc_2 (9 files): Merge branch 'master' into boehm2 |
|||
| ttbot | Parrot trunk/ r43900 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/193596.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 13:23 | |
|
13:26
bkuhn joined
13:28
payload joined
|
|||
| bacek | mikehh, you broke build... | 13:28 | |
| mikehh | bacek: make headerizer failed I think | 13:30 | |
| can you try and run it | |||
| damnit I tested before I commited it | 13:31 | ||
| bacek | mikehh, fixed | 13:33 | |
| dalek | rrot: r43899 | mikehh++ | trunk/src/gc/gc_inf.c: add ASSERT_ARGS |
13:36 | |
| rrot: r43900 | whiteknight++ | trunk (4 files): add a GC_SYS_NAME option to interpinfo_s_i. Returns the name of the current GC system |
|||
| rrot: r43901 | bacek++ | trunk/src/gc/gc_inf.c: Restyle code to make headerizer happy. |
|||
| bacek | ...and whiteknight's commit as well ... | ||
| Whiteknight | headerizer is broken on pirc, and I can't add my new function because of it | 13:40 | |
|
13:57
ilbot2 joined,
ttbot joined,
dngor_ joined,
ingy joined,
Tene joined
13:58
ascent joined,
Ryan52 joined,
Whiteknight joined
13:59
ruoso joined
14:03
particle joined
|
|||
| dalek | rrot: r43905 | mikehh++ | trunk/src/gc/api.c: add ASSERT_ARGS |
14:10 | |
|
14:13
slavorg joined
14:17
ashleyb joined
|
|||
| Coke | ... how long has checkdepend been failing most of its tests? | 14:21 | |
| did someone add a new header file or something? | |||
| cotto: having the FULL text of the comparison is useless when you have 59 deps in one and 60 in the other. | 14:23 | ||
| Coke looks for that test module that highlights such things... | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32155), fulltest) at r43905 - Ubuntu 9.10 amd64 (g++ with --optimize) | 14:28 | |
|
14:39
rob joined
|
|||
| dalek | rrot: r43906 | coke++ | trunk/tools/dev/checkdepend.pl: Make the test diagnostics here usable. |
14:46 | |
|
14:47
rob left
|
|||
| Coke | Whiteknight: ... you probably ran configure with --maintainer. | 14:53 | |
| and since you have a different version of bison, it makes changes. | 14:54 | ||
| Whiteknight | oh, damnit | ||
| Coke | shouldn't /hurt/ anything, though. | ||
|
15:01
janus joined
15:10
theory joined
15:15
bubaflub joined
|
|||
| dalek | rrot: r43907 | coke++ | branches/rm_cflags (5 files): Add a suffix override for PMCs. (but don't do anything with it yet.) fix some warnings. |
15:18 | |
| Coke | svn merge in 1.6 is muuuch nicer. | 15:24 | |
| dalek | nie: r97 | allisonrandal++ | trunk/ports/plumage: Adding a directory for plumage files. |
15:29 | |
| nie: r98 | allisonrandal++ | trunk/setup.py: Cleaning up intermediate executable files. |
|||
| nie: r99 | allisonrandal++ | trunk/p (2 files): Move Plumage files to standard location. |
|||
| Coke | msg kid51 the merging in svn 1.6 completely removes the need for the tagging 2-step you do. | 15:34 | |
| purl | Message for kid51 stored. | ||
| dalek | nie: r100 | allisonrandal++ | trunk/setup.pir: Fix one character typo in Plumage build file. |
15:39 | |
|
15:40
silug_ joined
|
|||
| dalek | rrot: r43908 | coke++ | failed to fetch changeset: merge from trunk |
15:52 | |
|
15:54
Psyche^ joined
|
|||
| tewk_ | Oh how I wish pir had native syntax support for closures. | 16:15 | |
| Also no one spoke up yesterday as to why the program counter isn't stored in the ctx or the interpreter. | 16:16 | ||
| moritz | (closures) that probably means that you're writing something in PIR where you should really be using a higher level language | 16:17 | |
| Whiteknight | pmc2c-- | ||
| darbelo | karma pmc2c | 16:18 | |
| purl | pmc2c has karma of -21 | ||
| tewk_ | I wrote some code that broke out of a runloop early and I had to preserve the pc myself so I could restart the runloop later | ||
| darbelo | pmc2c-- | ||
| Whiteknight | pmc2c-- | ||
| tewk_ | moritz, I have been converted/warped to believe that scheme is a good low level language to do programming language research on top of. | 16:20 | |
| In hind sight closures instead of subroutines would have been a better primitive for parrot to build on top of. | 16:21 | ||
| Closures got added on top of subs, and its just ugly. | |||
|
16:24
payload joined
|
|||
| dalek | rrot: r43909 | coke++ | branches/rm_cflags/compilers/imcc (2 files): re-gen generated files |
16:25 | |
| Coke | (scheme), ah, if only someone had written scheme-on-parrot 9 years ago. | 16:30 | |
| I shouldn't assume I can blindly pass -Wno-foo to a non-gcc compiler, right? | 16:32 | ||
| Whiteknight | $P1 = $P0["str"] is calling get_pmc_keyed, not get_pmc_keyed_str. Any reason why that would be? | 16:39 | |
|
16:40
eternaleye joined
|
|||
| darbelo | autoboxing? | 16:41 | |
| purl | autoboxing is just a toy thing | ||
| dalek | rrot: r43910 | whiteknight++ | branches/op_pmcs/src/pmc (2 files): [pmc2c--] Fix Opcode and OpLib PMCs so they build and pass a few ad hoc tests I threw together. |
16:42 | |
| Coke | purl, forget autobixing | ||
| purl | Coke, I didn't have anything matching autobixing | ||
| Coke | purl, forget autoboxing | ||
| purl | Coke: I forgot autoboxing | ||
| Coke | darbelo: autoboxing happens on sub/method calls, not opcodes. | 16:43 | |
| Whiteknight | I guess there is no way to call set_*_keyed_str directly | 16:44 | |
| ops only support keyed and keyed_int | |||
| that's rediculous | 16:45 | ||
| darbelo | Sounds like IMCC is to blame here. | ||
|
16:47
cotto_w0rk joined,
lucian joined
|
|||
| darbelo | Write a ticket so we can reject it after we move to pirc ;) | 16:48 | |
| Whiteknight | geez, I can't even figure out now how to get a string out of this Key PMC | 16:50 | |
|
16:51
mikehh joined
|
|||
| dalek | rrot: r43911 | coke++ | branches/rm_cflags/config/auto/pmc.pm: Avoid most of the warnings in pmc compilation (for gcc, anyway.) |
16:58 | |
|
17:00
iblechbot joined
|
|||
| darbelo | Crazy idea: Rewrite pbc_merge in PIR to determine the suitability of the packfile PMCs | 17:03 | |
| NotFound | darbelo: Slightly less crazy: rewrite it in some HLL | 17:05 | |
| darbelo | Unless HLL == NQP we can't ship it in the core distribution. | 17:06 | |
| NotFound | darbelo: we can ship generated pir. | 17:08 | |
| darbelo | Yeah, but I've never been too fond of that strategy. | 17:12 | |
| Whiteknight | +1 from me | ||
| PIR or NQP would both be acceptable, and much preferred to the current implementation | 17:13 | ||
| darbelo | Hmm. Maybe pbc_dump would be easier. | ||
| Tht's just inspecting, no twiddling. | 17:14 | ||
| NotFound | Dump is a good first step | 17:15 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32156), fulltest) at r43911 - Ubuntu 9.10 amd64 (gcc with --optimize) | 17:20 | |
|
17:34
ruoso joined
17:38
lucian joined
|
|||
| mikehh | rakudo - make spectest_smolder #32157 - All tests PASS - parrot at r43911 - Ubuntu 9.10 amd64 (gcc with --optimize) | 17:39 | |
|
17:43
hudnix joined
17:49
[hudnix] joined
|
|||
| mikehh | btw pugs seems to be at r29685 but rakudo make spectest_smolder only updates to r29188 | 17:51 | |
|
17:52
hudnix joined
17:54
hudnix joined
|
|||
| cotto | darbelo, good idea. Starting with pbc_dump would be a good way to flush out bugs before moving on to a tool that's part of the build. | 17:57 | |
| darbelo | cotto: If this turns out right, we could even make dissasembled byteode rountrip-able. | 17:59 | |
| cotto | Whiteknight, PMCs should use INTERP in internal VTABLE functions and METHODs. | ||
| (instead of interp) | |||
| cotto goes to w0rk | 18:00 | ||
| Whiteknight | ah, yes. I'm normally more consistent about that | 18:01 | |
| Coke | someone just pointed out help.github.com/terms/ F3. that seems a little much. | 18:13 | |
|
18:14
cognominal joined
|
|||
| cotto_w0rk | seen pmichaud | 18:16 | |
| purl | pmichaud was last seen on #parrot 19 hours, 16 minutes and 7 seconds ago, saying: (the problem would still exist if there were other subs after this one :) | ||
| darbelo | 2. You must be a human. | 18:19 | |
| Chimps not allowed. | |||
| dalek | rrot: r43912 | whiteknight++ | branches/op_pmcs/src/pmc (2 files): In PMCs, use INTERP instead of interp. cotto++ |
||
| cotto_w0rk | darbelo, ? | 18:22 | |
| purl | rumour has it darbelo, is there anything in config_lib.pasm that gives us enough information | ||
| darbelo | Agh. Wrong window. | ||
| cotto_w0rk | I figured | ||
|
18:33
davidfetter joined
18:56
cotto_working joined
18:57
payload joined
|
|||
| Coke | can someone with a non-gcc compiler give rm_cflags a shot? | 19:14 | |
| I suspect it's currently broken anywhere that is not gcc. | |||
| can someone explain callcontext pmc's SET_CELL_CELL(cell) to me? that looks like a noop. | 19:16 | ||
| sorrty, SET_CELL_STRING(cell). looks like it does an in place cast and throws it away. | 19:17 | ||
| cotto_working | istr that chromatic originally wrote that. I'll take a look in a minute. | 19:19 | |
|
19:20
lucian joined,
payload joined
|
|||
| tewk_ | Sorry for being an idiot, CallContext does have a pc struct member. | 19:22 | |
| Coke | I can remove it all with no test failurs. | ||
| cotto_working | Coke, I'd ask chromatic about it. It does look suspiciously like a noop. | 19:26 | |
| Coke | (it is a noop, says the compiler) | ||
| killing it in branch... | 19:27 | ||
| cotto_working | It might not be an intentional noop though. | ||
| That's the only reason I'd ask first. | |||
|
19:30
ruoso joined
19:38
cognominal joined
|
|||
| Coke | meh. he can revert a patch as easy as the next guy. | 19:42 | |
|
19:48
chromatic joined
|
|||
| Coke | look, it's the next guy. | 19:53 | |
| chromatic: my latest commit might bother you. we're not sure. | |||
| chromatic | r43913? | 19:54 | |
| Coke | ayup | 19:55 | |
| that look reasonable to you? | |||
| chromatic | The diff is a little disturbing. | ||
| Coke | INTVAL2PTR just does a cast, yes? | 19:56 | |
| but the usage of the macro of the macro ignores the return value. | |||
| dalek | rrot: r43913 | coke++ | branches/rm_cflags/src/pmc/callcontext.pmc: Remove no-ops pointed out by extra Warnings. |
19:58 | |
| chromatic | Those macros might be wrong. | ||
| Coke | entirely possible... but if they're wrong, and they're noops... all tests pass doing nothing. | ||
| so I'd rather explicitly do nothing. | |||
| (all tests pass in branch after that, too) | |||
| chromatic | We probably need more tests for them then. | 19:59 | |
| Coke | no doubt. | 20:00 | |
| chromatic | Sounds like I volunteered. | 20:01 | |
| Coke | sorry. :( | 20:02 | |
|
20:02
cotto_working joined
|
|||
| Coke | you could just open a ticket and let some plucky developer grab it! | 20:02 | |
| pmichaud | is there a way to find out how many gc runs are occurring in a given program? | 20:03 | |
| (from PIR, preferably) | |||
| Coke | I think so. | ||
| moment. | 20:04 | ||
| pmichaud: in the meantime, have you read the github terms and conditions, specifically F3? | |||
| (you agree to pay github's legal costs.) | |||
| pmichaud | hadn't noticed that item particularly, no. | 20:05 | |
| Whiteknight | pmichaud: take a look at t/op/string_mem.t | 20:06 | |
| chromatic | interpinfo | 20:07 | |
| purl | i guess interpinfo is the culprit there. | ||
| Coke | Whiteknight++ | ||
| chromatic | The argument is a constant from interpinfo.pasm... GC_MARK_RUNS or GC_COLLECT_RUNS. | ||
| pmichaud | okay, thanks. | 20:10 | |
| I'm impressed with the improvements to GC on fib.nqp then. bacek++ chromatic++ | |||
| chromatic | Have you noticed a measurable difference? | 20:11 | |
| pmichaud | bacek posted one, and I was just wanting to confirm (getting reference) | ||
| lists.parrot.org/pipermail/parrot-d...03775.html | |||
| I get the same results on my system; it's a vast improvement over what we were getting in december, where running the .nqp version was taking twice as long as compile+run pir | 20:12 | ||
|
20:12
cotto_working joined
|
|||
| pmichaud | so, in december, fib.nqp was requiring 20+ seconds on my system, today it's running in 10 seconds | 20:13 | |
| I was suspicious that perhaps gc had been inadvertently disabled altogether | |||
| but that appears to not be the case | |||
| chromatic | I added a couple of algorithmic improvements. | 20:14 | |
| pmichaud | well, whatever changes have been made, they seem to avoid the problems that dynamic compilation was introducing | ||
| chromatic | Yeah, that was a nasty one. | 20:15 | |
| I have a similar improvement to make in the next couple of days. | |||
| Whiteknight | chromatic: what improvement? | 20:16 | |
| purl | improvement is external to the program contruct.. knuth may be saying there is no advantage going multithread inside the program? | ||
| cotto_working | Whiteknight, a good test for the op-related PMCs would be to rewrite bacek++'s hello world generator with them. | ||
| chromatic | Whiteknight, the XNA trick: run GC only after allocating a threshold. | 20:17 | |
| Coke | oh, that reminds me: let's remove 'make hello' | 20:20 | |
| cotto_working | pmichaud, I'd appreciate it if you could take a look at the ops_pct branch. Configure/build as normal, run make opsc and prove compilers/opsc/t/01-parse.t. | ||
| Coke | since we haven't supported directly generating a .o from .pbc in... some time. | ||
| cotto_working | Coke, +1 | 20:21 | |
|
20:21
joeri joined
|
|||
| Whiteknight | cotto_working: bacek's hello world generator? | 20:24 | |
| pmichaud | cotto_working: what's the ops_pct branch? | ||
| cotto_working | pmichaud, a branch to use pct-based tools to replace ops2c | 20:25 | |
| pmichaud | excellent | 20:26 | |
| cotto_working | Whiteknight, ./examples/pir/make_hello_pbc.pir | ||
| pmichaud | cotto_working: I'll take a look, definitely | 20:27 | |
| cotto_working | much appreciated | ||
| pmichaud, bacek and I worked on it a couple months ago and I'm trying to get it up-to-date. | 20:28 | ||
| dalek | tracwiki: v26 | coke++ | BranchDescriptions | 20:36 | |
| tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff | |||
| tracwiki: v27 | coke++ | BranchDescriptions | |||
| tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff | |||
| Coke tries to build perl5i and fails. | 20:42 | ||
|
20:44
bacek joined
20:49
kurahaupo joined
|
|||
| Whiteknight | cotto_working: that's evil | 20:52 | |
| cotto_working | don't blame me. bacek wrote it. | 20:53 | |
| (Though I'd argue that it's both evil and awesome.) | 20:54 | ||
| Whiteknight | Oh, it is awesome | 20:55 | |
| but the new Opcode PMC should make it less magical to compile an opcode | |||
| fewer magic numbers | |||
| cotto_working | That's just was I was thinking. | ||
| Whiteknight | the problem comes that to compile an opcode, we have to know whether each argument is held as a constant or in a register | 20:59 | |
| urg, quite perplexing | 21:00 | ||
| cotto_working | It's an interesting problem. For now you can at least use "say_sc" and a magic number instead of two magic numbers. | 21:01 | |
| Coke | anyone have cl.exe handy? | 21:03 | |
| (er, the vc++ compiler) | 21:04 | ||
| particle | coke: what do you need? | ||
| Coke | particle: can you verify for me that you don't need slashes in makefiles converted to backslashes? | ||
| particle | when passed as filenames to cl.exe? | 21:05 | |
| or when used in "#include", or what? | |||
| Coke | so we can have targets like src/gc/api$(O) and not src\\gc\\api$(O), and that yes, they work when used onthe command line. | ||
| particle | that's actually cmd, not cl | ||
| Coke | I'm fairly certain it's fine in targets or you would have broken after one_make merged. | ||
| particle | and nmake.ext | ||
| Coke | but in the build line... | ||
| particle | yes, forward slashies should be ok, at least if you're not running windows 95 | 21:06 | |
| Coke | we don't support win95. | ||
| particle | yep | ||
| Coke | I'm willing to go out on a limb there. | ||
| particle | it's no longer a problem on win32 | ||
| Coke | ok. good. more crap I can rip out of the build. | ||
| cotto_working | wheee | ||
| Coke | rm_cflags branch currently borked on strawberry perl due to this. | 21:07 | |
| particle | however, some native commands like 'cd' won't work with forward slashes | ||
| Coke | I don't think we should ever be using those. | 21:09 | |
| (we are for the 3 remaining recursive makes, but we shouldn't be.) | 21:10 | ||
| particle: do you know whatever happened to our remote windows compiler access? | 21:11 | ||
| was it "talk to alias"? | |||
| particle | yes, i don't recall it getting past that state | ||
| i suppose now that i'm no longer building parrot regularly, it's more of a priority | 21:12 | ||
| NotFound | Whiteknight: Will not be easier to put that PMC in trunk, marking it as experimental? | 21:13 | |
| Coke | I pinged alias. I'll let folks know what I hear. | 21:16 | |
|
21:19
cotto_working joined
21:23
davidfetter joined
|
|||
| Coke | particle : rule seems to be: if it's an argument, slashes are fine. if it's a path-to-a-command, native slashes a must. | 21:35 | |
| Whiteknight | NotFound: we can merge it to truk | 21:36 | |
| doesnt break the build anymore | |||
| NotFound | Great | 21:38 | |
| Whiteknight | actually fails codetests, and no coverage in t/pmc yet | 21:41 | |
| Coke finds timethis.exe for windows and compares some stuff. | 21:42 | ||
| Whiteknight | can somebody explain to me what a packfile fixup is? | 21:48 | |
| cotto_working | Sure. | ||
| It maps sub names to bytecode offsets. | 21:49 | ||
|
21:50
iblechbot joined
|
|||
| cotto_working | i.e. sub foo's bytecode starts 24 opcode_t's into the bytecode segment | 21:50 | |
| Whiteknight | but dont the subs themselves contain info about thestart and end offsets? | ||
| In bacek's example, the sub contains that info | 21:51 | ||
| cotto_working | It appears to be duplicated | ||
| Whiteknight | ok | ||
|
21:54
payload joined
|
|||
| Whiteknight | a packfile can have multiple of the same types of segments so long as the have different names? | 21:55 | |
| particle | yes | ||
| so you can, for example, have multiple data segments | |||
| cotto_working | There's oddness there. Looking at pbc_to_exe.pbc with pbc_dump, the sub for main says it starts at offset 0 and ends at 161, but the fixup segment says it starts at 30 and ends at 36. | 21:56 | |
| nm. The fixup table seems to be pointing at the constant table. | 21:57 | ||
| s/at/into/ | 21:58 | ||
| Whiteknight | constant table? why would it point there? | ||
| in bacek's example the fixup has offset 5, but constants only go to idx 4 | 21:59 | ||
| dalek | TT #1436 created by fperrad++: Crash on Windows | 22:00 | |
|
22:01
cotto_working joined
|
|||
| cotto_working | The offsets into bytecode are stored in the sub in the const table. | 22:03 | |
| Whiteknight | ...LOLWUT? | ||
| ah, nevermind. I see it | 22:04 | ||
| cotto_working | Apparently end_offs isn't very important. I can delete and change it and the example runs fine. | ||
| Whiteknight | so fixup points to the Sub PMC in the const table, which points to the bytecode offset | ||
| got it | 22:05 | ||
| cotto_working | The sub init code doesn't ignore end_offs. Possibly it's only important when you have more than one sub. | 22:06 | |
| yup | |||
| . o O (worst connection evar) | |||
| Whiteknight | Probably used at runtime to prevent non-local jumps | 22:07 | |
| cotto_working | maybe a make_fib is in order. | 22:14 | |
| It wouldn't be much harder. | |||
| or something more complex to flesh out what kind of abstractions we'd need for larger-scale pbc generation | 22:16 | ||
| Whiteknight | I was just thinking that this whole process was ripe for an abstracting library | 22:17 | |
| cotto_working | quite | 22:20 | |
| Whiteknight | an add_sub() function could take the sub and an array of bytecode, and update the raw segment, constants segment, and add a fixup too in one shot | ||
| combine that with routines to build the bytecode in the first place, and we have a winner | 22:21 | ||
| cotto_working | It could be a boon for pir/nqp-based pbc_merge and pbc_dump too. | ||
| NotFound | I think end_offs is used when looking for annotations. | 22:22 | |
| cotto_working | self-hosting++ | ||
| Whiteknight | what bacek's example doesnt show is using a register | ||
| PCT could make big savings if it output PBC directly | |||
| GeJ | Good morning everyone. | 22:24 | |
| Whiteknight | hello GeJ | ||
| cotto_working | I think you don't have to do anything special to use a register other than call foo_[insp]_... and make sure there's something initialized in the register in quesstion. | ||
| hi GeJ | |||
| GeJ | Hi Whiteknight | ||
| hi cotto | 22:25 | ||
| Whiteknight | cotto_working, but the one he used was an offset into the constants table | ||
| so how does the op decide if it's a constant or a register? | |||
| darbelo | Whiteknight: You can try a simple pasm example and pbc_dump it. | 22:26 | |
| cotto_working | Whiteknight, that's determined by which op is used. | ||
| say_sc vs say_s for example | 22:27 | ||
| Whiteknight | cotto_working, ah, ok | ||
| cotto_working | nopaste.snit.ch/19563 | ||
| In that example note that all the references to the pmc use register 0 | 22:28 | ||
| Whiteknight | Imagine the runtime savings if PCT could output PMC constant aggregates in bytecode instead of having to build them at runtime! | 22:29 | |
| Whiteknight starts to drool | 22:30 | ||
| tewk_ | We just need a register allocator in nqp now :) | 22:33 | |
| Whiteknight | that wouldn't be too too hard, I dont think | 22:37 | |
| assuming NQP could keep track of when registers are used and released | 22:38 | ||
| that's the hard part | |||
| chromatic | Not with SSA. | 22:40 | |
| darbelo | We don't do SSA. | 22:42 | |
| Whiteknight | SSA? | ||
| purl | rumour has it SSA is *fast*. or Static Single Assignment | ||
| tewk | So i wrote a runloop that only allows a few safe instructions (non allocating) to execute. | ||
| Whiteknight | ah, ok | ||
| tewk | If you try to execute an unsafe instruction it forces the runloop off of a thread and back to the main thread. | 22:43 | |
| darbelo | tewk++ | ||
| tewk | In nother words unsafe operations are serialized on the main thread. | 22:44 | |
| darbelo | Nice. | ||
| cotto_working | sounds safe and expensive | 22:45 | |
| where's the code live? | |||
| tewk | The run loop wasn't much code. I was thinking... Given Lorito's future functionality it should be possible to dynamically create custom runloops at runtime. security sandboxes etc. | ||
| cotto_working | I'm always up for a new runloop. | ||
| darbelo | tewk: Is this all proof-of-concept or do you expect to merge that work into trunk? | 22:46 | |
| tewk | cotto_working, its just a prototype, in my personal git repo. | ||
| I'm willing to push it somewhere for others to look at. | |||
| chromatic | Run loops aren't much code, now. | ||
| darbelo wants to see the shiny. | |||
| cotto_working | nope. chromatic++ for that work. | ||
|
22:46
joeri joined
|
|||
| tewk | I still have to fix gc and allocation. | 22:47 | |
| cotto_working | Well, most runloops aren't much code now. | ||
|
22:47
slavorg joined
|
|||
| tewk | I'm not sure runtime generated runloops are useful, but its a cool idea. | 22:48 | |
| cotto_working | In that context, what part of the runloop would be generated? | ||
| darbelo | I'm all for "safe runloop sanboxing" if nothing else | ||
| tewk | basically the predicate that says whether an opcode is safe or not. | 22:49 | |
| chromatic | Make it table-driven and it's trivial. | ||
| tewk | yep, I was think crazy things like a meta runloop that could do arbitrary computations based on the bytecode stream being executed. | 22:52 | |
|
22:57
cotto_working joined
23:01
bacek_at_work joined
|
|||
| cotto_working | hio bacek_at_work. Your make_hello_pbc.pir generated some good discussion. | 23:02 | |
| bacek_at_work | cotto_working, o hai. | ||
| What about it? | |||
| cotto_working | It'll be less mysterious when Whiteknight's oplib PMCs are used to generate the opcodes, and to do more we'll need a library to take care of the low-level details. | 23:03 | |
| bacek_at_work | Ah. Yes, of course. | 23:04 | |
| cotto_working | Whiteknight++ for all the GSoC blogging. If anyone asks for ideas, there's a good chance you've covered something they'll find interesting. | 23:09 | |
| darbelo | We should move that into an actual 'ideas page' | ||
| cotto_working | s/we/darbelo/ | 23:10 | |
| darbelo | s/darbelo/whiteknight/ | ||
| See, I can delegate too! | 23:11 | ||
| Besides, I am unworthy to summarize Whiteknight's uniquely elegant prose in a way that would do it justice. | 23:12 | ||
| cotto_working | nice try | ||
| purl indulges in a bit of evil laughter. | |||
| cotto_working | A wiki page with summaries is a good idea. Maybe I'll tackle that if other Parrot stuff is too frustrating. | 23:13 | |
| bacek_at_work | Is "World domination" in list of GSoC ideas? | 23:14 | |
| chromatic | Next year. | ||
| purl | next year is likely to have better beer | ||
| bacek_at_work | ah, ok. | ||
| I'll apply as mentor than | 23:15 | ||
| cotto_working | It's right after "dynamic generation of the dtrt op". | ||
| darbelo | bacek++ # mentoring world domination | ||
|
23:16
cotto_work joined
23:18
patspam joined
|
|||
| cotto_work | dukeleto, where's the audio from pdx.pm talks posted? | 23:37 | |
| chromatic | pdxpm.podasp.com/archive.html?pname=meetings.xml | 23:40 | |
|
23:43
cotto_work joined
|
|||
| dukeleto | 'ello | 23:44 | |
| davidfetter | hai dukeleto | ||
| cotto_work | chromatic, thanks | ||
| hi | |||
| dukeleto | Video of my intro to #parrot talk at #pdxpm last night: ping.fm/7rGS5 Slides: ping.fm/Qz4QO | ||
| davidfetter: ahoy! | |||
| davidfetter | oh, cool | ||
| cotto_work | 1.5 hours? That's a lot of parrot. | 23:45 | |
| davidfetter watches | |||
| dukeleto | cotto_work: indeed. people asked a bunch of questions | ||
| i think it was a success. lots of people had heard of parrot but did not know about recent advances | 23:46 | ||
| davidfetter | is there some generic system for video + slides? | ||
| cotto_work | Sweet. Maybe we'll get some more Parrot hackers out of the deal. | ||
| dukeleto | one person said "i heard of it 8 years ago and that is about it", which made me laugh | ||
| cotto_work | or hlls, or libraries... | ||
| dukeleto | cotto_work: yes, one attendee is dead set on a new Scheme on Parrot which he calls "NoScheme" | 23:47 | |
| wagle: where is your noscheme repo? | |||
|
23:48
slavorg joined
|
|||
| cotto_work | We can never have too many schemes. | 23:48 | |
| or Schemes. ;] | |||
| dukeleto | davidfetter: it would be nice for videos and slides to know about each other, but not that I know of | 23:50 | |
| davidfetter | there are some proprietary solutions that have the slides in one window and the video in another | 23:51 | |