Newbie questions about Pliant

Newbie questions about Pliant

Failed to compile new in generic functions

Message posted by maybe Oksana on 2004/10/10 19:57:42
I'm trying to execute an generic functions example (pasted below), 
but get a compile error (also below). What could be wrong? 

************* Example: 
module "/pliant/language/compiler.pli"

type Number
  void
Number maybe Int
Number maybe Intn
Number maybe Float

method n show -> s
  arg Number n ; arg Str s
  generic
  s := "?"

method i show -> s
  arg Int i ; arg Str s
  s := string i

gvar Link:Int i :> new Int
i := 5
gvar Link:Number n :> i
console n:show eol


************** 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
compile /pliant/language/basic/implicit.pli (internals) 36 1
compile /pliant/language/basic/implicit.pli (internals) 36 1
compile /pliant/language/basic/implicit.pli (internals) 35 3
compile /pliant/language/basic/implicit.pli (internals) 35 3
compile /pliant/language/basic/implicit.pli (internals) 29 1
compile /pliant/language/basic/implicit.pli (internals) 29 1
compile /pliant/language/basic/implicit.pli (internals) 28 1
compile /pliant/language/basic/implicit.pli (internals) 28 1
compile /pliant/language/basic/implicit.pli (internals) 28 1
compile /pliant/language/basic/implicit.pli (internals) 28 1
parse /pliant/language/basic/implicit.pli (internals) 47 1
module /pliant/language/basic/implicit.pli
compile /pliant/install/ring2.pli (internals) 90 1
compile /pliant/install/ring2.pli (internals) 90 1
compile /pliant/install/ring2.pli (internals) 90 1
compile /pliant/install/ring2.pli (internals) 90 1
parse /pliant/install/ring2.pli (internals) 92 1
module /pliant/install/ring2.pli
compile /pliant/language/data/new.pli (internals) 17 1
compile /pliant/language/data/new.pli (internals) 17 1
compile /pliant/language/data/new.pli (internals) 17 1
compile /pliant/language/data/new.pli (internals) 17 1
parse /pliant/language/data/new.pli (internals) 20 1
module /pliant/language/data/new.pli
compile /pliant/language/unsafe.pli (internals) 18 1
compile /pliant/language/unsafe.pli (internals) 18 1
compile /pliant/language/unsafe.pli (internals) 18 1
compile /pliant/language/unsafe.pli (internals) 18 1
parse /pliant/language/unsafe.pli (internals) 19 1
module /pliant/language/unsafe.pli
compile /pliant/language/compiler.pli (internals) 16 1
compile /pliant/language/compiler.pli (internals) 16 1
compile /pliant/language/compiler.pli (internals) 16 1
compile /pliant/language/compiler.pli (internals) 16 1
parse /pliant/language/compiler.pli (internals) 18 1
module /pliant/language/compiler.pli
compile file:testnew.pli (internals) 1 1
compile file:testnew.pli (internals) 1 1
compile file:testnew.pli (internals) 1 1
compile file:testnew.pli (internals) 1 1
parse file:testnew.pli (internals) 3 1
module file:testnew.pli
 
Message posted by hubert.tonneau on 2004/10/10 20:01:23
Your code is ok: you have a problem with the /pliant/binary/default-debug1.dump
precompiled environment.

Delete it, then rerun /pliant/fullpliant executable, and check that it creates
a new .dump file
Message posted by maybe Oksana on 2004/10/10 20:32:10
Thanks for such quick reply. 

I did just what you recommended, it does create a new .dump file, but the 
problem still persist (error message is the same). Could there be something 
else wrong?
Message posted by hubert.tonneau on 2004/10/10 20:38:10
Try something like:
  pliant module /pliant/install/minimal.pli /tmp/foo.pli
where '/tmp/foo.pli' will be replaced by the name of your script.

It will force Pliant to compile the minimal environment that it could not
get through loading the .dump file.
Message posted by maybe Oksana on 2004/10/10 21:01:49
Can't do it. This is what I get:
./pliant/install/minimal.pli: line 16: abstract: command not found
./pliant/install/minimal.pli: line 17: text: command not found
./pliant/install/minimal.pli: line 19: module: command not found
./pliant/install/minimal.pli: line 20: module: command not found
.....

