A dirnode is the object that represents a .pmod directory. It has `[] and `-> lfuns that looks for identifiers in the directory or in the special module.pmod file.
Joinnodes are used when several module directory trees contain the same module, e.g. if the module path contains /foo and /bar and there's a /foo/Gnu.pmod and a /bar/Gnu.pmod then you'll get a joinnode for Gnu which looks up every identifier in both.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-09-24 16:49: Subject: Re: foo
What are dirnodes and joinnodes modules by the way ?
Martin Stjernholm, Roxen IS @ Pike developers forum wrote:
Yes it's possible to inherit modules, provided that they aren't dirnodes or joinnodes. I've thought about solving the dirnode issue by essentially removing dirnodes altogether (especially the `[] and `-> lfuns in them). Joinnodes are harder to do away with. A solution for that case is probably to add a callback in the compilation handler that can extract a suitable class from the joinnode (or complain).
As for typechecking, it would be necessary that e.g. Regexp and Regexp.Regexp compare as equal, but only when Regexp is used as a class. It's not possible to solve well.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-09-24 14:00: Subject: foo
inherit? You can't inherit modules anyway?
Although I agree on the typechecking. Why doesn't `() look up the lfun?
/ Mirar
/ Brevbäraren