|
Parrot 2.9.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GC tuning | remove deprecations | Set by moderator on 21 October 2010. |
|||
| cotto | atrodo, how would you summarize your experience trying to implement a Lorito prototype? | 00:00 | |
|
00:00
davidfetter joined
|
|||
| cotto | a free-form brain dump is fine | 00:00 | |
| dukeleto | nwellnhof: You have very high code quality, I am not even trying to imply that you don't. But I think we need to move away from committing directly to trunk unless it is a trivial doc fix or adding tests | 00:03 | |
| cotto | dukeleto, speaking of which, what' the git migration schedule look like? | 00:04 | |
| dukeleto | nwellnhof: and just because it works on your machine, doesn't mean it works on all the platforms/OS's we support | ||
| nwellnhof: that commit is fine and it can stay in trunk, but in the future, think about these things. | |||
| nwellnhof | dukeleto: Yes, but I can always break other platforms, even if I add tests. | 00:05 | |
| dukeleto | nwellnhof: a failing test has lower impact than breaking the build on a platform | ||
| nwellnhof: if a test never fails, it isn't useful | |||
| cotto: I am in the middle of a week of conferencing, and have lots of stuff going on. And I need to finish create_language/mk_language_shell porting to git | 00:07 | ||
| cotto | We don't expect that our tests will cover every possible code path, but we still want as much test coverage as possible. | ||
| A code change is a good target for some tests, if for no other reason. | |||
| dukeleto, ok. I wasn't sure how long the gsoc conference would be. | |||
| dukeleto | cotto: i am at the git developer conf now, and came to GSoC early to write a book, so I am actually cramming 2.5 confs into 8 days | 00:08 | |
| dukeleto is running on the fumes of sleep | |||
| cotto | srsly | ||
| best to do the migration well-rested | 00:09 | ||
| dukeleto | Also, i haven't had time to talk about it, but some people have contacted me that they are working on R on Parrot | ||
| cotto: yeah. but i will try to hack on finishing porting create_lang to git, that shouldn't be too hard, now that I know what scope it needs to work for | |||
| atrodo | cotto> to summarize, it's been pretty fun as well as fairly easy. The direction given, while vague, was a good set of guidelines to the product I have now | ||
| cotto | I love it when people work on things that I otherwise wouldn't care about at all. | ||
| atrodo | as for a longer brain dump, I started working on that this morning | 00:10 | |
| cotto | It's a good sign that the Parrot is diverse enough to be relevant to people in different spheres of hackerdom. | ||
| atrodo++ | |||
| atrodo, What I'm most interested in are the parts you had to fill in on your own. | 00:11 | ||
| dukeleto | cotto: many people are interested in parrot. We need utilize that. | 00:12 | |
| cotto hopes that didn't come out wrong | |||
| very yes | |||
|
00:12
dngor_ is now known as dngor
|
|||
| dukeleto | I meet so many different kinds of people at GSoC. I sat next to a DragonFlyBSD dev on a shuttle, and he was interested in seeing if parrot works on it. Stuff like that. | 00:13 | |
| Since they forked from FreeBSD 4 years ago, it shouldn't be too different than vanilla FreeBSD. | |||
| they mostly seem to have different ideas about SMP than FreeBSD and have a different default filesystem. | 00:14 | ||
| kid51 | dukeleto: Approx 2 years ago we were getting smoke tests from DragonflyBSD. That was pre-Smolder. | 00:16 | |
| dukeleto | kid51: that is good to hear. So we probably could add them as an experimental platform | 00:17 | |
| kid51 | It appears we have no "dragonfly" tag in our Smolder site. Which means we haven't received any smokes on that OS since we began smolder.parrot.org a few months back. | 00:18 | |
| If we had someone who was really interested and would respond to test failure reports, then we could include it even without the 'experimental'. | 00:19 | ||
| It's having a maintainer that is key. | |||
| As in much else :-) | |||
|
00:24
nwellnhof left
00:25
dmalcolm left
|
|||
| dalek | rrot: r49680 | whiteknight++ | trunk (4 files): add a new Parrot_load_bytecode_file API in src/embed.c. This new method allows the user to load a .pbc file into the interpreter without having to deal with a struct PackFile like the old way required. Returns a boolean to signify success or failure. This method is experimental and currently untested. It may need to be tweaked in a variety of ways. |
00:38 | |
| kid51 | whiteknight: Re r 49680: If it is true that "This method is experimental and currently untested", shouldn't you be developing it in a branch? | 00:47 | |
|
01:04
TiMBuS left
|
|||
| whiteknight | no. That addition is basically orthogonal to any other functionality. It's only "experimental" in the sense that "it isn't covered by deprecation policy" | 01:05 | |
|
01:05
tcurtis joined
|
|||
| whiteknight | we might want to pick a better term for things like this. I suspect "experimental" is misleading | 01:06 | |
|
01:08
TiMBuS joined
|
|||
| cotto | "provisional"? | 01:08 | |
| whiteknight | Because this feature is going to be included in the Parrot API, the only question is whether the current form of it is correct | ||
| "probational"? | |||
| nevermind. "probational" reminds me of a bunch of potheads i knew in highschool | 01:09 | ||
| cotto had similar thoughts | |||
| kid51 | Well whether experimental/provisional/probational, a test file would at least provide an instance of how to use the new method. | 01:11 | |
| generational_gc branch not currently building on linux/i386 | 01:15 | ||
| trunk passing make test at r 49631 on linux/i386 | 01:16 | ||
| trunk passing make test at r 49680 on darwin/ppc | 01:17 | ||
| Hmm, that revision number on the linux test looks suspiciously old | 01:18 | ||
| whiteknight | the function is currently untested, It won't remain so | ||
| kid51 | Thanks. | 01:19 | |
| davidfetter | o/` test-ety-test yourself before you rest yourself o/` | 01:35 | |
| with apologies to ice cube | |||
| kid51 | When I was in Portland, I got my haircut at a barbershop that ice cube would have felt right at home at | 01:37 | |
| davidfetter | you must be *loaded* | ||
| davidfetter figures ice cube hasn't hung around with anything but millionaires in a *long* time | |||
|
01:41
whiteknight left
|
|||
| kid51 | Well, at least the character he played in 2 movies ... | 01:43 | |
| davidfetter | heh | ||
|
01:50
dngor_ joined
01:51
dngor left
01:55
tcurtis left
01:58
tcurtis joined,
tcurtis left
02:19
kid51 left
|
|||
| cotto | reparrot.blogspot.com/2010/10/parro...arios.html - new blog post about how teams might work | 02:21 | |
| GeJ | msg whiteknight t/codingstd/c_arg_assert.t is complaining about an unused assert macro declared for Parrot_load_bytecode_file. Should I add it myself or do you prefer to do it? | 02:24 | |
| aloha | OK. I'll deliver the message. | ||
|
02:52
davidfetter left
|
|||
| atrodo | cotto> that's apparently a harder question than I initially thought | 02:54 | |
| cotto | atrodo, answers to those kinds of questions can quickly spiral | 02:57 | |
| Thanks for taking the time to answer. It'll help. | 02:58 | ||
| atrodo | That's kind of what's happening in my thought process | 02:59 | |
| It's taking some thought to figure out what wasn't defined, what is an implementation detail, and what did I just go another direction with | 03:00 | ||
| cotto | feel free to think out loud here | 03:07 | |
| atrodo | Well, not a lot has really been defined with Lorito. It's more concrete than it was 6 months ago, but there's still a bit of hand waving over a some of the details | 03:12 | |
| cotto | Yeah. That's what I'm hoping to expose and define. | 03:13 | |
| atrodo | For instance. PMCs. Is there a unwritten understanding that PMCs are going to continue to be opaque struct-like blobs that are referenced by index or name? | 03:14 | |
| or were there others that desired a more generic blob of memory like the one I went with | |||
| cotto | It's... unwritten | ||
| atrodo | Or, take the CPS talks that there have been. Is all of the lorito ops in one flat address space, or are there still a high level concept of a code block? | 03:16 | |
| cotto | CPS will be on top of Lorito, though I need to grok exactly what it'll look like. | 03:19 | |
| On my todo list is a wiki page explaining CPS and how it'll apply to Lorito. | 03:24 | ||
| GeJ | aloha, clock? | 03:40 | |
| aloha | GeJ: GeJ: LAX: Mon, 20:40 PDT / CHI: Mon, 22:40 CDT / NYC: Mon, 23:40 EDT / UTC: Tue, 03:40 UTC / LON: Tue, 04:40 BST / BER: Tue, 05:40 CEST / TOK: Tue, 12:40 JST / SYD: Tue, 14:40 EST | ||
|
04:16
silug left
04:20
patspam joined
04:35
patspam left
04:58
kiwichris joined
05:07
kiwichris left
05:08
kiwichris joined
05:28
kiwichris left
|
|||
| cotto | plobsing, ping | 05:30 | |
| plobsing, unping. I figured it ou. | 05:31 | ||
| plobsing, reping | 05:38 | ||
| nopaste | "cotto" at 192.168.1.3 pasted "lingering problem with pbc_dump after dynop_mapping merge for plobsing" (11 lines) at nopaste.snit.ch/24883 | 05:39 | |
|
05:42
dngor_ is now known as dngor
|
|||
| dukeleto | 'ello | 05:45 | |
| cotto | hi dukeleto | 05:50 | |
| dukeleto | cotto: how goes it? | 05:53 | |
| cotto | blogging is hard. Let's go coding. | 05:54 | |
| Coding is hard. Let's go blogging. | |||
| simon_ | indecisiveness is hard. let's digress. | 06:05 | |
| bacek | aloha, humans | 06:23 | |
|
06:39
uniejo joined,
uniejo left
|
|||
| dukeleto | bacek: how is the GC hacking going? | 06:45 | |
| bacek | dukeleto, badly. Collecting some objects too early... | 06:46 | |
| dukeleto | bacek: be more lazy! | 06:47 | |
| bacek | dukeleto, I'm lazy enough. But GC isn't. | 06:50 | |
|
06:52
fperrad joined
07:07
theory left
07:13
jsut_ left,
jsut joined
08:23
raek left
09:58
uniejo joined
09:59
contingencyplan left
|
|||
| cotto | pmc2c-- | 10:03 | |
| dalek | rrot: r49681 | fperrad++ | trunk/t/pmc/io_stdin.t: [t] useless interpolation |
10:11 | |
|
10:13
bacek left
10:37
bacek joined
10:39
dngor_ joined,
dngor left
10:55
kid51 joined
11:05
dngor joined
11:07
dngor_ left
11:33
raek joined
|
|||
| dalek | rrot: r49682 | fperrad++ | trunk/t/pmc/io_stdin.t: fix Perl5 part on Windows (but tests still fail) |
11:59 | |
|
12:24
kid51 left
12:51
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 13:08 | |
| cotto++ on the excellent blog post | |||
| msg GeJ I won't have time to get around to that issue until tonight. If you can fix it, please do. Otherwise I will get to it | 13:09 | ||
| aloha | OK. I'll deliver the message. | ||
| whiteknight | I think what I am going to do is create a new file "src/embed_api.c" and maybe a new header file "include/parrot/api.h" | 13:19 | |
| I'm going to create a new API that's completely orthogonal to the existing API. Then we can put in deprecation notices for all the functions in src/embed.c (some will be moved/renamed/cleaned up, others will be deleted) and deprecate the use of include/parrot/embed.h for external projects | 13:20 | ||
| parrot/api.h will be the new header include that all external projects, including the Parrot executable, will use | 13:21 | ||
| (I don't think anybody is reading this, I'm just brain-dumping while I have the ideas in my head) | |||
| mikehh | whiteknight: hey I am reading it | 13:22 | |
| whiteknight | but I had no way of knowing that! | 13:23 | |
| mikehh | I definately think that the api/interface needs a LOT of simplification/refactoring | 13:24 | |
| whiteknight | I think everybody thinks so | 13:29 | |
| so that's reassuring | |||
| my thought is if I create a new API as basically a new overlay, it won't interfere with the existing "API" and won't cause any hardships when we merge | |||
| then we deprecate the old garbage and have plenty of time to make a gradual switchover | 13:30 | ||
| I think I've decided that I'm going to write a Parrot plugin to XChat, as my example/test embedding application | 13:41 | ||
|
14:01
dmalcolm joined
14:22
uniejo left
14:28
brianwisti joined
14:35
whiteknight left
14:38
mikehh left,
whiteknight joined
|
|||
| atrodo | whiteknight++ # having a new .h is an Excellent idea | 14:43 | |
| And, as a suggestion, may I suggest less macros in it. That would allow using it in non-c languages nicer | 14:44 | ||
| whiteknight | yes, I plan to have far fewer macros | 14:55 | |
| The new API will only use the standard P S I N types for most operations, though some might take C-strings | 14:56 | ||
| all pointers, including interp, are going to be considered opaque | 14:57 | ||
|
14:59
theory joined
|
|||
| atrodo | whiteknight++ | 15:00 | |
| whiteknight | I'm trying to figure out how to signal errors. I don't know whether we expect the embedding application to register exception handlers with Parrot, or whether we return a flag and an error message, similar to Win32 with GetLastError | 15:03 | |
| atrodo | Why not both? | 15:04 | |
| whiteknight | I am aiming for consistency | ||
| though we could have two APIs, one that returns booleans, one that throws exceptions | |||
| I don't know how huge a pain in the ass it is to register and maintain C exception handlers | 15:05 | ||
| atrodo | That's probably the big kicker | ||
| the return value route would be easier and more C-ish | |||
| whiteknight | Maybe instead of returning a boolean, I return a PMC. an exception PMC signifies an error. | 15:06 | |
| atrodo | That would be novel | 15:07 | |
| plobsing | whiteknight: then you run into the semi-predicate problem | ||
| whiteknight | plobsing: how so? | ||
| plobsing | what if I have a PIR routine that returns (not throws) an exception upon success? | ||
| whiteknight | well, the API function will return the exception as a pointer in the arglist. The return value of the C-level function is separate | 15:08 | |
| If I say that the return value of C-level APIs always returns a status object, then any other results would be passed through pointers in the arglist | 15:09 | ||
| plobsing | OK, I understand better now. So the place return values go is passed as a by-ref argument. | 15:11 | |
| whiteknight | right. That seems a little messy, but again I am worried about consistency | ||
| plobsing | So all parrot API functions that can throw exceptions (and I'm betting that's nearly all of them) return PMCs? | 15:12 | |
| atrodo | i'd take consistency over the mess that's there now. | ||
| whiteknight | the question is really whether we want to propagate Parrot exceptions into embedding code (and ask the embedder to wrap API calls in weird C-level exception handlers) or whether we just hand off values and assume exceptions are internal to libparrot only | 15:13 | |
| plobsing | that doesn't seem quite right. 'error = Parrot_ext_vtable_get_bool(interp, pmc, &bool)' is clunky and un-C-ish. | ||
| atrodo | whiteknight> And that's a pretty big question | 15:14 | |
| whiteknight | plobsing: sure, but exception handling would be even worse | ||
| plobsing | I'd much rather see 'bool = Parrot_ext_vtable_get_bool(interp, pmc, &error)' | ||
| whiteknight | Ah, so a generalized result object | ||
| result = Parrot_do_stuff(), bool = Parrot_get_bool_result(result) | 15:15 | ||
| set result.error on error, result.value otherwise | |||
| plobsing | passing an error space by-ref also gives parrot information from when an embedder chooses to ignore errors (by passing NULL) | 15:16 | |
| whiteknight | I worry about the performance hit of creating a new result PMC for every single API call though | ||
|
15:17
mikehh joined
|
|||
| nopaste | "whiteknight" at 192.168.1.3 pasted "very rough example of exception handling API in C" (12 lines) at nopaste.snit.ch/24906 | 15:20 | |
|
15:20
bluescreen joined
|
|||
| whiteknight | I think that's terrible, personally | 15:20 | |
| and we have to start thinking about threads, etc. | 15:21 | ||
| plobsing | on which side of the C/parrot barrier? both? | 15:22 | |
| whiteknight | Well, I guess it depends how Parrot handles it's threads, internally. | 15:24 | |
| I call a function. That function spawns a worker thread. That worker thread throws an unhandled exception. | |||
| Does that unhandled exception propagate to the parent thread, or does it call that C-level handler in a separate thread? | 15:25 | ||
| then we have cross-thread accesses to hadError | |||
| plobsing | what happens when the root thread returns to C? do the other threads get killed? does the call hang until all threads are finished? do we continue executing parallel to the application in separate OS threads? | 15:27 | |
| but, for the record, I am against C-level exception handlers. Parrot languages already know how to deal with these problems (or should at least), so you can just whip up a wrapper if you really need to do tricky things. | 15:31 | ||
|
15:34
lucian joined
|
|||
| NotFound | Note that in order to avoid propagating exceptions to the caller almost all api functions should have its own exception handler. | 15:52 | |
|
16:04
contingencyplan joined
|
|||
| whiteknight | NotFound: at the moment, yes. What I think we need to do instead is to have a flag that we are inside an API call-in. When we have an unhandled exception, instead of dieing, we store that exception someplace and return that to the caller | 16:04 | |
| so in the API function we do a setjmp or something. When we have an unhandled exception we jump back to that point with the exception object in payload | 16:05 | ||
| assuming the interpreter doesn't end up in an inconsistent state, we should be good | |||
| dukeleto | howdy | 16:07 | |
| whiteknight | howdy | 16:08 | |
| NotFound | whiteknight: That is efectively the same as setting up a handler. | 16:12 | |
| whiteknight | right, but there are some differences | 16:19 | |
| 1) an unhandled exception doesn't cause death by fire | |||
| 2) we define the handlers, instead of asking the user to define them | |||
| NotFound | Yes, but setting up one in any api function may be not cheap. | 16:20 | |
| whiteknight | it's not really setting up a handler. | 16:21 | |
| we don't need to create a handler, because this is an issue of last resort. We just change the behavior for when an exception is unhandled | 16:22 | ||
| instead of fiery death, we go to a longjmp point if it's defined. Otherwise, crash and burn | |||
| dukeleto | Crash Override? | 16:24 | |
| NotFound | You need a setjmp at least. And doing it that way disallows the ability to resume the exception. | 16:25 | |
| whiteknight | NotFound: if we're talking about an unhandled exception where Parrot would have called exit() instead, this is still an improvement. We're past the point of resuming | 16:28 | |
| We've already exhausted all options, the exception was not handled, and we are bailing out | |||
| so we need to find a way to do this without destroying the embedding application too | 16:29 | ||
| NotFound | whiteknight: but if we do inside the api function, is out of the caller control. | ||
| whiteknight | right, but we need to return something reasonable back to the caller | ||
| it would be rude to crash or close the program | |||
| so we send back an error message: We died. Sorry. Here's the info. Don't do it again | 16:30 | ||
| NotFound | I don't have objections for that, but supposedly there are people in parrot that like resumable exceptions. | ||
| cotto | ~~ | 16:38 | |
| dukeleto | whiteknight: so your plan is to make a totally new embed/extend api and deprecate the old one? | 16:43 | |
| cotto | Ooh. This should be good. | 16:44 | |
| cotto backscrolls | |||
| whiteknight | dukeleto, yessir. That way we can transition over time | 16:47 | |
| dukeleto | whiteknight: what is your #1 problem with our current embed/extend interface that makes you want to kill it instead of improve it? | 16:49 | |
| NotFound | dukeleto: mostly that it doesn't exist. | 16:50 | |
| dukeleto | NotFound: what? | ||
| NotFound: Please take a look at pl.parrot.org, which embed Parrot in Postgres. Our embed/extend API exists. | 16:51 | ||
| s/embed/embeds/ | |||
| NotFound | dukeleto: the api functions are supposed to be decorated with PARROT_API. Look at the source tree and tell me how many you see. | ||
| plobsing | dukeleto: it exists but not in a formal way, and definitely not in a well designed way | 16:52 | |
| NotFound | And I don't think there is any working project that uses only the functions declared in extend.h and embed.h | 16:53 | |
| cotto | dukeleto++ #"crash override" | 16:54 | |
| plobsing | if you want to resume exceptions from C, you can write a simple wrapper that sets up a root exception handler that traps a continuation and rethrows to C. | 16:56 | |
| dukeleto | NotFound: i use "almost" only functions in the embed/extend headers, and the ones i do use that aren't there, should be there | 16:57 | |
| I am not quibbling with the fact that our embed/extend API is paperclips and duct tape, but I am not sure a total rewrite is needed, vs. fixing the sharp edges | 16:58 | ||
| NotFound | dukeleto: I don't think that creating new headers means a total rewrite. Is an opportunity for reorganization and self-documentation, and makes easy future deprecations. | 16:59 | |
| dukeleto | NotFound: whiteknight is talking about a total rewrite | 17:00 | |
| whiteknight | yeah, going to take an axe to it all | ||
| dukeleto | whiteknight: Totalling rewriting it seems unnecessary. I would like to see incremental improvements | 17:01 | |
| whiteknight: you don't have to maintain an embedded project now, so you have no incentive to improve the current interface | |||
| whiteknight | my incentive is the good of the parrot project | 17:02 | |
| dukeleto | whiteknight: but for those of us that already are using it, incremental improvements are better | ||
| cotto | whiteknight, Is there a nice upgrade path for existing users like PL/Parrot? | ||
| dukeleto | whiteknight: that is easy to say but hard to prove correct | ||
| whiteknight | it's not going to be written instantaneously | ||
|
17:02
hudnix left
|
|||
| whiteknight | I'm going to put together parts of it, and they will be made available in parallel with the existing functions | 17:03 | |
| NotFound | I think we can mix bot approaches, at least as a start. Put some of the lacked functionality in the new headers, well designed, documented and decorated. | ||
| whiteknight | switchover can happen gradually | ||
| cotto | Once it's in place will the only way to convert be to change a bunch of code all at once or will the APIs overlap enough to avoid that? | ||
| perhaps you just answered my question | |||
|
17:04
hudnix joined
|
|||
| whiteknight | I | 17:05 | |
| NotFound | Will be good to know what is the lacked functionality, BTW. | ||
| whiteknight | 'm going to put together a branch for some initial work tonight, probably. We can see what's going on then | ||
| anybody here familiar with the config hash stuff? | 17:06 | ||
| NotFound | The functionality that real projects are aleady using and is not in extend.h or embed.h, I mean. | ||
| (and please don't tell me "All the string functions") | 17:07 | ||
| whiteknight | We do need to do a much better job of exposing our string functions to the external world | 17:08 | |
| we do still need to figure out how to handle error conditions and exceptions being propagated to embedding code | 17:09 | ||
| cotto: that might be an area where some kind of design fiat could be handed down from on high | |||
| NotFound | whiteknight: yes. Just exposing the current functions is opening a can of worms. | 17:10 | |
| whiteknight | if we had a setjmp at every entry point, an unhandled exception could cause parrot to jump back to that point with error information | ||
| cotto | plobsing, ping | 17:11 | |
| whiteknight | src/exception.c:die_from_exception needs to change radically, in any case | 17:12 | |
| src/exit.c:Parrot_exit needs to change too. We can't be calling exit() in the context of an embedding application | 17:15 | ||
| NotFound | We can change the current way of creating the main interpreter and child interprteres with the same function, and make the main interpreter creation function takes a parameter to set up the last-resource-catch. | ||
| whiteknight | and I don't think we can call it at all in RTEMS either | ||
| NotFound | BTW some of our docs says that exiting return control to whatever launched the main runloop, calling exit is just a de facto behavior. | 17:18 | |
| whiteknight | right, de facto behavior is wrong here | 17:19 | |
| Tene | Yes, the parrot binary really needs to be rewritten as just a normal application embedding libparrot | 17:28 | |
| IMO | |||
| dukeleto | Tene: yes, I agree with you | 17:29 | |
| cotto | whiteknight, ping | 17:38 | |
|
18:15
brianwisti left
|
|||
| whiteknight | pong | 18:23 | |
| cotto | whiteknight, why does OpLib return a value for the short name of an op? I'm not sure why that value would be useful. | ||
| s/OpLib/OpLib PMC/ | 18:25 | ||
| whiteknight | what value does it return? | 18:42 | |
| cotto | not sure, but I'd expect -1 for anything except a long form op. lemme check | 18:43 | |
| For some reason, it return 531 for "say", which maps to does_i_p_pc | 18:45 | ||
| whiteknight | what are you calling to get that result? VTABLE_get_integer_keyed_str? | 18:46 | |
| cotto | nm | ||
| whiteknight | ? | ||
| cotto | it returns the number for say_i if I ask for "say" | ||
| yes | |||
| whiteknight | for the lookup it calls oplib->_op_code(interp, | 18:47 | |
| cotto | nopaste coming | ||
| whiteknight | "say", 1 | ||
| ah, I think I see it | |||
| oplib->_op_code takes a bool for the second arg that specifies whether to look up by shortname or long name | 18:48 | ||
| cotto | nopaste.snit.ch/24917 | ||
| whiteknight | first we only look up by long name, then by shortname if that fails | ||
| check out like 69 in that file | |||
| cotto | right. I'm asking if that's a useful behavior. | ||
| whiteknight | i have no idea. | 18:49 | |
| cotto | If OpLib is being used to build bytecode segments, it should only accept full op names and return an error on anything else. | ||
| whiteknight | what would you suggest as replacement? return PMCNULL? Return an array of all ops with the same shortname, as we do in METHOD op_family? | ||
| cotto | it currently returns -1 for keyed access | ||
| whiteknight | ah right, this one returns an INTVAL | 18:50 | |
| okay, howabout change that to return -1, and not lookup by shortname | |||
| cotto | sure | 18:51 | |
| I'll dig around and see what I can find wrt why it does the short name lookup | |||
|
18:52
silug joined
|
|||
| whiteknight | ok | 18:53 | |
|
18:53
jsut_ joined
18:54
fperrad_ joined
|
|||
| cotto | It seems like one of those features that could have been bolted on just because it was easy. | 18:55 | |
| whiteknight | it is something that really doesn't make sense now that I am thinking about it | 18:57 | |
| I vote for removal, I suppose | |||
|
18:58
jsut left,
fperrad left,
fperrad_ is now known as fperrad
|
|||
| whiteknight | all anybody has to do is delete lines 68 and 69 from that file | 19:01 | |
| cotto | and make sure there wasn't a good reason for them in the first place | 19:02 | |
| whiteknight | I suspect strongly that there is not | 19:03 | |
| We may want a similar functionality to look ops up by shortname in IMCC, but we're not ready for that yet | 19:04 | ||
| the more we can keep IMCC from poking directly into structure guts, the better | |||
| dukeleto | Death to IMCC. | 19:06 | |
| whiteknight | no argument here | 19:13 | |
| dukeleto | #ps soon? | 19:14 | |
| or am i an hour early again? | |||
| cotto | in 75 | 19:15 | |
|
19:15
lucian_ joined
|
|||
| whiteknight | yay! I posted my first #ps report in months | 19:17 | |
| of course, I still won't be at the meeting | |||
|
19:19
lucian left
19:22
snarkyboojum left,
bluescreen left,
snarkyboojum joined
19:23
PerlJam left,
PerlJam joined
|
|||
| dalek | rrot: r49683 | cotto++ | branches/opmap_aware_pmcs (3 files): [pmc] initial versions, mostly stub code with some untested implementations |
19:28 | |
| rrot: r49684 | cotto++ | branches/opmap_aware_pmcs/src/pmc/oplib.pmc: [pmc] add some methods that will be needed by PackfileBytecodeSegment |
|||
| rrot: r49685 | cotto++ | branches/opmap_aware_pmcs/examples/pir/make_hello_pbc.pir: [examples] update make_hello_pbc.pir to use the interface I plan on implementing in this branch |
|||
|
19:38
chromatic joined
19:40
bluescreen joined
|
|||
| whiteknight | dukeleto: I think we are serious about Google Code-In | 19:42 | |
| I think we have to be serious about any program that drives contributors towards us | |||
|
19:45
bacek left
|
|||
| cotto | I think his question is whether we want to be under TPF or do it ourselves. It's implicit that we want to do it. | 19:54 | |
| whiteknight | it might be interesting to try branching out on our own for it | 19:56 | |
| cotto | +1. We need to do it eventually and this would probably be lower-maintenance than gsoc. | 19:57 | |
| whiteknight | Eventually I would like to do GSoC separately. This would be a decent test for that | ||
| cotto | It depends on how our community manager feels though. ;) | ||
| whiteknight | this is true | 19:58 | |
| chromatic | GC MS2 is fairly close to sweepfree and semi-generational already... with a few tweaks it could be much closer (and probably 30% faster). | 19:59 | |
| dalek | rrot: r49686 | cotto++ | branches/opmap_aware_pmcs/src/pmc/oplib.pmc: [pmc] don't try to look for short op names if the long name lookup fails |
20:00 | |
| dukeleto | cotto: yes, correct. | ||
| whiteknight | chromatic: Yeah, I saw some of the sweep-free code he had in there. I was very happy about that | ||
| dukeleto | i am talking to TPF about getting a grant for it | ||
| I just don't have time for Code-In unless I get paid. | |||
| but the application deadline is the end of the week, and TPF moves slowly. | |||
| chromatic | I'll make a branch and add a couple of lists to the MS2 struct and see what I can do. | ||
| cotto | they do. | ||
| dukeleto may miss some of #ps due eating lunch with the Git peeps | 20:01 | ||
|
20:01
kid51 joined
|
|||
| whiteknight | dukeleto: maybe this is a task that could be farmed out to another person? Especially true if PaFo goes separate from TPF | 20:01 | |
| cotto | We could ask for a volunteer during #ps. dukeleto, would you have the tuits to help someone figure out the role? | ||
| dukeleto | cotto: perhaps, but that might be more work than doing it myself | ||
| cotto: unless the person has some experience doing these kind of things | 20:02 | ||
| sorear | kid51: hi | ||
| whiteknight | dukeleto: is it really a lot of work? | ||
| cotto | A higher bus number is always a good thing. | ||
| dukeleto | whiteknight: You have no idea. | ||
| cotto | Wouldn't most of the necessary information be documented somewhere? | 20:03 | |
| whiteknight | yeah, because I have a bus, I've been drinking, and I'm heading to dukeleto's neighborhood right now | ||
| dukeleto | I've never done Code-In, because this is the first year. No one has. | ||
| But judging from doing GSoC for the last 2 years, it is a good amount of work. | |||
| cotto | Right, so there's be lots of people asking all the relevant questions. | ||
| whiteknight | so all the more reason why a new person could grab it and run | ||
| dukeleto | whiteknight: I am putting on my lollerskates and I will grab the back bumper and get a free ride | ||
| atrodo | whiteknight> That's so strange, so am I | ||
| dukeleto | I am only going to be an admin for Code-In. I need lots of mentors. | 20:04 | |
| and people to delegate to | |||
| whiteknight | I'm always happy to mentor | ||
| dukeleto | I will not mentor for Code-In. I just don't have the time. | ||
| cotto too | |||
| whiteknight | brb, I have to turn off my computer | ||
|
20:04
whiteknight left
|
|||
| dukeleto | We need to be coming up with tiny tasks for students: improve parrot.org, translate some docs, etc... | 20:04 | |
|
20:04
nwellnhof joined
|
|||
| dukeleto | I need to write an application that links to a list of tasks for students by Friday | 20:05 | |
| Can somebody volunteer to make a wiki page for those? | |||
| I will write the app, but I need help coming up with tasks | |||
| cotto | another good #ps question | ||
|
20:08
allison joined
|
|||
| cotto | hio allison | 20:09 | |
| allison | hiya cotto | ||
| atrodo | everyone needs more minions | 20:12 | |
| kid51 | sorear: I suspect we'll be forming an Embedding group or task force or whatever during psketch today. whiteknight or dukeleto will be able to use your help there. | 20:15 | |
|
20:23
Andy joined
20:27
fperrad left
20:29
tcurtis joined
|
|||
| moderator | Parrot 2.9.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | remove deprecations | volunteer for embedding or Lorito teams | | 20:44 | |
|
20:50
plobsing_ joined
|
|||
| plobsing_ | cotto: (re: pbc_dump problems) pbc_dump and pbc_disassemble don't have parrot's runtime environment properly set up. I can get your example to work properly if I 'mkdir dynext; cp runtime/parrot/dynext/math_ops.so dynext' | 20:53 | |
| chromatic | Is that a Makefile problem? | ||
| plobsing_ | not as far as I could determine. I linked against parrot_config.o with no effect. | 20:55 | |
| I suspect parrot isn't being initialized properly | |||
| cotto | plobsing_, that makes sense | 20:56 | |
| it's a little surprising but understandable. | |||
|
21:03
bacek joined
21:16
bluescreen left
21:22
plobsing_ left
21:31
bluescreen joined
21:36
Andy left
21:54
preflex left
21:55
hudnix left
21:57
preflex joined,
hudnix joined
21:58
kid51 left
|
|||
| dukeleto | mikehh: i added an example task to your wiki page | 22:01 | |
| we still dont' get wiki changes in here => :( | 22:04 | ||
|
22:05
allison left
22:11
nwellnhof left
22:20
donaldh joined
|
|||
| donaldh | Hi, I have a question about NCI | 22:21 | |
| chromatic | go ahead | ||
| donaldh | back in Parrot 1.x days (IIRC) I could add NCI thunks by adding a file to config/gen/call_list/ | 22:22 | |
| That seems to have gone. | |||
| What's the right approach now? | |||
| I see src/nci/core_thunks.nci and src/nci/extra_thunks.nci | 22:23 | ||
| chromatic | See the src/nci/*.nci | ||
| Yes. | |||
| donaldh | Should I just be editing those? | ||
| chromatic | extra_thunks for everything except what core parrot needs, I believe | ||
| donaldh | k | 22:24 | |
| thanks | |||
| Should I be going a stage further and compiling my extra thunks as a dynext ? | 22:26 | ||
| chromatic | To my knowledge, you'd be the first to do so. That's interesting though. | 22:31 | |
|
22:32
brianwisti joined
|
|||
| dukeleto | donaldh: there is a gsoc_nci branch that is very close to being merged, which uses libffi | 22:34 | |
| donaldh: you may perhaps want to look at that | |||
| donaldh | there is parrot_install/bin/parrot_nci_thunk_gen that will produce a C file for dynext | ||
| dukeleto: oh | |||
| dukeleto: that is interesting. very close to merge? I might wait for that. | 22:37 | ||
| dukeleto | donaldh: i think there is just 1 failing test left on the branch. Maybe you want to fix it ? ;) | 22:38 | |
| donaldh: it might get merged faster if you fix that failing test :) | |||
|
22:38
nwellnhof joined
|
|||
| bacek_at_work | aloha, humans | 22:38 | |
|
22:39
brianwisti left
|
|||
| donaldh | dukeleto: that might happen :-) | 22:39 | |
| mikehh | dukeleto: I am not thinking too clearly at the moment, need some sleep, will get back to GCI later | 22:41 | |
|
22:42
dngor left,
dngor_ joined
22:45
bluescreen left
|
|||
| dalek | rrot: r49687 | nwellnhof++ | trunk/t/pmc/io_stdin.t: [t] Make t/pmc/io_stdin.t pass on Windows |
22:50 | |
| donaldh | dukeleto: have checked out gsoc_nci branch. I'll take a look tomorrow. goodnight. | 23:03 | |
|
23:05
dngor_ left
23:12
donaldh left
|
|||
| dalek | rrot: r49688 | nwellnhof++ | trunk/src/embed.c: [codingstd] Add missing ASSERT_ARGS |
23:22 | |
|
23:31
whiteknight joined
|
|||
| plobsing | dukeleto: close to merge is a bit misleading. the bug in question has been a huge hacking time sink for me. no progress. | 23:40 | |
| whiteknight | which branch is this? | 23:42 | |
| plobsing | gsoc_nci | 23:43 | |
| whiteknight | ah, gotcha | ||
| plobsing | the bug is the same kind that caused us to ditch the old frame builder | ||
| I think I have a new plan though | |||
| whiteknight | what's the bug? need another set of eyes? | ||
| plobsing | completely wrong PCC signature for a given NCI signature | 23:44 | |
| my plan: separate out the parser from the rest. use lex or something like it. | |||
| whiteknight | ok | 23:45 | |
| chromatic | How completely wrong? | ||
| plobsing | extra S parameter IIRC | ||
| P parameter where it shouldnt' be either | 23:46 | ||
| again, going from memory. I took a couple days off of that. | |||
| I'm also not a fan of the switching out of files based using config. it was expedient, but its ugly. I want to get rid of that too. | 23:47 | ||
| s/based// | 23:48 | ||
|
23:53
chromatic left
|
|||
| dalek | rrot: r49689 | whiteknight++ | branches/embed_api (2 files): creating a new branch to start working on the new embedding API stuff |
23:53 | |
| rrot: r49690 | whiteknight++ | branches/embed_api/src/embed_api.c: adding in a new stub file of embedding API functions I'm playing with |
|||
| rrot: r49691 | whiteknight++ | branches/embed_api/src (2 files): move the load_bytecode_file function into the new API. Rename it to match |
|||
| bacek_at_work | whiteknight, deprecation cycle. You have to keep old Parrot_load_bytecode_file (preferably redirecting to Parrot_api version) | 23:56 | |
| whiteknight | bacek_at_work: that function was added two days ago | 23:57 | |
| bacek_at_work | whiteknight, ah, ok. | ||