|
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. |
|||
|
00:00
lucian left
00:06
preflex left
00:09
preflex joined
|
|||
| whiteknight is baking his first apple pie | 00:20 | ||
| and one thing has become clear to me during the process: I have absolutely no talent for baking | 00:21 | ||
| simon_ never has much luck with apple pies | 00:23 | ||
|
00:48
bluescreen left
|
|||
| whiteknight | I'm lucky at eating them. Not so lucky at baking them | 00:53 | |
| but, I think my first effort turned out edible, so that's a big bonus | |||
| plobsing | time to run that rigorous test suite then ;-) | 01:33 | |
| whiteknight | The crust was good, which is surprising. The crust is supposed to be the hardest part to get correctly | 01:35 | |
| I don't think I cooked it long enough | 01:36 | ||
|
02:02
whiteknight left
02:10
bacek joined
02:12
jsut joined
02:17
jsut_ left
02:31
jjore left
02:33
jjore joined
|
|||
| dalek | rrot: r49656 | chromatic++ | trunk/src/gc/gc_ms2.c: [GC] Removed GC indirection to free PObjs. |
03:16 | |
| rrot: r49657 | chromatic++ | trunk/src/gc/gc_ms2.c: [GC] Changed mark/sweep detector to a macro. |
|||
| rrot: r49658 | chromatic++ | trunk/src/gc/fixed_allocator.c: [GC] Plugged memory leak of MS2's fixed allocator. |
|||
| rrot: r49659 | chromatic++ | trunk/src/gc/gc_ms2.c: [GC] Plugged a memory leak of MarkSweep_GC struct. |
|||
| rrot: r49660 | chromatic++ | trunk/src/pmc (2 files): Initialize custom mark and destroy flags in thawed objects. It's required because ImageIO uses pmc_new_noinit which doesn't initialize these flags |
|||
| rrot: r49661 | chromatic++ | trunk/src/pmc.c: [GC] Only free PMC_data(pmc) if it exists. |
|||
| rrot: r49662 | chromatic++ | trunk/src/interp/inter_create.c: [src] Fixed invalid write in Parrot_really_destroy. |
|||
| rrot: r49663 | chromatic++ | trunk/src (2 files): [GC] Reenabled global destruction of root set PMCs. on all PMCs, lest they leak memory at the end and confuse people running Valgrind. |
|||
| ttbot | Parrot trunk/ r49663 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/413033.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 03:20 | |
| bacek | seen chromatic | 03:29 | |
| aloha | chromatic was last seen in #parrot 3 days 8 hours ago saying "I can recommend a book or two for that.". | ||
| dalek | rrot: r49664 | bacek++ | branches/generational_gc/src/pmc/packfile.pmc: Reorder setting flag in Packfile.init to avoid race condition with GC. |
03:32 | |
| rrot: r49665 | bacek++ | branches/generational_gc/src/gc/api.c: Disable short-cut in mark_PObj_alive. It's conflicting with moving objects between generations. |
|||
| cotto | seen kid51 | 06:03 | |
| aloha | kid51 was last seen in #parrot 8 hours 5 mins ago saying "So your karma poses no obstacles to membership on that team :-)". | ||
| cotto | seen aloha | ||
| aloha | aloha was last seen in #perl6 3 days 6 hours ago joining the channel. | ||
| cotto | needs more recursion | 06:04 | |
| plobsing | I hear cotto can help with that. why don't you ask him? | 06:08 | |
| cotto | cotto: halp | 06:15 | |
| cotto: ??? | |||
| cotto: nm | |||
| plobsing, no luck | 06:16 | ||
|
06:53
particle1 joined
06:59
particle left
07:03
bacek left
|
|||
| dalek | rrot: r49666 | chromatic++ | trunk/src/gc/gc_ms2.c: [GC] Fixed copy and paste errors in MS2 GC. |
07:23 | |
|
07:44
AzureStone left
07:46
bacek joined
07:49
AzureStone joined
08:04
TiMBuS_ joined
08:05
TiMBuS left,
TiMBuS_ is now known as TiMBuS
|
|||
| dalek | rrot: r49667 | mikehh++ | trunk/src/gc/gc_ms2.c: add missing ASSERT_ARGS |
08:09 | |
| rrot: r49668 | mikehh++ | trunk/t/pmc/io_stdin.t: add svn properties |
08:25 | ||
| rrot: r49669 | mikehh++ | trunk/t/pmc/io_stdin.t: remove hard tabs |
08:40 | ||
|
08:48
dip joined
08:52
Hunger left
10:12
fperrad joined
10:24
bacek left
10:37
bacek joined
|
|||
| dalek | rrot: r49670 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c: Don't validate dead objects. |
10:43 | |
| rrot: r49671 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c: Wrap validating functions in ifndef NEBUG. |
|||
|
10:53
jsut_ joined
10:58
jsut left
11:25
uniejo joined
11:28
contingencyplan left
12:20
zostay left
12:25
bluescreen joined
13:12
mikehh left
13:26
estrabd joined
13:55
uniejo left
13:57
PacoLinux joined
13:58
uniejo joined
13:59
uniejo left
14:12
mikehh joined
14:26
Hunger joined
14:29
patspam joined
|
|||
| dalek | rrot: r49672 | mikehh++ | trunk/t/pmc/io_stdin.t: perlcritic complainred about 2 argument form of open and missing perl coda, my attempts did not work, added coda |
14:34 | |
|
14:53
cognominal left
15:02
bluescreen left,
bluescreen joined,
cognominal joined
|
|||
| dalek | rrot: r49673 | mikehh++ | branches/generational_gc/src/gc/gc_ms2.c: [generational_gc] add missing ASSERT_ARGS and c function docs |
15:06 | |
|
15:47
awhitworth joined
16:16
dmalcolm joined
16:26
awhitworth left
16:28
brianwisti joined
16:30
davidfetter left,
davidfetter joined
|
|||
| brianwisti | This is a day where I wish I was getting paid to work on Parrot. Ah well, back into the CGI salt mines. | 16:31 | |
|
16:32
awhitworth joined
16:39
Andy joined
|
|||
| dukeleto waves hello from the Git Together 2010 | 16:55 | ||
|
16:56
shockwave joined
|
|||
| awhitworth | hello duke | 16:56 | |
|
16:56
awhitworth is now known as whiteknight
|
|||
| cotto | a wild whitworth appears | 16:59 | |
| dukeleto | awhitworth: hola | 17:00 | |
| whiteknight uses hyperbeam | |||
|
17:01
contingencyplan joined
|
|||
| dukeleto | whiteknight: is there a reason you did not mention PL/Parrot in your blog post about Embedding Parrot? I can give you some other perspectives | 17:01 | |
| davidfetter | what might "git together 2010" be? | ||
| dukeleto | davidfetter: yearly Git developer conference | 17:02 | |
| git.wiki.kernel.org/index.php/GitTogether10 | |||
| whiteknight | dukeleto: a personal shortcoming. I should have mentioned PL/Parrot | ||
| dukeleto | whiteknight: pl.parrot.org for more info | 17:04 | |
| whiteknight: and just ask me a question if you have one | |||
| davidfetter wonders where the aforementioned blog post is | 17:06 | ||
| cotto | davidfetter, wknight8111.blogspot.com/2010/10/ca...tique.html | 17:07 | |
| whiteknight | dukeleto: how did you get that url set up? | ||
| cotto | one of several blogs on planet parrot | ||
| dukeleto | whiteknight: which URL? | 17:08 | |
| davidfetter | interesting :) | ||
| dukeleto | whiteknight: pl.parrot.org ? | ||
| whiteknight | yeah | ||
| is that in the parrot.org sphere of things, or is it separate? | |||
| dukeleto | whiteknight: the OSUOSL peeps added a DNS entry to my server, so it doesn't run on parrot.org | 17:09 | |
| whiteknight | that's very kind of them. By chance, do we have ability to manage dns subdomains like that, or do we always have to go through the OSU guys? | 17:10 | |
| dukeleto | whiteknight: pretty sure you need to ask them. They are #osuosl on freenode | 17:11 | |
| whiteknight | not that I suspect we will be adding many, of course | ||
| ok | |||
| brb food | 17:12 | ||
|
17:13
shockwave left
17:39
Khisanth left,
Khisanth joined
|
|||
| whiteknight | ah, I forgot how good and cheap food in the city can be | 17:44 | |
| I'm certainly no healthier for it, but it was fast and cheap | |||
| cotto | msg++ | 17:47 | |
| davidfetter wonders which city, and what "fast" and "cheap" mean in this context | 17:53 | ||
| whiteknight | philadelphia. Got a 12 inch sandwich for 3.75$ in about 4 minutes | 18:06 | |
| people from other places might not recognize the value of the almight hoagie | 18:22 | ||
| davidfetter | o/` to all my bulls out in philly... o/` | 18:26 | |
| whiteknight | surprisingly, not too many bulls out here | 18:27 | |
| mostly people | |||
| our embed API is completely stupid. The more I look at it, the more angry I become | 18:31 | ||
| cotto | better you who can fix it than a newcomer who'll go away disappointed | ||
| whiteknight | shit. After reading this, I may go away disappointed | 18:32 | |
| I'm going to write up about a bajillion deprecation notices | |||
| because: screw this | |||
| atrodo | whiteknight> Calling it an API is generous. It's more like internal functions called an API | 18:34 | |
| cotto | libparrot as our primary product is a new and good idea | 18:35 | |
| or at least a major product | |||
| whiteknight | when you think about fakecutables, for instance, they are new, custom front-ends over libparrot | ||
| that's going to be the primary interface for most HLLs, I assume | |||
|
18:36
kj joined
|
|||
| whiteknight | I think we'll get pretty nice encapsulation and a decent interface if the parrot exectutable only calls into libparrot using the standard embedding API | 18:37 | |
| cotto | we'll have to | ||
| whiteknight | I have a question though: should functions in src/embed.c have the form "Parrot_xxx_..."? | 18:38 | |
| the ones in src/extend.c have "Parrot_ext_...", or they should | |||
| Parrot_api_... is a nice idea | |||
| or Parrot_emb_... | |||
| I would like a way to try and demarcate the API functions without having to use PARROT_EXPORT, or PARROT_API, both of which are not properly used throughout and have no consensus behind them | 18:40 | ||
| cotto | Why not hammer out a consensus and use PARROT_API and _EXPORT? | 18:41 | |
| dukeleto | whiteknight: did you see that I wrote a TPF grant to work on the embed system, but it did not get accepted? It has a nice timeline with milestones | 18:43 | |
| cotto | TPF is pretty perl-oriented, so proposals need to be strongly related to Perl 6. chromatic also had a grant for the profiling runcore, but that never went anywhere. | 18:44 | |
| dukeleto | cotto: it was given positive feedback, but they only do 3 grants per quarter, so I would say you are only half-right about proposals needing to be perl6-related | 18:45 | |
|
18:45
kj is now known as kjs
|
|||
| dukeleto | cotto: they are open to parrot stuff, but perl stuff gets ranked higher | 18:45 | |
| github.com/leto/proposals/blob/mast...edding.pod | 18:46 | ||
| whiteknight: the biggest improvement you could work on for embedding is making the docs actually reflect reality, and not be empty | |||
| whiteknight: and iterate on from there | |||
| atrodo | I would say that the embedding API needs to be designed, not just a series of functions that present loops that everyone has to jump through to do simple things | 18:51 | |
| dukeleto | atrodo: yes please. Are you volunteering? | 18:54 | |
| atrodo | Only if nobody gets to it before I do | ||
| cotto | deal | 18:55 | |
|
18:56
brianwisti left
|
|||
| dukeleto | I would be interested in writing a high-level document for "How to I start a project that embeds Parrot" | 18:57 | |
| would anybody be interested in reading that? | |||
| whiteknight | I'm definitely planning to do some API design work. atrodo, wanna be my buddy? | 18:58 | |
| dukeleto: yes, that would be fantastic | |||
| cotto | dukeleto, +yes | 19:01 | |
| atrodo | whiteknight> Sure, sounds like a good time for all | ||
| whiteknight | what I may need to do is start an embedding project of my own, so I can see the problems first-hand | 19:02 | |
| There are plenty of programs I use that support plugins, and a parrot plugin would be nice to have: pidgin, xchat, etc | 19:03 | ||
| cotto | the GIMP would be interesting | 19:05 | |
| whiteknight | it would be, but I don't really use the GIMP | ||
| cotto | ditto | ||
| bacek | aloha, humans | ||
| whiteknight | 01101010, bacek | ||
| cotto | 1001001020100101 bacek | 19:06 | |
| whiteknight | Don't worry bender, there is no 2! | ||
| bacek | It's 15th century already. Binary logic left in 14th! | 19:07 | |
| NotFound | The problem usually has been that emebedding projects gets impatient and instead of discussing the more or less documented api use whatever they need to get functionality. | ||
| dukeleto | whiteknight: no no no, you don't need to start another embedding project. You already have a commit bit on PL/Parrot :) | ||
| whiteknight: you have for a while | |||
| whiteknight | dukeleto: ha! I would love to help, but that sort of defeats the purpose | ||
| dukeleto | whiteknight: defeating what purpose? | ||
| whiteknight | I'm looking for something more simple and demonstrative. Plus, I want to be able to play with new interfaces without breaking other people's work | 19:08 | |
| dukeleto | whiteknight: you are not breaking anybodies work. And I don't know how much simpler you are going to get than PL/Parrot | ||
| whiteknight | the end-goal here isn't a new embedding project, it's an improved embedding API for Parrot | ||
| I'll look into it. I don't know a damned thing about postgres, however | 19:09 | ||
| dukeleto | whiteknight: yes, which means looking at the most active embedding project right now, PL/Parrot, and seeing what parrot needs for it to move forward | ||
| whiteknight: you don't need to know squat about postgres | |||
| whiteknight: i didn't know a thing about postgres internals before PL/Parrot | |||
| whiteknight: i did all the hard work | |||
| whiteknight: you just need to look at how Parrot is involved | |||
| NotFound | whiteknight: PARROT_API is not just not properly used, is not used at all. | 19:10 | |
| whiteknight | dukeleto: do you have a ready list of issues in the Parrot interface that you are having problems with? | ||
| NotFound: I thought it was | |||
| cotto | hi kj | ||
| dukeleto | whiteknight: one huge problem is that a syntax error from IMCC is not caught properly, so syntax errors cause Postgres to coredumps, which sucks. | ||
| NotFound | whiteknight: ack it | ||
| dukeleto | whiteknight: i have made *many* tt's | ||
| whiteknight: i was surprised to see you talk about embedding so much recently, without mentioning anything I have been trying to get people to think about | 19:11 | ||
| whiteknight | assign them to me | ||
| dukeleto | whiteknight: yes sir. | ||
| whiteknight | +1 | 19:12 | |
| cotto thought of Lua as a good example of a popular embedded language too | |||
| dukeleto | indeed. Everybody is embedding Lua | 19:13 | |
| cotto | The video game emulator community has done some really neat things with it. | ||
| dukeleto | The Nmap project uses Lua as an embedded scripting language | 19:14 | |
| atrodo | nmap could be a good embed target | 19:15 | |
| whiteknight | I'm thinking I want to look at xchat or pidgin | 19:17 | |
| both of which should be pretty easy and straight-forward | |||
| dukeleto | Famous last words. | 19:18 | |
| PerlJam | dukeleto: I think you mean "infamous last words" :-) | 19:19 | |
| NotFound | This is a good example of a simple project for embedding: www.linuxjournal.com/article/2901 | ||
| dukeleto | PerlJam: yep, that has a nice ring to it. | ||
| cotto | It hardly matters what the project is since it's primarily an exercise in getting the api down. | 19:20 | |
| whiteknight | exactly | ||
| kjs | hi cotto | ||
| whiteknight | I could embed into BigBobsManureCalculator for all I care | ||
| NotFound | A prpject to big leads to the temptation of forgeting the api and using whatever. | ||
| cotto | It might even be beneficial to have multiple people working on different embedding projects at the same time. | ||
| NotFound | s/to/too | 19:21 | |
| cotto | Just don't tell the xchat guys that they're on the same level as Big Bob's Manure Calculator. | ||
| dukeleto | whiteknight: my thought is that for you to create an entirely new embedding project to figure out an API is not as efficient as seeing what PL/Parrot needs | 19:22 | |
| NotFound | They don't like Big Bobs? | ||
| dukeleto | whiteknight: but of course you are free to start as many embedding projects as you like | ||
| whiteknight: i've done a lot of the hard things and know where all the sharp edges live | |||
|
19:23
wagle left
|
|||
| dukeleto | whiteknight: but if you want to find them all again yourself, I won't stop you. | 19:23 | |
| whiteknight | dukeleto: and that's basically all the information that I need. My hope is that if I do some things the hard way too, I'll have a keener, more intimate understanding of the issues | ||
| dukeleto | whiteknight: sure, but take time into consideration. | ||
| NotFound | Sometimes I think that the better example of parrot embedding should be parrot itself: make the main executable use only the public api. | ||
| whiteknight | I will definitely look at PL/Parrot too | 19:24 | |
| NotFound: Exactly! | |||
| dukeleto | whiteknight: gerd++ just made an rpm of PL/Parrot, so it should be easier to install | ||
| whiteknight: but we obviously still need more docs and examples | |||
| whiteknight | obviously | 19:25 | |
| NotFound | In perlembed there is a paragraph that says: "In a sense, perl (the C program) is a good example of embedding Perl". I'd like for parrot the same paragraph but without the "In a sense" part. | 19:26 | |
| whiteknight | yes | 19:27 | |
|
19:27
wagle joined
|
|||
| whiteknight | NotFound: you interested in joining the product management team? :) | 19:27 | |
| NotFound | whiteknight: if you allow excpetions for the public relations part, sure. | 19:28 | |
| whiteknight | it's a multi-faceted team. We can't all do everything | ||
| dalek | rrot: r49674 | mikehh++ | branches/generational_gc/src/gc/gc_ms2.c: [generational_gc] add some casts to get g++ to build |
19:29 | |
| NotFound | whiteknight: examples/embed/cotorra.c is a start of that idea. | 19:30 | |
| whiteknight | yes, I read that | ||
| I think we need to decide where IMCC lives. Is IMCC part of libparrot, or is it an external component? | 19:38 | ||
| cotto | Eventually PIRATE will replace imcc, and it'll definitely be an external component. | 19:39 | |
| whiteknight | I really like the idea of being able to load in compiler libraries in the same way that we can load dynpmcs or dynops | ||
| dukeleto | whiteknight: IMCC lives in a code cemetary | ||
| whiteknight | IMCC is just a prototype example | 19:40 | |
| any compiler could be written in Lex/Yacc or ANTLR and loaded in as the frontend to libparrot | |||
| that's exactly what people would want if they are concerned about the performance of NQP and PCT | 19:41 | ||
| or if they already have a compiler laying around and are just looking to port it to a more feature-full backend | 19:42 | ||
| take the PHP compiler and just dump it onto libparrot to get instant unicode support, for instance | |||
| (I know there are more steps than that, i'm glossing over them) | 19:43 | ||
| NotFound | If we plan to make imcc or something like it optional, we should think about some kind of code generation api or helper library. | 19:45 | |
| Adding a lot of functionality to the packfile PMCs, for example. | 19:46 | ||
| whiteknight | we need to do that anyway. The packfile PMCs are in huge need of a rewrite | 19:47 | |
| if we can go through IMCC for instance and encapsulate all packfile accesses behind the Packfile PMC VTABLE and the public API, we will be in great shape | 19:51 | ||
| nobody in the world should use struct PackFile or any of it's bastard children directly | |||
| kjs | just a quick note: IMCC needs libparrot to build in order to find out whether an identifier is an op. Therefore making it a clean separate external component is difficult. | 19:52 | |
| PerlJam | What do people think of when they say "Parrot"? What do we want them to think of? | ||
| whiteknight | PerlJam: "ZOMG Fantastic!" | ||
| PerlJam | whiteknight: What's libparrot then? | ||
| whiteknight | a bytecode runtime engine | 19:53 | |
| PerlJam | Are they the same or different? | ||
| whiteknight | are what the same? | ||
| PerlJam | libparrot and Parrot | ||
| whiteknight | no | 19:54 | |
| libparrot is the engine. Parrot is the CLI | |||
| PerlJam | Hmm. | ||
| whiteknight | In 10 years, I expect libparrot to be used frequently, while the Parrot executable not so much | 19:56 | |
| PerlJam | perhaps I'm just being a little bit silly, but I think of "parrot" as the CLI and "Parrot" as the abstract VM/language and "libparrot" as the implementation of "Parrot". But I'm sure other people think of things differently. | ||
| whiteknight | we could be so precise, yes | 19:57 | |
| PerlJam | And I think that maybe that's part of "parrot the project"'s problem. | ||
| Different people are thinking about the "same" thing quite differently. | |||
| whiteknight | how so? | ||
| we already know we have branding and marketing problems | 19:58 | ||
| I do get a little bit weary of using a capital letter to distinguish between two separate things | 19:59 | ||
| PerlJam | sure, I'm not talking about branding or marketing so much as whatever this thing is that people are working on. Some people may think of PIR when they think of parrot so, to them, there's an unstated assumption that *that's* what parrot is. | 20:00 | |
| whiteknight | well, that seems like motivation to rip out PIR and separate it from the rest of Parrot | 20:01 | |
| because PIR is certainly not a "product" that I want people to be thinking of immediately | |||
| cotto | Post-Lorito, we'll be able to severely deemphasize PIR for an Lorito overlay. | 20:06 | |
| davidfetter wonders whether Lorito comes in Cool RanchĀ® flavor | 20:07 | ||
|
20:10
M_o_C joined
|
|||
| dalek | rrot: r49675 | bacek++ | branches/generational_gc/src/gc (2 files): Introduce pool_is_maybe_owned function for quick preliminary check for pointer. Will be used in GC.is_string_ptr or .is_pmc_ptr |
20:15 | |
| rrot: r49676 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c: Use combination of Pool.is_maybe_owned and PObj flags in GC.is_*_ptr. testing of all live objects. |
|||
| whiteknight | I loves me so bacek | 20:21 | |
| he;s going to get this GC done through sheer force of will | 20:22 | ||
|
20:27
nwellnhof joined
|
|||
| davidfetter | bacek++ :) | 20:30 | |
| bacek | Speaking of which... | 20:36 | |
| I _do_ need more eyes on gen_gc branch... | |||
| Looks like I still collect some globals prematurely. | |||
| nwellnhof | bacek: I've been thinking about gc_ms2_bring_them_together and I think I found a case that doesn't work. | 20:37 | |
| Consider the following example: | 20:38 | ||
| 1. There are three object A, B, C in generations 2, 0, 0. They have the following references: A2 -> B0 -> C0. | |||
| 2. There is a gen0 GC. The objects from gen0 are promoted to gen1. So we have A2 -> B1 -> C1. | |||
| 3. Then bring_them_together is called. IIUC, this will move only B to gen2. So we have A2 -> B2 -> C1. | |||
| 4. Now there's a new intergenerational reference from B to C that we don't track. | |||
| bacek | nwellnhof, hmm... It's possible. | 20:39 | |
| nwellnhof, actually, bring_them_together will start with A. Which will bring B into gen2. Which will bring C into gen2 | 20:40 | ||
| moving objects between gens will add them into objects[gen] list. | 20:41 | ||
| Bringing B into gen2 will advance objects[2]->last | |||
| So, while(tmp) loop in bring_them_together will process B | |||
| (At least this is what I expect :) | 20:42 | ||
| nwellnhof | Yes, you might be right. | ||
| But if bring_them_together works recursively it will copy many objects to an older generation. | 20:43 | ||
|
20:43
brianwisti joined
|
|||
| nwellnhof | So we probably don't make much use of generation 1. | 20:43 | |
| I think we should keep the root_objects list and maybe filter it. | 20:44 | ||
| bacek | nwellnhof, yes. But objects into gen2 will be pushed after collecting of gen1 | 20:45 | |
| anyway. It's $dayjob time. | |||
| See you soon. | |||
|
20:50
jjore left
20:53
jjore joined
20:57
whiteknight left
21:01
kjs left
|
|||
| mikehh | nwellnhof: can you check r49672 - t/pmc/io_stdin.t is still failing perlcritic at line 49 | 21:09 | |
|
21:12
dngor joined
|
|||
| dukeleto | How do I add a new OS to Trac? I am in the admin section, but I don't see how. | 21:26 | |
| bacek_at_work | ~~ | ||
| nwellnhof, we can probably squeeze couple more flags into PObj. Then instead of "bringing" objects into same gen we can set "referenced_from_gen" flags to keep them alive. | 21:27 | ||
|
21:28
perlite joined
21:29
perlite_ left
21:30
M_o_C left
21:31
lucian joined,
bluescreen left,
fperrad left
|
|||
| nwellnhof | bacek: I just tried to build the gen_gc branch and got a error when building compilers/tge/TGE/Parser.pir | 21:32 | |
| bacek_at_work | nwellnhof, with optimization? | 21:33 | |
| nwellnhof | yes | ||
| bacek_at_work | on Linux/i386? | ||
| nwellnhof | yes | ||
| bacek_at_work | It's good. Because I have same error on my box :) | ||
| "Looks like I still collect some globals prematurely." | 21:34 | ||
| Try to rebuild without optimization. It works on my machine... | |||
| nwellnhof | I had a look at it and a class->attrib_cache hash seems to be corrupted somewhere. | 21:35 | |
| bacek_at_work | yes. It's collected. | ||
| I didn't have time to investingate it this morning. | 21:36 | ||
| dalek | rrot: r49677 | NotFound++ | trunk (2 files): delete deprecated method lower in String PMC, TT #1606 |
21:48 | |
| nopaste | "bacek" at 192.168.1.3 pasted "Temporary hack for pmc2c." (23 lines) at nopaste.snit.ch/24866 | 21:49 | |
| bacek_at_work | nwellnhof, take a look at nopaste.snit.ch/24866. It can help fighting bug in optimized builds | 21:50 | |
| cotto | aloha, 850/720 | 21:52 | |
| aloha | cotto: 1.18055555555556 | ||
| cotto | aloha, 1/850/720 | ||
| aloha | cotto: 1.63398692810458e-06 | ||
| cotto | aloha, 720/850 | ||
| aloha | cotto: 0.847058823529412 | ||
| bacek_at_work | nwellnhof, better to change it to if (_self && PObj...) | 21:53 | |
| heh. Now it's properly dies in miniparrot! | 21:54 | ||
|
22:06
shockwave joined
22:07
davidfetter left
22:08
davidfetter joined
22:13
brianwisti left
22:24
shockwave left
|
|||
| dalek | rrot: r49678 | nwellnhof++ | trunk/t/pmc/io_stdin.t: [t] Use three-argument form of perl open |
22:50 | |
|
22:50
kid51 joined
|
|||
| kid51 | ~~ | 22:57 | |
| msg dukeleto Do you need n>1 additional config steps for RTEMS? If so, can you describe more fully? | 22:58 | ||
| aloha | OK. I'll deliver the message. | ||
| dukeleto | kid51: i need many | 22:59 | |
| kid51: that is just the first | |||
| kid51: i will create tickets for you as I realize I need them :) | |||
| kid51: but i can create an intro/overview of rtems for parrot peeps | 23:00 | ||
| kid51 | Why don't you (a) create that intro/overview as a wiki page; (b) post on parrot-dev pointing to that wiki page | 23:04 | |
| Also: I've only written the C probes for 1 or 2 config steps myself. I (or anyone else) will need links to docs as the basis for constructing such probes (as was the case with auto::llvm). | 23:06 | ||
| And, if RTEMS is essentially one feature, we may want multiple C probes within a single config step. | 23:07 | ||
| cotto sees why whiteknight usually has several blog posts in the pipeline | 23:08 | ||
|
23:10
Andy left
|
|||
| cotto | atrodo, ping | 23:10 | |
| dukeleto | kid51: the configure step just needs to check the definedness of __rtems__, that is all | 23:11 | |
| cotto | dukeleto, that hardly sounds like a configure step | ||
| dukeleto | kid51: i understand that you would like extensive docs, but I just don't have the time right now. Do you have enough info to make progress? | 23:12 | |
| cotto: what is it then? | |||
| I am fine with making it a C probe, that is actually what I meant. | |||
| cotto | a couple #ifdefs in some headers, as needed | ||
| dukeleto | I was conflating config step and C probe. | ||
| cotto: i need access to it in parrot_config | |||
| cotto | because Parrot needs to act differently if it's on a RTEMS system? | 23:13 | |
| kid51 | I need, at least, links to RTEMS, because I know nothing about it. | ||
| dukeleto | kid51: rtems.com | ||
| cotto: yes | |||
| kid51 | dukeleto: When you were doing that cross-compiling, by any chance did you use the file-based configuration approach to Configure.pl? | 23:14 | |
| cotto | What needs to be different? | ||
| dukeleto | kid51: it will be used when we have a full port of Parrot on RTEMS | 23:20 | |
| cotto: we can't call exit() | |||
| cotto: we need to have an API for defining what to do when we "exit" | |||
| cotto: that api can be a single function which sets a function pointer to call on "exit" | 23:21 | ||
| cotto: exit() on RTEMS reboots the OS | |||
| cotto: so a syntax error reboots the OS, which sucks | |||
| kid51 | Well, that'll teach you to make syntax errors! ;-) | 23:22 | |
| dukeleto | cotto: there are various other things as well, but that is the most easy to fix and makes it much more usuable | ||
| cotto: when you have a few free minutes, could you write a realtime GC too? We need one of those ;) | 23:23 | ||
| cotto: but we can get away with -G for a while | |||
| cotto | I can write one, but you won't like it. | ||
| not after a few minutes of effort, anyway | 23:24 | ||
| That sounds like it'd work fine at the C level, i.e. pir's exit would dtry on rtems without user intervention. Does PIR and higher need to do anything different on rtems? | 23:28 | ||
|
23:29
davidfetter left
|
|||
| cotto | s/dtry/dtrt/ | 23:30 | |
| dukeleto | cotto: no, i think all things that are rtems-specific are known at compile time, so nothing is user-visible except stuff "working like it should" | 23:32 | |
| cotto: rtems is very close to getting dlopen working, so for now, dynamic loading doesn't exist on it yet | 23:33 | ||
| cotto: but they are very close to putting it in their HEAD | |||
| cotto | ok. So it wounds like an rtems-specific parrot_config value would be at best a temporary solution. | 23:34 | |
| s/wounds/sounds/ | |||
|
23:35
dngor_ joined
|
|||
| dalek | rrot: r49679 | nwellnhof++ | trunk/src/io/unix.c: [io] Throw exception on read error |
23:36 | |
|
23:37
patspam left
23:39
dngor left
|
|||
| dukeleto | cotto: it shouldn't be temporary | 23:39 | |
| cotto: we need operating system info in parrot_config | 23:40 | ||
| cotto: rtems is a new OS | |||
| cotto: so we need to store info about it in parrot_config | |||
| cotto: it happens to be the case that it is very easy to see if you are on rtems, you just see if __rtems__ is defined in your C compiler | |||
| cotto: because rtems has a custom compiler toolchain | |||
| cotto | dukeleto, is there anything wrong with parrot_config['osname']? | 23:41 | |
| dukeleto | nwellnhof: ping | 23:42 | |
| cotto: nope, that is fine with me | |||
| aloha, msg nwellnhof tests for r49679 would be greatly appreciated | |||
| aloha | dukeleto: OK. I'll deliver the message. | ||
| nwellnhof | dukeleto: pong | 23:43 | |
| dukeleto | nwellnhof: tests please :) If you are going to commit directly to trunk, we like to see tests first, then code, or commit them together. | ||
| nwellnhof: if you want to hack on branches, then you can do whatever you want | |||
| nwellnhof: and thank you very much for fixing that :) | 23:44 | ||
|
23:44
kid51 is now known as kid51_at_dinner
|
|||
| nwellnhof | dukeleto: for some things it's five times more work to write tests. | 23:45 | |
|
23:46
kid51_at_dinner is now known as kid51
|
|||
| dukeleto | nwellnhof: I am very aware of that. But breaking trunk in a subtle way is worse | 23:46 | |
| cotto too | |||
| kid51 | nwellnhof I second dukeleto on this. We cannot have untested commits to trunk. | ||
| dukeleto | nwellnhof: I know you write good tests, so it shouldn't be a problem ;) | 23:47 | |
| cotto | It was a lot of work to figure out how to test the profiling runcore. | ||
|
23:47
lucian left
|
|||
| dukeleto | nwellnhof: that bug fix probably deserves a mention in NEWS as well | 23:48 | |
|
23:50
whiteknight joined
|
|||
| nwellnhof | dukeleto: any commit can break trunk in subtle ways. adding test cases for a fixed bug is a different thing. | 23:50 | |
| dukeleto | nwellnhof: How so? | 23:52 | |
| nwellnhof: if you think you might break trunk in a subtle way, make a branch. | 23:53 | ||
| We should not be committing directly to trunk, by default. | |||
| nwellnhof | The main purpose of a test case for a fixed bug is to avoid regressions. | 23:54 | |
| dukeleto | nwellnhof: no, it is to prove that your code works, firstly. To prevent regressions is a secondary usefulness. | ||
| nwellnhof: if it doesn't work to begin with, we don't care about regressions | |||
| whiteknight | tests can be used for a variety of reasons | 23:56 | |
| tests on new features prove the feature works. Tests on fixed bugs prove the bug is fixed. All tests can prevent regressions | |||
| nwellnhof | dukeleto: I always check that my commits do indeed fix things, and always run the test suite. I don't think we should create branches for every one-liner. | 23:57 | |
| atrodo | cotto> pong | 23:59 | |