There's probably smth wrong with the way I installed pliant. Maybe I 
should mention that I wasn't able to run /pliant/pliant/install/install,
as suggested on your website. I simply untared pliant file and run
fullpliant. Did I miss anything?
Message posted by hubert.tonneau on 2004/10/10 21:12:43
Are you running Linux or Windows ?
Message posted by maybe Oksana on 2004/10/10 21:13:14
Linux
Message posted by hubert.tonneau on 2004/10/10 21:15:24
Please post the all set of commands you typed to install Pliant, including
an initial 'cd' command, the 'tar' command, etc
Message posted by maybe Oksana on 2004/10/10 21:21:54
1) Copied pliant-92.tgz to /tmp
2) cd /
3) tar -zxv -P -f /tmp/pliant-92.tgz
4) cd /pliant
5) ./fullpliant

After I was able to compile and run simpler pliant programs, but as soon as
I got to using new - I got errors
Message posted by maybe Oksana on 2004/10/10 21:35:16
When I was trying to run /pliant/pliant/install/install after step 3), it would 
either say that command not found, or file desn't exist (install.pli did exist in 
install directory). I tried all possible

/pliant/pliant/install/install
./pliant/pliant/install/install
/pliant/pliant/install/install.pli

but with no success.

Should I try to reinstall pliant, or you see the problem there?
Message posted by hubert.tonneau on 2004/10/10 21:56:20
Your installation sequence seems correct.

Just try:
  /pliant/binary/pliant-debug1.exe reset module /pliant/language/internals.pli command 'console pliant_root_path+"[lf]"'
It should output:
  /pliant/

Also check
  ls -l /bin/pliant
The softlink should point to /pliant/binary/pliant-debug1.exe

If none of these gives the solution, please post the command you run to test
your sample program.
Message posted by maybe Oksana on 2004/10/10 22:25:47
Now this could be the problem - I don't have 

/pliant/pliant/language/internals.pli

(unix root, not pliant)

Where can I get it?
Message posted by maybe Oksana on 2004/10/10 22:58:49
More specifically, this is the error that  
/pliant/binary/pliant-debug1.exe reset module /pliant/language/internals.pli command 'console pliant_root_path+"[lf]"'
command produced:

Failed to load module /pliant/language/internals.pli
 
Failed to compile pliant_root_path   ()
  compile <command line> 1 9
compile <command line> 1 25
compile <command line> 1 25
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
parse <command line> 2 1
module <command line>
 
Failed to compile pliant_root_path   ()
  compile <command line> 1 9
compile <command line> 1 25
compile <command line> 1 25
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
parse <command line> 2 1
module <command line>
 
Failed to compile pliant_root_path   ()
  compile <command line> 1 9
compile <command line> 1 25
compile <command line> 1 25
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
parse <command line> 2 1
module <command line>
 
Failed to compile pliant_root_path   ()
  compile <command line> 1 9
compile <command line> 1 25
compile <command line> 1 25
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
compile <command line> 1 1
parse <command line> 2 1
module <command line>
Message posted by hubert.tonneau on 2004/10/10 23:28:57
My command was wrong:
  /pliant/binary/pliant-debug1.exe reset module /pliant/language/context/internals.pli command 'console pliant_root_path+"[lf]"'
The '/pliant/language/context/internals.pli' module is a fake one, giving access
to some functions defined in C.

I think you should mail directly to me or we might overflow others mailbox.
A single sumary post to the forum at end will be enough.
Message posted by maybe Boris Reitman on 2004/10/11 02:37:35
Hi,

This maybe realated. when I run /pliant/fullpliant to rebuild the dump 
file,  I don't want to bother with the webserver.  At the point that I am asked 
to connect to http://localhost, I just abort the program with Ctrl-C. 
Could this cause a corruption in the dump file, because some state not being saved ?
I am not observing this now, but I remember I had problems with earlier versions
of pliant, and I thought that that was the cause.  I am still not sure about 
the proper way to shutdown the pliant http server.
Message posted by maybe Oksana on 2004/10/11 15:07:51
Hubert,

Thank you for spending so much time helping me figure out this problem. 
I finally made it work by using 

pliant module /mydir/myfile.pli (which didn't work before your adjustments)

instead of just 

./pliant/binary/pliant-debug0.exe myfile.pli,

which seemed to have worked for simpler programs.

Thanks again.