#665: Pmc2c gets confused when name in "pmclass" line mismatches the filename
----------------------+-----------------------------------------------------
Reporter: Infinoid | Owner:
Type: patch | Status: new
Priority: normal | Milestone:
Component: none | Version: 1.1.0
Severity: medium | Keywords:
Lang: | Patch: new
Platform: |
----------------------+-----------------------------------------------------
From darbelo++'s report:
{{{
pmc2c gnerates .h files named after the input file, but includes files
based on the PMC name. This was a factor on yesterday's 'sploding.
It's easy to work around: Name your files the same as your PMC (or the
other way around), but it feels like a bug to me.
/--
$ cat foo.pmc
pmclass bar {
}
# pmc2c --dump, pmc2c --c, etc.
$ ls *h
pmc_foo.h
$ grep include foo.c
#include "parrot/parrot.h"
#include "parrot/extend.h"
#include "parrot/dynext.h"
#include "pmc_bar.h"
#include "pmc_default.h"
#include "bar.str"
#include "pmc_continuation.h"
#include "pmc_default.h"
<darbelo> I have a PMC named bar in a file name foo.pmc.
<darbelo> pmc2c generates pmc_foo.h
}}}
So pmc2c has inconsistent header file handling when the pmclass name
doesn't match the filename (other than the pmclass name being
capitalized).
I'm not sure whether we want to support different names. If so, pmc2c
needs to be fixed up. If not, it might help if pmc2c emits a big nasty
error message about it... apparently this was the cause of much head-
scratching.
Here's a patch to emit a big nasty error message. I'm not sure whether it
needs a deprecation cycle or not; it's conceiveable that some HLL out
there relies on this (rather insane) behavior.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/665>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets