|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 14 January 2009. |
|||
| Whiteknight | in C, how do you tell if an iterator is empty? | 00:02 | |
| Tene_ | VTABLE_something | ||
| chromatic | VTABLE_elements | 00:03 | |
| or is it VTABLE_get_bool on the iterator? That's what you want. | |||
| purl | VTABLE_elements is failing likely because mro is null | ||
| Whiteknight | VTABLE_elements says it doesnt work correctly with hashes | 00:04 | |
| although get_bool looks like what we want | |||
| thanks | |||
|
00:05
tetragon joined
00:09
AndyA joined
|
|||
| cotto | irclog | 00:16 | |
| irclog? | |||
| purl | rumour has it irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| jonathan | VTABLE_get_bool to check if iterator has more elems | 00:17 | |
| Whiteknight | can somebody take a look at src/pmc/namespace.pmc:503 and give me some idea about how to implement that behavior? | 00:24 | |
| jonathan | 503? | 00:25 | |
| purl | well, 503 is Service Unavailable | ||
| Whiteknight | it's trying to use a Namespace as a key into another namespace that doesn't exist | ||
| jonathan | maybe I need to svn up to get something useful on that line... | ||
| Whiteknight | yeah maybe, I added it tonight | ||
| jonathan | Whiteknight: see it now | 00:26 | |
| er, huh? | |||
| Whiteknight | what? | 00:27 | |
| jonathan | Well, you're passing a namespace into a vtable meth...that is meant to return a namespace... | ||
| jonathan is confused | |||
| Whiteknight | src/oo.c:222. We're trying to find a namespace that doesn't exist | 00:28 | |
| chromatic | get_pointer_keyed? | ||
| Whiteknight | yeah, that's the one | ||
| chromatic | I'm no fan of the name. | ||
| Whiteknight | the namespace doesn't exist, and yet we have a namespace PMC that's supposed to point to it | ||
| so I guess we need to create the namespace or something | 00:29 | ||
| jonathan | That...shouldn't happen. Hmm. | ||
| Whiteknight | The whole thing confuses me | ||
| jonathan | You got a bit of PIR that demonstrates this? | ||
| Are you saying the ->namespace pointer on the PMC points to an NS that is not anchored anywhere? Or? | |||
|
00:30
tetragon_ joined
00:31
particle joined
|
|||
| jonathan looks in oo.c | 00:31 | ||
| Whiteknight | I don't really know. The namespace's VTABLE_get_class is returning PMCNULL for some reason when we look up on a namespace object | 00:32 | |
| chromatic | There's no class in the namespace. | ||
| jonathan | OK. | ||
| So what is getting passed into Parrot_oo_get_class here? | |||
| Whiteknight | A Key, a String, an ResizableStringArray, or a NameSpace PMC | 00:33 | |
| jonathan | I meant, in the case we're seeing a problem? | 00:34 | |
| Is there a ticket I should look at for background? | 00:35 | ||
| Whiteknight | TT#8 is the one I was trying to fix | ||
| jonathan | OK | 00:36 | |
| Whiteknight | When the class object isn't found, it takes the current key, stringifies it, uses that to look up the type id number, and then uses that to create a new PMCProxy of that type number | ||
| jonathan | Presumably oe of the problem number 2s? ;-) | ||
| "Looking up a nonexistent class with a String PMC produces a null PMC (correct), but looking up a nonexistent class with an array produces a "get_string() not implemented in class 'ResizableStringArray?'" exception: " | |||
| That one? | |||
| Whiteknight | yeah | ||
| I changed the lookup to use pmc_type_p for Key, String, and ResizableStringArray, instead of stringifying and finding the type id number from that | 00:37 | ||
| but that approach doesn't work with a NameSpace PMC | |||
|
00:37
s1n joined
|
|||
| Whiteknight | if we can get this resolved we can get pmichaud's get_class concerns fixed, which will make him happy | 00:38 | |
| jonathan | Whiteknight: Have you attached a debugger and worked out exactly which line of C does the VTABLE_get_string that fails? | 00:39 | |
| Whiteknight | from the ticket? Yeah, I've already resolved the issue there | 00:40 | |
| jonathan | Just set a breakpoint at the start of Parrot_oo_get_class | ||
| OK, so that exception is gone? | |||
| Whiteknight | that error doesn't pop up anymore because I fixed the handling of ResizableStringArray to use pmc_type_p. | ||
| yes, that exception is gone | |||
| jonathan | x.pir now prints 1\\n1\\n | 00:41 | |
| ? | |||
| Whiteknight | The problem is the stringification of the NameSpace PMC. | ||
| jonathan | ? | ||
| Are we talking about x.pir or y.pir? | |||
| Whiteknight | wait, I think you lost me | ||
| what are x and y? | |||
| purl | x and y are arbitrary perpendicular axies. | ||
| jonathan | In the ticket | ||
| One code example starts | 00:42 | ||
| $ cat x.pir | |||
| Whiteknight | no, those examples in that ticket have already been fixed | ||
| jonathan | Ah. | ||
| The one that starts $ cat y.pir | |||
| Is the one we're looking at? | |||
| Whiteknight | no, neither of them | ||
| see how lousy this problem is? I can't even explain what's wrong, much less find a solution to it | 00:43 | ||
| jonathan | Both bugs in that ticket are fixed? | ||
| Whiteknight | basically, yes | ||
| jonathan | Yeah, I'm confused! | ||
| Whiteknight | Do you see my note there about TT#182? | ||
| that's the problem I'm trying to fix now. I fixed TT#8 using a bad hack, and I want to resolve the hack | 00:44 | ||
| jonathan | What was the svn revision where you checked that in? Seeing the diff may help me... | ||
| Whiteknight | let me look for it | ||
| jonathan loves how the BBC has produced on its news website, complete with illustrations, a step by step guide to landing a plane on water. | 00:46 | ||
| Whiteknight | r35654 | ||
| jonathan | ...just in case I ever have to do this... | ||
| 503 \t case enum_class_NameSpace: | 00:47 | ||
| 504 \t/* XXX TT#182: Implement this! */ | |||
| 505 \treturn PMCNULL; | |||
| This case seems non-sensical to me. | 00:48 | ||
| Whiteknight | yes, that's what I'm trying to implement, and I haven't got any idea how to go about doing it | ||
| it seems nonsensical to me too! | |||
| jonathan | I just don't see how you could sensibly implement it though. | ||
| Whiteknight | that's why I asked for help | ||
| jonathan | OK | 00:49 | |
| Whiteknight | get_class opcode calls Parrot_oo_get_class. We fall through on line src/oo.c:222, stringify the PMC argument, and call pmc_type to get the type number for it | ||
| jonathan | But I suspect (it's almsot 2am here, I haven't got the energy to really dig in, sorry) that if the approach to fixing stuff up has led you to thinking you want to implement this case, something else is wrong further up the chain. | ||
| OK, but that's possibly _ok_. | 00:50 | ||
| We manufacture PMCProxy instances on demand. | |||
| And stick 'em in the namespace after manufacturing them. | |||
| Rather than creating them all at startup. | |||
| So it probably should fall through to creating it, if it doesn't exist yet. | 00:51 | ||
| Whiteknight | we manufacture them using the PMC type number, is there an easy way to get that from a NameSpace PMC? | 00:53 | |
| jonathan | Not if the PMCProxy doesn't exist yet. | 00:54 | |
| Whiteknight | I don't know enough about the implementations of all these PMCs to find easy solutions | ||
| jonathan | Let me try and explain better | ||
|
00:54
s1n joined
|
|||
| Whiteknight is going stupid | 00:54 | ||
| jonathan | A namespace has a slot where we can stick the Class PMC. | ||
| Whiteknight | right | ||
| jonathan | (you're not, Parrot guts are just an epic headache) | ||
| When you do something like | |||
| $P0 = newclass ['Foo'] | 00:55 | ||
| It creates a Class PMC and also puts it in the Foo namespace's slot. | |||
| Whiteknight | right | ||
| jonathan | Thus when you are in that function inside oo.c we were looking at, it finds the namespace, does get_class vtable call on it, and we're done. | ||
| OK so far? | 00:56 | ||
| Whiteknight | yes | ||
| jonathan | OK | ||
| Here's what's nasty | |||
| We have this thing called PMCProxy | |||
| PMCs are written in C, but we need some kind of thingy we can introspect that tells us about a PMC. | |||
| That's what PMCProxy is for. | |||
| However, we don't create a PMCProxy for each PMC at startup. | 00:57 | ||
| Instead, we create them the first time we lookup the PMC by name. | |||
| So the first time we look in the namespace, get_class hands us back something null. | |||
| Because we did not yet create a PMCProxy yet. | 00:58 | ||
| Thus we call through to the code which instead looks in the class registry to get the type number. | |||
| Whiteknight | so we need to create a PMCProxy for it at that point | ||
| jonathan | It then creates a PMCProxy. | ||
| I'm pretty sure it's already doing it. | |||
| Yes | 00:59 | ||
| See line 242 | |||
| Whiteknight | right | ||
| jonathan | classobj = pmc_new_init(interp, enum_class_PMCProxy, type_num); | ||
| Whiteknight | right, and we need to get that type_num value to create the PMCProxy | ||
| jonathan | And when that PMCProxy creates itself, it's vtable_init_pmc should also install that in the namespace | ||
| Exactly. | |||
| Whiteknight | so how do we get that type_num from a NameSpace pmc? | ||
| jonathan | We don't. | 01:00 | |
| We use the class registry instead. | |||
| That's what pmc_type looks in, I believe. | |||
| Whiteknight | right. pmc_type_p takes a Key, a String, or a RSA and does a lookup in the class registry | ||
| jonathan | *nod* | 01:01 | |
| Whiteknight | What I need is to use a namespace PMC to do a similar lookup | ||
| jonathan | Oh. | ||
| Whiteknight | which calls VTABLE_get_pointer_keyed in the Namespace PMC | ||
| jonathan | Aha. | ||
| Whiteknight | hence our chicken-and-egg dillema | ||
| jonathan | OK, now I understand. | ||
| But get_pointer returns a namespace. | 01:02 | ||
| Whiteknight | it's depressing that you're better at explaining my problem to you then I was. and you had no idea what I was talking about! | ||
| jonathan | Or are you saying we need to take the name of the namespace, look *that* up in the class registry, create a PMCProxy, which then in turn associates itself with the namespace, which we then return? | ||
| Whiteknight | ...I think so? | 01:03 | |
| take a look at src/pmc.c:pmc_type_p(). | |||
| jonathan | That may do it but...ouch. | ||
| Whiteknight | if VTABLE_get_pointer_keyed is returning a namespace, then we should be able to check for enum_class_NameSpace and use that instead of trying to look it up | ||
| jonathan | It's doing | 01:04 | |
| (PMC *)VTABLE_get_pointer_keyed(interp, classname_hash, name); | |||
| what is classname_hash? | |||
| interp->class_hash = classname_hash = pmc_new(interp, enum_class_NameSpace); | 01:05 | ||
| huh, it's a namespace PM | |||
| c | |||
| *PMC | |||
| Wow. | |||
| OH! | |||
| So is the problem that we are passing into pmc_type_p a NameSpace? | 01:06 | ||
| Whiteknight | yes! | ||
| that's the problem exactly | 01:07 | ||
| jonathan | Ah, finally, I understand! :-) | ||
| Erm. | |||
| Whiteknight | NameSpace PMCs don't even seem to have a get_integer VTABLE | 01:09 | |
| jonathan | no | ||
| nopaste? | |||
| purl | well, nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| nopaste | "jonathan" at 85.216.157.73 pasted "maybe something like this?" (14 lines) at nopaste.snit.ch/15335 | ||
| jonathan | I didn't try compiling that, but basically, you ask the namespace to give you a representation of itself | 01:10 | |
| As a REsizableStringArray | |||
| Which I tink get_pointer can deal with. | |||
| _but_ it'll include a HLL name so you may actually have to do more like | |||
| Whiteknight | oh, okay, I see what you are trying to do. | 01:11 | |
| get the RSA and pop the top entry off it? | |||
| or shift the bottom entry off it? (it's got to be one of the two) | |||
| nopaste | "jonathan" at 85.216.157.73 pasted "or this" (17 lines) at nopaste.snit.ch/15336 | 01:12 | |
| jonathan | You got it - and shift bottom off. | ||
| I didn't even try to compile that. :-) | |||
| But something along those lines may work. | |||
| It makes more sense to me to handle it here than in get_pointer | |||
| chromatic | No kidding. | 01:13 | |
| jonathan | oh phew chromatic agrees...it can't be *too* bad! | ||
| chromatic: Another pair of eyes over my Parrot core commit earlier today might be good, if you have a spare moment. | 01:14 | ||
| It should eliminate some potential segvs. | 01:15 | ||
| chromatic | Which one was this? The PMC_sub one? | 01:17 | |
| I saw the commit mail, but was shuffling laundry and didn't read through it in detail. | |||
| YET | |||
| jonathan | PMC_sub one yeah | 01:18 | |
| I need to sleep now | |||
| But just reply to list if you've any issues with it. | |||
| jonathan afk -> bed | |||
| chromatic | Will do. | 01:20 | |
| Whiteknight | goodnight jonathan! thanks! | ||
| dalek | r35656 | jkeenan++ | trunk/editor: | 01:24 | |
| : Applying patch submitted by Jimmy Zhuo in trac.parrot.org/parrot/ticket/176: Better indentation in line following a line consisting of a LABEL: and a comment. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35656 | |||
| Whiteknight | chromatic, I had an idea that I wanted to bounce off your | 01:25 | |
| off you* | |||
| chromatic | Go ahead. I'm cleaning up in the other room, but I'll pop in and out to read. | 01:26 | |
| Whiteknight | during the build, what if we did a transform on the source code to replace calls to Parrot_PCCINVOKE with the actual method function call from the PMCs? | ||
| so instead of calling Parrot_PCCINVOKE, we call Parrot_NameSpace_nci_get_string() directly? | 01:27 | ||
| obviously there are some changes would need to be made to contain all the information we would need, but it would save us from repeatedly crossing the C <--> PIR boundary | 01:28 | ||
| chromatic | That'll force static dispatch, but you can cheat that a little bit. | ||
| Whiteknight | we could only do that on the methods written in C, but for those cases we could avoid a lot of callsignature overhead | 01:29 | |
| and yeah, we couldn' do it on a mutli | |||
| multi* | |||
| chromatic | Those methods don't vary with readonlyness, do they? | ||
| Whiteknight | Their names might, but other then that, no | 01:30 | |
| I would need to look into it | |||
| chromatic | That seems worthwhile to benchmark. | ||
| Whiteknight | once we narrow down the subset of places where it's even possible it might turn out to be a huge waste, but it's not like we don't have all sorts of perl programs parsing through the source code anyway | 01:31 | |
| chromatic | Right. | 01:32 | |
| Whiteknight | that will be another project for another day though, just something I was thinking about | ||
| chromatic | An hour of experimenting would give you some good ideas. | ||
| Whiteknight | okay, I'm glad that you didn't immedately think it was a lousy idea, that gives me hope | 01:38 | |
| you're a good barometer for ideas like that | |||
| dalek | r35657 | jkeenan++ | trunk/editor: | 01:39 | |
| : Change date of last revision. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35657 | |||
| cotto | Coke_away, ping | 01:46 | |
|
01:46
s1n joined
|
|||
| Whiteknight | urg, I hate segfaults! They don't give you any information about where they happened or why | 01:46 | |
|
02:04
gravity joined
|
|||
| Coke | cotto: pong. | 02:19 | |
| Whiteknight | Coke: asteroids | 02:22 | |
| purl | Why are hemeroids called hemeroids and asteroids called asteroids? It should be the other way around. | ||
| cotto | Coke, if you want to help with the PMC unionval deprecation, there's a list of PMCs that need fixing on the wiki page | 02:26 | |
| trac.parrot.org/parrot/wiki/PMCUni...onTasklist | 02:28 | ||
| Coke | but you're doing such a great job! | 02:35 | |
| Whiteknight | cotto++ | ||
|
02:50
particle1 joined
|
|||
| Whiteknight | how do you mark a test TODO in PIR? | 02:54 | |
| Coke | t/library/test_more.t | 02:55 | |
|
02:55
kid51 joined
|
|||
| Infinoid | cotto++ # so _thats_ why you were doing such horrific things to PMC_x_val() | 02:55 | |
| dalek | r35658 | coke++ | trunk: | 03:04 | |
| : Hearing no objection on these tickets, make the deprecation official. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35658 | |||
| Infinoid | cotto: is PMC_data() included in this deprecation? | 03:06 | |
| the Packfile PMCs I'm working on use that heavily, but I'm not sure the fact that they're listed in your dependency graph means they're affected by this issue. | 03:12 | ||
|
03:16
LimbicRegion joined
03:17
LR joined
03:21
Limbic_Region joined
|
|||
| cotto | Infinoid, yes. PMC_data is where the pointer to Parrot_Foo_attributes lives | 03:22 | |
| dalek | r35659 | jkeenan++ | trunk: | 03:26 | |
| : Punctuation correction only. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35659 | |||
| cotto | (in updated PMCs) | 03:27 | |
| Whiteknight is ANGRY at namespaces | 03:31 | ||
| dalek | r35660 | jkeenan++ | trunk/languages/pheme: | 03:39 | |
| : Add missing copyright statement. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35660 | |||
| r35661 | jkeenan++ | trunk/src (3 files): | 03:41 | ||
| : Eliminate trailing whitespace in 3 files. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35661 | |||
|
03:58
idemal joined
|
|||
| kid51 | msg jonathan Please run t/codingstd/c_arg_assert.t and t/codingstd/c_macro_args.t to catch problems in 2 files committed Jan 16. | 04:01 | |
| purl | Message for jonathan stored. | ||
| TiMBuS | a fresh parrot checkout doesnt seem to want to build on x64 ubuntu. =/ | 04:08 | |
| kid51 | You may wish to add that to trac.parrot.org/parrot/ticket/26 | ||
| TiMBuS | oh hey these are all the other segfaults i was getting when using --optimized ;/ | 04:10 | |
| Infinoid | TiMBuS: where exactly does it fail? | ||
| TiMBuS | ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc | ||
| Segmentation fault | |||
| purl | (Core dumped) | ||
| Infinoid | ah. that's not TT #26, I don't think, that's the issue PerlJam was talking about a day or two ago (I dunno if it has a ticket) | 04:11 | |
| TiMBuS: you willing to get a gdb backtrace so we can find out for sure? | 04:12 | ||
| TiMBuS | im no good with gdb but ill try | ||
| kid51 | TiMBuS: By any chance, do you have an installed parrot executable already? | 04:13 | |
| TiMBuS | nope | ||
| i just did a svn up and it no longer built, tried the usual make realclean/fresh checkout but that didnt work | 04:14 | ||
| Infinoid | ok. if you have gdb installed, you can try the following commands: | ||
| gdb miniparrot | |||
| run config_lib.pasm >/dev/null | |||
| (wait for the segfault, shouldn't take long) | 04:15 | ||
| bt | |||
| TiMBuS | got it | ||
| want it pasted anywhere in particular | |||
| kid51 | nopaste? | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| kid51 | Hmm: there's also this ticket: trac.parrot.org/parrot/ticket/179 | 04:16 | |
| nopaste | "TiMBuS" at 123.243.167.27 pasted "segfault backtrace" (7 lines) at nopaste.snit.ch/15337 | ||
| TiMBuS | that was fast | ||
|
04:16
s1n joined
|
|||
| Infinoid | Yep, that's the same crash. | 04:17 | |
| Do you have a trac account? | 04:18 | ||
| TiMBuS | nope | ||
| Infinoid | If you can, please create one, and post a comment on trac.parrot.org/parrot/ticket/179 that you're seeing the same issue, and include specific details of your platform, and also your backtrace (you might want to put it in {{{ }}}'s to make sure it gets formatted properly) | 04:19 | |
| TiMBuS | sure thing | ||
| Infinoid | we're having a difficult time nailing this one down so far. it seems it occurs on some x64 ubuntu boxes but not others | ||
| TiMBuS | =/ | ||
| Infinoid | and I can't reproduce it on x64 gentoo, unfortunately | ||
| thanks! TiMBuS++ | |||
| chromatic | p *scheduler | 04:22 | |
| Infinoid | chromatic: I have results from PerlJam's having poked around with it a few days ago | 04:23 | |
| 08:18 <@Infinoid> print scheduler->vtable | |||
| 08:18 <@PerlJam> $1 = (VTABLE *) 0xdeadbeef | |||
| chromatic | Straight from pmc_new? | ||
| Infinoid | correct. | ||
| chromatic | Dodgy cast somewhere that 64-bits hates/ | ||
| ? | |||
| Infinoid | I dunno. it's not affecting all 64-bit platforms, just a few | ||
| 08:34 <@PerlJam> according to the bisect, r35568 is the first bad rev for my miniparrot segfault | |||
| it made me wonder if interp->vtables[] array was corrupt somehow | 04:24 | ||
| kid51 | TiMBuS: If you create an account on Trac, don't enter anything other than your name and email address, and don't modify any Preferences. (Therein lies a bug.) | ||
| chromatic | In theory, VTABLE_init or VTABLE_instantiate should work just fine. | ||
| _init | |||
| kid51 knows that sounds weird but we've all been bitten. | |||
| TiMBuS | lol | ||
| ok then, wont go to prefs | 04:25 | ||
| chromatic | src/pmc/scheduler.pmc:68 ? | ||
| Infinoid | src/scheduler.c:83 | 04:26 | |
| chromatic | I mean, is that line dodgy? | ||
| Infinoid | oh, I don't know. | ||
| chromatic | Maybe we need to throw some debugging lines to make sure init() gets called. If it does, the vtable is fine there. | 04:27 | |
| Infinoid | TiMBuS: I'm going to try to make an ubuntu chroot to reproduce this in. Which flavor and rev are you running? | ||
| TiMBuS | uhh, 64 bit 8.10, whats the animal name again.. ibex | 04:29 | |
| Infinoid | thanks | ||
| kid51 | msg jonathan I believe I fixed one of those codingstd failures; t/codingstd/c_arg_assert.t remains. | 04:30 | |
| purl | Message for jonathan stored. | ||
| Infinoid | oh hey, that sounds like something I can fix | ||
| kid51 | I'll be making commit on the other correction in a minute. | 04:31 | |
| Infinoid | Ok, I'll stay out of your way. | 04:32 | |
| dalek | r35662 | jkeenan++ | trunk/include/parrot: | 04:37 | |
| : Make file pass t/codingstd/c_macro_args.t. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35662 | |||
| kid51 | Infinoid: Can you review that commit? If it's okay, it may have the clue to fixing the other codingstd fail. | ||
| Infinoid | the extra paren seems reasonable for PMC_sub. the other codingstd fails because the opening curly brace isn't on it's own line, and the test's regex is too strict. (working on that) | 04:39 | |
| I don't see a codingstd rule related to this, so I'm relaxing the regex rather than moving the brace. | |||
| kid51 | Thx. Will check in on that tomorrow. In the meantime, like all of us not in the Pacific time zone ... | 04:41 | |
| kid51 must sleep | |||
| purl | $kid51->sleep(8 * 3600); | ||
| Infinoid | sleep well | ||
|
04:46
Casan joined
|
|||
| dalek | r35663 | infinoid++ | trunk (2 files): | 04:47 | |
| : [codingstd] There doesn't seem to be a codingstd test requiring a | |||
| : function's opening curly brace to be on its own line. Thus, the | |||
| : regex in c_arg_assert is too strict. Relax it to allow a newline | |||
| : *or* a space before the opening curly. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35663 | |||
|
04:59
japhb joined
|
|||
| dalek | r35664 | cotto++ | trunk/src/pmc: | 05:10 | |
| : [pmc] convert BigInt PMC to use ATTRs | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35664 | |||
|
05:12
particle joined
05:43
jimmy joined
|
|||
| jimmy | cotto: ping | 06:19 | |
| cotto | jimmy, pong | 06:28 | |
| jimmy | ... I forget what I want to ask. | 06:30 | |
| s/ask/ask for/ | 06:31 | ||
| cotto | did you have a patch? | ||
| maybe a question about PMC UnionVal conversions? | |||
| jimmy | yes,I hava a patch, it is in TT. my question is about PMC UnionVal conversions, but I forget it. | 06:32 | |
| cotto | I'll be here if you remember it. | 06:33 | |
| and if you don't | |||
|
06:35
pdcawley joined
|
|||
| jimmy | thanks. | 06:35 | |
|
06:49
pdcawley joined
|
|||
| jimmy | Here were so many docs mentioned PMC_xxx_val :( | 06:51 | |
|
06:51
jdv79 left
|
|||
| cotto | It's going to be... fun... to replace them all. | 06:52 | |
| ;) | |||
| chromatic | Fun but necessary! | 06:53 | |
| jimmy | It's a bit hard to try to do some conversions. | 06:55 | |
| because of inheritance. | 06:56 | ||
| TiMBuS | why is D2FPTR() wrapped around a Parrot_dlsym call in dynext.c? it's converting a void* to a ulong, then the ulong gets cast back a function pointer. removing it fixes a warning | 07:00 | |
|
07:01
HG` joined
|
|||
| jimmy | It's codingstd? | 07:01 | |
| or my patch gets warnings? | |||
| TiMBuS | no it's not from a patch, just a warning thats been bugging me for a while | 07:02 | |
| cotto | jimmy, I updated the wiki page with some PMCs which can be converted without inheritance concerns | 07:04 | |
| jimmy | TiMBus: can you nopaste your patch | ||
| cotto | (I'm working on Float atm) | 07:05 | |
| jimmy | cotto: can you take a look at trac.parrot.org/parrot/ticket/183? | ||
| cotto | jimmy, np. I'll do that later tonight. | 07:09 | |
| jimmy | thanks. | 07:10 | |
| TiMBuS | jimmy, it's just dynext.c, likes 398 and 407. remove the D2FPTR() macro wrapped around those lines and the warning vanishes. i dont know if i should make a patch for it since it might be needed | ||
| cotto | chromatic, do you know what allison meant by inherited and child attributes? | 07:11 | |
|
07:12
HG` left
|
|||
| cotto | afaict, the PMC mangling code doesn't do anything particularly smart wrt attributes and PMCs that extend other PMCs. | 07:13 | |
| szabgab | chromatic: ping | 07:16 | |
| chromatic: have you looked at the simple API suggestion I wrote ? | 07:17 | ||
| for Parrot::Embed ? | |||
| jimmy | cotto: I saw you used GETATTR_BigInt_bi and sometimes used GET_ATTR_queue. Is there any difference? | 07:25 | |
| cotto | jimmy, yes. the GET_ATTR_x form gets turned into GETATTR_Type_x by the pmc2c code. | 07:27 | |
| GET_ATTR_x only works inside the body of a PMC, which is why I used GETATTR in the BigInt code. | |||
| jimmy | oh, I know now. | 07:28 | |
| so, if used GETATTR_BigInt_bi inside the body of pmclass, can also use GET_ATTR_bi, am I right? | 07:30 | ||
| cotto | yes | 07:32 | |
|
07:32
particle1 joined
|
|||
| jimmy | cotto: thanks | 07:34 | |
| cotto | jimmy, glad to help | 07:37 | |
|
07:49
japhb joined
08:22
iblechbot joined
|
|||
| dalek | r35665 | cotto++ | trunk/t/op: | 08:46 | |
| : [t] delete some mysteriously duplicated contents | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35665 | |||
| cotto | jimmy, ping | 08:59 | |
| dalek | r35666 | cotto++ | trunk/src (8 files): | 09:02 | |
| : [pmc] make Float use ATTRs, remove most remaining uses of PMC_num_val | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35666 | |||
|
09:03
bacek joined
|
|||
| dalek | r35667 | cotto++ | trunk/languages/perl6/src/pmc: | 09:06 | |
| : [pod] add a =cut, noticed by jimmy++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35667 | |||
| r35668 | cotto++ | trunk/src (15 files): | 09:12 | ||
| : [style] a bunch of consting | |||
| : patch courtesy of jimmy++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35668 | |||
|
09:30
jimmy joined
|
|||
| jimmy | cotto: pong. the firewall bloked mibbit.com | 09:30 | |
| cotto: pong. the firewall bloked mibbit.com | 09:31 | ||
| and I didn't know. | |||
| Is there any reason for PMC Union Deprecation? | 09:32 | ||
|
09:32
barney joined
|
|||
| cotto | jimmy, I figured it out | 09:40 | |
| I'm not entirely sure why it's being deprecated. I'll need to ask about that. | 09:41 | ||
| jimmy | What can I help you just now? | ||
| cotto | I imagine it's because the UnionVal is crufty and doesn't encourage separation of internals | 09:42 | |
| You can tackle one of the remaining PMCs on the list on the wiki page. | |||
| I'm trying LexPads, but I don't know how far that will go. | |||
| jimmy | I had tried it, but some lines always blocked me. | 09:43 | |
| cotto | which ones? I might be able to help | 09:44 | |
| jimmy | i.e: coroutine.pmc | 09:47 | |
| PMC_struct_val(ret) = sub; PMC_pmc_val(ret) = PMCNULL | |||
| cotto | I don't know why it does that. Try taking out the lines like that and see if make test still passes. I'd be quite surprised if it didn't. | 09:49 | |
| (the lines like PMC_pmc_val(x) = PMCNULL) | 09:50 | ||
|
09:52
particle joined
|
|||
| jimmy | yes, that's why it blocked me | 09:52 | |
| nopaste | "cotto" at 96.26.202.243 pasted "bigint patch for mj41" (15 lines) at nopaste.snit.ch/15341 | 09:53 | |
| dalek | r35669 | cotto++ | trunk/src/pmc: | 09:55 | |
| : [pmc] convert some LexPad code to use attrs | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35669 | |||
| cotto | jimmy, what do you mean? did it break things when you removed those lines? | ||
| jimmy | I don't know how to convert it. | 09:56 | |
| cotto | In that case, it looks like a no-op. Since it's not assigning anything meaningful to PMC_pmc_val(x), it should be safe to remove. | 09:57 | |
| (i.e. you don't need to convert it) | |||
| mj41++ #stealth privmsg bug reporting | 10:02 | ||
| dalek | r35670 | cotto++ | trunk/src/pmc: | 10:03 | |
| : [pmc] make BigInt compile without the libgmp headers | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35670 | |||
| jimmy | maybe it is used by sub.pmc | ||
| cotto | sub.pmc does the same thing with PMC_pmc_val (assign NULL to it) | 10:05 | |
| it should be safe to remove | |||
| either way, I'm going to sleep | |||
| night | |||
| jimmy | night. | 10:06 | |
| I see it PMC_pmc_val ... unused / bound object in Bound_Meth PMC. | |||
|
10:10
clunker3 joined
10:29
alvar joined
|
|||
| cotto | smolder? | 10:31 | |
| purl | somebody said smolder was sourceforge.net/projects/smolder or web-based smoke test aggregator used by developers and testers to upload (automated or manually) and view smoke/regression tests using the Test Anything Protocol (TAP). or smolder.plusthree.com/app/public_pr..._reports/8 | ||
| dalek | r35671 | bernhard++ | trunk/src (2 files): | 10:44 | |
| : [codingstd] tabs.t | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35671 | |||
|
11:13
Fayland_logger joined
|
|||
| dalek | r35672 | bernhard++ | trunk/languages/pipp/src/pct: | 11:31 | |
| : [Pipp] Load pipp.pbc, so that dumped PIR executes without complaints | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35672 | |||
| r35673 | bernhard++ | trunk/src/pmc: | |||
| : [codingstd] remove trailing space | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35673 | |||
| nopaste | "barney" at 84.154.42.145 pasted "methods on 'Float' broken" (13 lines) at nopaste.snit.ch/15342 | 11:41 | |
| dalek | r35674 | tewk++ | trunk (2 files): | 12:06 | |
| : remove Parrot_class_lookup* | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35674 | |||
|
12:10
riffraff joined
12:13
particle1 joined
|
|||
| dalek | r35675 | bernhard++ | trunk/runtime/parrot/include: | 12:20 | |
| : Add comment about the PASM macros. Nicer formating. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35675 | |||
| r35676 | bernhard++ | trunk/t/pmc: | |||
| : Fix PIR-indenting to 4 leading spaces | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35676 | |||
| r35677 | bernhard++ | trunk/t/pmc: | |||
| : Add failing test case for method 'acos' | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35677 | |||
| r35678 | bernhard++ | trunk/t/pmc: | 12:29 | ||
| : provide ticket number for a TODO test | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35678 | |||
| szabgab | rakudobug? | 12:42 | |
| purl | rakudobug is mailto:rakudobug@perl.org | ||
|
12:51
kid51 joined
|
|||
| dalek | r35679 | kjs++ | trunk/compilers/pirc/src: | 13:01 | |
| : [pirc] add a forward declaration of lexer_state struct; gcc emits an error otherwise. msvc handles this fine. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35679 | |||
|
13:13
Zaba joined
|
|||
| lathos | OK, I'm seeing a very weird bug with array handling - trying to track it down. | 13:15 | |
| jonathan | lathos: In Rakudo or Parrot? | 13:17 | |
| barney has added trac.parrot.org/parrot/ticket/184 | 13:18 | ||
| dalek | r35680 | kjs++ | trunk/compilers/pirc/src: | 13:19 | |
| : [pirc] fix build for Linux. Somehow, there must be some kind of macro expansion that uses the name "interp" for the Interp * struct. Declare that as a local variable, so "interp" is around if needed. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35680 | |||
| r35681 | kjs++ | trunk/compilers/pirc/src: | 13:24 | ||
| : [pirc] add a #define for debug messages. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35681 | |||
| r35682 | kjs++ | trunk/compilers/pirc/src (2 files): | 13:37 | ||
| : [pirc] remove unused var warning on windows, and fix a missing prototype warning on linux. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35682 | |||
| r35683 | kjs++ | trunk/compilers/pirc/src: | 13:39 | ||
| : [pirc] add a missing prototype. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35683 | |||
| r35684 | kjs++ | trunk/compilers/pirc/src (5 files): | 13:46 | ||
| : [pirc] add a missing prototype. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35684 | |||
| r35685 | kjs++ | trunk/compilers/pirc/src (2 files): | 13:51 | ||
| : [pirc] fix a comment. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35685 | |||
|
14:30
braceta joined
|
|||
| Infinoid | barney: ping | 14:31 | |
|
14:33
particle joined
14:35
Whiteknight joined,
braceta_ joined
14:36
jhorwitz joined
|
|||
| barney | Infinoid: pong | 14:46 | |
| dalek | r35686 | bernhard++ | trunk/languages/pipp/src/pct (2 files): | ||
| : [Pipp] only simple identifiers are allowed in constant definition | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35686 | |||
| r35687 | bernhard++ | trunk/languages/pipp/src/pct: | 14:47 | ||
| : [Pipp] Make the actions class_constant_definition and | |||
| : namespace_constant_definition look the same | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35687 | |||
| r35688 | bernhard++ | trunk/languages/pipp/src/pct (2 files): | |||
| : [Pipp] Merge namespace_constant_definition and class_constant_definition | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35688 | |||
| r35689 | bernhard++ | trunk/languages/pipp/src/pct: | |||
| : [Pipp] Eliminate class_constant_accessor and static_method_accessor | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35689 | |||
| r35690 | bernhard++ | trunk/languages/pipp/src/pct: | |||
| : [Pipp] hardcode <.namespace_separator> | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35690 | |||
| Infinoid | barney: hi. I've got a fix for your TT #184, but are you sure the test is correct? acos(0) returns 1.5707963267949 for me, not 0.0 | 14:49 | |
| (I'm not very good with these trig things, so please give me a sanity check) | |||
| the same fix will be needed for all the other trig functions too, so I'm adding similar tests for those now | 14:50 | ||
| barney is checking | 14:52 | ||
| Whiteknight | 1.57079 = pi/2 | 14:53 | |
| Infinoid | so my fix made acos(0.5) work, but broke the acos(0) part of the test | ||
| Whiteknight | I can't remember all my trig, but I think that acos(0) = pi/2 | ||
| barney | Yes, I'll change the test | 14:54 | |
| Infinoid | barney: I've already got a patch for that, I just wanted to know if I was crazy or not :) | ||
| thanks, I'll commit the test fix along with all the additional tests when I've fixed everything else up | |||
| barney | too late :=) | 14:57 | |
| dalek | r35691 | bernhard++ | trunk/t/pmc: | ||
| : fix test: acos 0.0 is pi/2 | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35691 | |||
| r35692 | pmichaud++ | trunk/languages/perl6/docs: | 15:00 | ||
| : [rakudo]: spectest-progress.csv update: 286 files, 0 passing, 6288 failing | |||
| : * r35664 broke the Parrot build, so no passing tests :-( | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35692 | |||
| Infinoid | heh | ||
|
15:02
register joined
|
|||
| jonathan | ...wtf... | 15:07 | |
| D'oh. Fix fail. | 15:08 | ||
| jonathan didn't notice it since he had no bigint library! | |||
| Either that or MSVC++ doesn't care about whatever the issue is. :-S | 15:09 | ||
| pmichaud | it was fixed shortly thereafter... but spectest-progress reports the status as of 00:00 CST | ||
| jonathan | Oh! | 15:10 | |
| OK | |||
| That's probably why. | |||
| pmichaud | I think it was probably fixed in r35667 (I didn't check) | ||
| it's okay in trunk now, yes. | |||
| jonathan | Ah, good. | ||
| I thought it was reporting a breakage at the moment. | |||
| jonathan will probably do some hacking later | 15:12 | ||
| Need to try and make a dent in my massive pile of unanswered personal email first. | 15:13 | ||
| barney | bbl | 15:18 | |
| Infinoid | is there a formatted print op in PIR, so I can chop some of the least significant digits off of a float I'm printing? | 15:22 | |
| pmichaud | Infinoid: printf | ||
| Infinoid | perfect. | ||
| purl | perfect is, like, the enemy of good enough | ||
| Infinoid | ok. the printf op doesn't seem to exist, and the sprintf op doesn't seem to accept NUMVALs. And when I pass it a %f argument with a Float PMC, I get "get_pmc_keyed() not implemented in class 'Float'" | 15:31 | |
| pmichaud | oh, sorry, sprintf is right | 15:32 | |
| note that the argument to sprintf has to be an array. | |||
| Infinoid | oh! | ||
| I was wondering how varargs was handled. That helps, thanks | |||
|
15:36
Casan joined
15:37
Casan left,
Casan joined
15:47
Limbic_Region joined
15:49
hudnix joined
15:56
Andy joined
|
|||
| dalek | r35693 | infinoid++ | trunk (2 files): | 16:01 | |
| : [float] Fix the acos() method. Un-todo the test. (TT #184) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35693 | |||
| r35694 | infinoid++ | trunk (2 files): | |||
| : [float] Fix and test the rest of the Float PMC's trig methods. (TT #184) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35694 | |||
| Infinoid | (I sure hope those results are portable.) | ||
| jonathan | Infinoid: there are tests? | 16:16 | |
| oh, yes | |||
| Infinoid: Will svn up, rebuild and try it here | |||
|
16:18
tetragon joined
|
|||
| barney | looks good here | 16:44 | |
| jonathan | Yes, same here. | 16:47 | |
| Infinoid | great, thanks | 16:52 | |
|
16:54
particle1 joined
16:58
davidfetter joined
|
|||
| dalek | r35695 | bernhard++ | trunk/config/gen/makefiles: | 17:11 | |
| : [docs] Rephrase comment and help message | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35695 | |||
| r35696 | bernhard++ | trunk/config/gen/makefiles: | 17:12 | ||
| : Add targets co-all, co-eclectus and co-hq9plus | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35696 | |||
| jonathan | particle1|coke-z: I'd not mind a commit bit on the sqwauk repo - I think you are the right people to ask. :-) | 17:14 | |
|
17:17
rhr joined
|
|||
| dalek | r35697 | Whiteknight++ | trunk/src (3 files): | 17:23 | |
| : [get_class] some updates to get_class to try and standardize the way objects are looked up. This fixes some of the hacky stuff I did yesterday to implement some of this behavior (but doesn't fix everything). Jonathan++ for the help | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35697 | |||
| Whiteknight | jonathan, I finally got that issue from last night fixed, thanks! | 17:34 | |
| jonathan | Whiteknight++ | ||
| Whiteknight | I figured out what kind of object is getting passed in that's still gumming up the works: a Role | 17:35 | |
| so somebody is passing Role PMCs to get_class somewhere, and the routine freaks out because it doesn't know how to deal with them | |||
| dalek | r35698 | bernhard++ | trunk/config/gen/makefiles: | 17:38 | |
| : add target co-tcl | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35698 | |||
| jonathan | Whiteknight: The slot can validly hold a Role too. | 17:39 | |
| That's OK. | |||
| But yes, the routine should knwo how to handle that. | |||
| Whiteknight | what slot can hold a Role, the class_obj? | ||
| will PObj_is_class_TEST(Role) return true? | 17:40 | ||
| dalek | r35699 | bernhard++ | trunk/config/gen/makefiles: | ||
| : Add co-gil | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35699 | |||
| jonathan | Whiteknight: The same one that holds a class. | 17:44 | |
| Erm. It may do. I don't remember...check in init for Role. | 17:45 | ||
| dalek | r35700 | bernhard++ | trunk/config/gen/makefiles: | 17:47 | |
| : add target co-pjs | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35700 | |||
| r35701 | bernhard++ | trunk/config/gen/makefiles: | 17:55 | ||
| : Add target co-primitvearc | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35701 | |||
| r35702 | bernhard++ | trunk/config/gen/makefiles: | 18:02 | ||
| : Update help message | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35702 | |||
| Whiteknight | nope, it doesnt | 18:06 | |
| jonathan finally gets around to writing a journal entry | 18:10 | ||
| use.perl.org/~JonathanWorthington/journal/38308 # about parametric roles | |||
|
18:18
On joined
|
|||
| coke-z | jonathan: give me your googlecode id. | 18:21 | |
| jonathan | Coke: jnthnwrthngtn | 18:25 | |
| dalek | r35703 | bernhard++ | trunk/config/gen/makefiles: | 18:29 | |
| : Escaple backslashes in languages/Makefile | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35703 | |||
| japhb | ' # ...and before some smartass points it out, I know | ||
| # I'm missing some of the masculine animate declension...' | |||
| NICE | |||
| dalek | r35704 | Whiteknight++ | trunk/src (3 files): | 18:31 | |
| : [get_class] a few cleanups with the get_class stuff | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35704 | |||
| Whiteknight | yay! I love jonathan's blog posts | ||
| japhb | Yep. Simultaneously telling us about newly working features, and explaining them quite nicely ... | 18:32 | |
| jonathan++ | |||
| barney | jonathan++ | 18:33 | |
| Whiteknight | jonathan++ | ||
| karma jonathan? | |||
| purl | jonathan has karma of 1184 | ||
| Whiteknight | that's quite a bit | ||
| japhb | And he's earned it | 18:38 | |
| Coke | jonathan: Changes have been saved | ||
|
18:39
Ademan joined
|
|||
| Coke | I made "make" in tcl build the fake-executable. Anyone mind if I do the same to perl6 ? | 18:40 | |
| wow. nevermind, it's even slower to build it for p6. | |||
| jonathan | Coke: Aye, it's not so fast. For now testing with the PBC is fine for us. | 18:44 | |
| Coke: Thanks for squaak bit. :-) | 18:46 | ||
| barney | Infinoid: did you look at asinh and acosh ? | 18:47 | |
| jonathan | Coke: Is this a general place for putting languages that don't want their own repo? | 18:50 | |
| And are we aiming to move everything other than the odd demo/tutorial langauage out of languages for 1.0? | 18:51 | ||
| dalek | r35705 | Whiteknight++ | branches: | ||
| : branch was heading in the wrong direction, deleting to restart it in a better way | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35705 | |||
| barney | jonathan: that was my impression | 18:54 | |
| jonathan | OK | 18:55 | |
| If so I will probably move dotnet there | |||
| barney | question is whether unmaintained languages should be moved or simply be deleted, waiting for resurection | 18:56 | |
| Hinrik | you could keep them in the repo but exclude them from the release tarballs | 18:58 | |
| jonathan | I'm not sure how many of them have owners, yeah. | ||
| barney | I'll move m4 to github tomorrow, pipp after Parrot 0.9.0 release | 19:02 | |
| dalek | r35706 | bernhard++ | trunk/languages/pipp/src/pmc: | 19:09 | |
| : [Pipp] Do not use the UnionStruct in PhpFloat PMC | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35706 | |||
|
19:09
chromatic joined
19:14
particle joined
|
|||
| chromatic | Whiteknight, your use.perl.org post is missing the link to the Perl 6 book at Wikibooks. | 19:19 | |
| jonathan is looking at the Java grammar | 19:28 | ||
| omfg... | |||
|
19:28
rhr joined
|
|||
| jonathan | ...so this is what happens when you do operator precedence with recursive descent! | 19:28 | |
| davidfetter | heh | 19:29 | |
| Whiteknight | it's missing the link? It was there when I previewed it | ||
| Whiteknight will have to go look again. | |||
| jonathan | It's like, yeah, I'll just do something easy...write some dummy say method and be able to create a class and call it. | ||
| Turns out I'd have to implement (or do stubs for by which time I may as well have implemented!) pretty much every other operator in the language! | 19:30 | ||
|
19:47
Whiteknight joined
19:50
braceta joined
|
|||
| Whiteknight | okay, fixed the link. Thanks chromatic++ | 20:01 | |
| I was missing a stupid closing quoute on the href= | 20:02 | ||
|
20:04
Casan joined,
davidfetter joined
|
|||
| Coke | jonathan: (general place) yup. If you don't want to be bothered setting up a repo, but are interested in not having it die. | 20:09 | |
| jonathan | OK, sounds about right. | ||
| Coke | (so, only move it if you're the maintainer or have talked to her.) | 20:13 | |
| jonathan | *nod* | 20:14 | |
| I'm not aware that anyone else has taken maintainership of dotnet... :-) | |||
| Much as I may wish it were so. | |||
| OK, enough time on Perk. :-) | |||
|
20:15
masak joined
|
|||
| Coke hates him some IE6 JS bugs. | 20:31 | ||
| chromatic | Hm, looks like we can remove the Closure and delegate PMCs, as well as possibly Bound_NCI. | 20:33 | |
| jonathan | I saw code that used Bound_NCI just the other day. | 20:37 | |
| Closure and Delegate PMC maybe though. | |||
|
20:38
rindolf joined
|
|||
| rindolf | Hi all. | 20:38 | |
| chromatic | You may have seen Bound_NCI in default. | 20:39 | |
| jonathan | chromatic: I think actually Object. | ||
| chromatic | Hm, you're right. | 20:40 | |
| We *could* merge all Fixed and Resizable arrays if we had vtable swap. | 20:42 | ||
| ... and if we wanted to store a union in the array store instead of raw INTVAL, FLOATVAL, STRING *, or PMC *. | 20:43 | ||
| Though how you override that sort of thing in PIR is tricky. | |||
|
20:46
jkva joined
|
|||
| jkva peeks in | 20:46 | ||
| masak | hi rindolf | 20:47 | |
| rindolf | masak: what's up? | ||
| purl | Your face, rindolf. That's what. | ||
| masak | purl: keep quiet while grownups are talking. | 20:48 | |
| purl | OK, masak. | ||
| rindolf | How old is purl? | ||
| masak | rindolf: very much is up at present. | ||
| rindolf: she's a bot, so she's stuck at 2 years old. | |||
| on a good day. | |||
| rindolf | masak: I know she's a bot. | 20:49 | |
| masak | rindolf: I assumed you did. | ||
| rindolf: I'm hacking at Druid right now, but also thinking about November, and a few stray modules I'm writing. I'm very happy to be toying around with so much Perl 6 code these days. | 20:50 | ||
| and you, what's up? | 20:51 | ||
| chromatic | Did anyone know we have a PMC which represents NULL? | ||
| rindolf | masak: today I struggled against subvertpy's broken python distutils setup and came out victorious. | ||
| masak | kudos. | 20:52 | |
| rindolf | masak: there's a 20 lines or so patch culminating two hours of effort. | ||
| But I had no substantial previous experience with distutils. | |||
| Previously I worked on Config-IniFiles and File-Find-Object | 20:53 | ||
| I'd like to port File-Find-Object to Rakudo once it has line numbers for errors. | |||
| masak | rindolf: you know, I still associate you with that Perl 6 critique. :) | ||
| it's funny to see you here, talking about porting things to Rakudo. | 20:54 | ||
| rindolf | masak: well, if PONIE worked, I wouldn't need to. | ||
| But it may be a fun experiment. | |||
| masak | rindolf: I know, I miss Ponie too. | 20:55 | |
| rindolf: but I don't believe you _need_ to do anything relating to Rakudo. I'm just glad you do. | |||
| rindolf | Oh! And I started trying to recruite Israeli students (and mentors) for GSoC. | 20:57 | |
| Now I'm doing too many things at once. | |||
| :-D | |||
| jonathan | chromatic: The Null PMC? | ||
| purl | i heard the null pmc was or ought to be like a C NULL ptr, so no | ||
| chromatic | That's right. | 20:58 | |
| masak | by the way, people: I'm on the brink of going cold turkey on './perl6' and always doing '../../parrot perl6.pbc' -- AND advising everyone I meet to do the same. this is a consequence of me trying the latter on Druid, and all segfaults and sudden malfunctions just going away. plus (and I don't know if I'm imagining that) it feels faster! | 20:59 | |
| jonathan | chromatic: Yes. I consider its existence - as a singleton which I hope it is - a good thing. | 21:01 | |
| dalek | r35707 | Whiteknight++ | trunk/src (2 files): | ||
| : [get_class] Undoing some of my earlier changes. We can't unify this as easily as I had hoped because there are too many different types of objects coming down the pipeline that I can't keep track of. Will try again later maybe | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35707 | |||
| jonathan | masak: Doubt it's a lot faster, and the reson you don't get teh segvs is probably because of extra checks done at shutdown in the exe. | 21:02 | |
| masak | jonathan: I don't care. I don't like the segfaults. | ||
| they slow me down when I'm coding. | |||
| jonathan | Are they just appearing after an error is thrown? | ||
| masak | no. | ||
| chromatic | You're imagining it. | 21:03 | |
| masak | they also appear after I hit Ctrl-D a few moves into a game. | ||
| jonathan | Ah. :-| | ||
| masak | chromatic: which part? the segfaults? | ||
| jonathan | fwiw, I always use the PBC. | ||
| masak | jonathan: I'm creating a perl6 alias now which does. | ||
| chromatic | masak, the speed. | 21:04 | |
| masak | chromatic: ok. | ||
| chromatic | jonathan, do you use the Null PMC? Almost nothing appears to. | ||
| masak | jonathan: they also sometimes appear randomly. that was what made me switch. | ||
| chromatic | Unless that's the same thing as PMCNULL, which I just realized may be the case. | ||
| masak, the segfaults don't appear randomly. | 21:05 | ||
| Unless your computer is haunted. | |||
| masak | chromatic: I have a game which randomizes coordinates. so yes. | ||
| chromatic | No. That's bollocks. | ||
| masak | ok. | ||
| chromatic | I *wrote* the fakecutable code. That's not possible. | ||
| There are three differences between ./perl6 and ../../parrot perl6.pbc. | 21:06 | ||
| First, ./perl6 *contains* perl6.pbc, stored in the constant segment of the binary. | |||
| Second, ./perl6 *contains* most of src/main.c of Parrot, minus a little bit of argument processing. | |||
| Finally, ./perl6 enables a single flag which is off in Parrot by default. This flag forces explicit deallocation of all allocated resources at the end of execution. | 21:07 | ||
| Coke | chromatic: I thought that PMCNULL == the only copy of Null pmc. | ||
| but admit I haven't checked. | |||
| masak | chromatic: they occur sometimes after the computer made a move, but before the board is about to be printed. I get no error messages, just the segfault. it's not consistent, so sometimes it doesn't happen at all, but sometimes it happens just a few moves into the game. | ||
| chromatic | Coke, you may be right. Null is a singleton. | ||
| masak | chromatic: when I've run parrot perl6.pbc, I haven't had this behaviour. | ||
| chromatic | Then your computer is broken, because it is behaving non-deterministically. | 21:08 | |
| jonathan | Coke: That ws how I understood the behavior. | ||
| chromatic | Or someone modified pbc_to_exe to do something very different than when particle and I originally wrote it. | ||
| jonathan | chromatic: Remember that if we have a GC bug, it may show differently depending on the memory allocations etc that would be different. Perhaps. | 21:09 | |
| That's all I can think of though. :-| | |||
| nom ready...eating time! | |||
| chromatic | Sure, that's a third possiblity -- but the errors are still there in Parrot or Rakudo and have nothing to do with ./perl6. | ||
| masak | I think the issue is important, because many people are going to try Rakudo through ./perl6, and it works much worse than parrot perl6.pbc. | 21:10 | |
| I don't really care that it's not possible. it's what happens. | |||
| and it's started happening increasingly often, unfortunately. | |||
| chromatic | Telling people "Don't use ./perl6!" is voodoo. It won't fix the problem. The problem is not in ./perl6. | 21:12 | |
| masak | I want people to experience fewer crashes when they run my game. | 21:13 | |
| that's why I'm going to advise them to run parrot perl6.pbc, because in my experience, that helps. | |||
| I have not had any segfaults since I switched. not one. | 21:14 | ||
| chromatic | You're free to give whatever advice you want, but your advice is bad. | ||
| masak | chromatic: I hear you. | ||
| and I also respect your knowledge about this. | |||
| I just don't see how to apply what you're saying to my experience. | 21:15 | ||
| the two are in direct contradiction. | 21:16 | ||
| chromatic | You could read the code and find out for yourself. | ||
| masak | looking for segfaults? I guess. | ||
| chromatic | No, about the differences between ../../parrot perl6.pbc and ./perl6 | ||
| masak | chromatic: nono, I _believe_ you that there's no difference in the code. it's not that. | 21:17 | |
| chromatic | If what I'm saying is true (and, let's face it, the guy who wrote the code should know something about it), then there are two possibilities remaining. | ||
| masak | I'm saying there's a difference in the running experience. | ||
| chromatic | Either your computer is haunted (which is non-deterministic, and in that case your advice won't apply to anyone else)... | ||
| ... or what jonathan says is true (and it is). | |||
| In the latter case, then *any* change to Rakudo will change the memory layout and characteristics of a program, in which case we're back to the voodoo advice. | 21:18 | ||
| masak | so it's enough if I find one other person who also has segfaults on his computer? | ||
| chromatic | I believe that you have segfaults. | ||
| masak | I mean, with perl6 but not with parrot perl6/pbc/ | ||
| chromatic | Yes, there are double-free errors on shutdown with ./perl6. | ||
| You can reproduce them with ../../parrot --leak-test perl6.pbc. | 21:19 | ||
| masak | I also have other segfaults, as I said. | ||
| chromatic | Completely deterministic. | ||
| Any other segfaults are still present in Rakudo and/or Parrot, and the memory layout and usage of any specific program will or will not trigger them. | |||
| Some you will run into with ./perl6 and some you will run into with ../../parrot perl6.pbc. | |||
| masak | ok. | 21:20 | |
| chromatic | There is NO general rule for avoiding them altogether, unless you know in your head exactly how each invocation method changes the memory layout, in which case you should know exactly how to solve the problem. | ||
| masak | now I actually understand the issue better. | ||
| thanks. | |||
| chromatic | You're welcome. | ||
| I don't mean to be harsh about this, but ./perl6 keeps getting blamed for things outside of its responsibility. | 21:21 | ||
| masak | chromatic: yes, I can imagine. | ||
| chromatic | I deliberately enabled the --leak-test flag there *so people would report and fix these problems*. | ||
| masak | chromatic: I was just going to ask about that. | ||
| it doesn't exactly heighten the user experience. | |||
| chromatic | Yep. | 21:22 | |
| Someone should fix it. | |||
| masak | :P | ||
| I'm saying this as someone who uses Rakudo a lot. segfaults suck. | |||
| chromatic | You don't have to tell me twice. | ||
| I've fixed countless segfaults in Parrot over the past several years. | 21:23 | ||
| pmichaud for one will tell you how much more usable it is now. | |||
| masak | I believe that too. | ||
| I also understand that they are probably difficult-ish to track down. | |||
| chromatic | With 10-20 lines of PIR? Not really. | ||
| masak | oh? that makes me more hopeful about doing it myself! :D | 21:24 | |
| jhorwitz | chromatic: got that " '' is not a valid vtable function name " bug from last week down to a few lines of PIR. TT #185 | ||
| chromatic | Thanks! | 21:25 | |
| jhorwitz | hopefully my analysis was correct | ||
| masak | chromatic: so far, I've been reporting segfaults-at-error with my rakudobugs, but since no-one has picked them up, I didn't really think anyone saw them. I just wanted to include them when they appeared to show how annying they are. | ||
| chromatic | Most of them are probably that really difficult double-free of contexts error. | 21:26 | |
| masak | probably. | ||
| purl | Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder. | ||
| chromatic | At least, the ones you see when the program ends (whether due to an uncaught exception or normal termination). | ||
| masak | chromatic: the shortest program I know which reproduces it is this: 'sub a { exit() }; sub b { a }; b' | 21:27 | |
| that's a pretty common use case, btw. exiting from two subs deep. | |||
| chromatic | Let me try that and see how it looks. | 21:28 | |
| masak | chromatic++ | ||
| there's a TT ticket about that program. | 21:29 | ||
| chromatic | Narrowing these down to a few lines of PIR really makes debugging much, much easier. | ||
| masak | no, RT. of course. | ||
| chromatic: I'll keep that in mind. | |||
| viklund and I did that a bit during the summer at one point when we really, really needed November to work. | 21:30 | ||
| chromatic | masak, that's the double-free error there. | ||
| masak | yes. | ||
| jkva | w00t, all tests succesful | 21:32 | |
|
21:35
particle1 joined
|
|||
| Infinoid | jonathan: ping | 21:58 | |
| jonathan | Infinoid: pong | 22:02 | |
| Infinoid | jonathan: the current state of pbc annotations has some differences from the stuff in PDD13, and I'm not sure what to do about it. | 22:03 | |
| jonathan | Oh? | ||
| That's curious...I thought I'd reviewed PDD13 as I was implementing them... | |||
| Infinoid | well, I don't understand either of them very well, to be honest. | 22:04 | |
| anyway, PDD13 has an Annotations (segment), an Annotation, and an AnnotationKeys | |||
| jonathan | Are we talking about the PMCs or the bytecode format? | ||
| Infinoid | PMCs | ||
| however, packfile.h has an additional Annotations_Group struct, and I'm not really sure how to wrap it | 22:05 | ||
| jonathan | Let me check it... | ||
| Infinoid | thanks | 22:06 | |
| jonathan | Ah, hmm. | ||
| I wonder if the groups were added in at some point... | 22:07 | ||
| Infinoid | I need to read the earlier parts of the PDD I guess, knowing what they are would probably help me. | ||
| jonathan | And the PMC bit wasn't updated to cover it. | ||
| Infinoid | ah. :) | ||
| anyway, readonly access through PMCs is pretty much done except for the annotations | |||
| jonathan | Oh, great! :-) | ||
| Infinoid++ | 22:08 | ||
| Infinoid | for now, I can just wrap all the available structures | ||
| jonathan | That is probably most sensible, yes. | ||
| Well, perhaps. | |||
| Hmm...let me think a moment... | |||
| Infinoid | things have gone pretty nicely according to the API documented in the PDD until now, though. | 22:09 | |
| jonathan | I think as a first cut just wrapping them will be fine. | 22:10 | |
| And adding a get_groups method along the lines of the get_keys one. | |||
|
22:11
jeremiah joined
|
|||
| Infinoid | ok, thanks. I can do that. And we'll change either the spec or reality to match the other, at a later point. I don't really want to get into changing internals around yet, since I haven't really tried to understand them in detail. | 22:11 | |
| jeremiah | Has anyone installed mod_parrot? There doesn't seem to be any documentation about how. | ||
| jonathan | jeremiah: I did manage to once. | ||
| It was non-trivial then, but things maybe have improved. | 22:12 | ||
|
22:12
Theory joined
|
|||
| jeremiah | Hmm. Okay, perhaps I'll give it a go. | 22:12 | |
| jonathan | I tried it on a Linux server I have rather than on Windows, which I don't think is supported yet. | 22:13 | |
| jeremiah: see svn.perl.org/parrot-modules/mod_pa...unk/README | 22:14 | ||
| jeremiah | Okay, I am runnung linux here. :) | ||
| jonathan: Thanks, I have that open in my browser. | |||
| jonathan | Ah, OK. I think that's as far as the documentation on how to install it goes. ;-) | 22:15 | |
| jeremiah | Time to check if Apache::Test is packaged for debian. | ||
| Nope - looks like I should do that. | 22:17 | ||
|
22:35
kid51 joined
22:43
tewk joined
22:44
wolverian joined
22:46
wolverian joined
|
|||
| lathos | So it looks like array push in rakudo takes a reference, not a copy. | 22:47 | |
| rakudo: my @out; my $i; while ( ++$i < 4 ) { push @out, $i; say @out.perl; };say @out.perl; | 22:48 | ||
| polyglotbot | OUTPUT[[1]ā¤[2, 2]ā¤[3, 3, 3]ā¤[4, 4, 4]ā¤] | ||
| masak | wow, that's even wronger than my example. | 22:49 | |
| lathos | You can work around it | 22:50 | |
| jonathan | Ouch. | ||
| lathos | rakudo: my @out; my $i; while ( ++$i < 4 ) { push @out, @([ $i ]); say @out.perl; };say @out.perl; | ||
| polyglotbot | OUTPUT[[1]ā¤[1, 2]ā¤[1, 2, 3]ā¤[1, 2, 3]ā¤] | ||
|
22:50
wolverian joined
|
|||
| lathos | But man that caused me much confusion earlier. | 22:50 | |
| masak | lathos: you know, I just submitted a rakudobug about that. :) | 22:51 | |
| lathos | I only just got back online. :) | ||
|
22:51
wolverian left
|
|||
| chromatic | lathos, want to take a break and look at some funny Unicode code? | 22:51 | |
| lathos | ... what sort of Unicode code? | 22:52 | |
| chromatic | src/string.c:2581 | ||
| processing \\xab escapes in PIR. | |||
| dalek | r35708 | simon++ | branches/strings/pseudocode (2 files): | 22:53 | |
| : Half of grapheme_copy, plus variable-width grapheme iteration. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35708 | |||
| chromatic | $S0 = iso-8859-1:"\\xab" | ||
| say $S0 | |||
|
22:53
wolverian joined
|
|||
| lathos | Feel free to commit tests to strings/pseudocode by the way. I'll steadily make them work. | 22:53 | |
| chromatic | To the best of my knowledge, it always assumes it's consumed one character of input even if it consumes and replaces more. | 22:54 | |
| lathos | Huh, hence the name I guess. | ||
| chromatic | Yeah, the name is terrible. | 22:55 | |
| At least it warns you that it probably can't possibly do the right thing. | |||
| lathos | I have a problem with the 'we did it in place' branch. | 23:00 | |
| Because string_unescape_one doesn't change anything in the string in-place or otherwise. | |||
|
23:01
TiMBuS joined
23:06
tomyan joined
|
|||
| lathos | This also hurts my encoding sensibilities: r = (Parrot_UInt4)((unsigned char *)result->strstart)[offs]; | 23:09 | |
| chromatic | It should hurt all kinds of sensibilities. | 23:10 | |
| lathos | Oh wait, it's guaranteed to be a C string. | ||
|
23:10
Eevee joined
|
|||
| lathos | That d==offs branch is really awful though. Because everything after an escape char will fail since the two pointers move at different speeds. | 23:13 | |
| Or rather, after it sees "\\x12" then d=1 and offset=4 and they'll never be equal again. | |||
| chromatic | That's at least part of the problem. | ||
| lathos | IN fact I have no idae what "d" is doing there. | 23:14 | |
| Oh, length of destination string. | 23:15 | ||
|
23:37
mberends joined
23:38
Eevee joined
|
|||
| mberends | chromatic: ping | 23:46 | |
|
23:56
particle joined
|
|||