I'm thinking of changing Kawa's name mangling (at least for class names),
and it would be helpful to have some information before doing so:
(1) I'd like a feel for home common/popular is the mangling
described by John Rose:
https://blogs.oracle.com/jrose/entry/symbolic_freedom_in_the_vm
(2) What tools, if any, such as IDEs, support this mangling?
(3) Any problems or suggested modifications to John's proposal?
Historically, I've used a mangling that translates into valid Java
identifiers, in the interest of Java interoperability: It is a feature
if Java can reference Scheme compiled classes and members without
reflection. However, are some downsides, most obviously that it
makes for ugly and surprising class and member names. For package
names it could means that the compiled class is in a different
directory than the source file. More generally, it is desirable
that source class names (modules names in Kawa) matches compiled class
names. Finally, Java reserved word cause a problem: Should we mangle
the identifier 'package' just because it is a reserved word in Java?
So I'm planning to "mangle less" when it comes to at least package and
class names. And if I'm going to change it, it may be reasonable to
change it to John's proposal, at least if other people are using it,
as is my understanding.
(I'm not changing procedure -> method name mangling and possible not
variable ->field mangling, because that affects the programming experience.
For example Kawa will compile a procedure name lookup-file-name to a
method name lookupFileName, and a property access path-name may get
compiled to a method getPathName. Those are useful features for Java
interoperability.)
--
--Per Bothner
p...@bothner.com http://per.bothner.com/