[m-rev.] diff: java name mangling

Paul Bone pbone at csse.unimelb.edu.au
Wed Apr 22 16:42:17 AEST 2009


On Wed, Apr 22, 2009 at 04:37:04PM +1000, Peter Wang wrote:
> Julien ok'd the package name mangling in email.
> 
> Branches: main
> 
> Java backend name mangling fun:
> 
> 1. Java doesn't allow a class name to have the same name as a package, which
> conflicts with Mercury nested modules.  Work around this problem by suffixing
> package name components with underscores.  For example, the Mercury module
> `mammal.primate.chimp' would correspond to a Java class `chimp' in the package
> `mammal_.primate_'.  The exceptions to this are the `mercury' and
> `mercury.runtime' as the first two package name components.
> 
> 2. When compiling the standard library, javac aborts on the name of a `.class'
> file generated for a nested class, saying the file name is too long.  Avoid the
> problem by arbitrarily shortening the names of wrapper classes generated for
> taking the addresses of predicates.  (In the future we may need to do more of
> the same in other contexts but this is enough for the standard library.)
> 

It will be interesting to test things such as the second point here against
other java versions and implementations such as gjc.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20090422/536d9d55/attachment.sig>


More information about the reviews mailing list