Hi Simon,

> (cfun RNG* new_RNG (ulong seed))
> (cfun double RNG_next_double (RNG* self))
>   {cfun_new_RNG, "epi:w_RNG"},
>   {cfun_RNG_next_double, "epi:G_next_double"},
> Everything links fine, but are these functions automatically exposed?
> Are there any tips so I can do things like
> (setq r (epi:new_RNG 1))

the functions should be "exposed", if you try (setq r (epi:w_RNG 1)),
because that's how you specified the name transformation with the
module function.

The second arg to module says how the C function names are turned into
picolisp function names.  By default, they stay the same.

In your case '((X) (pack "epi:" (cddr (chop X)))) chops off the first
two characters and prepends "epi:".

If you want to keep the name as is and prepend "epi:" only, try:

(module 'epi '((X) (pack "epi:" X)))

That should do the trick;-)



Reply via email to