[Types-sig] RFC Comments
Paul Prescod
paul@prescod.net
Wed, 29 Dec 1999 17:19:51 -0500
skaller wrote:
>
> ...
> It _is_ possible to import only the interface
> of a module, and this should be done when 'import X' is
> seen. In pass two, a full two pass importation is triggered,
> but the interface loading is skipped because the interface
> is already loaded. However, the import still requires TWO
> passes DURING PASS 2, because the implementation file
> may also include inline declarations.
Do you mean old fashioned Python function and class declarations or
newfangled decls and typedecls?
> It follows FROM THE MODEL
> that these declarations are effectively private.
It was never my intent that decls and typedecls could be private.
> ...
> Summmary: pass 1 processing only permits
> pass 1 processing to occur recursively, whereas
> pass 2 imports may invoke a full two phase translation.
My plan was: do everything relating to types, in ALL modules and then do
everything relating to code generation in all modules.
> So because the semantics of importing a module
> (two passes) are quite distinct from only importing
> interfaces, and even that has two possible variants,
> it seems useful, if not essential, to permit a
> pass 1 only kind of importation -- 'include'.
Still not sold on "include".
> but my taste is only a minor point here, I'll run with 'as'
> if that is the final choice.
We'll do a poll once other details are worked out.
> But your use of a function
> call like:
>
> interface_check(x,i)
>
> for a run time test is not as simple as reusing "!"
> for the same purpose:
I am mildly uncomfortable with new expression syntax but my arguments
against it are not watertight so I will document the inline "as" unless
someone else feels as I do. To be honest, I would prefer colons in
function defs and "as" in other contexts if it came down to it. If
terseness is important enough to sacrifice readability for, I would
rather sacrifice it in favor of a mild inconsistency instead of a whole
new meaning for a punctuation character.
Paul Prescod