[erlang-questions] Design strategies for a test suite

John Haugeland <>
Fri May 16 22:45:27 CEST 2008


Looks like I managed to send this to Paul privately instead of the list as
intended.  Gee, I love sucking at the internet.


> %% API
> -ifdef(NDEBUG).
> -export([foo/0]).
> -else.
> -compile([export_all, debug_info]).
> -endif.
>

I'm not really sure how I feel about the export prototype list changing on
terms of a macro define.  The thing that gives me pause is the importance of
a compile in Erlang's module system: just compiling something has some
pretty major impact on its use in a live system.  Still, it's not any worse
than the things I'd already come up with.

I'm starting to think this Selective Export thing might be what I want.  I
don't see much talk of how it's done exactly, and when I googled I got stuff
from Eiffel and Haskell.  That said, what Eiffel and Haskell have seem to be
what I want.  I went digging through the eeps looking for a discussion of
what's intended, but didn't find one.  I'm kind of a noob, here; where
should I be looking to see what's planned?

Am I right in believing we'd be seeing something like this?

-export([foo/0, foo/1]).
-export_to(some_module, [bar/0]).

That sort of thing seems extremely desirable to me.  One of the biggest
problems I'm having with Erlang right now is a way to govern display at the
code level of facilities.  I'm very much a C++ mindset person, and I'm very
much in desire of some way to seal off access to a lot of stuff that's just
sitting out exposed right now.

Selective export would allow me to do the kind of closed-access thing I'm
used to from friend declarations, and if it worked with one's own module,
it'd provide me a way to make spawnable functions internal only (something I
really, really badly want) just by naming the module in its own export
clause.

-module(protected_example).
-export_to(protected_example, [privateish_spawnable/0]).    % want badly

So, pardon me please for speaking up at what's probably late in the game,
but where can I go to read about the current mindset for selective export,
and whether it's expected as a language feature?  (It would be tremendously
useful.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080516/3c1611e9/attachment.html>


More information about the erlang-questions mailing list