|
Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets Set by moderator on 13 May 2009. |
|||
| dalek | rrot: r38855 | cotto++ | branches/pmc_pct/compilers/pmcc/pmcc.pir: [pmcc] re-add nqp's builtins, since they come in handy during debugging |
00:00 | |
| cotto | bacek, do you think it makes more sense to put the vtable compiler in with pmcc or in a separate dir in compilers/ ? | ||
| bacek | cotto, no preferences. | 00:01 | |
| I can't reproduce fail in packfileconstanttable.t... | 00:03 | ||
| cotto: just keep it simple. | 00:04 | ||
| cotto | always a good strategy | ||
| afk | |||
| Infinoid | bacek: Neither can I, any more. | ||
| Thanks for testing | |||
| kid51 | ping Infinoid | 00:06 | |
| purl | I can't find Infinoid in the DNS. | ||
| kid51 | Infinoid ping | ||
| Infinoid | hi kid51 | ||
| kid51 | So, I take it, we're somewhat at a standstill re the problem with config_pm.pm? | ||
| Infinoid | The patch is backed out, for now, so it should build for everyone | 00:07 | |
| kid51 | k | ||
| Infinoid | I have a patch in my stack that re-adds it, plus a whitelist, which should be safe to check in right now | ||
| kid51 | Perhaps too close to monthly release ... ? | 00:08 | |
| Infinoid | I didn't hear any feedback from chromatic, yet, and I forgot to ask while he was here | ||
| But it sounds like a good longterm solution for this is to split the config stuff into 2 parts... one minimal "needed to initialize parrot" part that's loaded during parrot startup, and one "kitchen sink" one that's loaded only when needed | 00:09 | ||
| I don't think that's specced anywhere, yet. It's just my opinion of the best way forward | 00:10 | ||
| kid51 | And I see Smolder is still down. | 00:11 | |
| bacek | Infinoid: config and config-dev? | 00:24 | |
| Infinoid | Yeah, or init and config, or something like that. I get the impression from groups.google.com/group/parrot-dev/...c89d50d84a that the more we can remove from the frozen hash we load at startup, the faster parrot will be in general | 00:25 | |
| config.pir is the slow (kitchen sink) path, init.pir would be the fast (but minimal) path | |||
| bacek | +1 | 00:27 | |
| purl | 1 | ||
| dalek | rrot: r38856 | bacek++ | branches/tt504_annotations: Branch for finishing Packfile PMCs |
00:43 | |
|
00:53
Whiteknight joined
01:17
bacek joined
|
|||
| kid51 | Does anyone know about this non-standard POD formatting I've spotted in two docs/books/*.pod files? | 01:25 | |
| docs/book//ch01_introduction.pod:9 | 01:26 | ||
| docs/book//ch02_getting_started.pod:3 | |||
| grep -c 'U<' | |||
| Example: | |||
| U<www.parrot.org/download>. A binary installer for Windows is also | 01:27 | ||
| available at U<parrotwin32.sourceforge.net/>. | |||
| Is that something Allison is doing re book publication? O'Reilly POD? | |||
| 'podchecker' doesn't like it | 01:29 | ||
| *** ERROR: Unknown interior-sequence 'U' at line 10 in file docs/book//ch02_getting_started.pod | 01:30 | ||
|
01:45
Theory joined
|
|||
| Coke | kid51: yes. it's psuedo pod | 02:00 | |
| pseudopod? | 02:01 | ||
| purl | rumour has it pseudopod is Jason McIntosh's cute name for O'Reilly's publishing extension to pod | ||
| Coke | psuedopod is also Pod::PseudoPod | ||
| dalek | rrot: r38857 | jkeenan++ | trunk/src/gc/gc_ms.c: Set SVN keywords and eol-style properties to match coding standards. |
||
| kid51 | Coke: can you then take a look at TT #674? | 02:03 | |
| Coke | search.cpan.org/~arandal/Pod-Pseudo...torial.pod | ||
| "don't use podchecker" | |||
| I would just assign that ticket to allison or chromatic. | 02:04 | ||
| kid51 | I've already CC-ed allison on it. | ||
| Coke | there you go. | 02:05 | |
|
02:08
eternaleye_ joined
|
|||
| kid51 | assigned to allison | 02:10 | |
| dalek | rrot: r38858 | whiteknight++ | trunk (2 files): [gc] Fix some function-level documentation in mark_sweep.c, a few small code changes but nothing significant. |
02:18 | |
| kid51 | Whiteknight: Can you look at the output of t/codingstd/c_arg_assert.t | 02:21 | |
| Whiteknight | why, did I break something? | ||
| kid51 | # unused assert macros found: | ||
| # /src/gc/gc_ms.c: gc_ms_finalize | |||
| Whiteknight | actually, I probaly did | ||
| kid51 | I fixed some other codingstd problems with that file, but I don't know what an unused assert macro means. | 02:22 | |
| Infinoid | it means the function needs ASSERT_ARGS(gc_ms_finalize) at the top | 02:23 | |
| Whiteknight | yeah, I just added it | ||
| so many standards to forget, and with enough opportunity I will forget all of them | 02:24 | ||
| thanks kid51++ for cleaning up my mess | 02:25 | ||
| I added that line to the top, but now the test still fails | 02:27 | ||
| dalek | rrot: r38859 | whiteknight++ | trunk/src/gc/gc_ms.c: [gc] Fix a codingstd problem that kid51++ pointed out |
||
| Whiteknight | # unused assert macros found: | 02:28 | |
| # /home/andrew/Projects/parrot/src/gc/gc_ms.c: gc_ms_finalize | |||
| # 1 unused assert macros found in total. | |||
| Infinoid | Whiteknight: No semicolon; it causes errors on msvc. | 02:32 | |
| Whiteknight | Okay, I figured it out | ||
| yeah, just got that | 02:33 | ||
| Infinoid | Yes, I know, the test could be a bit more explicit about that. | ||
| Whiteknight | thanks Infinoid__ | ||
| Infinoid++ | |||
| dalek | rrot: r38860 | whiteknight++ | trunk/src/gc/gc_ms.c: [gc] ASSERT_ARGS apparently shouldn't be followed by a semicolon |
02:34 | |
|
02:40
dduncan joined,
dduncan left
02:42
janus joined
02:58
eternaleye joined
|
|||
| dalek | rrot: r38861 | whiteknight++ | trunk/src/gc/gc_ms.c: [gc] small documentation change for line-ending |
03:00 | |
| rrot: r38862 | whiteknight++ | trunk/src/sub.c: [gc] IF WE SEE SEGFAULTS IN THE NEXT DAY OR SO, LOOK AT THIS COMMIT. I removed some code that looked unnecessary, with a note that this was a 'work around' for a 'mysterious segfault' thing. If this actually does cause segfaults, we should have a ticket and start collecting information about it. |
03:07 | ||
|
03:10
eternaleye_ joined
03:20
donaldh joined
03:24
tetragon joined
04:01
Ademan joined
|
|||
| dalek | rrot: r38863 | cotto++ | branches/pmc_pct (12 files): [vtdumper] start work on a PCT-based vtable.tbl parser/dumper |
04:05 | |
| rrot: r38864 | Infinoid++ | trunk/src/gc/mark_sweep.c: [cage] Fix c_parens.t codingstd violation. |
04:09 | ||
| rrot: r38865 | cotto++ | branches/pmc_pct/config/gen/makefiles/vtdumper.in: [vtdumper] makefile fix |
04:15 | ||
| rrot: r38866 | cotto++ | branches/pmc_pct/compilers/vtdumper/src/parser/grammar.pg: [vtdumper] grammar is working, now for actions |
04:48 | ||
| cognominal | starting on fresh repository copy, I get /Users/stef/git/rakudo/parrot/parrot -o perl6_s1.pbc perl6.pir | 05:55 | |
| Null PMC access in get_integer() | |||
| make: *** [perl6_s1.pbc] Error 1 | |||
| I have not compiled parrot in month on my unibody mac | 05:56 | ||
|
07:05
iblechbot joined
07:20
donaldh joined
08:53
bsdz joined
09:00
bacek joined
|
|||
| dalek | rrot: r38867 | fperrad++ | trunk/lib/Parrot/Configure/Compiler.pm: [config] specify a comment type for PIR file generation. |
10:28 | |
|
11:15
HG` joined
11:20
donaldh joined
11:38
bacek joined
|
|||
| bacek | cotto: ping | 11:42 | |
|
12:00
bsdz joined
12:39
rg1 joined
12:42
bacek joined
12:44
kid51 joined
|
|||
| moderator | Parrot 1.1.0 Released | parrot.org/ | 320 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets | 12:53 | |
|
13:10
Whiteknight joined
|
|||
| Infinoid | hmm, ATTRs seem to throw pmc2c line numbering off | 13:21 | |
| cotto | easy karma if you can fix it | 13:28 | |
| well, normal karma ;) | 13:29 | ||
| afk | |||
| Infinoid | well, first step of that is done (I has a test case) | 13:30 | |
| dalek | rrot: r38868 | jkeenan++ | trunk (2 files): 'make' target 'check_source' should have been removed in r22249 2007-10-18 |
13:52 | |
|
14:02
jhorwitz joined
|
|||
| dalek | rcupinepascal: r68 | robin.ge++ | branches/oo-branch/ (5 files): * added support for attributes (without type checking) * done some general cleaning up * more to come |
14:05 | |
|
14:05
ruoso_ joined
|
|||
|
14:25
cognominal joined
14:37
ruoso_ joined
14:38
rdice joined
14:42
iblechbot joined
|
|||
| Whiteknight | does anybody around here know whether the src/stacks.c stuff is slated to be cut? | 14:44 | |
|
14:49
flh joined
15:01
Theory joined
|
|||
| Infinoid | Whiteknight: judging from www.mail-archive.com/parrot-dev@lis...1020.html, it sounds like we would if we had something to replace it with (it's the backend for the pushmark/popmark/pushaction ops) | 15:09 | |
| Whiteknight | right, I was planning to basically replace it all with an RIA PMC | 15:10 | |
| so one GCable object instead of a series of them | 15:11 | ||
| Infinoid | cool. | ||
|
15:20
donaldh joined
|
|||
| dalek | rrot: r38869 | petdance++ | trunk (2 files): using INTVAL instead of int for the function values that return INTVAL |
15:24 | |
| rrot: r38870 | petdance++ | trunk/config/gen/makefiles/root.in: Dont' use -posix-strict-lib because it's far too strict. |
15:30 | ||
|
15:47
tetragon joined
16:11
mikehh joined
16:12
HG` joined
|
|||
| Infinoid feels like he's playing whack-a-mole with these packfile pmc tests, and losing | 16:26 | ||
| Whiteknight | what's wrong with them? | 16:34 | |
| Infinoid | some PackFileConstants are getting GCed sometime between when they were parsed and when they're added to the PackfileDirectory PMC's hash thingy | 16:37 | |
| so I guess that means they aren't being marked properly, which is a yak distracting me from implementing segment deletion | |||
| direct symptom: SIGSEGV running ./parrot t/pmc/packfiledirectory.t, after the "ok 5"; Parrot_PackfileConstantTable_set_pmc_keyed_int() is called with a PMC whose vtable pointer is 0xdeadbeef. | 16:38 | ||
|
16:38
kid51 joined
|
|||
| Infinoid | yesterday I was seeing it from t/pmc/packfileconstanttable.t, either I'm remembering that wrong or it seems to have migrated | 16:39 | |
| Whiteknight | anything GC-related is going to jump around and might appear random | 16:40 | |
| Infinoid | The test runs fine when I pass the -G flag. | ||
|
16:40
Debolaz joined
|
|||
| Whiteknight | hmmm | 16:40 | |
|
16:41
benjaminvm joined
|
|||
| Whiteknight | how are PackFileConstants managed? Who is supposed to be marking them? | 16:41 | |
| Infinoid | PackFile* (note: capital F) is all in src/packfile.c. Packfile* is in src/pmc/packfile*.pmc, which wrap loosely around the C structures and avoid touching them whenever possible because they crash. | 16:42 | |
| I believe the marking is done by mark_1_seg() | 16:43 | ||
| jonathan | PackFileConstant PMCs? | ||
| Is that just a PMC for the constants table? | |||
| Infinoid | yeah | 16:44 | |
| jonathan | oh, phew :-) | ||
| Infinoid | PackFile_Constant is a typedeffed struct containing a PMC | ||
| jonathan | Wait, not one instane per constant though? | ||
| Well, I mean not an additional PMC representing each constant? | |||
| Infinoid | No, the PackfileConstantTable PMC uses a couple of RIAs to manage the constants and their types | 16:45 | |
| err, one RPA for the PMCs and one RIA for the types | 16:46 | ||
| so, no, there's no wrapping | |||
| jonathan | OK. | ||
| Infinoid | actually, now that I look at mark_1_seg... | 16:47 | |
| if (constants[i]->type == PFC_PMC) { | |||
| I think we probably want to mark the PFC_KEY entries too | |||
| That tweak didn't effect my segfault though. :( | 16:48 | ||
| Do STRINGs have to be marked? | 16:50 | ||
| Whiteknight | Infinoid: Yes | ||
| Infinoid | Hmm. Either this function is horribly wrong, or all that stuff must be marked somewhere else | 16:51 | |
| he | Hi, folks. | 16:54 | |
| I'm trying to build rakudo (for a change), and I'm falling over the error described in groups.google.com/group/perl.perl6....d60aaba76d | |||
| jonathan | Infinoid: If they're in the constants segment they're differently allocated and would not need marking afaik. | ||
| (That is, if they're in the constants segment loaded from some bytecode) | 16:55 | ||
| Thing is that if it's mixing constants in the constants seg with "constants" as in new PMCs the user has created and wants to freeze, well, that could get confusing... | |||
| he | It turns out that rakudo is using parrot/tools/build/dynoplibs.pl to build this library, and gcc is failing because it's not given any -O flags(!) -- I'm seeing this with gcc 4.1.2 on NetBSD/4.0 i386 | 16:56 | |
| So: two questions: 1) should dynoplibs.pl pass any -O flags and 2) if "no", can a user of dynoplibs.pl tell it to pass an -O flag? | 16:57 | ||
| Infinoid | jonathan: Ok, I just pulled a PMC out of a (freshly loaded) PackFile_ConstTable which had a vtable pointer of 0xdeadbeef, so I guess it must have been allocated wrong or mistakenly GCed | ||
| jonathan | Infinoid: Does the same code run under -G? | 16:58 | |
| Infinoid | jonathan: yes | ||
| he | (the rakudo build is bombing later if I work around this problem, with a different error, of course) | ||
| jonathan | OK, certainly it's not being marked when it needs to be somehow then. | ||
| Infinoid | he: hi. It should pass any -O flags if parrot itself was configured with --optimize (not the default) | 16:59 | |
| I'll double check that, one moment | |||
| he | hmm... ok; need to look at how rakudo configures parrot, then. | 17:00 | |
| jonathan | he: If you're just doing the --gen-parrot thing, I'm about certain it configures it without any. | ||
| Infinoid | (I build parrot by hand and only very rarely use --optimize, for what it's worth) | ||
| he | The error I get later is "error:imcc:syntax error, unexpected STRINGC, expecting '(' (''$/'')" | ||
| jonathan | he: That will happen for sure if you're missing dynops, yes. | ||
| he | jonathan: I had to use --gen-parrot -- rakudo from git was not satisfied with my 1.1.0 | 17:01 | |
| jonathan | he: No, Rakudo is syncing very closely against Parrot these dyas. | ||
| purl | okay, jonathan. | ||
| jonathan | *days | ||
| he | ...and really, *really* wants to use stuff from parrot's build directory (bug?) | ||
| Tene | Yes, bug. | ||
| jonathan | I think there's two tools for building dynops and Rakudo is using the old deprecated one. | 17:02 | |
| Just nobody had chance to update yet. | |||
| he | I know too little parrot to make sense of the syntax erorrs, though. | ||
| jonathan | he: It's cryptic. | 17:04 | |
| nopaste | "he" at 158.38.152.119 pasted "syntax errors from rakudo build" (34 lines) at nopaste.snit.ch/16576 | ||
| he | FWIW, here's a nopaste. | ||
| jonathan | he: Means you're missing dynops. | ||
| (Since they didn't compile correctly, as you pointed out.) | 17:05 | ||
| Gotta go to the shops before they close - need some nom and pivo - bbiab | |||
| he | hmm... (Well, I cut-pasted the gcc, and re-did that part, but perhaps it constructed the lib with them missing...) | ||
| (missing timestamp comparison for the component *.o files for the library?) | 17:06 | ||
| Infinoid | The gcc error you got was "perl6.ops:218: error: unable to find a register to spill in class 'SIREG'", like that google groups link you pasted? | ||
| he | Yep. | ||
| Passing -O2 to gcc made the error go away. | |||
| Infinoid | hmm, poor buggy gcc. | 17:07 | |
| he | indeed | ||
|
17:07
deetah joined
|
|||
| deetah | hi | 17:07 | |
| just wondering | |||
|
17:07
Theory joined
|
|||
| deetah | would it be possible to create a C to parrot compiler? | 17:08 | |
| Infinoid | he: well, if you're going to turn on optimization, you should do it at the parrot level | ||
| deetah: yes, in fact we already have a partially written one in the languages repository, called "c99" | |||
| deetah | sounds cool. would it make sense to make a parrotOS? | ||
| he | Infinioid: sure, at the moment I'm just trying to see if I can get it to build with quick & dirty tricks. | ||
| Infinoid | It's sort of an academic exercise, though, as it will never run as fast as native code and won't be able to use system headers | 17:09 | |
| he: Ok. I think --optimize changes more than just the CFLAGS though, so I'd be wary of doing it on a per-object basis | |||
| I would suggest --gen-parrot-option=--optimize | |||
| deetah | Infinoid: sounds cool. would it make sense to make a parrotOS? | 17:10 | |
| Infinoid | deetah: I guess that depends on what you're trying to do. | ||
| he | New error: "Parrot VM: PANIC: Out of mem!", apparently 256MB virtual was too small(?!?) | 17:11 | |
| Doubling... | |||
| purl | i think doubling is a baffler | ||
| deetah | Infinoid: a complete operating system that would run on variety of architectures. | ||
| (with no recompiling of the binary code) | |||
| moderator | Parrot 1.1.0 Released | parrot.org/ | 319 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets | 17:12 | |
| Infinoid | every RT counts :) | 17:12 | |
| deetah: I think it's going to be very resource-heavy compared to the native stuff | |||
| deetah | resources are getting cheaper | ||
| is parrot mature enough? | 17:13 | ||
| Infinoid | we're just getting to the point where some of the native language plugins are starting to think about ways to play with eachother, call into eachother, pass data back and forth, and stuff like that | 17:14 | |
| I think we definitely have some performance issues to work out before ideas like yours could really take off. | |||
| deetah | i don't need performance at the point | 17:15 | |
| PacoLinux | Infinoid: the problem with gcc has a ticket : rt.perl.org/rt3/Public/Bug/Display.html?id=64930 | ||
| deetah | Infinoid: just think it would be a nice toy, provided it'd be possible at the moment. | 17:16 | |
| Infinoid | he: The final stage of rakudo compilation is to link a perl6 binary. That compiles a C file with a bootstrap function and a huge array, and gcc takes about a gig to do that on my linux/amd64 system | ||
| deetah: Sure, it might be fun to play with. It may be more useful or less depending on what kind of OS you wanted to make | 17:17 | ||
| he | Infinoid: eek! | ||
| deetah | Infinoid: one with a very extensive API that would help people avoid kde vs gnome-like conflicts. | ||
| he | In other words "rakudo / parrot will never build on my m68k systems" :) | 17:18 | |
|
17:18
ruoso joined
|
|||
| deetah | an inter-lingual VM sounds cool for that | 17:18 | |
| and I guess VM's the most advanced project in the category, isn't it? | |||
| he | (the icu library already doesn't, for other and more embarassing reasons) | ||
| Infinoid | he: the memory usage is a GCC issue; I think some of the of the folks in here have been working on a friendlier way to do it | ||
| he | Whee, completed inside 512M on NetBSD/i386 4.0 | ||
| I think the worst pig was "/home/he/rakudo/parrot/parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir", which peaked at 374MB | 17:19 | ||
| Infinoid | deetah: Ok. If you want to play with languages and spawning threads and stuff, you might want to look at jhorwitz++'s very nice mod_parrot work, which allows calling a bunch of languages in an apache plugin | 17:20 | |
| deetah | Infinoid: thanks for a tip. | ||
|
17:26
masak joined
|
|||
| he | Whee: Result: PASS (to rakudo's "make test") | 17:26 | |
| Infinoid | cool! | 17:27 | |
| he: So you're still able to build parrot (svn trunk) fine on NetBSD/i386? (We're releasing 1.2.0 next Tuesday, and I'd like to update PLATFORMS.) | 17:29 | ||
| he | Now checking whether "perl ./Configure.pl --gen-parrot --gen-parrot-optimize=--optimize" will give the same result. | ||
| Infinoid: if that's what comes out when I try a current rakudo, then "yes". | |||
| Infinoid | great, thanks | 17:30 | |
| he | I can re-try a couple of my other platforms as well, ppc being perhaps most interesting. | ||
| Infinoid | that would be great. I'd like to squeeze out any bugs before the release rather than afterwards :) | ||
| By the way, turns out hpux/cc/ia64 is having the same issue you were seeing on netbsd/alpha with non-pointer va_list types. You wouldn't happen to have a link to a guide for how to set up netbsd/alpha in qemu so I can test this stuff, would you? | 17:35 | ||
| he | hm, no, sorry -- i've not seen alpha emulated (but that might be just me) | 17:38 | |
| Infinoid | No problem, was just a thought. | 17:39 | |
|
17:40
bsdz_ joined
|
|||
| he | at least www.nongnu.org/qemu/status.html says "Dev only" for alpha emulation. | 17:41 | |
| Whiteknight | Infinoid: If the vtable pointer is 0xdeadbeef, it's probably been prematurely GCd | 17:43 | |
| Also, it never hurts to re-mark things if you're unsure about them. | 17:44 | ||
| PacoLinux | threre is an emulator for alpha called es40 : www.es40.org/Homepage (last time I used, i was able to run openvms and tru64) | 17:45 | |
| Infinoid | Ok. I'm a little confused by what jonathan said, about how these packfile constant PMCs somehow magically don't need to be marked | ||
| he | PacoLinux: interesting... | ||
| (although I have my fair share of actual alpha hardware :) | 17:46 | ||
| Whiteknight | Infinoid: They definitely need to be marked | ||
| Infinoid | [09:54] <@jonathan> Infinoid: If they're in the constants segment they're differently allocated and would not need marking afaik. | ||
| Whiteknight | Unless they're being allocated from the constant PMC pool, they definitely need marking | ||
|
17:46
Andy joined
|
|||
| Whiteknight | I think jonathan was thinking of something different. The PMCs definitely need a-markin' | 17:47 | |
| Infinoid | does it hurt anything to mark PMCs in the constant pool? | ||
| Whiteknight | nope | ||
| nopaste | "infinoid" at 75.28.74.203 pasted "[PATCH] Mark PFC_KEY and PFC_STRING elements as well (this patch has no effect on my crash)" (32 lines) at nopaste.snit.ch/16577 | 17:49 | |
| Infinoid | I'm not sure this mark_1_seg function's even being called. | ||
| Infinoid will trace around in gdb | 17:50 | ||
| Parrot_gc_mark_and_sweep is run surprisingly often for such a simple test script | 17:52 | ||
| Whiteknight | yeah, we definitely need to slow down the pace of that | 17:54 | |
| Infinoid | it's called 132 times during the course of 5 is() functions before it even gets to test 6 (the one I care about) | 17:55 | |
| I imagine loading a packfile creates lots of objects, but sheesh | 17:56 | ||
| dalek | rrot: r38871 | allison++ | trunk/DEPRECATED.pod: [cage] Deprecation notice for the name 'Hash'. |
17:57 | |
| Whiteknight | Well, it doesn't help that we're allocating arenas that only contain space for 64 objects to start | 17:59 | |
| let me work on a patch for you to try and cut that down | |||
| Infinoid | 64 does seem like a silly starting point, but if the allocation size increases exponentially, it shouldn't be too bad | 18:00 | |
| Whiteknight | Infinoid: Change the starting point to 1028, and see what that does to your numbers | 18:02 | |
| purl | Whiteknight: that doesn't look right | ||
| Infinoid | purl, thanks for that | ||
| purl | de rien Infinoid | ||
| Whiteknight | ??? Did I just get told, by a bot? | ||
| Infinoid | is it a #define? I'm not sure where to find that | ||
| nah, purl is just being useless | |||
| Whiteknight | src/gc/pools.c:104 | ||
| bump the number up to 1024, that should cut down the number of gc runs significantly | 18:03 | ||
| we really should be figuring out an optimal number based on native page size | |||
| but that's another project for another day | 18:04 | ||
| Infinoid | as long as the chunk is page-aligned, I'm not so sure it matters | 18:05 | |
| Whiteknight | actually, that change won't do anything | ||
| i was looking at the wrong thing | |||
| Infinoid | oh, I won't benchmark rakudo with it then :) | 18:06 | |
| he | NetBSD/macppc (powerpc) 5.0 parrot-current Result: PASS | 18:08 | |
| Tried to upload via "make smoke", but apparently smolder.plushtree.com is unresponsive. | 18:10 | ||
| Infinoid | Yeah, it's been having problems | ||
| Whiteknight | okay, apparently pool sizes for PMCs are allocated with size (10240/sizeof(PMC)) | 18:13 | |
| so that's a little bit weird of a number to use | |||
| I feel like it should be PAGESIZE/sizeof(PMC) | 18:14 | ||
| if we extend an arena beyond the size of a page we're going to lose a lot in virtual memory performance | |||
| Infinoid goes and looks up what PAGE_SIZE is on amd64 | 18:16 | ||
| oh, still 4k. | 18:17 | ||
| sizeof(struct PMC) is 48 on amd64, which means there are 85.3333 PMCs per page | |||
| depending on the size of a cache line, that may or may not be a performance issue. | 18:18 | ||
| anyway, 85 PMCs isn't much, the number of arenas is going to get rather huge | 18:19 | ||
| so if we're tied to one page per arena, it is crucial to scale well to large numbers of arenas | |||
| Whiteknight | true | 18:20 | |
| Infinoid | but if sizeof(struct PMC) wa a power of 2, I'm not really sure why we'd have VM overhead from having bigger arenas | ||
| s/wa/was/ | |||
| the size of the map doesn't affect the time it takes to do a page table lookup | 18:22 | ||
| nor should it affect the number of TLBs used in total, unless I'm misunderstanding something | 18:23 | ||
| Whiteknight | it might not be too bad, I might be missing something too | 18:25 | |
| Infinoid | it's been a while since I've worked with page tables directly, linux generally does a good job of it on its own :) | ||
| Whiteknight | okay I'm out. later | 18:27 | |
| Infinoid | thanks for the help | ||
| benjaminvm | I have a flag I need to add to every c file, where do I add it? | 18:30 | |
| dalek | rrot: r38872 | allison++ | trunk/t/pmc/io.t: [cage] Unskipping test failure from Ubuntu 6.10. |
||
| Infinoid | benjaminvm: A compilation flag (command line), a #define, or what? | 18:34 | |
| benjaminvm | Compilation flag, -finstrument-... | 18:36 | |
| Infinoid | probably CFLAGS | ||
| If it's something you want to enable always for a certain platform/compiler, you can put it in the hints file, e.g. config/init/hints/linux.pm has sections for icc and gcc flags | 18:38 | ||
| benjaminvm | I also need to add a .c file to trace the call stack. | 18:43 | |
| I add that to config/gen/makefiles/root.in? In what section? | 18:44 | ||
|
18:44
Ademan_ joined
|
|||
| Infinoid | benjaminvm: Try adding it to the INTERP_O_FILES list | 18:45 | |
| Coke | seen alias? | ||
| purl | alias was last seen on #perl 22 minutes and 0 seconds ago, saying: The module being either Term::ReadLine, or possibly Term::ReadKey | ||
| benjaminvm | Infinoid: Thanks for the help. I will try that. | ||
| flh | some files (io.ops, ch10_opcode_reference.pod) refer to a "ParrotIO" PMC which doesn't seem to exist: shouldn't it be the FileHandle PMC instead? | 18:50 | |
| well, I guess I found my answer in r33401 | 18:53 | ||
| Infinoid | flh: Yes, you're right. Patches welcome. | 18:54 | |
| flh | I'll try to do that tonight | 18:55 | |
|
19:07
iblechbot joined
|
|||
| he | Confirmed: "perl ./Configure.pl --gen-parrot --gen-parrot-option=--optimize" gave me a perl6 and completes "make test" | 19:18 | |
| Follow-up posted to rt.perl.org/rt3/Ticket/Display.html?id=64930 | 19:19 | ||
|
19:20
donaldh joined
19:32
kid51 joined
19:35
HG` joined
|
|||
| he | Gah, rakudo / perl6 spectests needs more than 512m. | 19:43 | |
| Infinoid | ouch. yeah, it's big | 19:46 | |
| PacoLinux | he for making perl6 maybe you want to try the Util patch (is not in the snv becouse fails in windows) irclog.perlgeek.de/parrot/2009-05-13#i_1138997 | ||
| dalek | rrot: r38873 | Infinoid++ | trunk/PLATFORMS: Update PLATFORMS for my own platforms and reports in #parrot. |
19:47 | |
| Infinoid | msg bacek Is there any reason why the add_new test in t/pmc/packfiledirectory.t was being skipped? (There's a goto directly above it.) I've added support for deleting segments and a test for that (r38874), and reenabled the add_new test at the same time... seems to work fine here. | 19:49 | |
| purl | Message for bacek stored. | ||
| Infinoid | PacoLinux: sounds like it fails while running spectests, not building | 19:50 | |
| (but thanks, I was looking for a link to that earlier) | 19:51 | ||
| dalek | rrot: r38874 | Infinoid++ | trunk (3 files): [pdd13] Spec says PackfileDirectory should handle deletions. Add that vtable and test it. |
||
| rrot: r38875 | Infinoid++ | trunk (2 files): [pmc2c] Line numbering isn't quite right, fix it (and add tests). |
|||
| Infinoid | Ok, that's all the parrot time I have for today, bye all | 19:53 | |
|
19:55
Theory joined
|
|||
| dalek | kudo: 2949868 | jnthn++ | perl6.pir: Make sure backtraces are printed to STDERR; printing them to STDOUT outrages masak++^W^Wis very wrong. |
20:06 | |
|
20:12
particle1 joined
|
|||
| he | Infinoid: NetBSD/alpha 4.0 parrot-current Result: PASS | 20:18 | |
| flh | it doesn't seem to be possible to write a PIR Object which would behave as a FileHandle (I tried to define an object with a "read" method, then do a "read myobject" but it returns an empty string) | 20:23 | |
| nopaste | "flh" at 88.160.47.207 pasted "Custom Object instead of a FileHandle" (16 lines) at nopaste.snit.ch/16578 | 20:26 | |
| flh | should this code work? | ||
| Infinoid | he: thanks, I'll update the file | 20:28 | |
| flh: I think you might also need a bool eof() :method, and a bool get_bool() :vtable :method, both of which return true if your handle has reached eof, and false otherwise | 20:29 | ||
| judging from the filehandle pmc, at least. If it still doesn't work then, I think that's a bug (or at the very least, an indication that we need more docs) | |||
|
20:31
bacek joined
|
|||
| flh | Infinoid, adding eof and get_bool doesn't change anything | 20:32 | |
| Infinoid | Okay, that's a bug then. Please create a ticket for it at trac.parrot.org/parrot/ | 20:33 | |
| Coke | is this already covered by our various "can't subclass a PMC" tickets? | 20:45 | |
| (man, is checkout out the parrot repo via tortoisesvn slow) | |||
| s/checkout/checking/ | |||
| man, would it be faster if I just got trunk. | |||
| Tene makes a new branch | 20:46 | ||
| Coke | hey, don't you already have a branch going? =-) | 20:47 | |
| Tene | I do? | ||
| flh | Coke, I'm not sure it's a "cannot subclass PMC" problem, since I'm not subclassing anything there | 20:48 | |
| Coke | oh, I assumed you were subclassing the PMC. | 20:50 | |
| ticket away, then. | |||
| Infinoid | Surprisingly, subclassing FileHandle isn't a prerequisite. The "read" op doesn't check the object's type, it just calls Parrot_io_reads(), which tries to call the "read" method via PCCINVOKE | ||
| which seems like it should work | |||
| (though I have to wonder why we have ops for this at all, considering we already got rid of similar socket-specific ops) | 20:51 | ||
| flh | StringHandle doesn't subclass FileHandle either | ||
| dalek | kudo: 1203649 | masak++ | t/spectest.data: [spectest.data] added S13-overloading/operators.t |
20:52 | |
| Coke | Infinoid: because the design is only done in chunks. | 20:53 | |
| IME, most of the reasons things are where they are is "historical.". :| | |||
| (but we respond well to change. open an RFC. =-) | 20:54 | ||
| Infinoid | I was under the impression that I/O was new and relatively un-dust-covered | ||
| It would make sense if we forced these objects to do things like does "io", does "seekable", does "connection-oriented", does "open", but I don't think we necessarily have to enforce subclassing | 20:55 | ||
| If we do, I'd prefer to see something P5-like, with a base class of IO::Handle. | |||
| Seeking isn't valid for network sockets (though an HTTP 1.1 client class could does "seekable" and translate the seek() values to Content-Range headers, that would be neat) | |||
| And eof() is only meaningful for SOCK_STREAM and SOCK_SEQPACKET, not SOCK_DGRAM or SOCK_RDM | 20:56 | ||
| Guess it's something to ask allison about, later. | 20:58 | ||
| Coke | we had an IO "system" for some time. I thought the read opcode hailed from back in the day. | ||
| Infinoid | Ah, could be | ||
| Coke | not from the rewrite that occurred in the past few years. | ||
| Infinoid | flh could just call the "read" method on his shiny new class directly, but I don't think that would prove much | ||
| Coke | be interested to see if it worked. | ||
| s/ed/ing/ | |||
| Infinoid | anyway, I need to work on other things right now, but a brief glance into the op and underlying functions indicated that his class should work that way too | 20:59 | |
| Coke | tene: is pct_hll still needed? | ||
| (the branch) | |||
| make -j is borked. | 21:00 | ||
| Tene | Coke: very dead | ||
| Coke | tene: can you rm it? | 21:01 | |
| nopaste | "tene" at 166.70.38.237 pasted "inter-language library loading sketch for jonathan++ (and others?)" (43 lines) at nopaste.snit.ch/16579 | ||
| dalek | rrot: r38876 | tene++ | branches/pct_hll: Remove old branch. Coke++ |
21:04 | |
| rrot: r38877 | tene++ | branches/report_hll_info: Remove old branch. Coke++ |
|||
| bacek | morning | 21:05 | |
| Infinoid: (packfile test) Erm. Looks like it was my mistake. | |||
| nopaste | "tene" at 166.70.38.237 pasted "inter-language library loading sketch - now with more linebreaks" (46 lines) at nopaste.snit.ch/16580 | 21:06 | |
| Coke | infinoid, did you just fixup pmc2c line directives? | ||
| tene, I didn't even get to bug you about the other branch! | 21:07 | ||
| you're no fun. =-) | |||
| Tene | Coke: want me to put it back? | ||
| Coke | "I had no idea it would be so much, I won't pay." | ||
| Infinoid | Coke: yes, did it break anything? | ||
| bacek: cool then, 2 new tests for the price of 1. | 21:08 | ||
| Tene | Anyone else feeling opinionated that I can con into looking at my plan for inter-language library loading? | 21:09 | |
| Coke | Infinoid: no, but I have an RT for you to steal. | ||
| Infinoid: can you glance at RT#56792 ? | 21:10 | ||
| Tene: I glanced at it; Looks like it will be work for tcl to participate in that scheme, but I imagine you could facilitate a bit of the work via PCT for languages that use it. | 21:11 | ||
| ... but since tcl is dead, meh. | |||
| Infinoid | Coke: Heh, good catch on the part of the reporter. I honestly didn't know __FILE__ and __LINE__ even worked in perl 5. | 21:13 | |
| I suppose the easiest way to fix that is to take the number of lines in the heredoc, and subtract that from __LINE__ | 21:16 | ||
| cotto | Andy, ping | 21:18 | |
|
21:19
nopaste joined
|
|||
| cotto | msg Andy It looks like a makefile template change snuck in with r38869. Was that intentional? | 21:20 | |
| purl | Message for andy stored. | ||
|
21:20
Whiteknight joined
|
|||
| bacek | cotto: If you are working on VTables in pmc_pct branch can you change VTableInfo to be PAST::Node? | 21:26 | |
| cotto | ok | 21:27 | |
| any particular reason? | 21:28 | ||
| purl | any particular reason is there any inherent flaws im not seeing just yet? | ||
| bacek | Look in default.pm. If VTableInfo is PAST::Node we can just .clone it and add body. | ||
| cotto | sounds nice | 21:30 | |
| bacek | Or you can add .to_post method to VTableInfo. Flip the coin to choose :) | 21:31 | |
| cotto | I'll play around with it. | ||
| nap time | |||
| purl | i heard nap time was perl -e 'say "Zz" x 99 and sleep 3600' | ||
| bacek | wow. | 21:32 | |
| purl: good girl :) | |||
| purl | :) | ||
| bacek | Infinoid: what is deprecation policy for PackfileAnnotationKeys? It wasn't implemented in 1.0. Just stubs. | 21:33 | |
| dalek | rrot: r38878 | bacek++ | branches/tt504_annotations/src/pmc (2 files): Proposed changes to PackfileAnnotations/PackfileAnnotation. |
21:34 | |
|
21:37
allison joined
|
|||
| Infinoid | bacek: I'd say go for it. It never worked, so noone will be relying on it | 21:38 | |
| bacek | Infinoid: ok. | 21:39 | |
| dalek | rrot: r38879 | bacek++ | branches/tt504_annotations/docs/pdds/pdd13_bytecode.pod: [docs] Update pdd13 PMCs. |
21:40 | |
| bacek | msg jonathan Any objections about r38879? I dropped PackfileAnnotationKeys and hide guts in Annotation. | 21:41 | |
| purl | Message for jonathan stored. | ||
| moderator | Parrot 1.1.0 Released | parrot.org/ | 310 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets | 21:42 | |
| Coke | Surely we can close or transfer 10 more RTs before the release! | 21:42 | |
| allison | how about that language example tests one? | 21:44 | |
| Coke: my main question was, should we move the existing tests to t/examples/languages? or add them to the examples_tests where they are now | 21:45 | ||
| I kind of like having examples/languages/squaak have a t/ directory, as an example to new language devs | 21:46 | ||
|
22:07
ruoso joined
|
|||
| Tene | allison: mind looking over nopaste.snit.ch/16580 ? | 22:10 | |
| allison | Tene: sure | 22:13 | |
| Tene | allison: specifically, think that would work for pynie? | 22:14 | |
| allison | If fetch-library is a method, why not have it accept named arguments, instead of manually building a hash? | 22:15 | |
| Tene | allison: what happens in parrot calling conventions if I pass a named argument to a function that doesn't accept that argument? | 22:16 | |
| i guess we could require fetch-library to have a slurpy named param... | |||
| allison | I'm not quite sure what this is doing. Is it Export, or load_bytecode? | 22:18 | |
| Tene | allison: a language's fetch-library will locate the appropriate file, read and compile it, and construct a list of symbols to return (probably just returning a namespace) | 22:19 | |
| allison | compile it and load it? | ||
| Tene | fetch-library would be called from another language's "use" or "import" | ||
| Yes. | |||
| allison | then, let's call it 'load_library' | ||
| Tene | OK | ||
| the reason I chose 'fetch' over 'load' is what it returns. | 22:20 | ||
| and if a language caches libraries, there might be no loading going on. | |||
| allison | how is the return value used? | ||
| Tene | by the calling language, to import symbols into its local namespace | ||
| use Foo::Bar:lang<python>; | |||
| dalek | rrot: r38880 | bacek++ | branches/tt504_annotations (2 files): Reimplement unpack Annotations using new PMCs API |
||
| allison | and, yes, it might not be loading if it was already loaded, but you're requesting it to be loaded | ||
| (as in, that's the main thing you're asking for) | |||
|
22:21
gryphon joined
|
|||
| Tene | the main thing I'm asking for is the symbols, which will probably require loading. :) | 22:21 | |
| But, sure. | |||
| I don't object to 'load_library'. | 22:22 | ||
| allison | agreed on having name as a key, rather than a string (each language has different delimiters) | 22:23 | |
| thinking about the export interface... | |||
| is it intended that the only way to call a function from another HLL is to import it into your HLL? | 22:24 | ||
| Tene | I don't think so. As long as you have a way to get at the HLL namespace, you can call it that way. | 22:25 | |
| Or eval. | |||
| allison | good | ||
| Tene | eval($whatever, :lang<python>); | 22:26 | |
| allison | namespaces already have an 'export_to' method, which is preferable to this way of importing | 22:27 | |
| it even accepts a list of symbols | |||
| Tene | I expected that some languages might have a different way of registering which symbols to export... we could certainly require that the values of the 'symbols' key are namespaces, though. | 22:28 | |
|
22:28
rob joined
|
|||
| allison | I'm not sure any language except Perl even uses exports this way | 22:28 | |
| Tene | Neither am I, but I'm very much not confident on my knowledge of esoteric languages. | 22:29 | |
| That's why I was trying to avoid unnecessary restrictions. | |||
| allison | well, requiring 'DEFAULT' and 'ALL' of languages that don't use exports is probably too much | 22:30 | |
| Tene | Yes, but I also want to make it possible for other languages to accurately use Perl libraries. | ||
| allison | rather than 'symbols', I'd rather see a pointer to 'namespace' | ||
| namespace already has a language-neutral way of looking up symbols | 22:31 | ||
| so, we don't need to duplicate it | |||
| Tene | OK | ||
| rakudo, then, should just set the ::EXPORT::ALL namespace as the namespace returned? | 22:32 | ||
| I guess that's not too bad. | |||
| allison | mmmmm... I don't know what the current problems are with other languages using Perl libraries | ||
| Are they loading symbols they shouldn't, or not importing symbols they should? | 22:33 | ||
| Tene | allison: right now there is *no* way for languages to load each other's libraries. | ||
| allison | mmm... well, the look up the namespace, and then look up a sub | ||
| it's not convenient | |||
| and definitely needs work | |||
| Tene | No HLLs provide a way of doing that. | 22:34 | |
| dalek | rrot: r38881 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotations.t: [t] Split Annotations.test_unpack into loading and checking parts. |
||
| Tene | Except maybe eval. | ||
| rrot: r38882 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotation.t: [t] Update packfileannotation.t |
|||
| rrot: r38883 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotationkeys.t: [t] Remove packfileannotationkeys.t |
|||
| allison | Tene: ah, the HLLs aren't using the feature, okay, makes sense | ||
| Tene: and, making it more convenient will make them more likely to use it | |||
| Tene | Yes. | ||
| There needs to be a standard API for a language to ask for another language to load a library and point to the right namespace. | 22:35 | ||
| if not, every language needs to know the details of how every other namespace defines a library, the search path, etc. | |||
| Foo::Bar vs Foo.Bar vs Foo\\Bar wtc. | |||
| etc. | |||
| allison | yup | 22:36 | |
| I like the idea of requiring a method on the compiler object | |||
| (which HLLCompiler will provide by default) | |||
| Tene | Yes. | 22:37 | |
| allison | overall this looks workable | 22:38 | |
| oh, side question, why the 'getinterp'? | |||
| Tene | to get the caller's namespace to put the symbols in. | ||
| Is there a better way of retrieving that? | 22:39 | ||
| allison | 'get_namespace'? | ||
| Tene | how do you know which namespace you were called *from*? | ||
| Not your current namespace, but the namespace of your caller. | |||
| module Foo { use Bar; } | 22:40 | ||
| allison | ah, you're digging back on the stack to the last namespace | ||
| Tene | the symbols from Bar should be exported to the Foo namespace, not whichever namespace 'use' is defined in. | 22:41 | |
| Right. | |||
| allison | that's icky | ||
| we need to encapsulate that | |||
| Tene | Is there a better way to get that information? | ||
| allison | Tene: no, there isn't | ||
| but there should be :) | |||
|
22:41
contingencyplan_ joined
|
|||
| Tene | Ah, OK. | 22:41 | |
| allison: is this scheme workable with pynie? If so, are you okay with me implementing it? | 22:42 | ||
| also, is today too soon before the release to be adding this stuff to HLLCompiler? | |||
| allison | yes, generally workable | ||
| and, yes, wait til after the release to commit | |||
| rob | Just implemented namespace support in porcupine | ||
| Tene | OK | ||
| rob: what's porcupine? | |||
| rob | although its only single tiered | ||
| allison | I don't want to cannonize having people poke into the guts of the interpreter for making calls to other libraries | 22:43 | |
| rob | a rather flakey object pascal implementation | ||
| allison | Tene: so, we'll have to fix that at the same time | ||
| Tene | allison: this isn't for other libraries... this is what rakudo currently uses for "use". | ||
| allison: how does pynie do imports, if not this? | 22:44 | ||
| allison | Tene: pynie doesn't really do imports, not like Perl. Python is different | ||
| but, if we're going to be using caller information this way, it needs a better interface | 22:45 | ||
| Does Rakudo actually loop over the symbols in the namespace to export them rather than using 'export_to'? | |||
| Tene | Yes. | ||
| allison | Does 'export_to' not work for Rakudo, or was there some other motivation? | 22:46 | |
| (the first might mean it needs fixing) | |||
| Tene | No idea. I didn't write it. I suspect whoever did just didn't remember it. | ||
| bacek | Whiteknight: (TT#685) "perl Configure.pl --no-line-directives" was implemented few weeks ago. Or you want more fine grained switching? | ||
| Tene | Lemme change it and see. | ||
| building... | 22:48 | ||
| allison | Tene: how about 'get_caller_namespace'? one version with one PMC argument that just goes one-level back, and another version with an additional integer argument that goes X levels back? | 22:49 | |
| Tene | allison: 'export_to' doesn't work without specifying what to export. | ||
| "NOTE: exporting ādefaultā set of items is not yet implemented." | |||
| allison | yes, it needs a list of names, which is what you have there | 22:50 | |
| imports = library['symbols']['DEFAULT'] | |||
| (at least, I'm assuming that's a list of names) | |||
| what's Rakudo iterating over, if it's not a list of names? | |||
| Tene | allison: I assumed that it was something that implemented a hash interface, probably a namespace. | ||
| allison | then we'd need multiple copies of the namespace object, with different symbols | 22:52 | |
| is that what Rakudo does now? | |||
| Tene | allison: rakudo stores all exportable objects in a subnamespace, EXPORT::ALL, with the default set in EXPORT::DEFAULT | 22:53 | |
| so yes, it has different namespaces with keys that point to the same objects. | |||
| allison: export_ns.'export_to'(import_ns) doesn't work without a list of everything in export_ns. Is there a way to get that? | 22:54 | ||
| allison | well, that's what I expected Rakudo to be storing in EXPORT::ALL, just a sec, looking at namespace | 22:55 | |
| Tene | EXPORT::ALL is a namespace. | ||
| Whiteknight | bacek: I never heard of that one. I'll test it | ||
| Tene | allison: AFK | 22:56 | |
| Thank you for input. :) | |||
| allison | Tene: looks like a null argument to 'export_to' does the 'default' set of exports | ||
| Tene: which is not implemented :) | 22:57 | ||
| Tene: okay, later | |||
| Tene: (Rakudo has some strange ways of doing things, largely, I guess because they're trailblazers trying out the experimental edge. often leaves me wondering if we should struggle to support it, or provide a cleaner standard that does the same thing) | 22:59 | ||
| bacek | Whiteknight: it was implemented couple of weeks ago | ||
| Whiteknight | thanks bacek++ | ||
| bacek | Whiteknight: It wasn't implemented by me :) | 23:00 | |
| Whiteknight | i don't care who implements it, I care about the people who points it out to me | 23:01 | |
| bacek | :) Fair enough | ||
| Can you close ticket? | 23:04 | ||
| rob | does examples/tcl/tcltkdemo.pir work for anyone? | 23:05 | |
| Infinoid | Whiteknight: Hmm, I thought I just fixed #line in pmc2c output. Is it still busted? | 23:10 | |
| Whiteknight | I don't know if it is "fixed" or not, I just want it not to exist | 23:11 | |
| bacek: Yes, I will close the ticket | |||
| Infinoid | I do think it's useful to see the original location of any given piece of code, as I'm debugging, so I know what to edit | 23:13 | |
| Even though it's never been perfect, it's a maintenance burden, and everyone keeps breaking it | |||
| Comments would have the same problem. But at least you wouldn't get stuck with gdb trying to tell you that you got a segfault while trying to execute a line of POD | 23:14 | ||
| (which is what annoyed me enough to fix it this morning, at least for code coming from the .pmc file itself) | |||
| If we do get rid of the line annotations for PMCs, we should do the same for ops | 23:16 | ||
|
23:20
donaldh joined
|
|||
| Infinoid | pmc2c.pl also has a --no-lines option. | 23:21 | |
| he | Hm, ./Configure --optimize fails on NetBSD/shark (arm) 4.0 with a gcc ICE | 23:27 | |
| Infinoid | Got a log? | 23:28 | |
| he | Sure. I'll nopaste the tail of it. | ||
| Hm miss WWW/Mechanize.pm on this host. One moment. | 23:30 | ||
| nopaste | "he" at 158.38.152.119 pasted "NetBSD/shark (arm) 4.0 build failure" (50 lines) at nopaste.snit.ch/16581 | ||
| Infinoid | I've got some arm (le and be) hardware I can test on, but I haven't run parrot on it for a while | 23:31 | |
| what's a gcc ICE? sounds like an interesting trick... native is slow. | |||
| oh, my, looks like gcc fail | |||
| he | ICE = Internal Compiler Error | 23:32 | |
| Infinoid | oh. (for some reason I thought of In-Circuit Emulator, my bad) | ||
| he | heh | ||
| Whiteknight | Infinoid: I thought the same thing | ||
| he | I'll re-try without optimization. | ||
| Only the second gcc bug rakudo or parrot has uncovered today at this end. | 23:33 | ||
| Infinoid | "To boldly crash where noone has crashed before" | 23:34 | |
| Whiteknight | how do we tell from C if a particular PMC is a PIR-defined class? | 23:53 | |
| or, an object of a PIR-defined class | |||
| I was going to use "if (p->vtable->pmc_class->vtable->base_type == enum_class_Class)", but that seems so inelegant | 23:55 | ||
| Infinoid | hmm, good question | 23:56 | |
| purl | Yeah, it is. I'm stumped. | ||
| Whiteknight | actually, that code snippet wont even work because built-in PMCs won't have a class pmc in the vtable | 23:57 | |
| if(p->vtable->pmc_class && p->vtable->pmc_class->vtable->base_type == enum_class_Class) | 23:58 | ||
| and tell me that's not some smelly code | |||
| Infinoid | That's the kind of thing I'd want to hide deep in some header file and use a macro for | 23:59 | |
| Whiteknight | there has to be an easier way | ||
| Infinoid | in the scheme of things, that code is a lot cheaper than calling through PCC would be | ||