Pekka, please trim the message you are quoting!
> * Pekka Niiranen <crxxn.avvenara@...> [2007-12-15 16:38:57 +0200]:
> Sam Steingold wrote:
>>> warning: memory size out of range, using 4294967295 instead
>>> Cannot map memory to address 0x4000000000000 .
>>> [spvw_mmap.d:359] errno = ENOMEM: Not enough memory.
>>> ./lisp.run: Not enough memory for Lisp.
>>> make: *** [interpreted.mem] Error 1
>
> The "map memory error" above is exactly what happens
> when one tries to compile CLISP in in OpenBSD 4.2/AMD64.
does --disable-mmap help?
> Sam, how about testing OpenBSD/AMD64?; it does run in VMWARE.
how I am supposed to test it?
SF stopped their CF a year ago.
I do not have VMWARE.
--
Sam Steingold (http://sds.podval.org/) on Fedora release 8 (Werewolf)
http://iris.org.ilhttp://mideasttruth.comhttp://israelunderattack.slide.comhttp://thereligionofpeace.comhttp://honestreporting.comhttp://camera.org
If a train station is a place where a train stops, what's a workstation?

On 12/14/07, Sam Steingold <sds@...> wrote:
>
> > I'm trying to compile clisp on mips64 linux 2.6 and I got this mmap error
>
> please see clisp/unix/PLATFORMS, "Hints for porting to new platforms" at
> the end.
> specifically, you may want to start with
> $ ./configure --disable-mmap
That got rid of the mmap error.
> look at src/lispbibl.d and adjust your memory settings, specifically
> oint_type_shift
> oint_type_len
> oint_type_mask
> oint_addr_shift
> oint_addr_len
> oint_addr_mask
> oint_data_shift
> oint_data_len
> oint_data_mask
You are right, I got these errors:
In file included from spvw.d:24:
lispbibl.d:2981:7: error: #error "oint_addr_mask doesn't cover
CODE_ADDRESS_RANGE !!"
lispbibl.d:2984:7: error: #error "oint_addr_mask doesn't cover
MALLOC_ADDRESS_RANGE !!"
spvw.d: In function 'parse_options':
spvw.d:2099: warning: comparison is always true due to limited range
of data type
spvw.d: At top level:
spvw.d:3438: internal compiler error: in dwarf2out_finish, at dwarf2out.c:14128
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html&gt; for instructions.
make: *** [spvw.o] Error 1
I'm not very familiar with the low level implementation details but it
seems like I need to tweak these oint_xxx parameters for it to compile
on mips64 linux.
What are these exactly and what implication does it have if I tweak
them without good understanding of how the clisp compiler works?
> >>From the comments in various places it seems that clisp assume the
> > platform is SGI if the process is mips.
>
> actually, it appears that at least dec ultrix on mips is supported.
I'd think so. But it seems like mipsn32/64 on linux is a different
beast. I believe the ABI is defined by the process + the tool chain
(i.e. gnu gcc and linker).
> normally the minitests output should be empty, but it is not for you.
> what is it?
There are 4 components in the ffcall library, now the first thing I
try is to get avcall working.
The mips64 minitest output suggested that all integers/longs c call
passed. However, the c structure function call failed.
I just come across this
http://gcc.gnu.org/gcc-3.4/mips-abi.html
and it seems to match what I'm seeing.
The mipsn32 avcall minitest output are all messed up, though.
BTW, the mips64 processor I'm using don't have a floating point unit
so all the floating point related tests failed as well. The c code are
compiled with -msoft-float so gcc will emulate the floating point
operations. But this is not a big issue if FFI doesn't work with
floats because a lot of useful c libraries don't use floats.
I've generated the port-structs.s output for mips64 and mipsn32, along
with minitest output and a dummy c file similar to port-structs.c but
for integers parameters and the generated assembly.
http://fungsin.lui.googlepages.com/mips.abi.zip
If I cannot resolve the build issue with mips64, I'm hoping to get
mipsn32 ffcall fixed so I can use FFI (I got clisp built without FFI
on mipsn32).
Failing even that, is there a way to create custom linkset that I can
call back into lisp code?
I quickly browse through the various modules that comes with clisp,
for instance, the queens example show you how to export a c function
for lisp to call. But is it possible to call lisp from c within the
module?
Thanks,
-- fungsin.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Lui Fungsin wrote:
> On 12/14/07, Sam Steingold <sds@...> wrote:
>> look at src/lispbibl.d and adjust your memory settings, specifically
>> oint_type_shift
>> oint_type_len
>> oint_type_mask
>> oint_addr_shift
>> oint_addr_len
>> oint_addr_mask
>> oint_data_shift
>> oint_data_len
>> oint_data_mask
>
> You are right, I got these errors:
>
> In file included from spvw.d:24:
> lispbibl.d:2981:7: error: #error "oint_addr_mask doesn't cover
> CODE_ADDRESS_RANGE !!"
> lispbibl.d:2984:7: error: #error "oint_addr_mask doesn't cover
> MALLOC_ADDRESS_RANGE !!"
> spvw.d: In function 'parse_options':
> spvw.d:2099: warning: comparison is always true due to limited range
> of data type
> spvw.d: At top level:
> spvw.d:3438: internal compiler error: in dwarf2out_finish, at dwarf2out.c:14128
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html&gt; for instructions.
> make: *** [spvw.o] Error 1
>
> I'm not very familiar with the low level implementation details but it
> seems like I need to tweak these oint_xxx parameters for it to compile
> on mips64 linux.
probably.
> What are these exactly and what implication does it have if I tweak
> them without good understanding of how the clisp compiler works?
these constants determine how the machine word is used for type,
address, and data. you can use the values for other platforms as your
inspiration.
if you use wrong values, bad things happen.
fortunately, they happen rather early, so if you get as far as loading a
few lisp files on the way to interpreted.mem, you are probably good.
> I quickly browse through the various modules that comes with clisp,
> for instance, the queens example show you how to export a c function
> for lisp to call. But is it possible to call lisp from c within the
> module?
sure, just use funcall().
see, e.g., modules/syscalls/calls.c and search for funcall.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHZo2pPp1Qsf2qnMcRAplmAJ0b8hPWP5sKmIfbLYhe8JOA06Fj+QCfXwgB
RsDPUMmdsYVhU6BKAy+49YU=
=0g/C
-----END PGP SIGNATURE-----