Package support in Erlang: Status ?

Thomas Lindgren thomasl_erlang@REDACTED
Sun Apr 20 12:21:36 CEST 2003

--- Richard Carlsson <richardc@REDACTED> wrote:
> So far I've had almost no feedback at all from
> users, so if you read this
> and
> have tried using packages, then please do let
> everybody know what you think!
> So, if you want to move code from the current "flat"
> namespace into a
> package namespace, you have to:
>         1. rename the module, by prefixing a package
> name
>         2. add an '-import(Mod)' for each
> non-package Mod that is being
> called.
> and that's it. Note that existing code can call
> package modules without any
> changes - for example, you can give a module name as
> 'com.bigcorp.mycallback'
> to the good old gen_server, and everything works
> just as normal.

I tried using packages in my optimizer (granted, a
somewhat unusual application, but one that tends to
encounter these sorts of issues) and ran into a
problem with atoms used as module names.

In particular, the following two functions are not
equivalent in a "packaged" module 
(try erlc -E):


f1() -> m:f(X).

f2() -> Mod = m, Mod:f(X).

As I understand your papers, this is intentional. But
it also breaks referential transparency: one (compiler
or developer) can no longer just replace occurrences
of Mod with its value m (or in general, a variable
occurrence X with the value of X).

That spells needless semantic trouble for all
involved, in my experience. So, my suggestion is to
fix that undesirable feature interaction.


Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo

More information about the erlang-questions mailing list