Vance Shipley <>
Fri Jan 31 07:20:40 CET 2003


Actually what it's telling you is that the there is already a module
named "sets" in a directory within the code path which has previously
been marked as "sticky".  See code:stick_dir/1 and code:unstick_dir/1.

You'll find that it is the stdlib directory which has been set this way.
You should rename your module to something which doesn't conflict or if
you like to live dangerously just unsrick the stdlib directory:

1> c(sets).                      % note that ".erl" extension uneeded

=ERROR REPORT==== 31-Jan-2003::01:37:25 ===
Can't load module that resides in sticky dir

2> code:which(sets).

3> code:unstick_dir("/usr/local/lib/erlang/lib/stdlib-").

4> c(sets).
./sets.erl:85: Warning: function do_find_path/3 is unused
./sets.erl:85: Warning: function find_path/3 is unused

5> code:clash().
** ./sets.beam hides /usr/local/lib/erlang/lib/stdlib-
** Found 1 name clashes in code paths 

6> code:which(sets).


On Fri, Jan 31, 2003 at 04:49:20PM -0800,  wrote:
}  When compiling the sets.erl example in "Concurrent Programming in Erlang" I get this error:
}  Erlang (BEAM) emulator version 5.2 [source] [hipe]
}  Eshell V5.2  (abort with ^G)
}  1> c(sets.erl).
}  {error,sticky_directory}
}  =ERROR REPORT==== 30-Jan-2003::22:52:02 ===
}  Can't load module that resides in sticky dir
}  2>
}  What is this telling me?  I might guess that the module is the one I'm trying to compile and sticky directory is the current directory.  
}  Rgds,
}  Steve

More information about the erlang-questions mailing list