[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Packaging and importing
- From: Chris Marrin <chris@...>
- Date: Wed, 17 Aug 2005 16:49:47 -0700
Rici Lake wrote:
On 17-Aug-05, at 1:20 PM, Chris Marrin wrote:
I see it most often for "standard" things like Math.
Indeed. I think math (not Math :) ) might be an exception here, since
you're probably not going to find sin, atan2 and PI [1] in other
packages (barring a multi-precision mathematics package, of course.)
I actually meant Math, as in the Javascript Math object which has a PI
constant :-)
One of the changes between Lua 4 and Lua 5 was the move of a huge number
of standard library functions from the global namespace into package
tables. On the whole, it's probably an improvement, since it avoids name
collision (the common alternative, often found in C programs, is
namespacing with prefixes: math_sin, bignum_sin, mortal_sin, etc.; which
can hardly be said to be an improvement on math.sin, etc.)
But for casual users, particularly mathematical ones, it's annoying. So
one option is to dump the relevant package directly into the global
namespace, pretty much as you suggest. But I don't think the proposed
'import' compile-time macro should be overloaded to do this; that's just
confusing. (I'm really putting the cart before the horse here, since
import is just a nebulous proposal based on an interesting but not yet
adopted parsing modification.)
To be clear, I am suggesting they be placed in the local namespace, as
set by setfenv(). I don't like the idea of polluting the global namespace.
--
chris marrin ,""$,
chris@marrin.com b` $ ,,.
mP b' , 1$'
,.` ,b` ,` :$$'
,|` mP ,` ,mm
,b" b" ,` ,mm m$$ ,m ,`P$$
m$` ,b` .` ,mm ,'|$P ,|"1$` ,b$P ,` :$1
b$` ,$: :,`` |$$ ,` $$` ,|` ,$$,,`"$$ .` :$|
b$| _m$`,:` :$1 ,` ,$Pm|` ` :$$,..;"' |$:
P$b, _;b$$b$1" |$$ ,` ,$$" ``' $$
```"```'" `"` `""` ""` ,P`
"As a general rule,don't solve puzzles that open portals to Hell"'