knuutila@tucos.UUCP (Timo Knuutila) (08/25/89)
This message is totally about the use of ALS Prolog, so readers not interested
may just press 'j' or whatever.
I had BIG difficulties when trying to use the foreign language interface with
Microsoft C (v. 5.1). The make-files given didn't make, and the examples and
instructions in read.me-files wouldn't just do the work they were supposed
to do. I spend long frustrating hours trying to link the obj-files and when
I finally got all the unresolved externals resolved, the result of
:- load_foreign('test.exe',user).
was one of the following:
- integer divide by 0, halting ALS worked (memory fragmented)
- whole machine jammed (power-off switch worked)
- best result: loading ok, but none of the foreign calls worked
Finally, I got things to work with the following procedure (small memory
model):
- compile source file(s) with /AS-switch (quite obvious)
- make a LIBRARY from the mscside.obj-file!!! (with lib)
- link with
obj: own file(s) main [extra if needed]
lib: [own libs] msoftc mscside
Any similar experiences? If somebody from the ALS-design group reads this,
please tell me (in this group or by e-mail) is there really some bug or
have I missed something.
Another question to the possible ALS-designer. I noticed that when compiling
clause of the form
head :- p(g(B)), q(B), r(B).
the compiler generated a put_unsafe_value-command for the last occurrence
of B. However, since B's first occurrence is inside a structure (g), it
should be globally bound later in the clause (I have ALS v. 1.2). Is this
a bug or a feature?
Don't take these flames too seriously. ALS is one of the best choices for a
PC-user. I just hope they will break the DOS memory barriers and make
something like ALS/386.
Timo Knuutila
e-mail to: knuutila@cs.utu.fi
Disclaimer: My opinions are my opinions.