|
Parrot 1.1.0 Released | parrot.org/ | 332 RTs left Set by moderator on 21 April 2009. |
|||
|
00:03
bacek_ joined
00:09
AndyA joined
00:19
darbelo left
|
|||
| Coke | anyone have thoughts on what we should do with milestone tickets for milestones that have passed? I hesitate to auto-bump them to the next release. | 00:35 | |
| Infinoid | I suppose there should be some kind of review process to find a time slot (and possibly someone with more tuits) | 00:36 | |
| maybe group them with a "late" tag if there are a lot of them? | 00:37 | ||
| Coke | they already have a milestone, no need to add more meta info. | 00:40 | |
| rg | since they have proved to not be essential enough for anyone to care, i'd just remove them. | 00:43 | |
| Infinoid | not having time != not caring | 00:45 | |
| all these milestones set a pretty brisk development pace, to be honest. | 00:46 | ||
| rg | wrong choice of words maybe. i didn't want to offend anyone. | ||
| cotto | I guess we forgot to review them during #ps today. | 00:47 | |
| Infinoid | and unfortunately, all the milestones I've signed up for so far (website migration, packfile stuff) have proved to be quite remarkably boring. :) | ||
| cotto | After all the PMC hackery I was doing, I though it'd be nice to have some documentation to work on. | 00:48 | |
| not the case | |||
| Infinoid | heh | ||
| cotto | especially when it's not inline documentation | ||
| I start documenting, and suddenly vacuuming my apt looks attractive. | 00:49 | ||
| Infinoid | oh, don't get me wrong, I've gotten quite a lot of useful things done as a result that I wouldn't have otherwise. But I haven't made much progress on the actual tasks | ||
| Coke | cotto: I was going to review them, but it's not like we were going to do any of them in 5m. | 01:10 | |
| cotto | I have to wonder how much of tewk's work will be reusable if we're eventually going to switch over to writing PMCs and ops in L1. | ||
| Coke | the time to review them was last week. We'll do better next release. | ||
| cotto | Coke, this is true. | ||
| Coke | if tewk finishes before the L1 stuff hits, he wins. =-) | ||
| cotto | s/L1/L1 ops/ | 01:11 | |
| which he will, since L1 is only a sparkle in chromatic's eye | |||
| more familiarity with LLVM will help us in any case | 01:12 | ||
| rg | if more than just tewk become familiar with llvm ;) | 01:13 | |
| Infinoid | a tewk familiar with llvm is better than no tewk familiar with llvm | 01:19 | |
|
01:32
eternaleye joined
|
|||
| dalek | rrot: r38263 | whiteknight++ | trunk/docs/book/ch09_pasm.pod: a number of major improvements and rewrites to the second quarter of chapter 9. This chapter is far too huge to all the necessary improvements in one commit |
01:34 | |
| bacek_ | hi there | 01:45 | |
| "L1"? | |||
| what is it? | |||
| purl | it's it! | ||
|
01:49
AndyA joined
|
|||
| rg | some discussion (including jit) that went around here: irclog.perlgeek.de/parrot/2009-04-21#i_1083550 | 01:52 | |
| ah no even before that | |||
| the whole thing started about here: irclog.perlgeek.de/parrot/2009-04-21#i_1083259 | 01:53 | ||
|
02:07
kid51 joined,
rdice joined
|
|||
| bacek_ | wow. Sounds good. | 02:10 | |
|
02:24
amoc joined
02:29
darbelo joined
02:39
fperrad left,
dukeleto joined
02:41
janus joined
02:44
Fayland_logger joined
|
|||
| kid51 | From the channel message, I take it that the release is complete. Okay to resume commits? | 02:46 | |
|
02:51
wayland_ joined
|
|||
| rg | kid51: yes, there have been quite a couple already. | 02:57 | |
| kid51 | thx | 02:59 | |
|
03:19
gryphon joined
|
|||
| dalek | rrot: r38264 | jkeenan++ | trunk/src/packfile.c: Applying patch submitted by Andy Dougherty in coding standard test.. |
03:24 | |
|
03:32
cspencer joined
|
|||
| cspencer | parrot has the "compose" opcode which normalizes a unicode string, and reading through some of the unicode docs, i note that there're four normalization forms (NFD, NFC, NFKD and NFKC) - is there a way of specifying which one you'd like? | 03:39 | |
|
03:53
dukeleto joined
|
|||
| Infinoid | he: I've split your netbsd-alpha patch into two issue-focused patches, and created two tickets: #573 and #574. I didn't have time tonight to do any actual fixing, but I think I've got the current state of things documented. | 04:29 | |
|
04:37
tetragon joined
|
|||
| Infinoid | Hearing no objection to the TT #571 patch, here it comes. | 04:39 | |
| dalek | rrot: r38265 | Infinoid++ | trunk/config/gen/makefiles/CFLAGS.in: [config] Apply patch from doughera++ in TT #571: |
04:40 | |
| eternaleye | Hm, NEWS contains 'Add another dumper format to assist syntax highlighters | 04:51 | |
| How do I invoke that? | |||
| It sounds interesting | |||
| Infinoid | trac.parrot.org/parrot/changeset/38208 | 04:55 | |
|
04:55
Fayland_logger joined
|
|||
| Infinoid | Apparently you invoke a pct compiler object with the --dumper option, or something like that. I'm not really sure. | 04:56 | |
| Tene | --dumper=padre | ||
| doesn't look like rakudo supports it... | 04:57 | ||
| Infinoid | invoking as ./perl6 --dumper=padre <somefile> takes the option but doesn't do anything visible with it | 05:01 | |
| baest | try perl6 --target=parse --dumper=padre <file> | 05:10 | |
|
05:12
Andy joined
05:33
allison joined
|
|||
| cotto | allison, do you know off the top of your head what kind of PMCs should have need_ext? It doesn't seem to be especially well-documented. | 05:45 | |
| allison | it used to be PMCs that used the 'data' member, but we moved that into the core struct. Any PMC that does a custom mark will need it. | 05:46 | |
| let's see... | |||
| cotto | It contains _synchronize, _metadata and _next_for_gc | ||
| allison | properties, that's the other big one | 05:47 | |
| _synchronize is used for some forms of thread sharing | |||
| it was used for the old STM, but we've ripped that out | |||
| cotto | There are still some places where _synchronize is used. Should I try ripping them out and seeing what happens? | 05:48 | |
| allison | looks like it's only used in the PMC_sync macro | 05:49 | |
| checking where the macro is used... | |||
| cotto | right, but that's used in a half-dozen places | ||
| allison | in the gc and in HLLs | 05:50 | |
| it's probably safe to remove | 05:51 | ||
| not certain, but likely | |||
| cotto | Sounds worthwhile. | ||
| If all PMCs are GC'd, why do only some need the PMC_EXT, with its _next_for_gc? | 05:52 | ||
| allison | cotto: it's only used for PMCs with children that need marking | 05:53 | |
| it's a bit of a hack, and will likely be removed eventually | |||
| which would leave us with only properties | 05:54 | ||
| cotto | ok, so all aggregate PMCs should have need_ext? | ||
| allison | which could be handled as an attribute in 'data', if we really wanted it | 05:55 | |
| cotto: aggregates of strings or PMCs, yes | |||
| you could have an aggregate of, say, integers that manages a chunk of memory directly instead of GC allocating its children | |||
| cotto | ok | 05:56 | |
| What uses _metadata? | 05:57 | ||
| allison | that's properties | ||
| set_prop and get_prop | 05:58 | ||
| setprop and getprop vtable function | |||
| cotto | Ok. So it's implementation-dependent how properties are used, but if you want them you need need_ext. | 05:59 | |
| allison | well, sneakily, Parrot will add pmc_ext if you call setprop and don't have it | 06:00 | |
| so, even if you don't set need_ext, you'll get it | 06:01 | ||
| cotto | I saw a function that looked like it could dynamically add PMC_EXT to a PMC. It's nice that Parrot dtrt there. | ||
| So it's not strictly necessary for properties, although a generally good idea. | 06:02 | ||
| allison | it could be argued that the _metadata pointer should live in the core struct, but properties aren't common enough yet | ||
| aye | |||
| it's a short cut if you know you're going to need pmc_ext anyway | 06:03 | ||
| I don't see the usual "go ahead and start committing again" message on the mailing list | 06:13 | ||
| cotto | fperrad said it was fine earlier | 06:14 | |
| allison | but, I do see fperrad tagged the release | ||
| okay, I'll go ahead then | |||
| dalek | rrot: r38266 | allison++ | trunk/tools/util/release.json: [cage] 1.1 lives in the 'devel' directory. (And so will the next few |
06:15 | |
|
06:21
iblechbot joined
|
|||
| cotto | allison, I've got a patch that removes _synchronize. The build works and I'm running make test. | 06:23 | |
| If make test passes, do you have time to give the patch a once-over? | 06:24 | ||
| allison | sure | ||
|
06:24
uniejo joined
|
|||
| Tene | allison: I have some questions about load_language... | 06:27 | |
| allison | aye? | ||
| purl | I! | ||
| Tene | allison: it looks like the standard is to have languages with uppercase names and pbc files with lowercase names, yes? | ||
| perl6.pbc | |||
| compreg 'Perl6' | 06:28 | ||
| allison | seems to be | ||
| Tene | Right? | ||
| allison | yes | ||
| Tene | So should the hll downcase the arg to load_language, or should load_language downcase its arg? | ||
| allison | load_language doesn't do compreg | 06:29 | |
| Tene | Right. | ||
| I know. | |||
| nopaste | "cotto" at 96.26.202.243 pasted "patch to remove _synchronize from PMC_EXT" (223 lines) at nopaste.snit.ch/16371 | ||
| cotto | allison, incoming | ||
| allison | but you're suggesting the name passed to load_language should look the same as the one passed to compreg? | ||
| Tene | allison: I'm asking whether it should or not. | 06:30 | |
| allison | (or at least should be able to look the same) | ||
| Tene | Right. | ||
| allison | (thinking...) | ||
| I'm okay with adding downcasing | |||
| Tene | Or, perhaps, compreg should be case-insensitive? | 06:31 | |
| regardless, I think we need some standards here. | |||
| allison | maybe case-insensitive, or maybe we should just standardize on one case everywhere | ||
| Tene | Right. | 06:32 | |
| allison | so, it's 'Perl6' everywhere, or 'perl6' everywhere | ||
| Tene | I'd also be okay with Perl6.pbc, for example | ||
| allison | but not swapping between the two all the time | ||
| and 'Perl6' as the name of the namespace | |||
| (the HLL namespace) | |||
| Tene | iirc, hll namespaces are already specced as case-insensitive | ||
| allison | blech :( | 06:33 | |
| allison has been bitten by case-insensitive file-systems | |||
| Tene also | |||
| allison | on the whole, I'm happier with asking HLLs to pick a case and stick with it | 06:34 | |
| than messing with downcasing (and maybe also upcasing) in various locations | |||
| but, it's a question to put to the general pool of HLL developers | |||
| Tene nods | 06:35 | ||
| perhaps someone should post to the list. | |||
| allison | a summary of this irc conversation would do | 06:36 | |
| Tene | allison: if I can get a partial port of rakudo to its own HLL namespace, up to the part where it breaks due to PMC HLL issues, will you have tuits to work on it sometime soon, or are you pretty booked? | ||
| allison | yes, I can take a look | ||
| dalek | kudo: fd0a4d5 | (Stephen Weeks)++ | src/builtins/control.pir: Use load_lang opcode for eval with :lang |
06:37 | |
| shorten | dalek's url is at xrl.us/bepvhp | ||
| allison | cotto: the patch looks good | 06:38 | |
| cotto: I'm not sure how good our threading tests are, so might want to run a few thread test examples aside from our official test suite | 06:39 | ||
| cotto | as in write some new ones? | 06:40 | |
| allison | just to be sure shared variables still work (that is, to make sure it was only STM that was using _synchronize) | ||
| cotto: yeah, or just take a quick skim of the existing ones and see if they cover the common cases (specifically, if they cover shared variables) | 06:41 | ||
| Tene | okay, sent. LEt's see if my mail to the list actually goes through this time. | ||
| (often doesn't) | 06:42 | ||
| oh, went straight through, no problem | |||
| huh | |||
|
06:43
chromatic joined
06:44
dukeleto joined
|
|||
| allison | Tene: your address might have been on the "needs approval" list, and I might have set it to "always accept" (I don't remember doing it with your address specifically, but I've certainly done it with a number of other addresses) | 06:44 | |
| Tene | ah | ||
| :) | |||
| cotto | allison, what would a proper test for shared variable synchronization look like? modify a shared aggregate rapid-fire and make sure it doesn't end up corrupted? | 06:58 | |
| s/aggregate/aggregate PMC/ | |||
| allison | I'm not even sure we're testing basic synchronization, create a variable, modify it from two different threads | 06:59 | |
| but, yes, stress testing would be a good addition | |||
| cotto | The thread tests seem a little sparse. I'll add some more before committing the patch. | 07:00 | |
| It's funny how many tangents updating docs/pmc.pod has involved. | 07:03 | ||
| allison | :) | 07:15 | |
|
07:36
rblasch joined
08:00
fperrad joined
09:06
mikehh joined
|
|||
| dalek | tracwiki: v91 | fperrad++ | Languages | 09:23 | |
| tracwiki: Update with Parrot 1.1.0 | |||
| tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff | |||
| shorten | dalek's url is at xrl.us/bepvvu | ||
| cotto | allison, are you still up? | 09:48 | |
| or anyone who knows how to use threads in pir | |||
|
09:49
he left
|
|||
| dalek | tracwiki: v92 | fperrad++ | Languages | 09:49 | |
| tracwiki: More update with Parrot 1.1.0 | |||
| tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff | 09:50 | ||
| shorten | dalek's url is at xrl.us/bepwre | ||
| nopaste | "cotto" at 96.26.202.243 pasted "attempt to get two threads reading/writing a shared PMC" (51 lines) at nopaste.snit.ch/16374 | 09:51 | |
| bacek | cotto: threads in parrot are pretty useless because of disabling GC... | 10:17 | |
| cotto | goodie | 10:21 | |
| so can stuff be shared between threads at all more than from parent to child? | 10:27 | ||
| Hmmm. Threads don't seem to be on either roadmap. | 10:39 | ||
| bacek | cotto: try it with PARROT_CLONE_DEFAULT ( or just use "run_clone" which is equivalent) | 10:43 | |
| cotto | bacek, no dice | 10:45 | |
| I get the feeling that this isn't something Parrot wants me to do. | 10:48 | ||
| bacek really want to create "pmc_pct" branch to rewrite pmc2c in PCT. | 11:05 | ||
| cotto | you'd be loved and your name would be held in high esteem | 11:06 | |
| bacek | Even for just creating branch? :) | 11:07 | |
| cotto | we have low standards around here | 11:08 | |
| bacek | my own standards are little bit higher... | 11:09 | |
| dalek | rrot: r38267 | bacek++ | branches/packfile_revamp: Removed packfile_revamp branch. It was merged into trunk |
11:12 | |
| kudo: d0a5de5 | (Moritz Lenz)++ | src/setting/Match.pm: Match.perl: work around RT #64952 |
11:15 | ||
| shorten | dalek's url is at xrl.us/bepwu6 | ||
| dalek | rrot: r38268 | fperrad++ | trunk/config/gen/makefiles/root.in: [build] fix warning on Windows (introduced by r38256) makefile:636: warning: ignoring old commands for target `.s.o' |
11:16 | |
|
11:30
cognominal joined
11:35
ruoso joined
|
|||
| mikehh | Method 'log10' not found for invocant of class 'Complex' after ok 27 - got the log10 of -i (complex unit) | 11:50 | |
| moritz | mikehh: I just fixed the test | 11:51 | |
| mikehh | sorry wrong channel | ||
| moritz | happens to me all the time | 11:52 | |
| mikehh | moritz: jolly good show and all that sort of stuff :-} | 11:54 | |
|
12:05
Gerd joined
|
|||
| dalek | rrot: r38269 | fperrad++ | trunk (2 files): [chm] add pdd15_object_metamodel image |
12:07 | |
| Gerd | Hello Allison! | ||
| Allison: Do you already read my last email? | 12:09 | ||
| coke_afk | (case) yes, pick a case and stick with it. | 12:31 | |
|
12:37
rg1 joined
12:59
rdice joined
13:03
gryphon joined
13:12
wayland_ joined
|
|||
| dalek | rrot: r38270 | pmichaud++ | trunk/compilers/pct/src (2 files): [pct]: loadinit handling in PAST/POST compilation now works for 'compiler' nodes |
13:13 | |
|
13:27
iblechbot joined
13:28
particle1 joined
|
|||
| Coke | pmichaud: you about? | 13:46 | |
| pmichaud | Here. | ||
|
13:46
gryphon joined
|
|||
| Coke | messages eraseblahblahboo | 13:48 | |
| (thanks, purl. =-) | |||
| pmichaud: was wondering on the status of some very old PGE tickets. let me findz them. | |||
| pmichaud | in all probably they are still significant. | 13:49 | |
| *probability | |||
|
13:49
PacoLinux joined
|
|||
| Coke | turns out there's more than I thought. 8 RTS with PGE in the subject. | 13:51 | |
| Yah, I figured you'd have rejected them by now if they weren't relevant. | 13:52 | ||
| pmichaud | I can see about moving them to Trac, though. | ||
| and comment on them that "yes, this is still relevant." | |||
| Coke | eh. | ||
| pmichaud | Although I think a couple of them got closed this past weekend :-) | ||
| Coke | We don't have to move to trac. I've done that for a few tickets where there's no history and we can just cut and paste the original post. | 13:53 | |
| have to move to tracy *immediately*, anyway. | |||
| rt.perl.org/rt3/Ticket/Display.html?id=53464 would be a fine candidate to move, e.g., esp if it's not getting closed anytime soon. | |||
| pmichaud | oh, I might be able to resolve that one soon. | 13:54 | |
|
13:54
Andy joined
|
|||
| pmichaud | I might even be able to delegate it to someone who did some PGE hacking at NPW | 13:54 | |
| Coke | that would be awesome. (delegation) | ||
| right now our PGE bus number is somewhere between 1 and 2. | |||
|
13:59
he joined
|
|||
| nopaste | "he" at 158.38.152.119 pasted "...and another architecture tested, ref. smolder 20336, diff to PLATFORMS" (12 lines) at nopaste.snit.ch/16376 | 14:03 | |
| Coke | he? | 14:06 | |
| purl | well, he is Havard Eidnes <mailto:he@NetBSD.org> | ||
| dalek | kudo: 04ee8d0 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 374 files, 10467 passing, 0 failing |
||
| shorten | dalek's url is at xrl.us/bepxas | ||
| Coke | he: committed. | 14:07 | |
| dalek | rrot: r38271 | coke++ | trunk/PLATFORMS: [docs] another platform passing [t] revert r38202 (release done) |
14:10 | |
|
14:10
dalek joined
|
|||
| he | Coke: thanks. | 14:12 | |
| Infinoid | he: I've split your netbsd-alpha patch into two issue-focused patches, and created two tickets: #573 and #574. I didn't have time tonight to do any actual fixing, but I think I've got the current state of things documented. | 14:21 | |
| oh... I see you already found #574. nevermind :) | 14:22 | ||
| he | :) | 14:25 | |
|
14:37
he left
|
|||
| Coke now gets to write some RE stuff in cf. gah. | 14:37 | ||
|
14:43
masak joined
|
|||
| Coke | ... I can't seem to find a substring variant in CFMX that /replaces/, only extracts. | 14:50 | |
| (I do find a very long thread where someone asks this question and is told they'd be fired if they worked for the repsonder.) | 14:51 | ||
| rg1 | the things we've come to expect from our favourite language ;) | 14:57 | |
| Infinoid | fired for asking about search and replace, or fired for using CF in the first place? | 15:05 | |
| Coke: When will parrot get CF? :) | 15:07 | ||
| Coke | Infinoid: for asking the question without checking the docs. | 15:09 | |
| and while the OP was vague in what it wanted, the obvious (to cfmx people) answer was pretty obvious. | |||
| Infinoid: Never? | |||
| purl | Well, hardly ever! | ||
| Coke | Infinoid: If there were no licensing concerns, it'd be doable. | 15:10 | |
| except for the part where CFMX has tight integration with flash & pdf because it's adobe, and that it's written in Java currently. | |||
| Infinoid wants lolfusion | 15:12 | ||
|
15:15
slavorgn joined
|
|||
| Infinoid | allison: As we discussed yesterday, src/pmc/class.pmc:338 calls Parrot_pcc_build_sig_object_from_varargs with a NULL va_list argument, which fails to build on platforms where va_list is a struct type and not a pointer. It then calls Parrot_pcc_invoke_from_sig_object() with the result, but it doesn't look like I can pass PMCNULL there. | 15:22 | |
| Unfortunately, I don't know PCC at all. How much of what we discussed yesterday is already there and ready for use, and how much infrastructure do we still need to add for the PMCNULL_SIGNATURE stuff you suggested? | 15:23 | ||
|
15:24
he joined
|
|||
| Infinoid | There's a ticket for this, #573, but I'm hoping for a little guidance to find a better fix (the current patch changes a bunch of APIs) | 15:24 | |
|
15:30
cspencer joined
15:33
Theory joined
|
|||
| allison | Infinoid: the solution is to not call Parrot_pcc_build_sig_object | 15:46 | |
| Infinoid: at the moment, the system isn't set up to handle a PMCNULL in place of a sig object, but a sig object with no arguments or returns will work just fine | 15:48 | ||
| that is, just "pmc_new(interp, enum_class_CallSignature)" | 15:49 | ||
| no build or extensions | |||
| Infinoid | ah, cool. I'll try that in place of the Parrot_pcc_build_sig_object_from_varargs, thanks! | ||
| Coke | allison: you'd probably know the answer to this question: are there any legal ramifications to implementing a coldfusion-alike on top of parrot? | 15:52 | |
| Not, mind you, that I'd advocate that insanity. | 15:53 | ||
| allison | as long as we aren't using their code, no legal problems at all | 15:54 | |
| copyright doesn't protect them from someone implementing the same interface | |||
| (I could see someone wanting it) | 15:55 | ||
| particle | you're both sick. | 15:56 | |
| Coke | allison: I do wonder if their online docs have any kind of eula. | 15:57 | |
| "if you read these, you agree not to harsh our buzz." | 15:58 | ||
|
16:01
davidfetter joined
|
|||
| nopaste | "tene" at 166.70.38.237 pasted "full bt for Match issue" (15 lines) at nopaste.snit.ch/16377 | 16:08 | |
| Khisanth | docs with eula? O_o | 16:09 | |
|
16:12
rblackwe joined
16:15
HG` joined
|
|||
| davidfetter | Khisanth, it's not the wackiest thing i've seen :P | 16:16 | |
| nopaste | "Infinoid" at 75.140.33.106 pasted "Patch implementing allison++'s suggestion for TT #573, unfortunately it doesn't quite work (error message included)" (29 lines) at nopaste.snit.ch/16378 | 16:18 | |
| allison | Infinoid: set the string value of the sig_object to a CONST_STRING "->", that should take care of it | 16:22 | |
| Coke: very possible, though those sorts of limitations are usually put on "using" the software | 16:23 | ||
| Infinoid | with "->" I get "too few arguments passed (0) - 1 params expected" | 16:26 | |
| allison | is it a method or a sub? | 16:27 | |
| davidfetter | hi allison. how'd the talk go last night? | ||
| <-- couldn't make it :P | |||
| allison | Infinoid: if it's a method, then it needs the invocant added as an argument | ||
| davidfetter: it went well, good crowd, good questions | 16:28 | ||
| davidfetter | cool :) | ||
| allison | (I have two more talks at Bay Area user groups in the next couple of months) | ||
| Infinoid | I think it's trying to call init() on a base class, so it must be a method | ||
| davidfetter | where? | 16:29 | |
| allison | Infinoid: okay, I have to go catch a plane, but will be back online in about 3 hours and can look at it then | ||
| davidfetter | bon voyage :) | ||
| Infinoid | I'll rtfm and see if I can figure it out | ||
| thanks! | 16:30 | ||
| allison | davidfetter: PenLUG and SVLUG | ||
| adios | |||
| Infinoid | he: I'm concerned that there may be other build failures caused by the va_list type issue. But I've got a patch to fix this particular NULL case, are you able to test? | 16:38 | |
| nopaste | "infinoid" at 75.140.33.106 pasted "TT #573: This patch builds and tests successfully on Linux/x86-64." (25 lines) at nopaste.snit.ch/16379 | ||
|
16:45
braceta joined
16:58
fperrad joined
17:01
flh joined
17:05
jan joined
17:21
darbelo joined
17:22
japhb joined
17:25
helozjisky joined
17:36
LylePerl joined
|
|||
| LylePerl | I'm having an issue with parrot Configure.pl and ActiveState 5.8 | 17:39 | |
| particle | 5.8.what? | ||
| LylePerl | ActivePerl 5.8.8 is compiled with MSCV++ | ||
| So parrot is assuming MSVC++ and failing (most people with ActivePerl wont have MSVC++) | 17:40 | ||
| ActivePerl 5.10 is compiled with gcc so it's not an issue | |||
| I was wondering if it's worth my writing a patch so that it'll check for MSVC++ and if not available default to MinGW instead... | 17:41 | ||
| particle | no | ||
|
17:41
jhorwitz joined
|
|||
| particle | you need to specify the compiler on the command line | 17:41 | |
| perl Configure.pl --cc=... etc | 17:42 | ||
| see --help | |||
| LylePerl | yes, but I thought it's be easier for people if it just worked straight away? | ||
| cspencer | is anyone here familiar with the parrot "compose" unicode normalization opcode? | ||
| particle | what if msvc and mingw are available? | ||
| LylePerl | Then default to msvc like it is already | 17:43 | |
| particle | LylePerl: maybe compiler detection is broken... hrmm. | ||
| LylePerl | As far as I could see it picks up the compiler from Perl | 17:44 | |
| Is there a detection module that overrides it? | |||
| rg | i believe there isn't really such a thing as compiler detection. short of specifying the compiler, it's "use whatever was used to compile perl" | ||
| LylePerl | config/init/defaults.pm get's it from Perl's Config | 17:45 | |
| particle | does perl built with msvc work with xs modules built with mingw gcc? | 17:46 | |
| LylePerl | Yes, for the most part | ||
| I read a post about it on the ActiveState list, there are only some specific windows XS modules that have issues | 17:47 | ||
| But they may well have been fixed now, with 5.10 using mingw | |||
| particle | well, if you want to monkey with compiler detection, feel free, but i can't imagine too many users with AS perl 5.8 and mingw gcc compiling parrot | 17:48 | |
| i just don't want to be the guy supporting it, is what i'm trying to say. it's not that i don't think it's not valuable, as i like it when things Just Work. | |||
| rg | well i could build a similar scenario on solaris, but i'm contempt with just specifying the compiler on the command line | 17:49 | |
| LylePerl | I'm just thinking that most the Win32 hosting companies that I've come across who support Perl are using AP 5.8.x | 17:50 | |
|
17:51
barney joined
|
|||
| LylePerl | If they gave parrot a try, it would be good if it just worked | 17:52 | |
| particle | they're more likely to try rakudo than parrot | 17:53 | |
| but, yeah. | |||
| rg | i'd also expect most windows users to look for a binary or even installer package | ||
| particle | yes, which we have, too | 17:54 | |
| Tene entertained by s/content/contempt/ | |||
| rg | happy to be of service ;) | ||
| LylePerl | Yes, and rakudo just trys to run Configure.pl with defaults to install parrot (that's why I was trying to do) | ||
| Infinoid | Contempt-type: application/x-foadiafoa+xml | ||
|
17:55
HG` joined
|
|||
| moritz | LylePerl: rakudo's Configure.pl can pass arguments to parrot's Configure.pl | 17:58 | |
|
17:59
szabgab joined
|
|||
| NotFound | What will be a good compiler detection stratregy: try all .exe in the system? ;-) | 18:01 | |
| Infinoid | Did the new parrot tarball ever get uploaded to the ftp site? | ||
| NotFound: In sha1 order | |||
| Tene | pmichaud: I'd love to get comments from you on the HLL name case issue on the list | 18:02 | |
| NotFound | If we implement a compiler detection we must provide a way to overrida if it fails... hey, we already have that | ||
| So the detection will only be useful for people stupid enough to install C compiler without even knowing. | 18:04 | ||
| rg | lyleperl: seems like a lot of people here seem to think your time could be better spent elsewhere ;) | ||
| notfound: no the detection will be useful for people who get a perl binary from someone using a compiler they don't have. | |||
| LylePerl | I'm trying to think Windows mentallity | 18:05 | |
| NotFound | rg: 99% of that people will not have any C compiler. At least 50% of them even doesn't know what is a compiler | ||
| Infinoid | and 85% of those 50% don't know or care about parrot, they just want rakudo | 18:06 | |
| LylePerl | Most of them will probably struggle to open a command prompt. People usually give up if there isn't an install.exe or setup.exe | ||
| NotFound | Then point them to a binary | ||
| particle | ...which we have. | ||
| fperrad | see parrotwin32.sourceforge.net/ | 18:07 | |
| Coke | yah. packing FTW. | 18:22 | |
| ... sigh. | |||
| "packaging" | |||
| davidfetter wonders whether Coke's packing | 18:32 | ||
| Tene | It's interesting having a boss who open-carries. | 18:33 | |
| davidfetter wonders if every finite open carry has a finite sub-carry | 18:34 | ||
| er, if every open carry* | |||
|
18:37
iblechbot joined
|
|||
| Coke | given my line of work, open carry would be very wierd. | 18:43 | |
| davidfetter | what line is that? | 18:46 | |
| purl | line that is, like, dying is actually IN the bash script. SilverStr is wondering if I should be forking there instead | ||
| davidfetter | open the pod bay doors, purl | ||
| purl | I'm sorry, davidfetter, I'm afraid I can't do that. I still have the utmost confidence in the mission. | ||
|
18:47
whoppix joined
|
|||
| davidfetter finds open carry pretty weird in light of its universal and explicit threat of death | 18:47 | ||
| wayland_ | Modern people have a historically unusually high fear of death | 18:49 | |
| PerlJam | davidfetter: it's the same policy the USA and Russia have been following. "I know you can hurt me and you know I can hurt you, so let's not hurt each other even though we can" | ||
| wayland_ | (I suspect, anyway) | ||
| For a while, this was referred to a "Mutually Assured Destruction" | 18:50 | ||
| However, I think "Mutually Assured Non-destruction" is probably a better term now :) | |||
| And I'll have to remember the acronym for future reference :) | 18:51 | ||
|
18:59
rblasch joined
|
|||
| pmichaud | phone, today? | 19:00 | |
| I guess that wouldn't be for another 60 mins, though. | |||
|
19:07
HG` joined
|
|||
| dalek | rrot: r38273 | coke++ | trunk/t/compilers/imcc/syn/regressions.t: [t] add a test for TT #575 |
19:17 | |
| Coke | pmichaud: trying out the obvious fix. Will let you know. | ||
| changing LEXICAL STRINGC to LEXICAL any_string still fails the same way. | 19:21 | ||
| pmichaud | I could understand it failing; failing "the same way" is a bit surprising, though. | 19:23 | |
| Coke | it still says it's expecting a STRINGC. | 19:24 | |
| doesn't look like .y needs any special protection for sub rules. (so that any_string should be self contained when I use it in the LEXICAL rule) | |||
| trying 2 explicit rules, just to see... | 19:25 | ||
| nope. | 19:26 | ||
| something odd, since if I just replace STRINGC with USTRINGC there I get the same error. | 19:30 | ||
| AH! multiple lexical rules. wtf. I wonder how this other one ever gets called. =-) | 19:31 | ||
| # Lexical '$βοο' not found | 19:32 | ||
| pmichaud | ah, that's getting closer, then. | ||
|
19:33
rblasch1 joined
|
|||
| Coke | I suspect IMCC's set_lexical needs to be smarter about strings. | 19:34 | |
| hurm. this might be fixable... | 19:35 | ||
|
19:41
szabgab joined
19:47
allison joined
|
|||
| Coke | pmichaud: passing that TODO, running a 'test' now. | 19:51 | |
| pmichaud | yay! | ||
| Coke | allison;functions used only internaly by IMCC are changeable with no notice, neh? | ||
| or anyone. =-) | 19:52 | ||
| pmichaud: I was changing the /pasm/ rule originally which I why I got nowhere. =-) | |||
| pmichaud | a-ha | 19:53 | |
| interesting (and amusing) | |||
| me, I would've been lost for most of it. :-) | |||
| Coke | eh. not like I know what I'm doing, really. | 19:54 | |
| Infinoid | Coke: if it's something that isn't tagged with PARROT_EXPORT, I wouldn't hesitate to change it | ||
| Coke | bah. I only changed C code. now running perlcritic.t ... | 19:55 | |
| jhorwitz | pmichaud: having a mod_perl6 regression failure. i create a class in PIR and register it w/ P6metaclass. but then in rakudo Foo.new() tries to invoke Foo() before calling the 'new' method, which fails miserably. ideas? | 19:57 | |
| i can paste if necessary | 19:58 | ||
| dalek | rrot: r38274 | coke++ | trunk (4 files): [imcc] - allow unicode lexical identifiers. (Fix TT #575) |
||
| pmichaud | Sounds like Rakudo is reading Foo as a listop instead of a typename. | ||
| jonathan | jhorwitz: The registration of the class is being done *before* Rakudo gets to parse Foo.new(), right? | ||
| jhorwitz: If not, that would need fixing. | |||
| jhorwitz | jonathan: hi there! correct. | ||
| jonathan | OK. | ||
| Is it in a different HLL's namespace? | 19:59 | ||
| jhorwitz | wait... | ||
| actually... | |||
| pmichaud | my guess is that it doesn't have the Abstraction role. | ||
| jhorwitz | i'm precompiling that particular module, so it would be parsed BEFORE the registration | ||
| pmichaud | oh. | ||
| jonathan | pmichaud: At the moment, I'm pretty sure we check if it's a proto explicitly. | ||
| pmichaud | (do all protoobjects automatically get the Abstraction role?) | ||
| jonathan: okay. Good. | |||
| jonathan | (Since I figured we can't rely on external types automatically getting Abstraction.) | 20:00 | |
| pmichaud | jonathan++ | ||
| jonathan | jhorwitz: OK, that's...tricky. :-( | ||
| jhorwitz: Basically because Rakudo at parse-time needs to know what is a type and what is not. | |||
| If it can't find a type in the namespace under that name, then it presumes it's a post-declared list-op. | 20:01 | ||
| (This isn't just Rakudo, it's what STD.pm does as well.) | |||
| jhorwitz | precompiling has exposed all sorts of interesting bugs. | ||
| and features. :) | |||
| jonathan | I guess that you are not having a "use" directive that registers these? | ||
| (I figure you probably can't because we don't have importing from non-Rakudo modules worked out yet...) | 20:02 | ||
| jhorwitz | that too. :) | ||
| jonathan | (Well, just use'ing...) | ||
| jhorwitz | mod_parrot does the registering. mod_perl6 just assumes that "Foo" is a registered class. | ||
| no "use"ing or anything else. | |||
| particle | phone | 20:03 | |
| jonathan | I wonder if the Best Thing would be for me to get class stubs in. | ||
| So you can 'use' something in the script that pulls in the stubs or means they are at least identified as type names... | 20:04 | ||
| jhorwitz | if that makes my problem go away, then +1 ;-) | ||
| shall i open a ticket? | |||
| jonathan | Yeah, that'll serve as a reminder for me. :-) | ||
| jhorwitz | excellent. ITMT i'm going to try it w/o precompiling | ||
| jonathan | Provided you compile after the symbols are registered, you should be fine. | 20:05 | |
| jhorwitz | it's part of the mod_perl6 build process, so that's not gonna happen. :) | ||
| dalek | rrot: r38275 | chromatic++ | trunk (20 files): Merged the headercleanup branch to trunk as of r38254. |
20:07 | |
| Coke | is there a test/spectest for rt.perl.org/rt3/Ticket/Display.html?id=64878 | 20:08 | |
| (I can't easily type in greek.) | |||
| Infinoid | there's probably a spectest, let me look | 20:10 | |
| S02-lexical-conventions/unicode.t has unicode variable names | 20:12 | ||
| also function names. | |||
| moritz | I should fudge that | 20:13 | |
| Infinoid | is greek treated any differently than any of the other stuff in that file? | ||
| (I don't think it should be.) | |||
| jonathan | Probably not. | ||
| Coke | moritz: if you can check out [perl #64878] in re: testing, that'd be good. =-) | 20:14 | |
| moritz | Infinoid: not different than other non-latin1-stuff | ||
| jonathan | If other non-ASCII and non-Latin-1 stuff works, greek probably should. | ||
| I guess all of us who know some of a language with non-Latin-1 chars could contribute some tests though. ;-) | |||
| Infinoid | I know monty python, but the test already covered that. | 20:16 | |
| moritz | not even Latin-1 non-ascii work | 20:17 | |
| Coke | moritz: should work with latest parrot. | 20:18 | |
| Tene | I just tested it | ||
| allison | Coke: yes, it's the public API that's subject to deprecation cycles | ||
| moritz | Coke: I'll svn up and try | 20:19 | |
| Coke | allison: good, since I already committed that. ^_^ | ||
| nopaste | "tene" at 97.117.72.236 pasted "fail for Coke++" (18 lines) at nopaste.snit.ch/16383 | ||
| allison | Coke: (I just wandered over to the laptop running IRC, catching up) | ||
| Coke | Tene: can you reduce that to a parrot failure? =-) | ||
|
20:22
samlh joined
|
|||
| Tene | hmm | 20:23 | |
| ... but maybe it does work? | 20:24 | ||
| it doesn't work with -e, but does work in a file?? | |||
|
20:25
bsdz joined
|
|||
| nopaste | "tene" at 97.117.72.236 pasted "Weird failure..." (23 lines) at nopaste.snit.ch/16384 | 20:25 | |
| Tene | that's creepy | 20:26 | |
| bsdz | hi, any easy way to disable #line directives being created during *.pmc -> *.c creation ? | ||
| he | Infinoid: tested with nopaste.snit.ch/16379 and my alternative workarounds de-applied, and it builds and tests OK still. | ||
| jonathan | Tene: How is Parrot handling unicode passed in ARGC? | 20:27 | |
| Tene | jonathan: enoclue | ||
| NotFound | Last time I checked parrot does nothing, but rakudo assume they are latin1 | 20:28 | |
| Tene | This doesn't work in rakudo, even in a file: | ||
| sub ā { ... } | |||
| Coke | I just fixed lexicals. =-) | ||
| "fixed" | |||
| Tene | malformed routine definition | 20:29 | |
| NotFound | Tene: have you tried quoting it? | ||
| moritz | Tene: is ā an identifier character? | ||
| Tene | Apparently not | ||
| moritz | perl 5 conforms that | ||
| Tene | NotFound: you can't quote sub names. | 20:30 | |
| in rakudo | |||
| moritz | in Perl 6 in general | ||
| NotFound | Make rakudo quoting the,m then | ||
| moritz | that still doesn't make ā a valid Perl 6 sub name ;-) | ||
| NotFound | Thanks god ;) | 20:31 | |
| Tene | moritz: but it could be an operator... | ||
| moritz | Tene: sure | ||
| NotFound | Urgh. You're giving a new sense to the saying: "The language that looks like line noide" | 20:32 | |
| noise | |||
| Tene | jonathan: this is what you were asking, I think... | ||
| $P1 = $P0.'command_line'(args_str, 'encoding'=>'utf8', 'transcode'=>'ascii') | |||
|
20:33
gryphon joined
|
|||
| fperrad | allison: have you some news from ftp-osl.osuosl.org ? | 20:33 | |
| Infinoid | he: great, thanks, I'll apply it then | 20:40 | |
| So that just leaves the SIGFPE stuff | 20:44 | ||
| dalek | rrot: r38276 | Infinoid++ | trunk/src/pmc/class.pmc: [netbsd] netbsd-alpha fails to compile due to passing NULL in place of a va_list argument. This patch implements allison++'s suggestion to more cleanly build a null CallSignature object. |
20:45 | |
| Infinoid | Forgot to mention, that last commit fixes TT #573. | 20:54 | |
| bsdz | fyi: ops2c.pl --no-lines disables #line directives | 20:55 | |
|
21:01
rblasch joined
|
|||
| Coke | moritz: any more passing tests in that spectest now? | 21:18 | |
| particle | fperrad: they've asked us to provide ssh keys. looks like each of the release managers will need to do so. | 21:19 | |
| moritz | Coke: yes. Works with greek now | 21:22 | |
| but other parts of the file still fail, and it's hard to make out which part it is | 21:27 | ||
|
21:29
Ademan joined
|
|||
| Coke | moritz: whee. | 21:30 | |
| moritz | Coke: I'm working on it, but the tests use outdated stuff in many places | 21:35 | |
| Coke | moritz: approximately how many tests do you think you'll end up with? | 21:43 | |
| (passing) | |||
|
21:43
gerd joined
|
|||
| pmichaud | By the time Rakudo sees the command line arguments, Parrot will have already placed them in strings and given them an encoding. | 21:43 | |
| moritz | Coke: 28 in that test file | ||
| pmichaud | So Rakudo doesn't really control the encoding of the command line arguments -- that comes from Parrot. | ||
| (in response to: 20:28 <NotFound> Last time I checked parrot does nothing, but rakudo assume they are latin1 | 21:44 | ||
| jonathan | pmichaud: I was guessing it would be something like that. | ||
| May need a Rakudo fix. | |||
| erm | 21:45 | ||
| pmichaud | I'm thinking it should be a Parrot fix. | ||
| jonathan | a Parrot fix. | ||
| Yeah | |||
| I thought one and typed the other. | |||
| NotFound | Last time was some time ago ;) | ||
| janus | hm, 1.1.0 hasn't hit the ftp yet? | ||
| moritz | pmichaud: t/spec/S02-lexical-conventions/unicode.t now mostly passes, but there are some details that don't work with Unicode, it seems | 21:46 | |
|
21:47
Whiteknight joined
|
|||
| pmichaud | moritz: example? | 21:47 | |
| moritz | pmichaud: a named param :$äöü | 21:48 | |
| in a lexical sub, that is | |||
| pmichaud | I wonder if Parrot accepts unicode named parameters. | ||
| moritz | pmichaud: and the hindi identifiers don't get parsed | 21:49 | |
| perl 5 confirms that they match ^\\w+$ | |||
| but PGE does not | 21:50 | ||
| pmichaud | ...checking. | ||
| moritz | actually I have a test file that runs in both Rakudo and perl-5.10 without modifications | 21:51 | |
| nopaste | "moritz_" at 91.10.248.48 pasted "Hindi test" (8 lines) at nopaste.snit.ch/16385 | 21:52 | |
|
21:53
jdv79 left
|
|||
| pmichaud | try with /^<isL>+$/ in rakudo? | 21:54 | |
| moritz | also false | ||
| pmichaud | That's odd. | 21:55 | |
| Maybe <isLo>+ ? | |||
| moritz | also false. | ||
| pmichaud | ू is given as a "non spacing mark" | 21:57 | |
| moritz | that thing is made of \\N{DEVANAGARI LETTER DA} and \\N{DEVANAGARI VOWEL SIGN UU} | ||
| and Perl 5 thinks that all marks match \\w | 21:58 | ||
| because that way most regexes DWIM | |||
| Perl 6 won't need that, once it works on graphemes | |||
| it just has to respond with with "yes" to \\w if the base char is a letter | |||
| Coke | someone should open a trac to get the 1.1.0 docs out on docs.parrot.org and I'll get to it tomorrow if no one else has. | 21:59 | |
| particle | we need a way to submit trac tickets from irc | 22:08 | |
| ingy | hi | 22:09 | |
| rg | particle: if we can get submitting tickets by mail fixed, maybe we can write (or extend) a bot ;) | ||
| particle | sigh. | ||
| heya ingy | |||
| rg | moritz: can you close #63922 (perl6 ticket) | ||
| ingy | hi particle. how's seattle? | ||
| moritz | rg: done, thanks | 22:10 | |
| particle | wet, again. | ||
| where are you these days? | |||
| ingy | I heard you had some sun | ||
| I was just in oslo with pmichaud et al | |||
| particle | yeah, it was awesome, while it lasted. got a nice sunburn on a long bike ride | ||
| ingy | now I'm back in Chamonix | 22:11 | |
| to UK on May 5th, then Seattle on May 27th | |||
| then Pittsburgh | 22:12 | ||
| planning to drive from seattle to PA | |||
| particle | i'm sure i'll see you there. | ||
| ride or drive? | |||
| ingy | drive I think | ||
| I don't have the bike for that kind of riding | |||
| particle | ought to be a nice ride, until chicago/indy | 22:13 | |
| ingy | drive | ||
| ;) | |||
| particle | then it's a bit trafficky | ||
| er, drive :) | |||
| ingy | I've driven coast to coast many times | 22:14 | |
| particle | twice for me. 10k miles in 5 weeks. | ||
| of which, 3k miles was in 4 days. | |||
| ingy | anyway thinking about just driving for the summer | ||
| that's a lot | |||
| Infinoid | that's an accelerated particle | 22:15 | |
| particle | indeed i was | ||
| ingy | I drove 1200 on a motorcyle in one go | ||
| particle | my longest day was billings->seattle | ||
| ingy | got off 4 times for gas | ||
| this was boulder->chicago | |||
| particle | wait, maybe that's not my longest day... | 22:16 | |
| ingy | I drove portland to boulder in 27 on motorcycle | ||
| but pull over to sleep 3 hours in a field | 22:17 | ||
| particle | too much for me. | ||
| ingy | my typical car driving day is 750 miles | ||
| that's usually like 18 hours | 22:18 | ||
| er 16 | |||
| jonathan | That's...a lot of driving. | ||
| jonathan can't drive, but can't quite imagine being able to concentrate enough for that long either. | |||
| ingy | then I recline the seat, sleep 8 hours, get up, pee, and repeat | ||
| hi jonathan! | 22:19 | ||
| jonathan | hi ingy! | ||
| pmichaud | I did St. Louis to Pittsburgh once in a single stretch. | ||
| Not quite 750 miles, but it's up in the high 600s I think | |||
| eh, Google says 601. Oh well. | 22:20 | ||
| ingy | I've done chicago to stl (5 hours), and chicago to pitts (10 hours) a lot | ||
| jonathan has done 1000km+ in a day on train, but that's rather less effort on my part. ;-) | |||
| ingy | chi->pitts is like 450 iirc | ||
| pmichaud | my longish drives were typically Lafayette to Corpus Christi (7.5 hours) every two weeks. | ||
|
22:21
rblasch1 joined
|
|||
| ingy | I'm just glad gas is back to normalish | 22:21 | |
| pmichaud | indeed. :-) | ||
| Infinoid | I've tried and failed to do Lake Tahoe to Phoenix in one stretch... twice | ||
| Infinoid burns out too easily from driving. | |||
| jonathan | I barely travel in a car these days. When Jeremiah++ drove us from Gothenburg up to Oslo for NPW, I realized it was my longest car journey so far this year. And it was just 3 hours. | 22:22 | |
| I actually don't dislike it, particularly if there are decent views to be had. | |||
| TBH, I think folks from the US tend to have a different concept of "a long drive" to many Europeans. | 22:25 | ||
|
22:26
rob joined
|
|||
| rob | hey just been reading www.pmichaud.com/2009/pres/npw-pct/...de41c.html | 22:26 | |
| shorten | rob's url is at xrl.us/bepzkf | ||
| rob | does the $<something>.ast'method mean that $($<something>) is now depreciated? | 22:27 | |
| Whiteknight | pmichaud and jonathan, I was wondering if you two saw my response to TT #218? | 22:28 | |
| jonathan | rob: Yes. | ||
| rob | ah ok, it reads better I guess. will have to update porcupine | 22:29 | |
| particle | ingy: i did my nyc->chi in 11 hours (880mi) | 22:30 | |
| ingy | leadfoot | ||
| particle | yep :D | ||
| ingy | :) | ||
| jonathan | Whiteknight: Just read it. | 22:31 | |
| Whiteknight: get_pointer is _meant_ to return some kind of address that represents the PMC. | 22:32 | ||
| cotto | If you had a delorean, you'd only have to go 88 MPH for the last few seconds. | ||
| Whiteknight | jonathan: but get_pointer has different semantics for all PMCs | ||
| for some PMCs it returns the SELF pointer, for other PMCs it returns a pointer to the underlying data | |||
| I'm saying for encapsulation, FixedPMCArray should use the later semantics, not the former | 22:33 | ||
| jonathan | Yeah, but even within that the tests that pmichaud added should hold. | 22:34 | |
| That is, the underlying data should be different. | |||
| Whiteknight | Not necessarily, if the two PMCs are pointing to a NULL array, or are shallow copies of each other | 22:35 | |
| pmichaud | Two empty arrays should not have the same address if they are different PMCs. | ||
| cotto | I don't think we have cow arrays either. | 22:36 | |
| jonathan | I fear that patch also makes assumptions about what subclasses of get_pointer will do also. | 22:38 | |
| Whiteknight | pmichaud, not necessarily. There are two different semantics at play here | ||
| jonathan | erm, subclasses will do with get_pointer | ||
| Whiteknight | one is the location of the PMC structure itself, and one is the location of the underlying data. | ||
| The second can be the same between for two new PMCs if the data is NULL in both | |||
| the former obviously can't be | 22:39 | ||
| I want to separate the two semantics and give a separate opcode to each that can both be used consistently | |||
| pmichaud | That requires a deprecation cycle. | ||
| jonathan | Additionally, it's wrong. | 22:40 | |
| "Please give me your guts." Yeah, bye encapsulation, hi future segfaults... | |||
| Whiteknight | jonathan: I don't agree. It's wrong to shoehorn to different semantics into the same get_addr op | ||
| lots of other PMCs already use get_pointer and set_pointer for various other uses | |||
| jonathan | Yeah. At least one of them last time I saw it has "KLUDGE ON THE CHOPPING BLOCK" written above it too...# | 22:41 | |
| Whiteknight | okay, back up and look at the current situation: Several PMCs define all sorts of custom behaviors for get_pointer, and that's directly exposed by the get_addr opcode | 22:42 | |
| jonathan | I always saw get_pointer as useful if, for example, you were proxying for another PMC and wanted to hand back the address or something else you were proxying. | ||
| Whiteknight | we can't expect get_addr to be used to return the unique memory address of the PMC if it doesn't do that for all types | ||
| jonathan | In general, I also am rather fearful of get_pointer as a vtable generally. | 22:43 | |
| Whiteknight | I don't always like it either, I definitely don't like that it's so easily exposed to PIR through the get_addr op | ||
| It has plenty of legitimate uses internally | |||
| jonathan | Imagine I override it in a PIR subclass (if possible). I return 0. Something else grabs it and dereferences...boom. | 22:44 | |
| pmichaud | at any rate, we need some way of uniquely identifying a PMC | ||
| jonathan | From what I can see, your legitimate use was "breaking a PMC's encapsulation". | ||
| Whiteknight | well the easy solution to that is not to allow get_pointer (or set_pointer) to be overridden from PIR | ||
| pmichaud: yes. I am proposing a second single-purpose opcode for that | |||
| pmichaud | but not "get_addr"? | 22:45 | |
| Whiteknight | PMCs like Sub and Continuation use get_addr to point to the underlying opcode_t offsets | ||
| so you would have those PMCs not returning unique values from it either | |||
| jonathan | Grr. | ||
| Whiteknight | as it is, we absolutely can't guarantee that get_addr will return anything unique, so I say we add a new op that does make that guarantee | 22:46 | |
| pmichaud | fair enough. Just let me know what it becomes so we can fix Rakudo to match. | 22:47 | |
| Whiteknight | do you have a preference for what to call it? | ||
| jonathan | Aye. Looking around, I concede that get_pointer is used for all kinds. :-| | 22:48 | |
| pmichaud | "get_addr" seems most appropriate . :-) | ||
| but if that isn't available, then "get_pmc_addr" | |||
| cotto | get_self_addr? | ||
| pmichaud | theres no "self" here. | ||
| jonathan | If get_pointer is going to stay, I'd really like it to be as hidden from PIR as possible... | ||
| Whiteknight | pmichaud, that's fair, We'll just have to rename all other uses of get_addr (like for Continuation PMCs) to something else, which beggs the question about what to call that | ||
| pmichaud | well, I suspect any renaming is likely to be problematic. | 22:49 | |
| Whiteknight | jonathan: I agree with that | ||
| jonathan | Do we *need* the current semantics of get_addr from PIR? | ||
| Whiteknight | jonathan: that I am aware of, only for the Sub and Continuation PMCs | ||
| and the ExceptionHandler, I think | |||
| pmichaud | I suspect the bigger question is whether or not anything uses set_addr | ||
| jonathan | I just saw that... | ||
| pmichaud | currently it's used for exception handler setting. | 22:50 | |
| We don't have a way to set the return address of an exception handler except via set_addr | |||
| jonathan | erm. | ||
| Ouch. | |||
| Whiteknight | if we kill set_addr, we could make a method on the ExceptionHandler/Continuation PMCs to set the addres offset | ||
| pmichaud | I don't think address offsets can be passed to method calls. | ||
| or subroutine calls. | |||
| purl | subroutine calls are pretty slow in Parrot right now, comparatively speaking. | ||
| pmichaud | I could be wrong about that, though. | 22:51 | |
| jonathan | VTABLE_set_pointer(INTERP, context->lex_pad, context); | ||
| (In sub.pmc) | |||
| pmichaud | set_addr seems to have been used extensively for getting offsets into pmc registers. | 22:52 | |
| I have to head off to my soccer game. | 22:53 | ||
| I'll be back later tonight. | |||
| Whiteknight | okay, later | ||
| nopaste | "jonathan" at 85.216.157.73 pasted "segfault as a result of set_addr and set_pointer usage" (9 lines) at nopaste.snit.ch/16386 | 22:54 | |
| jonathan | That's exactly where set_pointer/get_pointer and their exposure to PIR is going to get us. | ||
|
22:54
contingencyplan_ joined
|
|||
| jonathan | (That is, I can look at a usage of it quite randomly picked and craft a program to make Parrot segv in about a minute...) | 22:55 | |
| Whiteknight | jonathan: I agree with you 100%. If it weren't for the Sub PMC problems I would have removed the PIR-facing uses of them | ||
|
22:55
Limbic_Region joined
|
|||
| jonathan | We'd need a deprecation cycle, but I suspect it's something we should push for. | 22:55 | |
| Whiteknight | I'm willing to do all the pushing, I just wanted to talk to you guys to make sure my ideas were sane | ||
| jonathan | I do still worry about get_pointer's encapsulation breaking behaviour, mind... | ||
| cotto | particle, ping | 22:56 | |
| Whiteknight | jonathan: I worry too, but get_pointer isn't always used to "get my guts". Instead it's often used for "get my data that isn't something nice like a INTVAL or PMC*" | 22:57 | |
| so it *generally* preserves encapsulation well enough, in most cases | 22:59 | ||
| <insert disclaimer about potential abuse> | |||
| jonathan | It's not my call really, I just worry that the potential for abuse is a little high... | 23:01 | |
| Whiteknight | right, but we're going to fix it in baby steps | 23:08 | |
| LylePerl | Infinoid: I just tested for the realclean issue on XP/Strawberry Perl and I had the same problem with files being left... I thought you tested on XP/Strawberry and found it to be ok? | 23:12 | |
|
23:21
tetragon joined
23:31
bacek_ joined
23:44
kid51 joined
|
|||
| Infinoid | msg lyleperl I did. I think I need a list of exact steps to reproducd it | 23:52 | |
| purl | Message for lyleperl stored. | ||
| Infinoid | msg lyleperl To be specific, I tried all kinds of combinations, with and without rakudo and realcleaning in random orders, and in each case, the parrot checkout no longer had a blib/lib and no longer had a src/ops/*.c. | 23:55 | |
| purl | Message for lyleperl stored. | ||