Newbie questions about Pliant

Newbie questions about Pliant

Calling other languages (using C param passing conventions) from Pliant

Message posted by marcus on 2004/01/19 20:59:35
Why calling shared libs from pliant does not work in debug level 0?
Message posted by hubert.tonneau on 2004/01/19 21:07:46
It should. It basically works since the zlib interface is working, or the Pliant
HTTP server would not work.
The problem might be related to the fact that at debugging level 0,
the EBP register is used for computations (-omit-frame-pointer in GCC words).

Do you have a tiny example that I could test ?
Message posted by marcus on 2004/01/19 21:12:34
Yep.
Message posted by hubert.tonneau on 2004/01/19 21:40:01
Your sample did run fine for me at debugging level 0.
Message posted by marcus on 2004/01/19 22:06:24
Strange. When I run it in debug 0, pliant hangs for a while, then returns me an
exception 11 error.

I am also running some other tests with other languages, such as Mercury. Simi-
lar problem occurs, but an actuall error message appears.

The Pliant code is:

module "/pliant/language/unsafe.pli"

function test s
  arg Int s
  external "libhello.so" "father"

function main
  var Int x:= 1
  test x
  console x eol

main


Debug 0, the following error:

Failed to compile new   ('ImplicitArea'  'sa')
  compile /pliant/language/basic/implicit.pli (internals) 36 34
compile /pliant/language/basic/implicit.pli (internals) 36 31
compile /pliant/language/basic/implicit.pli (internals) 36 31
...

Debug 1, it works.

Debug 2, the following error:

Failed to compile new   ('Str'  ?)
  compile /pliant/language/type/set/list.pli (internals) 245 72
compile /pliant/language/type/set/list.pli (internals) 245 61
compile /pliant/language/type/set/list.pli (internals) 245 61
Message posted by hubert.tonneau on 2004/01/19 23:29:32
If you want to use debugging level 0, you have to precompile Pliant at debugging
level 0 through a command like this:
pliant debug 0 'precompile /binary/default.dump module /pliant/install/precompile.pli' module /pliant/install/precompile.pli

The old Pliant install script used to precompile at debugging level 0, 1 and 2.
The new fullpliant script does only precompile at debugging level 1.