|
Parrot 3.5.0 "Menelaus" released | parrot.org | Log: irclog.perlgeek.de/parrot/today Set by moderator on 27 June 2011. |
|||
| pmichaud | back again | 00:05 | |
| we decided some time ago that language interoperability was going to take place via methods on compiler objects | |||
| that's exactly what the p6regex.pbc provides | 00:06 | ||
| indeed, this is partly a reaction to the old (bad) way of doing things, where compilers were invokable subroutines instead of full-fledged objects | 00:07 | ||
| so, what we really want to have here then, is | 00:08 | ||
| NotFound | Fine, but the example you've provided with a compiler object also needed global namespace search. | ||
| pmichaud | I said it was going away. | ||
| several times. | |||
| I can't just fix it right now to be the way it should be -- that really needs a deprecation cycle. | 00:09 | ||
| NotFound | And I asked for something that can be used now without fear of deperactions. A lilltle misunderstanding. | 00:10 | |
| pmichaud | actually, you asked how to use the regex engine from pir. | ||
| so yes, a misunderstanding. | 00:11 | ||
| NotFound | <NotFound> It will be possible to write a regex library with an api designed to be easy to replace its internals later? | ||
| pmichaud | yes, it's possible. I even described the API. | ||
| but it *will* be possible, not it *is possible today* | 00:12 | ||
| NotFound | Looks like the word "easy" is the key today ;) | ||
| pmichaud | I'm sorry that I can't just change P6Regex's .compile method to do the right thing today. | ||
| If I do that, I'll break an existing API. | |||
| dalek | rrot/soh-cah-toa/hbdb: ea395de | soh_cah_toa++ | src/hbdb.c: Fixed segfault and 'command_table' so that it doesn't generate any build warnings with g++ or gcc |
00:13 | |
| pmichaud | I just don't see "look up compiler object", "invoke .compile method", as being "internals" | 00:14 | |
| NotFound | From my external point of view everything in nqp is internal and subject to change. | 00:17 | |
| pmichaud | Fair enough. I can say that the basic structure of "Obtain compiler object. Invoke .compile on that object" is going to be the basic interface to the regex library. (The other stuff about looking up things in a namespace will definitely disappear.) | 00:19 | |
| I can add in a temporary method on the compiler object that does the wrapping for you and implements the longer-term API if you like, but it'll be temporary until the standard method can be fixed. | 00:20 | ||
| (which could be a longish period of time) | |||
| (i.e., the temporary api method could hang around for quite a while.) | |||
| just a sec | |||
| NotFound | pmichaud: maybe not a bad idea, if the temporary will last some time for easy transistion. | 00:21 | |
|
00:21
whiteknight left,
whiteknight joined
|
|||
| NotFound | Also, will be good if the compreg name is not subject to change. | 00:22 | |
| pmichaud | I'm certain that it will change, but I have a good reason for that. | ||
| There's going to need to be a transition period between the regex engine that nqp-rx provides and the new one that comes with 6model | |||
| so, we're going to have to have two regex compilers available during that transition | 00:23 | ||
| that way people can decide when they're ready to switch over to the 6model version | |||
| and as part of that switch, they'll switch the name of the compiler to the 6model regex compiler. | |||
| the rest of the API can remain the same. | 00:24 | ||
| NotFound | Well, if the engines are going to be different, I guess trying to hide the difference will be pointless. | 00:25 | |
| whiteknight | how does the performance of the new engine compare to what is in nqp-rx now? | ||
| pmichaud | it's still under development, but initially I'm guessing about a 30% speed improvement. don't have a good benchmark. | ||
| after LTM is implemented, I'm guessing an 80% improvement in grammar parsing. | |||
| whiteknight | okay, I will take an educated guess | 00:26 | |
| oh wow | |||
| pmichaud | yes, it should be a dramatic improvement. | ||
| whiteknight | that's "hold on, let me pick my jaw up off the floor" better | ||
| pmichaud | the new engine avoids a ton of method calls. Also, we have native types in objects so we can avoid a ton of boxing/unboxing that nqp-rx has to do now. | ||
| whiteknight | yes, native types is a huge deal. Rosella for one could benefit a huge deal from that improvement alone | 00:27 | |
| pmichaud | LTM takes what is currently a recursive-descent sort of process and turns it into a finite-state-automata sort of process, at least for selection among alternatives. | ||
|
00:30
theory left,
daniel-s joined
00:32
Coke left
00:33
Coke joined
|
|||
| whiteknight | plobsing: ping | 00:41 | |
| dalek | rrot/whiteknight/packfilewrapper: e489677 | Whiteknight++ | t/pmc/packfileview.t: Add in some stub test code to test .trigger('init'), but it doesn't work and I don't know why |
||
| whiteknight | I cannot figure out precisely what the differences are between PBC_MAIN and PBC_PBC, and when each should be used | 00:47 | |
| it looks to me like PBC_PBC doesn't do anything | 00:48 | ||
| or maybe it does, but I can't figure out exactly what | 00:49 | ||
| we need to untangle this crap | |||
| soh_cah_toa couldn't agree more | 00:50 | ||
| whiteknight | I don't understand why we don't just have a function that says "Give me a flag, and I'll go through the packfile and execute all the Subs with that flag" | ||
| but instead, we have the beauty of src/packfile/do_sub_pragmas, which is horrible | 00:51 | ||
| I am starting to suspect that we can remove PBC_PBC, especially after we added main_sub handling to PackFile* | 00:52 | ||
| cotto_work | whiteknight: istr trying to rip it out, with hilarious results | 00:53 | |
| whiteknight | cotto_work: we've done a lot of detangling work | ||
| the biggest problem is the extremely tangled web of garbage semantics that have been attached to load_bytecode over the years | 00:54 | ||
| cotto_work | whiteknight: I wouldn't miss it a bit. | ||
| whiteknight | I'm going to file a deprecation ticket, and I'll start a branch eventually | ||
| Also, I want to deprecate Eval, and old PackFile API functions | |||
| since I couldn't get those mentioned at #ps, can I get a greenlight on those? | |||
| pmichaud | fwiw, I want a function that says | 00:55 | |
| "Give me a flag, and I'll go through the packfile and return all of the subs with that flag" | |||
| whiteknight | TT #2140, #1969 | 00:56 | |
| pmichaud | executing them should be up to me | ||
| whiteknight | pmichaud: that's my thought exactly | ||
| pmichaud: and instead of having just :load, :init, and :main flags, I want to have :flag("arbitrary string") | |||
| pmichaud | exactly. | ||
| whiteknight | okay, it's good to see we are on the same page :) | ||
| pmichaud | (we discussed this before; you just said "execute all of the Subs with that flag" above and I want to make sure it's "return me all of the Subs with that flag" instead) | 00:57 | |
| whiteknight | yes, I'm trying to take this in the right direction by baby steps | ||
| cotto_work | The PackfileWrapper does that now. | ||
| whiteknight | pmichaud: I don't know if you've seen the new PackfileView PMC I've been working on. It's like Eval plus a good interface and more features | ||
| cotto_work | er, view | ||
| pmichaud | haven't seen it yet, no. I look forward to seeing it though :) | ||
| cotto_work | It's nice. | 00:58 | |
| whiteknight | cotto_work: PackfileView.trigger("init") doesn't work. I just tried testing it | ||
| cotto_work: hence my rant about PBC_PBC | |||
| cotto_work | whiteknight: more tests | ||
| gotcha | |||
| whiteknight | PackfileView.trigger("load") does work beautifully, but only works once | ||
| because....We magically and helpfully clear :load and :init flags after we've executed a sub | 00:59 | ||
| cotto_work | sigh | ||
| pmichaud | ouch ouch ouch | ||
| whiteknight | and we have to do that because Parrot tries to magically execute subs automatically too often | ||
| pmichaud | Bad Parrot. No cracker. | ||
| cotto_work | double sign | ||
| *sigh | |||
| whiteknight | tell me about it | ||
| load_bytecode is the single biggest culprit | |||
| I am going to add a new form of load_bytecode that performs ZERO magic, and returns a PackfileView PMC | 01:00 | ||
| then, PackfileView will have methods to return lists of subs by flag, and the user can do whatever | |||
| cotto_work | load_bytecode_stupidly | ||
| whiteknight | load_bytecode_the_right_way | ||
| also, load_bytecode should not compile non-bytecode | |||
| Compiler.compile() should do that | 01:01 | ||
| or whatever the interface is to your particular compiler object | |||
| cotto_work | I laugh as a defensive mechanism. | ||
| dalek | rrot: f7985d1 | pmichaud++ | ext/nqp-rx/src/stage0/ (3 files): Bring in latest version of nqp-rx, including 'make_regex' method should be available on all future regex compilers, at least for a while. |
||
| whiteknight | cotto_work: you need more defense. This code might attack you in your sleep | ||
| whiteknight | cotto_work: can I get a greenlight on those two deprecation items? I want to get notices in before 3.6 | 01:02 | |
| also, I should open a ticket now for load_bytecode. I want to warn people that it's going to change, even if I haven't developed the alternative yet | |||
| pmichaud | NotFound: as of f7985d1: gist.github.com/1068710 | ||
| cotto_work | whiteknight: which ticket? | ||
| whiteknight | cotto_work: TT #1969 for Eval PMC | 01:03 | |
| TT #2140 for the PackFile_* API functions | |||
|
01:03
kid51 joined
|
|||
| pmichaud | NotFound: I'll continue to support that API for a while -- the only thing that may change is the name of the compiler being used. | 01:03 | |
| whiteknight | I'm going to clean that subsystem up if it's the last thing I do on this earth | ||
| pmichaud | afk for a while | 01:04 | |
| cotto_work | whiteknight: is PackfileView the replacement for Eval? | 01:05 | |
| whiteknight | yes, I need to get more input from jnthn to make sure I support all the features, but as far as I can see it currently does everything Eval once did | ||
| and I've got a good upgrade path all set up | 01:06 | ||
| cotto_work | whiteknight: perfect. +1 once you specify that in the right place. | ||
| whiteknight | thanks! I'm going to add that to apy.yaml now | ||
| cotto_work | replied to the ticket | 01:08 | |
| whiteknight | and the packfile API functions? | ||
| I was going to say that work fell under the same ticket as API func renaming, but I'm changing some of the signatures too, so I wanted to open a second ticket | 01:09 | ||
| basically, all functions named "PackFile_*" are being replaced with shiney new functions named "Parrot_pf_*" | |||
| cotto_work | whiteknight: 2140? | ||
| whiteknight | yeah, I think so | ||
| cotto_work | whiteknight: +1, though something that sensible hardly needs approval. | 01:10 | |
| whiteknight | I just want to make sure. Like I said, I haven't had the chance to raise the issue at #ps | 01:11 | |
| I was really hoping I would be there yesterday, but fail | |||
| cotto_work | whiteknight: sad face. I trust you saw the time change. | 01:13 | |
| whiteknight | yes, I am extremely happy about that | ||
| cotto_work | me too. You've been missed. | ||
| It's also nice how much better the name is. | 01:15 | ||
| whiteknight | yea | 01:16 | |
| soh_cah_toa | cleaner and consistent names make me VERY happy | ||
| whiteknight | srsly | 01:18 | |
| What I like is the visual separation. We can take one look at a function and say "yes, this is an exported API function" | |||
| plobsing | whiteknight: pong | 01:19 | |
| soh_cah_toa | exactly | ||
| whiteknight | plobsing: I'm trying to get a handle on PBC_PBC. I'm not entirely certain that flag in do_sub_pragmas does anything | ||
| I want to try removing it in a branch, but I don't want to waste my time if there is some mysterious hidden purpose that we can't live without | 01:20 | ||
| plobsing | I remember it doing much the same as another flag, but I cannot recall which. perhaps :main. | ||
| whiteknight | yes, it's almost exactly identical to PBC_MAIN | ||
| plobsing | let me check | ||
| whiteknight | but it doesn't cause :init subs to execute. PBC_MAIN does | ||
| PBC_PBC does cause the :main sub to be set in the initial context, but I don't think we need that anymore, now that packfiles keep track of the mainsub | 01:22 | ||
| plobsing: also, I want to start removing all this pragma code, and replace it with a few special purpose functions: One to return an array of all :init Subs, and one to return an array of all :load subs | 01:23 | ||
| We expose those to the users, and let the user choose what and when to execute | |||
| plobsing | that seems like a good objective | ||
| whiteknight | instead of all this magic do_sub_pragmas magic, with that function getting called at all sorts of random times, and needing to clear flags so subs don't execute twice, etc | ||
| I'm passed the point of antacids. I need to eat boxes of chalk when I hack parrot | 01:24 | ||
| plobsing | if PBC_PBC doesn't trigger :init subs, how does Parrot_pf_prepare_packfile_init work? | 01:25 | |
| whiteknight | It doesn't work | 01:27 | |
| at least, I wrote up a test for it today, and it did nothing | |||
| hence my investigation | |||
| so either it's doing something subtle and magical that I can't figure out, or it's sarlac fodder | 01:28 | ||
| and if you can't figure anything out, I'll invest the tuits to try ripping it out | |||
| cotto_work | I'm digging through ancient history to see if I can unearth anything of relevance. | 01:31 | |
| plobsing | pretty sure you can't rip it out. it seems to be used by a lot of important stuff. | ||
| it appears you could try to merge it with PBC_MAIN | 01:32 | ||
| cotto_work | My guess is that it means a pbc file is being loaded directly. I have no idea if that holds up. | ||
| whiteknight | At the very least, I want to get it documented | 01:33 | |
| I'll play with it eventually | |||
| plobsing | it provides the semantics underlying Parrot_pbc_read() which (while deprecated) is used *everywhere* | ||
| cotto_work | s/loaded/run/ | 01:34 | |
| That's the most sense I can make of it. | 01:35 | ||
| plobsing | I think a concerted effort to merge PBC_MAIN and PBC_PBC would either be successful or give sufficient insight to sort out the difference. | ||
| cotto_work | +1 | 01:36 | |
| unfortunately I don't have hacking time for ~3+ hours, but I'll be glad to jump in later. | |||
| cotto_work goes | 01:40 | ||
| dalek | TT #2144 created by whiteknight++: Deprecate do_sub_pragmas | 01:45 | |
| TT #2144: trac.parrot.org/parrot/ticket/2144 | |||
| whiteknight | opening up deprecation tickets makes me so very very happy | 01:48 | |
| Parrot_pbc_read is actually not used in too many places. And there's a new function for reading in bytecode files exposed through the embedding API that doesn't use Parrot_pbc_load without issues | 01:50 | ||
| although, I think the embedding API function does do_sub_pragmas(PBC_PBC), so I need to see if that's necessary | |||
| I may have cargo-culted that part | 01:55 | ||
| anyway, I'm out for the night. Will stare at all this angrily tomorrow morning | 01:56 | ||
|
01:57
whiteknight left
|
|||
| dalek | rrot/soh-cah-toa/hbdb: ddbbfa9 | soh_cah_toa++ | src/hbdb.c: Removed NUM_CMDS and a few unnecessary comments since it did not end up being used |
02:16 | |
| rrot/soh-cah-toa/hbdb: 7133cd9 | soh_cah_toa++ | frontend/parrot_debugger/main.c: Made t/src/checkdepend.t pass by temporarily renaming frontend/parrot_debugger/main.c. This was because I removed the Makefile target for 'parrot_debugger' a long time ago since I plan on nuking it once HBDB is a little more feature-full. |
|||
| rrot/soh-cah-toa/hbdb: f54b5df | soh_cah_toa++ | frontend/parrot_debugger/main.c.REMOVEME: Forgot to add renamed file from previous commit |
02:18 | ||
| rrot/soh-cah-toa/hbdb: c8c63f0 | jkeenan++ | MANIFEST (2 files): Run tools/dev/mk_manifest_and_skip.pl to update MANIFEST and MANFIEST.SKIP. |
02:22 | ||
| soh_cah_toa | kid51++: thank you | 02:23 | |
| for that and your recent commits as well. much appreciated :) | |||
| kid51 | soh_cah_toa: That's needed when you add/delete files from the repo. | ||
| soh_cah_toa | right | ||
| kid51 | I had to do it so that perl Configure.pl would complete without sounding warning | ||
| init::manifest is first step in Configure.pl | 02:24 | ||
| soh_cah_toa | whoops | ||
| kid51 | running a smolder right now | ||
| So the only file which currently has FAILs in that branch is t/tools/hbdb/cmds.t (as expected). smolder.parrot.org/app/projects/rep...ails/17111 | 02:31 | ||
| kid51 must sleep | |||
| soh_cah_toa | ok good. see ya | ||
|
02:32
kid51 left
02:40
everbrew joined
02:54
Limbic_Region left
|
|||
| plobsing | msg kid51 (re: TT #1652) the issue documented in the ticket is old, fairly well understood, and has a more-or-less reasonable workaround. Based on the current symptoms, I would posit that this is a separate issue, likely having to do with a bug in the maintenance of compiler state between 'units' (which usually correspond to .subs). | 02:54 | |
| aloha | OK. I'll deliver the message. | ||
|
02:59
lichtkind left,
everbrew left
03:05
everbrew joined
03:14
woosley joined,
jay left
03:36
giwi left
03:41
soh_cah_toa left
04:13
giwi joined
|
|||
| dalek | p: ebe6acb | pmichaud++ | src/core/NQPMu.pm: Parrot's Data::Dumper apparently requires boxed arguments. |
04:18 | |
| cotto | ~~ | ||
|
04:21
everbrew_ joined
|
|||
| bubaflub | ~ | 04:23 | |
| hey cotto, can i ask you a question about VTABLE overrides? | |||
| sorear | bubaflub, does it have to be cotto? | 04:24 | |
| bubaflub | sorear: nope. | ||
| sorear | jnthn and I know rather more than we ought to about those :/ | 04:25 | |
| bubaflub | sorear: does it make sense for me to implement the is_same override for GMP Integers? | ||
| sorear: i'm thinking i shouldn't / can't and probably will just stick with is_equal* and cmp* | |||
|
04:28
everbrew_ left
|
|||
| cotto | bubaflub, don't bother. The Default implementation will be fine unless you're implementing some fancy pants semantics. | 04:28 | |
| sorear, nice to have you back. | |||
| (technical term) | 04:29 | ||
| pmclass gmp_int provides integer provides fancy_pants { ... } | 04:34 | ||
| bubaflub | roger that | 04:35 | |
| sorear | ...is_same is a vtable? eeeeew | 04:46 | |
| imo, you should never override is_same, ever | |||
| it means pointer equality | |||
| cotto | sorear, it's only implemented by default, pmcproxy, null, pointer and (inexplicably) hash | 04:47 | |
| sorear | cotto: glad to be back. | ||
| cotto | sorear, where are you in the world? | 04:48 | |
| sorear | now? san diego, ca, us | ||
| cotto | is that where you live? | ||
| sorear | yes | ||
| cotto | good to know. I suppose it means you're probably not going to be at yapc::eu though. | 04:49 | |
| seen zloyrusskiy | 04:54 | ||
| aloha | zloyrusskiy was last seen in #parrot 5 hours 7 mins ago joining the channel. | ||
| cotto | msg zloyrusskiy if cotto isn't online, his close relative cotto_work might be. ;) | 04:55 | |
| aloha | OK. I'll deliver the message. | ||
| bubaflub | do we have 'eq' for string equality or is it just plain ole == ? | 04:58 | |
| more specifically, in Winxed | 04:59 | ||
| cotto | bubaflub, winxed seems to use == for strings in its test harness | 05:03 | |
| bubaflub | cotto: great, that's what i thought | 05:04 | |
| cotto | sorear, did you see anything about mole? | ||
| sorear | What is mole? | 05:07 | |
| cotto | It's the yet unimplemented M0 overlay language. | ||
| The only form that exists is some files in a git repo describing what it needs to do and a possible syntax. | 05:08 | ||
| github.com/cotto/mole/blob/0b07b75...doc/syntax | |||
| bubaflub | is there a built in string cmp or do i need to roll my own? | 05:09 | |
|
05:10
pjcj left
|
|||
| sorear | cotto: ah, didn't think to check cotto on github, I was looking at google and wikipedia :D | 05:10 | |
| I'll check it out. | |||
| cotto | sorear, I'd like your thoughts. Just be aware that it's very embryonic. | 05:11 | |
| sorear | of course. | ||
| which best to read first? | |||
| cotto | criteria and syntax are the more important ones. They're all pretty short. | 05:12 | |
| sorear | hmm | 05:13 | |
| how do you want my thoughts? I've had a few of them | |||
| cotto | sorear, here or you can fork and send a pull request | ||
| I'm not picky. | |||
| sorear | ok. | 05:15 | |
| what do you mean by "smaller" macros than C? | 05:16 | ||
| I can imagine a mole with some stripped down lispy macros (let's call them inline functions with optional call-by-name) | 05:17 | ||
| cotto | sorear, they can't be anywhere the same way C's can. | ||
| sorear | I can also imagine not have builtin macros and relying on M4 | ||
| cotto: why not? | |||
| cotto | sorear, simplicity | ||
| sorear | I also remain unconvinced of "INSP" | 05:18 | |
| cotto | sorear, the names or the types themselves | ||
| sorear | I'm rather fond of having u?int< 8 16 32 64 >_t all at my disposal | ||
| cotto | sorear, how would you map those to M0? | 05:20 | |
| sorear | it's a (minor) gripe I have with M0, not really a mole thing as such | 05:21 | |
| at the end of syntax, why does "init_cf" have a retpc_label argument? | 05:22 | ||
| oh nm | |||
| I think "composed ops" should be renamed "macros" | 05:23 | ||
| cotto: what does calling conventions(3) mean? | 05:24 | ||
| cotto: | 05:25 | ||
| cotto | sorear, that means that the language only allows pre-defined calling conventions. | ||
| sorear | that's not really all that radical :) | ||
| most languages only allow one of a few calling conventions | |||
| has the M0 spec settled for what call_chunk means? | 05:26 | ||
| cotto | sorear, I think it has | ||
| sorear | where does the m0spec live these days? | 05:27 | |
| cotto | sorear, I don't mean that the calling conventions would change willy-nilly, just that the code that's not relevant could be omitted by manually picking the right macro (or composed op). | ||
| m0-spec branch in docs/pdds/draft/pdd32-m0.pod | |||
| github.com/parrot/parrot/blob/m0-s...d32_m0.pod | |||
| m0 spec? | |||
| aloha, m0 spec? | 05:28 | ||
| aloha | cotto: m0 spec is docs/pdds/drafts/pdd32-m0.pod in the m0-spec branch | ||
| cotto | aloha, m0 spec is also github.com/parrot/parrot/blob/m0-s...d32_m0.pod | ||
| aloha | cotto: Okay. | ||
|
05:33
fperrad joined
05:34
rurban_ joined
|
|||
| sorear | cotto: do we want mole to have "non-trivial value types"? | 05:34 | |
| cotto | sorear, elaborate? | ||
| sorear | cotto: imagine "struct point { int x, y }" in C | ||
| cotto | in that case, yes | ||
| sorear | void foo(struct point p) { // p receives the same stack layout as if foo(int x, int y) | 05:35 | |
| alternatively, we could mandate that structs are only ever accessed using pointers | |||
| if structs are always pointers, then we would have a nice property: every mole variable corresponds to exactly one m0 variable | |||
| allowing non-pointer structs means that "var point foo" causes "foo" to mean TWO m0 slots | 05:36 | ||
|
05:36
rurban left
05:37
rurban_ is now known as rurban
|
|||
| sorear | cotto: I don't see anything about call_chunk in the m0 spec. | 05:38 | |
| cotto | sorear, goto_chunk | ||
| sorear | cotto: I do not see anything in the M0 spec which can change the "current callframe pointer" | 05:39 | |
| cotto | sorear, it's implicit. Changing CF does that. | ||
| sorear | what. | ||
| cotto | The VM implementations do need to be aware that that's possible. | 05:40 | |
| sorear | that makes no sense | ||
| the current callframe pointer needs to be outside the cf | |||
| cotto | I have running code that says otherwise. | ||
| cf[CF] == cf | |||
| sorear | I'd like to see this code for myself. | 05:41 | |
| cotto | m0-prototype branch, t/m0/integration/m0_poke_caller.m0 | ||
| sorear gets a second Parrot checkout so ey can read m0-spec and m0-prototype at once | 05:42 | ||
| cotto | github.com/parrot/parrot/blob/57ad..._caller.m0 | ||
| It's a bit convoluted, but at least well-commented. | |||
| sorear | cotto: the sense-making that I need to see to beleive is in the interpreter | ||
| cotto | Ah. I have a special case for it. | 05:43 | |
| sorear | Do all registers correspond to specific offsets in the CF? | ||
| is perl5 or c/ the current m0?] | 05:44 | ||
| cotto | yes | ||
| perl5 is the more complete prototype | |||
| chromatic's working on the C implementation | 05:45 | ||
| sorear | ick ick ick ick ick | ||
| cotto | I won't say it's elegant. | 05:46 | |
| sorear | Are you willing to add the following phrase to the M0 spec? "Modifying CF or PC by any instruction is erroneous, unless it is done using the "set" opcode." | ||
| maybe all special registers need to be like that | 05:47 | ||
| cotto | i.e. don't do add_i PC, PC, 9 ? | ||
| sorear | yes | ||
| I think it's completely insane to require an m0 interpreter on a register-rich architecture to continually refetch the pc, or check for 2 in all opcodes | 05:48 | ||
| cotto | sorear, is there a reason to discourage that? I doesn't strike me as something that people would be especially tempted to do in the common case. | ||
| sorear | cotto: we should be explicit about what corners implementations are allowed to cut | 05:49 | |
| cotto | "check for 2"? | ||
| sorear, that's true. | |||
| sorear | numeric value of PC | ||
| cotto: did you come to a decision on whether non-pointerized structs should be allowed as types? | 05:54 | ||
|
05:55
zby_home left
|
|||
| cotto | thinking, but leaning toward no | 05:56 | |
| sorear, I think it makes more sense to limit the special registers to being modified by the register ops (set, set_imm, set_ref, deref) and GC/memory ops (sys_alloc, gc_alloc, copy_mem), but it does make sense to limit them. | 06:00 | ||
| actually, most of those should still be done indirectly | |||
| sorear | indirectly? | 06:01 | |
| the other thing that gets on my nerves is the fact that every goto_chunk requires a string lookup[ | |||
| cotto | operate on a non-special register PX, the do set XX, PX | 06:02 | |
| If it were numeric, there'd need to be a fixup when loading extra bytecode | |||
| sorear | why? | 06:05 | |
| I don't follow that | 06:06 | ||
| what do you mean by "extra bytecode"? | |||
| cotto | m0's equivalent of load_library | ||
| which I don't think has been specified | |||
| If chunk are numeric and goto_chunk is based on that number, those numbers will need to be updated if more than one m0 file is loaded so that the chunk numbers remain unique. | 06:11 | ||
| sorear | cotto: I still don't understand what loading extra bytecode has to do with indirect usage of sys_alloc... OH you mean goto_chunk, sorry. | ||
| cotto: still, it bothers me. in the future, when we're defining the Sub PMC, it would be really useful if Sub could contain a fast reference to a chunk | 06:12 | ||
| sorear is thinking hard about calling conventions now | 06:13 | ||
| cotto | sorear, I'm open to suggestions. It's also not out of the question for implementations to cheat. | ||
| sorear | cotto: do we want goto_chunk to be able to cross bytecode-file boundaries? | 06:14 | |
| cotto | sorear, if it doesn't, what will? | 06:16 | |
| sorear | I want to allow anonymous chunks | 06:17 | |
| I think there should be a native M0 way to refer directly to a chunk | 06:18 | ||
| like how C has function pointers | |||
| *not* closures, mind | |||
|
06:19
pjcj joined
|
|||
| sorear | I have the following slight worry | 06:19 | |
| cotto | sorear, that's an interesting proposal | 06:20 | |
| sorear | m0 code that wants to call subs needs to know how to allocate CFs | ||
| which means that all m0 code is intimately tied to a GC | |||
| and possibly worse, to an object model | 06:21 | ||
| cotto | yes. There's the possibility of optimizing the GC for that by having a dedicated cf pool. | ||
| How would it be tied to the object model? There isn't one yet. | |||
|
06:22
giwi left
06:23
giwi joined
|
|||
| dalek | rrot-gmp: 658b5e6 | bubaflub++ | / (9 files): vtable overrides for cmp* and is_equal* with tests |
06:23 | |
| bubaflub | msg dukeleto latest parrot-gmp commit finishes vtable overrides; next up is more docs and then nqp/rakudo examples. | 06:24 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | kudo/nom: b9db729 | jonathan++ | src/Perl6/Metamodel/ClassHOW.pm: Fix .^isa bug spotted by tadzik++/pmichaud++; was missing decont, as guessed. |
06:36 | |
|
06:48
pjcj left
06:55
pjcj joined
|
|||
| sorear | cotto: allocating a callframe needs to leave a certain number of words at the beginning for the GC/object model to use for polymorphic access | 07:03 | |
| somehow, the GC needs to know that this object is a callframe | |||
| and I presume we'll give callframes the PMC API | 07:04 | ||
| cotto | sorear, I haven't been thinking of them as full-fledged objects. | ||
| sorear | I just got back from thinking stuff. I'd like to try and write an implementation of mole, once I get done with last week's niecza complaints | 07:05 | |
| cotto | sorear, sweet. What tools are you thinking about using? | ||
| sorear | perl 6 (niecza) is closest on my mind | ||
| but I could be convinced to use any language with a good parser generator and a GC | 07:06 | ||
| dalek | p: 5c9cd12 | jonathan++ | src/ops/nqp.ops: Add op for checking if an attr has been initialized, thus exposing one of the recent REPR additions. |
||
| cotto | sorear, C or something that'll eventually target M0 is preferable. | 07:09 | |
| It's important that it be fast. | 07:10 | ||
| sorear | mm. | ||
| I'll dust off my yacc then. | |||
| cotto | I was looking at lemon, but it's just a variant of the traditional bison/flex method. | ||
| sorear | (really I'm more excited about an excuse to play with hygenic macro implementation than I am to do mole per se) | 07:11 | |
| fork mole, or separate repo? | |||
| cotto | not sure why that's exciting, but sure | 07:13 | |
| better than C at least | |||
| sorear | what are you caling better than C? | 07:14 | |
| cotto | sorear, whichever works better for you | ||
| hygienic macros | |||
| sorear | hmm | 07:17 | |
| cotto, it looks like "possibilities" and "syntax" are in conflict | |||
| do we or do we not want to have a new syntax? | |||
| cotto | not terribly surprising | ||
| dalek | kudo/nom: 8cb00d5 | jonathan++ | / (2 files): Fix my ($a, $, $b) = 1,2,3; |
07:19 | |
| kudo/nom: 8de8d4b | jonathan++ | / (2 files): Bump NQP_REVISION; chase 6model API update. |
|||
| kudo/nom: 672c32a | jonathan++ | src/ (2 files): Only use default attr init closure if the attribute is not otherwise initialized. Should work even if user provides their own BUILD. |
|||
| kudo/nom: 9000c38 | jonathan++ | NOMMAP.markdown: Update nommap. |
|||
| cotto | sorear, at the time I wrote that, it seemed more feasible to reuse existing compilers or toolkits than it does now. | 07:20 | |
| I'm still not a fan of writing a new compiler before we can start go get work done on top of M0, but it does appear to be the best way forward that I've looked into. | 07:21 | ||
| winxed isn't easy to retarget and pmichaud says that PCT isn't designed to output something as low-level as M0. | |||
| sorear | it generally seems to me like a given m0b code will generally be tied to one m0 implementation | 07:23 | |
| cotto | sorear, I explicitly don't want that to be the case. What gives you that idea? | ||
| sorear | since it will rely on a specific procedure for allocating callframes, perhaps a specific layout of callframes, and a specific set of ffi calls to get anything interesting done | ||
| cotto | The callframe layout is pretty well-defined. | 07:24 | |
| ffi will be very important at first, then decreasingly so as we port existing C code. | 07:25 | ||
| I'm excited to see damian talk about Perl 6 at yapc::eu. | 07:26 | ||
| sorear | how do you allocate a call frame in portable m0? | ||
|
07:26
giwi left,
giwi joined
|
|||
| sorear | I don't understand m0 spec line 914 | 07:26 | |
| cotto | In C, *x is the same as x[0]. In Perl, that doesn't apply. | 07:27 | |
| sorear | I don't understand how this is relevant to writing a m0 interpreter | ||
| cotto | It means that $cf[CF] always points at $cf, and that if you change $cf[CF], $cf needs to be made to point at the updated value. | 07:29 | |
| sorear | C interprets *x as meaning x[0] | 07:30 | |
| this is just syntax | |||
| it doesn't mean anything deep | |||
| cotto | right | ||
| sorear | so I'm very confused by that spec part | ||
|
07:30
mj41 joined
|
|||
| sorear | either it was written by somebody who doesn't get C, or maybe I'm just tired | 07:30 | |
| cotto | heh | 07:31 | |
| That's probably a think-o on my part. | 07:32 | ||
| sorear | the trip kinda messed up my sleeping | ||
| cotto | there you go | 07:33 | |
| dalek | rrot/m0-spec: bbd578c | cotto++ | docs/pdds/draft/pdd32_m0.pod: remove a confusing bit, add some safe assumptions about special registers |
||
| cotto | I'm going to be Perl6'd out after yapc::eu. It'll be great. | 07:34 | |
| sorear | yeah. I'll be following it closely | 07:35 | |
| cotto | sorear, have you heard of or looked at lemon? | 07:38 | |
| sorear | no | ||
| cotto | It's very popular not to have looked at it. | 07:39 | |
|
07:41
pjcj left
|
|||
| dalek | kudo/nom: 2898945 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Add missing multi-dispatch cache invalidation. |
07:45 | |
| kudo/nom: 3279598 | jonathan++ | NOMMAP.markdown: Remove now-resolved .Bool dispatch issue from nommap. |
|||
|
07:48
pjcj joined
08:31
Eclesia joined
|
|||
| Eclesia | hi | 08:32 | |
| dalek | kudo/podparser: b9db729 | jonathan++ | src/Perl6/Metamodel/ClassHOW.pm: Fix .^isa bug spotted by tadzik++/pmichaud++; was missing decont, as guessed. |
08:35 | |
| kudo/podparser: 8cb00d5 | jonathan++ | / (2 files): Fix my ($a, $, $b) = 1,2,3; |
|||
| kudo/podparser: 8de8d4b | jonathan++ | / (2 files): Bump NQP_REVISION; chase 6model API update. |
|||
| kudo/podparser: 672c32a | jonathan++ | src/ (2 files): Only use default attr init closure if the attribute is not otherwise initialized. Should work even if user provides their own BUILD. |
|||
| kudo/podparser: 9000c38 | jonathan++ | NOMMAP.markdown: Update nommap. |
|||
| kudo/podparser: 2898945 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Add missing multi-dispatch cache invalidation. |
|||
| kudo/podparser: 3279598 | jonathan++ | NOMMAP.markdown: Remove now-resolved .Bool dispatch issue from nommap. |
|||
| kudo/podparser: 9cd2db4 | tadzik++ | / (13 files): Merge branch 'nom' into podparser |
08:36 | ||
| kudo/podparser: 9fb8447 | tadzik++ | t/pod/01-delimited.t: Untodo a test thanks to isa fixes |
|||
| kudo/podparser: 75c79fb | tadzik++ | tools/build/Makefile.in: [Makefile] Add a podtest target |
|||
| woosley | Failed to compile parrot on Solaris :-( | 08:37 | |
| Here is the build log: pastebin.com/2WJ1HeTk | 08:38 | ||
| tadzik | oh | 08:41 | |
| bubaflub | woosley: 'Dead object found!' error is not Solaris specific - i think that's a GC bug | 08:48 | |
| tadzik | woosley: does that occur when you build with --gc=ms2? | ||
| woosley | tadzik: no, I build parrot with no options | 08:49 | |
| tadzik: perl Configure.PL && gmake | |||
|
08:50
mj41 left
|
|||
| tadzik | woosley: yes, but could you try with --gc=ms2 and see if the problem still occurs? | 08:51 | |
| dalek | kudo/nom: cc83922 | moritz++ | t/spectest.data: 6 more passing test files (now at 4.6k passing tests) |
08:52 | |
| woosley | tadzik: oh right, building... | 08:54 | |
| tadzik: build is success, thanks for the tip~~ | 09:03 | ||
|
09:07
fperrad left
09:09
fperrad joined
|
|||
| dalek | kudo/nom: 5c39eca | jonathan++ | / (3 files): Should not compose subclasses before their parent classes (will support this later probably, but for now it's a no-no). Fixes WhateverCode ~~ Callable issue. |
09:14 | |
|
09:17
pjcj left
09:25
fperrad left
09:36
fperrad joined
09:38
pjcj joined
09:56
jsut_ left
09:59
woosley left
10:03
mj41 joined
10:27
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 10:28 | |
|
10:29
silug left
|
|||
| moritz | good morning whiteknight | 10:30 | |
| Eclesia | hi whiteknight | 10:37 | |
| whiteknight | hello Eclesia, moritz. How are you two doing today? | ||
| moritz is quite relaxed | 10:38 | ||
| vaction-ish at my parents in law, hacking with a sleeping baby on my lap | 10:39 | ||
| Eclesia doing some java like every day | 10:40 | ||
| whiteknight | moritz: yeah, a warm baby sleeping on you can have quite the calming effect | 10:47 | |
|
10:47
Mask joined
10:49
Eclesia left
10:56
Mask left
10:57
Mask joined
|
|||
| dalek | kudo/nom: 1dc9308 | moritz++ | / (2 files): Bool.Int, run tests |
10:57 | |
| kudo/nom: 32ab8d4 | moritz++ | src/core/BackTrace.pm: change BackTrace handling a bit: collect all the information, and only filter on strintification |
|||
|
11:10
mj41 left
11:13
daniel-s left
11:14
ambs joined
11:17
Coke left,
Coke joined
11:24
mj41 joined
11:29
Coke left,
Coke joined
11:34
Mask left
11:54
giwi_ joined
11:55
jay joined
11:57
giwi__ joined
11:58
JimmyZ joined
11:59
giwi left
12:02
giwi_ left
12:06
lichtkind joined
|
|||
| dalek | kudo/podparser: 13ce60f | tadzik++ | / (2 files): Fix nested blocks, import more tests for that |
12:14 | |
| kudo/podparser: 587360f | tadzik++ | t/pod/01-delimited.t: Import more pod tests. We now fully pass 01-delimited.t |
|||
|
12:29
silug joined
|
|||
| dalek | kudo/podparser: 25cc743 | tadzik++ | / (3 files): Parse paragraph and abbreviated blocks, import tests for those (everything passes) |
12:29 | |
|
12:33
everbrew left
|
|||
| dalek | kudo/nom: 8f7a4ec | pmichaud++ | src/core/Nil.pm: Nil should stringify to '' without an "undefined" warning. |
12:38 | |
| kudo/podparser: 74bfbe4 | tadzik++ | / (3 files): Fix END block handling, we now pass S02-whitespace_and_comments/end-pod.t |
12:44 | ||
| kudo/nom: 1701cb2 | pmichaud++ | / (4 files): Add Stringy role. prefix:<^> enforces numeric context. Another spectest file. |
13:08 | ||
|
13:09
fperrad left
13:10
fperrad joined
|
|||
| bubaflub | ~ | 13:15 | |
| jay | Hello Parrot World | ||
| tadzik | hello jay | 13:17 | |
| jay | GMorning, tadzik | ||
| Advice: I want to write a method for a 'for' type loop which iterates over elements of a vector, a. Do you recommend looping with an integer like a traditional C for loop, or using something like shift to work directly with the elements of a? Perhaps there would be side-effects of shifting (e.g. it would destroy a)? | 13:21 | ||
| Wow, that didn't work. Must have been a special character in there, sorry. | 13:22 | ||
| dalek | kudo/nom: 0849b9d | pmichaud++ | t/spectest.data: Some t/spectest.data note updates. |
13:25 | |
| p: 0108338 | pmichaud++ | src/core/NQPMu.pm: Fix to .__dump for native attributes -- jnthn++. |
|||
| Coke STR that we currently have no advisory board. yes? | |||
| jay; you could... use an iterator? | 13:26 | ||
|
13:26
mj41 left
|
|||
| Coke | if it's a array-like thing, you can manually iterate over the elements if they always go from 1 to elems-1, but an iterator is more generic. | 13:26 | |
| in pir: $P2 = iter $P1 # get $P1's iterator | 13:27 | ||
|
13:29
UltraDM joined
|
|||
| jay | I'm looking at squaak's for() at the moment. It iterates in steps rather than over elements (NQP). But I do have a working PIR iterator example from a generic print() that I implemented. I think I can do this. | 13:29 | |
| ( early AM optimism with a cup of coffee... ) | |||
| Coke | github.com/partcl/partcl-nqp/blob/...ns.pm#L108 | ||
| if you're in nqp, I think it's much easier. | 13:30 | ||
| whiteknight | for @array -> $item { ... } | ||
| Coke | ... yes, that. ;) | ||
| jay | whiteknight: curious... is that Perl6 syntax, or something I never did in Perl5? | 13:31 | |
| whiteknight | that's perl6 syntax | ||
| moritz | the perl5 equiv would be for my $item (@array) { ... } | ||
| Coke | in perl5, that'd be for my $item (@array) { ... } | ||
| me lags. | |||
| jay | Good... feeling better about my long-term memory. | 13:32 | |
| By the way, is whiteknight++ shorthand for "applause" or "thanks"? Didn't ask yesterday. | |||
| Coke | jay: I feel your pain. on parrot projects alone, I work with, what, about 10 different languages? | ||
| ++ is karma. | |||
| karma whiteknight? | 13:33 | ||
| aloha | whiteknight? has karma of 0. | ||
| Coke | karma whiteknight | ||
| aloha | whiteknight has karma of 1649. | ||
| Coke | every ++ gets you a point. You can redeem them for... um... | ||
| jay | karma jay | ||
| aloha | jay has karma of 3. | ||
| Coke | we haven't figured that part out yet. | ||
| jay | interesting! | ||
| Coke | karma Coke | ||
| aloha | Coke has karma of 229. | ||
| atrodo | Ask whiteknight, he has a prize of something at some level | ||
| jay | jay-- | ||
| karma jay | |||
| aloha | jay has karma of 3. | ||
| Coke | ah, aloha. You've clearly forgotten about all my old karma that purl had. | ||
| you can't karma yourself. | |||
| jay | so you can't lose karma? | ||
| Coke | jay-- | ||
| jay | karma jay | 13:34 | |
| aloha | jay has karma of 2. | ||
| jay | Ah -- gotcha | ||
|
13:34
rurban_ joined
|
|||
| Coke | jay++ #offset | 13:34 | |
| jay | karma jay | ||
| aloha | jay has karma of 3. | ||
| Coke | jay: there's a lot of nqp-rx code out there. if you're looking for samples, rosella, partcl (github.com/partcl/partcl-nqp) both have a lot of it. | 13:35 | |
|
13:36
rurban left
13:37
rurban_ is now known as rurban
|
|||
| jay | Thanks. I seem to be getting better at writing functions, say in Runtime.pm. I'm less confident with methods, because I'm never sure what is what and how I need to be interacting with the PAST. | 13:38 | |
| whiteknight | every 10,000 karma points earns you a donut | 13:39 | |
| of course donuts only come in packs of 6, so you need 60,000 karma points to cash out effectively | |||
| jay | And maybe 1,000 points for a Munchkin? Those I think come in boxes as small as 20. | 13:41 | |
| Coke | nope. 25. | ||
| though the last time I asked if I could less than that, I got one free. | |||
| *get | 13:42 | ||
|
13:43
Eclesia joined
|
|||
| whiteknight is signing off for a while. will be back later | 13:45 | ||
|
13:45
whiteknight left
|
|||
| dalek | kudo/podparser: 12097c5 | tadzik++ | t/pod/04-code.t: Handle code blocks properly, import 04-code.t |
13:48 | |
| kudo/podparser: 571755c | tadzik++ | / (3 files): Handle code blocks properly, import 04-code.t |
13:49 | ||
|
13:51
giwi__ left
|
|||
| benabik | ~~ | 14:01 | |
|
14:01
GodFather joined
|
|||
| tadzik | hello benabik | 14:01 | |
| NotFound | Everytime you mention C++, C win karma. No justice ;) | 14:04 | |
| tadzik | maybe we should've named Perl6 Perl++ after all ;) | 14:05 | |
| jay | I just realized something: when I asked that question about a for-type of loop, the answers were about doing it in NQP-rx and PIR. This seems to be very different from building a language and writing new 'for' and 'for-init' actions. Writing actions for a new grammar really seems (to me) like a very different beast. | 14:06 | |
|
14:06
giwi joined
|
|||
| jay | So I need to be more aware of my own questions. Sorry. | 14:07 | |
| dalek | kudo/podparser: 40859e6 | tadzik++ | / (2 files): Fix comment block parsing, add tests |
14:08 | |
| Coke | context is key, yes. | 14:14 | |
| if you want your HLL to have a for loop, you could chec out, for example: | 14:15 | ||
| github.com/partcl/partcl-nqp/blob/...nds/for.pm # a runtime version written in nqp | |||
| ... but you probably want a compile time version: | |||
| ... which I cannot find at the moment. ;) | 14:16 | ||
| jay | lol yes, compile-time version. Thanks. Let me struggle with this, though, I see PAST:Op.new with :pasttype('for') which seems to be iterating over elements of a child. Character-building. | 14:17 | |
|
14:20
hercynium joined
|
|||
| Coke | (turns out partcl sucks as an example in a lot of cases, because the /grammar/ isn't like any other language. | 14:21 | |
| jay | Ooo.... I got something. Not the right answer, but at least it didn't barf! > > | ||
| for (i in c(1,2,3)) { print(i) } | |||
| 1 2 3 | |||
| > | |||
| NotFound | jay++ | 14:22 | |
| Eclesia think jay will have a hll language before me | 14:23 | ||
|
14:23
JimmyZ_ joined
|
|||
| jay | jay thinks his HLL language might do unpredictable things... like his old Perl5 code. | 14:24 | |
| Coke | jay - you're probably referring to the parent node instead of the child node. | 14:25 | |
| dalek | kudo/nom: 3aa3352 | moritz++ | t/spectest.data: two more passing test files |
||
|
14:27
jsut_ joined
|
|||
| jay | Coke... I eliminated all squaak's step stuff, the defined loop in this way in place of all the while stuff: | 14:28 | |
| my $loop := PAST::Op.new( $iter, $body, :pasttype('for'), :node($/) ); | |||
|
14:28
JimmyZ left
14:29
JimmyZ_ is now known as JimmyZ
14:36
mj41 joined
|
|||
| jay | " Iterate over the first child in groups of elements given by arity (default 1). For each iteration, invoke the second child, passing the elements as parameters. " How does the body (the second child) access the parameters? | 14:37 | |
| This is PAST::Op.new ... :pasttype('for') | |||
| as documented docs.parrot.org/parrot/devel/html/d...t.pod.html | 14:38 | ||
| jnthn__ | jay: Same way as any block gets/accesses parameters | ||
| (PAST::Var with scope parameter) | 14:40 | ||
| Coke | msg alester Have you seen the talk about compiler annotations on p5p? | 14:41 | |
| aloha | OK. I'll deliver the message. | ||
|
14:44
mj41 left
|
|||
| jay | jnthn__++ I'm getting there. | 14:47 | |
|
14:51
kuku joined
|
|||
| dalek | kudo/nom: c12b7cc | pmichaud++ | src/core/List.pm: Fix test for $!items in List.munch(). |
14:52 | |
| kudo/nom: 5fac548 | pmichaud++ | src/core/operators.pm: Improve list handling in sequence generator. |
|||
|
14:55
darbelo joined
15:01
kuku left
15:05
UltraDM left
15:08
daniel-s joined
15:10
JimmyZ_ joined
15:14
theory joined,
JimmyZ__ joined,
JimmyZ left
15:15
JimmyZ__ is now known as JimmyZ
15:17
JimmyZ_ left
15:23
logie joined
|
|||
| dalek | kudo/podparser: 48ed49c | tadzik++ | src/Perl6/SymbolTable.pm: [SymbolTable] Ignore undefined parameters in cache key, saves a lot of "Use of uninitialized value in string context" when passing :name(Mu) |
15:26 | |
| kudo/podparser: 3a828b7 | tadzik++ | / (4 files): Parse lists properly, makes 06-lists.t |
|||
| kudo/podparser: 0fda6ab | tadzik++ | t/pod/04-code.t: Follow the decision about disallowing implicit code blocks in abbreviated and paragraph blocks in 04-code.t |
|||
|
15:30
theory left
15:33
fperrad left
|
|||
| dalek | kudo/nom: ecc173b | pmichaud++ | NOMMAP.markdown: Add NOMMAP note about $/ and $!. |
15:34 | |
|
15:36
fperrad joined
15:37
daniel-s left
15:40
mj41 joined
15:44
GodFather left
15:46
JimmyZ_ joined
15:50
JimmyZ left
15:51
JimmyZ_ is now known as JimmyZ
16:00
theory joined
16:04
Eclesia left
|
|||
| dalek | kudo/nom: 7d4d042 | pmichaud++ | / (3 files): Initial implementation of Junction type. |
16:15 | |
| kudo/nom: 15ec618 | pmichaud++ | src/core/ (6 files): Refactor .gist to more closely match the spec. |
|||
| kudo/nom: b4d5e56 | pmichaud++ | src/core/Junction.pm: Add Junction.ACCEPTS. |
|||
| kudo/nom: 5f00dbc | pmichaud++ | NOMMAP.markdown: Add Junction dispatch to NOMMAP. |
|||
|
16:20
JimmyZ left
16:24
mj41 left
|
|||
| cotto_work | ~~ | 16:28 | |
| jay | If anyone is bored (!) and I just posted a note to parrot-users documenting the current state of my (failed) attempt to implement a new 'for' grammar/action. I think I must be close, but just don't handle the loop elements and parameters properly with the body. Off to lunch... gone crosseyed. | 16:30 | |
|
16:36
everbrew joined
16:40
lucian joined,
rurban left
16:41
rurban joined
|
|||
| dalek | kudo/nom: 1e4b69a | moritz++ | t/spectest.data: three more passing test files |
16:47 | |
|
16:48
jevin joined
|
|||
| dukeleto | NotFound: ping | 17:06 | |
| msg NotFound what is the license of Winxed? winxed.git doesn't have a license file. Since winxed is snapshotted into parrot.git, we need to be clear about licensing | 17:07 | ||
| aloha | OK. I'll deliver the message. | ||
| cotto_work | dukeleto: good catch | ||
| dukeleto | cotto_work: i am working through a huge list of questions that is the application for the Software Freedom Conservancy | ||
| cotto_work | dukeleto++ | 17:10 | |
| NotFound | dukeleto: | 17:17 | |
| pong | |||
| Rigth, I forgot again to put a license file. | 17:18 | ||
| dukeleto | NotFound: i can haz license? | 17:25 | |
| NotFound: also, please put it into ext/winxed in parrot.git | |||
| dalek | nxed: 0bcf37f | NotFound++ | LICENSE: license |
17:31 | |
| rrot: 41fc268 | NotFound++ | ext/winxed/LICENSE: winxed license |
17:33 | ||
| NotFound | Done | 17:34 | |
|
17:38
Eclesia joined
|
|||
| Eclesia | hi | 17:38 | |
| dukeleto | NotFound++ | ||
| Eclesia: how goes it? | |||
| Eclesia | how goes what ? | 17:39 | |
| dalek | kudo/nom: a05e994 | pmichaud++ | src/core/Whatever.pm: Let Whatever.gist return '*' instead of 'Whatever<...>'. Perhaps Whatever.Str should do something similar. |
||
| dukeleto | Eclesia: it is just a saying. It means "hello!" | ||
| Eclesia | gine then | 17:40 | |
| fine* | |||
| NotFound | What's up, doc? | ||
| dukeleto | Eclesia: may I ask, what is your mother tongue? | ||
| Eclesia: i.e. native language | |||
| Eclesia | dukeleto: from the country of smelly cheese :D | 17:41 | |
| dukeleto: (france) | 17:42 | ||
| NotFound | You know what's the problem on learning C? The lack of native teachers ;) | ||
| (But maybe the joke is older than C) | 17:43 | ||
|
17:55
dmalcolm joined
18:02
mj41 joined
|
|||
| plobsing | NotFound: the problem with learning human languages is that people tend to not like it when you try to dissect the interpreter to figure out what is really going on. | 18:08 | |
| benabik | The debugging interface for the natural language compiler needs work. | 18:11 | |
|
18:12
mj41 left
|
|||
| NotFound | plobsing: that's the problem with closed source. | 18:19 | |
|
18:21
logie left
18:28
estrabd joined
18:34
whiteknight joined,
giwi left
18:36
giwi joined
|
|||
| whiteknight | good afternoon, #parrot | 18:37 | |
| Eclesia | good evening whiteknight | 18:40 | |
| whiteknight | hello Eclesia. How is the hacking going today? | 18:43 | |
| Eclesia | improving tokenizer | ||
| going fine | |||
|
18:46
silug left
|
|||
| whiteknight | so I haven't taken a lot of time to really study it. What is your Eria project about? | 18:50 | |
| Eclesia | whiteknight: some kind of multi-syntax model (extendable) and a default backend language (static typed, object oriented and with contracts). | 18:53 | |
| whiteknight: also aiming to have it cross vm. make it a specification if possible. I'll implement it on apache harmony after parrot | 18:54 | ||
| whiteknight | oh nice | 18:55 | |
| Eclesia would like it to be on a 'public domain' vm ... but haven't found one :( | 18:56 | ||
|
18:57
lucian left
18:58
logie joined
|
|||
| NotFound | Eclesia: UCSD p-code? | 19:04 | |
| atrodo | NotFound> I wondered the same thing myself | ||
|
19:05
preflex left
19:07
preflex joined
|
|||
| Eclesia | NotFound: that looks nice. | 19:14 | |
| whiteknight | msg plobsing I removed all calls to Parrot_pf_prepare_packfile_init, and do_sub_pragmas(PBC_PBC). builds and all tests pass. | 19:15 | |
| aloha | OK. I'll deliver the message. | ||
|
19:33
preflex left
19:36
jsut joined
|
|||
| whiteknight | kid51: ping | 19:36 | |
|
19:36
preflex joined
|
|||
| whiteknight | msg kid51 The whiteknight/packfilewrapper branch is mergible, as far as I am concerned. Represents feature additions, no real feature changes. I would like to merge it tonight if possible, but will wait till after the release if you prefer. Let me know | 19:37 | |
| aloha | OK. I'll deliver the message. | ||
|
19:40
hercynium left
|
|||
| dalek | kudo/nom: 51d0614 | pmichaud++ | src/core/Cool.pm: Fix some copy-paste errors in Cool's string subs. |
19:40 | |
|
19:40
jsut_ left
|
|||
| dalek | nxed: 51fa079 | NotFound++ | winxedst1.winxed: Indirect attribute access. |
19:43 | |
| kudo/nom: 49b4b78 | moritz++ | / (4 files): roots and tests |
|||
| NotFound | whiteknight: ping | 19:45 | |
| whiteknight | pong | ||
| NotFound | whiteknight: Do you think that feature will allow to get rid of the bulitin getattribute? | ||
| whiteknight | probably, yes | 19:46 | |
| NotFound | Good | ||
| I'm going to keep it for some time, anyway. | |||
| whiteknight | ok | 19:47 | |
| dalek | rrot/whiteknight/pbc_pbc: 820df60 | Whiteknight++ | / (4 files): Remove PBC_PBC flag, with no apparent ill effects |
19:48 | |
|
19:53
soh_cah_toa joined
|
|||
| dalek | p: 7426748 | pmichaud++ | src/core/NQPMu.pm: Remove extra boxing... turns out the .__dump issue was in NQP, not Parrot. |
19:57 | |
|
20:07
pjcj left
20:28
pjcj joined,
mj41 joined
|
|||
| cotto_work | whiteknight: I'm quite surprised that so simple a patch works. | 20:33 | |
| whiteknight | cotto_work: I've got more work to do in that branch. I might be able to get *much* further along with a comprehensive refactor than I anticipated | 20:34 | |
| it's turning out that we've done a heck of a lot to make all this code unnecessary | 20:35 | ||
| benabik | Which code is this? | ||
| whiteknight | especially our improved handling of main subs in PackFile* | ||
| benabik: pragma-related code in src/packfile/api.c | |||
| cotto_work: I think I can get rid of PBC_MAIN too, for that exact reason | 20:36 | ||
| cotto_work | whiteknight: even better | 20:39 | |
|
20:44
silug joined
|
|||
| whiteknight | We're going to have the system pmichaud and I were talking about last night, as early as 3.7. | 20:44 | |
| You'll get back a PackfileView, you'll call pf.all_subs('init') and get back an array of those subs for you to execute at your leisure | 20:45 | ||
| and because you're executing them directly, not in a nested runloop, there are probably performance and stability wins | |||
| I'll add in a new load_bytecode variant with the new semantics, deprecate the old one too | |||
| bubaflub | do we have a pbc migrator between versions? | 20:46 | |
| whiteknight | no | 20:47 | |
| in fact, my system segfaulted just from you mentioning that | |||
| dalek | rrot/whiteknight/pbc_pbc: 0f688ae | Whiteknight++ | src/ (3 files): Remove most calls to Parrot_pf_prepare_packfile_init. That function now calls do_sub_pragmas(PBC_MAIN), which should do what PackfileView.trigger('init') expects |
20:48 | |
| rrot/whiteknight/pbc_pbc: d417058 | Whiteknight++ | t/pmc/packfileview.t: Fix t/pmc/packfileview.t so that the test for .trigger('init') works as expected |
|||
| plobsing | bubaflub: the main problem with a PBC migrator is there are many things that can modify PBC between versions, the most obvious (and least common) of which is actual format changes. | 20:50 | |
| there's also changes to how PMCs choose to serialize, changes to opcode libraries, changes to included constants, ... | |||
|
20:52
Eclesia left
|
|||
| dalek | rrot/whiteknight/packfilewrapper: acb29d9 | Whiteknight++ | api.yaml: Add PackfileView to api.yaml as experimental |
20:53 | |
| cotto_work | Maintaining perfect pbc compatibility would be very unpleasant. | ||
| plobsing | it would be better if all those confounding issues didn't conspire to make it so | 20:54 | |
| benabik | We need an interchange format. The current one appears to be PIR, and I somewhat dislike that. | 20:55 | |
| plobsing | for example, if we didn't tie the core oplib version to parrot version (and also allowed other oplibs to be properly versioned) | ||
| benabik | interchange isn't the right word... I mean version-to-version. | ||
| plobsing | if PMCs had a notion of a PMC library, they too could be versioned like ops | ||
| whiteknight | how hard would it be to add such a beast? | ||
| plobsing | and constants... those are just a mess and someone needs to rethink how they work. textual inclusion is not the answer | 20:56 | |
| whiteknight | what needs to be rethought about constants? | ||
| plobsing | whiteknight: pretty much everything. making them available through .pasm includes is a recipe for disaster. | 20:57 | |
| whiteknight | oh, you mean .const declarations? | ||
| cotto_work | That's a decidedly crummy mechanism. I'd love to have a better one. | ||
| whiteknight | I figured that was a compile-time thing | ||
| benabik | Especially with .pasm being a mostly dead format. | ||
| Coke | the long term goal was to have a pbc migrator, but we decided things were too volatile for now. | ||
| plobsing | whiteknight: it is a compile-time thing, but they are used to expose things that should be properties of the executing VM (not necessarily the compiling VM) | 20:58 | |
| which is why we need a separate mechanism which can operate at runtime, because the appropriate values are not available until then | 20:59 | ||
| whiteknight | oh, you mean the automatic parsing of C-level enums into PASM constant files? | ||
| plobsing | yes. I'm refering to the strategy as a whole, not the capability (which isn't too bad in and of itself). | ||
| whiteknight | so let's start deprecating that mechanism and the PASM files that are the worst offenders | 21:00 | |
| plobsing | we need a replacement first | 21:01 | |
| benabik | plobsing++ | ||
| plobsing | given a well thought out replacement, the way forward is much more clear | ||
| whiteknight | We can still use integer constants, just add a mechanism to look them up by string name from some common repo object | 21:02 | |
| plobsing | so then we need an implementation of this repo object | ||
| and the ability for 3rd parties to add to it somehow | |||
| or we should use multiple repo objects (I don't like registry-type solutions) | 21:03 | ||
| cotto_work | ResizableStringArray attached to interp's iglobals array? | ||
| er, hash | |||
| dalek | TT #2145 created by whiteknight++: Experimental PackfileView PMC | ||
| TT #2145: trac.parrot.org/parrot/ticket/2145 | |||
| whiteknight | I don't think it needs to be an actual hash | 21:04 | |
| just some kind of object that uses a two-level key to look up constant values | |||
| $I0 = repo["cclasses"]["whitespace"] | |||
| or could be a method: $I0 = interp.constant("cclass", "whitespace") | 21:05 | ||
| cotto_work | whiteknight: why two-level? | 21:06 | |
|
21:06
mj41 left
|
|||
| whiteknight | to separate out the different types of constants we have | 21:06 | |
| basically, like a namespacing consideration | |||
| cotto_work | I mean, why say that there are exactly two levels? | ||
| whiteknight | or, we have a single level: $I0 = interp.constant("cclass_whitespace") | 21:07 | |
| plobsing | I'm not liking the idea of a big global variable like that. It seems inelegant. | ||
| cotto_work | Having an arbitrary number of levels is probably overengineering it. | ||
| whiteknight | My thought is that it doesn't need to be a variable | ||
| plobsing | so then what is it? | ||
| whiteknight | I mean, the implementation is not nearly so important as a string-based interface | ||
| NotFound | For interpreter constants, that may be work, but for libraries? | 21:08 | |
| plobsing | call it what you want, a registry such as that is global state | ||
| whiteknight | okay. So, what else would you propose? | ||
| dalek | rrot/whiteknight/packfilewrapper: fc25455 | Whiteknight++ | / (46 files): resolve api.yaml conflict after merge from master |
||
| cotto_work | Might this be a better place to put the tiny amount of configuration data that's actually useful? | 21:09 | |
| whiteknight | Alternative, maybe, would be to change is_cclass_i_i_s to is_cclass_i_s_s | ||
| and avoid the use of integer constants entirely | |||
| plobsing | whiteknight: that just punts on this particular case. the ability for constants is still required elsewhere. if not in core, then in extensions. | 21:10 | |
| dalek | kudo/nom: 533cd63 | moritz++ | t/spectest.data: run 4 more test files, pass 5.1k tests |
||
| whiteknight | there are two issues: Avoiding the use of PASM files to represent enum constants from the C code, and providing nice interfaces to get access to constants | ||
| cotto_work | There's no urgent need to get rid of our constants. We can take the time to think of something elegant. | 21:11 | |
| whiteknight | elegant smellegant | ||
| let's pull out the damned codehammer and smash a round peg into a square hole every once in a while | |||
| plobsing | we could provide PBCs which contained serialized hashes | 21:13 | |
| load_bytecode $P0, 'some_constants'; $P1 = $P0[0]; $I0 = $P1['constname'] | |||
| whiteknight | isn't that what our config hash is now? | 21:16 | |
| plobsing | yes, so there is precedent | ||
| whiteknight | except it's built-in and it's filled with dozens of keys of useless, space-filling garbage | ||
| including duplicate garbage | 21:17 | ||
| plobsing | PBC dedups | ||
| we might also consider a dbm-alike | |||
| tadzik | seen dukeleto | 21:18 | |
| aloha | dukeleto was last seen in #parrot 3 hours 37 mins ago saying "Eclesia: i.e. native language". | ||
| plobsing | there's plenty of solutions out there for kv stores | ||
| whiteknight | yes, no question | 21:19 | |
| if what we want is a key-value lookup to use string names to find the runtime values of particular integer constants, we have options | |||
| so, is it settled that we want to go that route? | 21:20 | ||
| plobsing | that's the direction I'd like to see to resolve this issue, but this is a large issue with the potential to affect many if not all projects | ||
| whiteknight | yeah | 21:22 | |
| jay | Sorry to interrupt, but I hit a wall on my 'for' actions and wanted to work on building a class into my HLL (again, essentially a modification of squaak). Best practices: where should the code go? src/Classes/classes.pir or something, which would then be referenced from setup.pir and/or src/nqr.pir? Or should I be writing NQP someplace? | 21:25 | |
| whiteknight | jay: write it in whatever language you are comfortable with. src/Classes/classes.nqp would be fine | 21:26 | |
| jay | And a related question: is there a "current" HLL which is "close" to squaak in some sense? I looked at winxed and partcl and they seem to be completely different beasts. Is the Octave/Matlab project still going? | 21:27 | |
| whiteknight | the tricky part may be figuring out how to add it to the build. I don't know what build mechanism the squaak tutorial was using | 21:28 | |
| the Matlab/Octave project is defunct | |||
| jay | < sigh > | ||
| whiteknight | That language has some syntax and semantics that are...not pleasant | ||
| I may restart the project as a language subset, but I haven't finalized plans for that yet | 21:29 | ||
| jay | From a computer science perspective, sure. For statisticians and data analysts, Matlab/Octave/R are quite appealing. | ||
| whiteknight | I have a project Parrot-Linear-Algebra which provides bindings to BLAS for matrix types. I was going to use that as a big part of the runtime for my Matlab clone | 21:30 | |
| I've been kicking around the idea of a Matlab subset language that would provide easy access to those matrix routines | 21:31 | ||
| jay | If my work goes any further, this will be important and very interesting. | ||
| whiteknight | github.com/Whiteknight/parrot-linear-algebra | ||
| jay | is your old Matlab/Octave code still someplace? | 21:32 | |
| whiteknight | all the tests and examples for that are in NQP, if you want to borrow liberally | ||
| github.com/Whiteknight/matrixy | |||
| brb, need to cook dinner | |||
| jay | whiteknight++ | ||
|
21:34
everbrew left
21:35
ambs left
21:46
telemachus joined,
dmalcolm left,
dmalcolm joined
21:47
Patterner left,
Patterner joined
21:54
alester joined
|
|||
| dukeleto | jay: seems like matrixy is very similar to what you are trying to accomplish | 21:55 | |
| plobsing | aren't R and matlab different languages? | 21:56 | |
| jay | Yes, but they share a similar syntax | 21:57 | |
| Yes, matrixy seems in the ballpark. Ultimately, we'd like use work we've done elsewhere (C++ library for R) to use shared-memory and filebackings for massive matrices, perhaps with the BOOST interprocess library. So I'm just trying to get a stub of a language working, first. | 21:59 | ||
| R uses 4-byte integer indexing and has other design weaknesses that effectively prevent us from just forking R itself for this purpose. | 22:00 | ||
| whiteknight | PLA uses integer indexing, but it would be system-defined integer size | 22:02 | |
| of course, if you bumped up to a different storage format above a certain size, that won't be an issue | |||
| jay | I'm guessing we would need to manage the data structure (fundamentally column-major arrays) in C++ and then provide methods in the Parrot HLL. Unless you want to discuss how I might hack your underlying memory allocation... at some point there has to be an mmap, right? | 22:04 | |
|
22:04
dmalcolm left
|
|||
| plobsing | our allocator is a little simplilstic and weak | 22:04 | |
| dukeleto | jay: parrot has the concept of objects that get automatic memory management, and others where it is done manually | ||
| plobsing | I'd like to see your use-case covered, but I don't think that will happen soon | 22:05 | |
| dukeleto | jay: ManagedStruct and UnmanagedStruct | ||
| jay | Well, for our purpose we're interested in fixed-sized arrays (vectors) of floats. That's basically the fundamental object we statisticians need. | ||
| plobsing | you only need an arbitrarily-lengthed array of floats? Ptr/StructView were made for that | 22:06 | |
| dukeleto | jay: we call that the FixedFloatArray PMC (FFA) in parrot world | ||
| whiteknight | PLA manually allocates memory for matrices. Just wraps that up in the PMC lifecycle | ||
| jay | BLAS-compatible objects, but allocated in a special way so with the filebackings we can exceed RAM. Again, BOOST is pretty cool in supporting this. | ||
| whiteknight | Yes, I've heard good things about BOOST | 22:07 | |
| plobsing | dukeleto: FFA and friends won't work outside of Parrot because they use the FLOATVAL type. not very useful. | ||
| jay | Yes, I was guessing that FFA was probably that. | ||
| whiteknight | it was part of the motivation for my Rosella project | ||
| dukeleto | plobsing: hmmm. i guess it is only useful if you want to use floats | ||
| whiteknight | dukeleto: FLOATVAL != float | 22:08 | |
| it could be float or double | |||
| jay | I was about to ask about doubles. Should I be looking at Rosella? I'm overwhelmed at this point with the basics. Still learning to crawl, not even walking. I know where I'd like to fly, but don't understand the mechanics of flapping my wings. | 22:10 | |
| dukeleto | jay: Rosella already has many wheels you will want to build soon | ||
| jay: i would recommend using it for your test suite, as well as possibly using it for memoization, which is quite useful for deterministic math/stat functions | 22:11 | ||
| whiteknight | jay: Rosella is to Parrot what BOOST is to C++. Adds a lot of building blocks. You probably don't need it yet, but I suspect you will want it for various purposes eventually | ||
| jay | whiteknight++ that sort of overview is very helpful, thanks. | ||
| whiteknight | it's not identical to BOOST, because some things BOOST provides are already built into Parrot. But, it's the same kind of concept | 22:12 | |
| dukeleto | whiteknight: very few people compile Parrot with FLOATVAL != float. Not one of our smokers does. How sure are you that it works correctly? | ||
| tadzik | oh, dukeleto o/ | ||
| whiteknight | dukeleto: maybe not at all. I think there is a Configure.pl argument to redefine FLOATVAL | ||
| dukeleto | tadzik: howdy | ||
| plobsing | dukeleto: my FLOATVAL is double | 22:13 | |
| dukeleto | whiteknight: yes, but it sees extremely little use, so I worry that it is bitrot | ||
| tadzik | dukeleto: how about some pandatalk, here or otherplace? | ||
| whiteknight | only one way to find out | ||
| dukeleto | plobsing: i think that is what I meant. the default for FLOATVAL is double | ||
| whiteknight | tadzik: pandatalk? | ||
| dukeleto | lulz | ||
| tadzik: i guess #perl6 is more appropriate | |||
| whiteknight: panda is perl6's plumage | 22:14 | ||
| tadzik | whiteknight: it's a special kind of speech me and dukeleto are researching | ||
| dukeleto: ay, you ruined it! | |||
| whiteknight | :) | ||
| dukeleto | tadzik: well, I could have said we were presenting joint-research at a Furry convention, but then that would have been too odd. | ||
| whiteknight: modules.perl6.org/ <-- you get a panda badge if your perl 6 module has the newest metadata format that pandas like to chew on | 22:16 | ||
| we really need something like modules.perl6.org to show off Plumage data | 22:18 | ||
| bubaflub | seen colomon | 22:23 | |
| aloha | colomon was last seen in #perl6 4 hours 20 mins ago saying "interesting....". | ||
| bubaflub | msg colomon just noticed you have a Math::Prime perl6 module - i'd love to collaborate with you on that | ||
| aloha | OK. I'll deliver the message. | ||
|
22:24
bluescreen joined
|
|||
| dukeleto | bubaflub: don't forget about Math::Primality ;) | 22:24 | |
| ETOOMANYPROJECTS | |||
| whiteknight | what's great about this new whiteknight/pbc_pbc branch is that I'm ripping out lots of unnecessary code without having to replace functionality yet | 22:25 | |
| bubaflub | dukeleto: how could i forget my first love... errrr... module | ||
| whiteknight | so performance is only going to go up | ||
| cotto_work | It's like Christmas! | ||
| bubaflub | whiteknight: any chance it'll get merged before 3.6 hits? | ||
| dukeleto | whiteknight++ # /me likes performance | ||
| cotto_work | seen kid51 | ||
| aloha | kid51 was last seen in #parrot 19 hours 54 mins ago saying "So the only file which currently has FAILs in that branch is t/tools/hbdb/cmds.t (as expected). smolder.parrot.org/app/projects/rep...ls/17111". | ||
| whiteknight | bubaflub: the whiteknight/packfilewrapper branch might, if kid51 gives the go-ahead | ||
| the new whiteknight/pbc_pbc branch will not. I'm still hacking and don't know where I'm going to end | 22:26 | ||
| before 3.7, certainly | |||
| bubaflub | ok | 22:30 | |
|
22:30
bubaflub left
|
|||
| dalek | TT #2137 closed by dukeleto++: t/src/embed.t fails when Parrot is configured with --without-libffi ... | 22:41 | |
| TT #2137: trac.parrot.org/parrot/ticket/2137 | |||
|
22:42
darbelo left,
kid51 joined
22:43
mtk left
|
|||
| kid51 | cotto: ping | 22:47 | |
| msg cotto Do you have opinions on either trac.parrot.org/parrot/ticket/1598 (Archive::Tar/Zip) or trac.parrot.org/parrot/ticket/1601 (parallelism PDD)? | 22:50 | ||
| aloha | OK. I'll deliver the message. | ||
| kid51 | msg cotto What are your feelings about merge soon of whiteknight/packfilewrapper branch? | ||
| aloha | OK. I'll deliver the message. | ||
|
22:51
estrabd left
22:52
whiteknight left
|
|||
| kid51 | msg whiteknight re whiteknight/packfilewrapper branch: I'm going to run a smolder on it for linux/i386 and make fulltest; also smolder on darwin/ppc; after that point, if cotto greenlights, I'm okay with merge (all of this may take a couple of hours) | 22:56 | |
| aloha | OK. I'll deliver the message. | ||
| cotto_work | kid51: back | 22:58 | |
|
22:59
bubaflub joined
|
|||
| jay | pong | 23:15 | |
| cotto_work | jay: who are you ponging? | 23:16 | |
| jay | just seeing what it did | ||
| cotto_work | ok. It's a convention we use to get someone's attention. | ||
| jay | ah! thx. And ping? | 23:17 | |
| unix-like? | |||
| dalek | rrot/whiteknight/packfilewrapper: d98e956 | jkeenan++ | config/gen/makefiles/root.in: Use Makefile variables already defined where possible. |
||
| rrot/whiteknight/packfilewrapper: 6784232 | jkeenan++ | src/pmc/packfileview.pmc: Brand new file only needs copyright for current year. |
|||
| cotto_work | ping is to get someone's attention, pong is to indicate that the pingee is paying attention | ||
| kid51 | jay: ping | 23:18 | |
| jay | pong | ||
| kid51 | jay: I believe you have some kind of slide show you've been discussing with dukeleto. Correct? | 23:19 | |
| About R, I think? | |||
| jay | sorry, phone... brb | 23:21 | |
| dalek | rrot/whiteknight/packfilewrapper: 024e3ad | jkeenan++ | / (3 files): Add copyright. |
23:23 | |
| kid51 | msg whiteknight You have a codingstd failures in branch. I am trying to fix but will probably not catch all. | ||
| aloha | OK. I'll deliver the message. | ||
|
23:25
whiteknight joined
23:27
bubaflub left
|
|||
| whiteknight | hello again, #parrot | 23:29 | |
| damnit, I thought I caught all the codestd failures | 23:30 | ||
| kid51 | I have some fixes I will push in a few minutes. | 23:35 | |
| whiteknight | thanks | 23:36 | |
| I had some uncommitted changes from another branch I have to sort through first, then I'll hack on whiteknight/packfilewrapper | 23:37 | ||
| dalek | rrot/whiteknight/packfilewrapper: 041cf3e | jkeenan++ | src/packfile/ (2 files): [codingstd] Add coda for C code. |
23:38 | |
| rrot/whiteknight/packfilewrapper: d1f74b3 | jkeenan++ | src/pmc/packfileview.pmc: [codingstd] Add ASSERT_ARGS. |
|||
| rrot/whiteknight/packfilewrapper: 592d9ae | jkeenan++ | src/pmc/packfileview.pmc: Revert previous codingstd, as it did not fix test. |
|||
| rrot/whiteknight/packfilewrapper: 25d73ce | jkeenan++ | src/packfile/pf_private.h: [codingstd] Add header guards. whiteknight, please check. |
|||
| kid51 | whiteknight: Can you add some (stub) documentation to src/pmc/packfileview.pmc for get_const_table()? There's also a c_args_assert failure there somewhere. | 23:39 | |
| cotto_work | kid51: ASSERT_ARGS() can't have a terminal ';' | ||
| kid51 | cotto_work: But even if I delete the final semicolon, I still get the test failure. I don't know the fix there. | 23:41 | |
| dalek | rrot/whiteknight/pbc_pbc: c7572b6 | Whiteknight++ | src/packfile/api.c: Use Parrot_pcc_invoke_sub_from_c_args instead of run_subs.:immediate :immediate subs are expected to return a value ->P. :load, :init, and :postcomp do not (->). We don't need to save/restore the runcore, because PCC does that We don't need to set the current constants segment in most places, because Sub.invoke does that |
||
| whiteknight | Let me look | 23:42 | |
|
23:43
fperrad left
|
|||
| whiteknight mumbles something about our codestd tests being pedantic | 23:44 | ||
| dalek | rrot/whiteknight/packfilewrapper: 51929a0 | Whiteknight++ | src/pmc/packfileview.pmc: fix c_arg_assert test failure |
23:46 | |
| rrot/whiteknight/packfilewrapper: c5b37d5 | jkeenan++ | src/packfile/segments.c: [codingstd] POD formatting fixes. |
23:47 | ||
| rrot/whiteknight/packfilewrapper: d7d3d34 | jkeenan++ | src/pmc/packfileview.pmc: Merge branch 'whiteknight/packfilewrapper' of git@github.com:parrot/parrot into whiteknight/packfilewrapper |
|||
| kid51 hears whiteknight's mumbling and correctly ignores him ;-) | 23:48 | ||
| jay | ping kid51 | 23:51 | |
| kid51 | jay pong | ||
| jay | Back, sorry. Yes, to answer your question, I gave my slides to dukeleto and I think they went up on the devel list. Sort of the backstory to why I'm here stumbling around. | 23:52 | |
| My HLL is NQR (for not quite R). It used to be Q, but you guys (Parrot) stole Q for internal use. | |||
| kid51 | Is there a web site to which you could post those slides? And then write a post to parrot-dev containing that link? (The slides themselves exceed our default post size limits.) | 23:53 | |
| jay | Ah, sorry. Yes, I could do that. Just a sec. Take them with a grain of salt and a sense of humor, though. | ||
| kid51 | jay: In fact, post a reply to the thread that's already started, once you have a link to a web site. | 23:54 | |
| jay | www.stat.yale.edu/~jay/NQR/ will post to the thread, too. | 23:55 | |
| dalek | rrot/whiteknight/packfilewrapper: 7f7d532 | jkeenan++ | src/pmc/packfileview.pmc: [codingstd] No space between function and open parenthesis. |
23:56 | |
| kid51 | Thank you very much. | ||
| whiteknight: We're down to failures here: t/codingstd/pmc_docs.t | 23:57 | ||
| whiteknight | I'm almost done | 23:58 | |
| kid51 | k | ||
| whiteknight: The diff is very big. It would be nice if you could get a code review from cotto or equivalent. Once that's done, I would have no objection to a merge. | |||
| jay | We (my recent grad student and I) are interested in statistical computing with massive (larger-than-RAM) data sets in scalable ways... we don't like the concept of different implementations of the same analytical procedure simply due to data size. We've used the BOOST interprocess library under our C++ packages for R, but couldn't just hack them into R's memory management (for a variety of reasons). | 23:59 | |
| kid51 | whiteknight Starting test on darwin/ppc now. | ||
| afk | |||