#655: Kill non-working GC cores
-------------------------+--------------------------------------------------
Reporter: whiteknight | Owner:
Type: RFC | Status: new
Priority: normal | Milestone:
Component: none | Version: 1.1.0
Severity: medium | Keywords:
Lang: | Patch:
Platform: |
-------------------------+--------------------------------------------------
Comment(by doughera):
Replying to [comment:4 whiteknight]:
> I guess what I'm tying to figure out is this: (1) is this file
salvageable enough that with a reasonable effort we could get it "working"
and "passing all tests",
It's hard to say. I think with less than an hour's work, I could have
parrot-1.1.0 passing everything but a few string tests. (Most of that
time would be figuring out how to work the headerizer and tweaking
Configure.pl to get the Makefile right.) That's where I got stuck before.
Some more background, and some speculations about what might be going
wrong, is in RT, in [perl #42774]. My memory on what was going wrong is
fuzzy (and my note at the top of res_lea.c is nearly two years old, which
probably explains why).
I have no estimate for how much work would be involved in bringing it in
sync with the current GC API, because I have no idea what has changed. I
can say that the res_lea.c file is deliberately intended to be extremely
simple, so it's probably not too hard to adapt. I suspect we'd still end
up with the same few string failures.
That said, since res_lea.c is deliberately kept simple, it's also probably
not going to be that big of a deal to re-create a similar file from
scratch to work with the new GC API.
> (2) Even if it works, does this method provide any particular benefits
that are worth having, besides the novelty of having a second GC core, and
(3) Is there any benefit to a salvage mission over deleting this file as
part of a general cleanup effort so we can take stock of what we do have
and implement what we will eventually want?
>
> Newer "dream" GC cores will be easier to produce if we clear out unused
garbage and have a cleaner work environment with fewer distractions. If
res_lea.c is not part of the way forward, then it is part of the mess
that's obscuring that way.
I think it's a bit of both. Every place where it's obscuring the way
(outside of Configure and res_lea.c itself) is a place where it's pointing
out that perhaps the current resources.c implementation is leaking
internal details. (And the fact that it currently fails some strings
tests signals that we're missing a few more spots.)
On balance, I think the problems are probably at a higher level of
abstraction and encapsulation,
so whatever plan makes it easiest for you to address such higher level
issues is probably the best. I suspect that means deleting all the cruft.
Just be sure to question why each #ifdef was required before deleting it.
As long as it's possible to come back later and reimplement a "clean-
room" GC based on the new API, it should be ok.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/655#comment:5>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets