Hi!

* J Altfas <[email protected]> [130414 08:23]:

> After reading #1005, I was trying to understand what was going
> on that accounts for the -1 result in 32 bit systems vs. 0 under
> 64 bit OS. Attempting to learn about it, I ran a scheme program
> using the mmap API directly--the relevant lines are:

Those have been nice tests and you are on the right track!

> This looks exactly like the prior results.  The pointer object
> reports 0 rather than -1, but curiously, (pointer->address) seems
> to correctly dereferences the result (-1), though obscurely prints
> the unsigned long in exponential format.

That's due to a bug of the way the pointer object gets printed and
kind of obscures the real issue.
 
> It appears something happens in setting/getting the data member
> of the pointer object scheme-block structure.  That code is kind
> of convoluted, and I don't yet understand it well enough to comment
> further.

Yep, that's where I am looking at next.

> Long-winded I know, but I'm wondering if mmap is the only c-pointer
> that's affected, and if not, is it causing trouble elsewhere?

Not many APIs use a negative void pointer for errors. I guess that's
the main reason why.

Thanks Jules for looking into this!

Christian

-- 
In the world, there is nothing more submissive and weak than
water. Yet for attacking that which is hard and strong, nothing can
surpass it. --- Lao Tzu

_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to