[Newbies] [squeak-dev] FFI and mpfr calls in squeak

Tobias Pape Das.Linux at gmx.de
Thu Aug 13 11:35:05 UTC 2020


Hi

> On 13.08.2020, at 13:21, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
> 
> Hi Lawson.
> 
> >  I think: the mpfr library uses the gmp library. So how does one do THAT with squeak?
> 
> You don't. Your operating system does that for you. Well, the same lookup rules for that dependent library apply, I suppose. Do you have the gmp library installed in your system?
> 
> Yes, not having all dependent libraries does raise that "external module not found" error, too. It can be confusing.
> 
> Working with FFI requires knowledge about working with shared libraries in your operating system. It's one of those "leaky abstractions" where Squeak is -- understandably -- not able to hold your hand for all kinds of configurations out there. :-)
> 
> You can try using a debug-build VM, which produces a more descriptive error log.

also, try 'otool -L ' on the library you are trying to load.

> 
> Best,
> Marcel
>> Am 13.08.2020 12:11:53 schrieb LawsonEnglish <lenglish5 at cox.net>:
>> 
>> So I tested a simple mandelbrot set rendering algorithm using the ArbitraryPrecisionFloat package and it works just fine, but terribly slowly.
>> 
>> So I had the idea of using mpfr via FFI and find that I can’t even begin.

How did you install mpfr?

>> 
>> I’m getting the dreaded External module not found error and just can’t get rid of it.
>> 
>> I thought I was taking the easy route and simply copying the mpfr library into the Squeak all-in-one Resources directory but no matter what I try, that error pops up.
>> 
>> 
>> initPrecision: aDefaultPrecision
>> “initialize default precision"
>> 
>> 
>> ^self externalCallFailed 
>> 
>> This is roughly the “hello world” of using mpfr, I thought, but can’t even do that.
>> 
>> Now, waiting in the wings is a bigger problem, I think: the mpfr library uses the gmp library. So how does one do THAT with squeak? Compile both libraries into a single target? (yikes!).
>> 
>> That might be an issue later on, but the impression I’m getting is that squeak simply can’t find libmpfr.6.dylib, so errors that result from calling a second library from the first haven’t even popped up yet.
>> 
>> 
>> Squeak5.3-19435-64bit, Mac OS X 10.15.6

Note that MacOS changes rapidly these days and we might simply have not catched up with the newest nonsense of Apple . . .

Best regards
	-Tobias



>> 
>> 
>> Thanks 
>> 
>> 
>> Lawson
>> 
> 




More information about the Beginners mailing list