Newbie questions about Pliant

Newbie questions about Pliant

Pliant crashed when attempting a precompile the http server

I tried to precompile the http server. It didn't work the
first time around, so I changed the command line a little.
Then it crashed.
Message posted by Micky Latowicki on 2001/10/17 07:17:37
My system is win98, pliant 64. Note that upon all invocations, the 
precompiled version did not exist.

1. I've tried this:
pliant 'precompile /binary/http.dump' 
module /pliant/protocol/http/server.pli command 'http_server configure'

this produces an "invalid page fault in module <unknown> at 0000:00000001".

After these lines comes a register dump and a dump of the stack and the 
code at CS:EIP. I can provide those if requested.

2. I've also tried the line from "running pliant programs":
pliant 'debug 0 precompile /binary/http.dump 
module /pliant/protocol/http/server.pli 
module /pliant/protocol/http/style/' 
module /pliant/protocol/http/server.pli command http_server

and got these messages: 

"File /binary/default.dump is not compatible with your configuration.
Please rebuild it.

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

2a) If I'm not mistaken, the default debugging level is 1. Why can't 
I precompile with a debugging level other than the default? Is there
something wrong with my setup?

2b) Why does this fail?


3) I've also tried to remove the debug level, which appeared problematic:

pliant 'precompile /binary/http.dump 
module /pliant/protocol/http/server.pli 
module /pliant/protocol/http/style/' 
module '/pliant/protocol/http/server.pli' command http_server

Now I got this message:

Failed to parse token

   parse <command line> 1 12
   module <command line>


Comments would be appreciated.
Message posted by Micky Latowicki on 2001/10/17 07:20:57
I've noticed that adding a "> nul" to the end of (3) seems to solve the problem, 
so this probably fails to work because of some problem with the way the 
command interpreter ( in this case) parses the command line.
Message posted by maybe Hubert Tonneau on 2001/10/17 08:45:59
The right syntax for you is (tested on Linux):

pliant 'precompile /binary/http.dump module /pliant/protocol/http/server.pli' module /pliant/protocol/http/server.pli command 'http_server configure'
Message posted by maybe Hubert Tonneau on 2001/10/17 08:48:04
If you want debugging level 0, then just use:

pliant 'debug 0 precompile /binary/http.dump module /pliant/protocol/http/server.pli' module /pliant/protocol/http/server.pli command 'http_server configure'

Message posted by maybe Hubert Tonneau on 2001/10/17 08:56:13
> pliant 'precompile /binary/http.dump' module ...

will seg fault on any plateform: the explaination is that precompile instruction
requires the modules you want to precompile to be specified within the same
  pliant 'precompile /binary/http.dump module ...' module ...

> File /binary/default.dump is not compatible with your configuration.
> Please rebuild it.

One DLL in your system is now loading at a different address, so you have
to rurun /pliant/pliant/install/install because the Pliant dump files are
not relocatable.

> Failed to compile new   ('ImplicitArea'  'sa')
> compile /pliant/language/basic/implicit.pli (internals) 58 34"

This is the message one get when /pliant/pliant/install/install has not been
run properly (or the .dump are not valid anymore since DLLs are now loading
at a different address)

> pliant 'precompile /binary/http.dump 
> module /pliant/protocol/http/server.pli 
> module /pliant/protocol/http/style/' 
> module '/pliant/protocol/http/server.pli' command http_server
> (10)
> parse <command line> 1 12

You must provide the command on a single line !

Message posted by Micky Latowicki on 2001/10/17 11:12:15
* Each command was entered as a single line, and was divided to multiple
lines only when posted to the forum, to ease reading.

* I think it would be nice if pliant didn't segfault, if possible. Is it 
feasible to prevent or catch the segfault, and print a helpful error message?

* why is the server.pli module specified twice in the command line?

* How can I tell which modules to list after the precompile option? the http
server, for instance, needs 2 modules after the precompile option, even though
only the server.pli module is directly run. How does one know which modules
to add? (in this case, the additional module was

* I've re-run install.bat, and tried your suggestion from 08:45:59 again. 
It didn't work (win98, I got the same error message:
"Failed to parse token". Again, adding a redirection (this time " > con"), 
did the trick, so it's probably an incompatibility between and the command interpreter you use (bash?). I've tried 
cygwin's bash, and it didn't help. It gave the message:

'Failed to load program from file "precompile'

* Next, I've tried your suggestion from 08:48:04 again. 
I got the same message:

"File /binary/default.dump is not compatible with your configuration!
Please rebuild it."

I emphasize that this is after re-running install.bat and receiving messages
that seem to indicate a sucessfull recompilation.

Message posted by maybe  on 2001/10/18 08:20:32
> pliant 'precompile /binary/http.dump 
> module /pliant/protocol/http/server.pli 
> module /pliant/protocol/http/style/' 
> module '/pliant/protocol/http/server.pli' command http_server
> Failed to parse token
> (10)
> parse <command line> 1 12

> Each command was entered as a single line, and was divided to multiple
> lines only when posted to the forum, to ease reading.

Ok, but what Pliant failed to parse is character number 10, which is
carriage return or line feed, so Pliant did not receive a single line command.

Could you try putting the right command in a .bat
Just in case.

> I think it would be nice if pliant didn't segfault, if possible. Is it 
> feasible to prevent or catch the segfault, and print a helpful error message?

Sure. This is a tiny bug.

> why is the server.pli module specified twice in the command line?

> How can I tell which modules to list after the precompile option? the http
> server, for instance, needs 2 modules after the precompile option, even though
> only the server.pli module is directly run. How does one know which modules
> to add? (in this case, the additional module was

It is specified once in the 'precompiled' argument in order to specify that
it must be in the .dump file
Then it is specified a second time in the next argument so that you can then
use the names it defines in the next argument which is 'command'

standard way to launch the HTTP server:
  pliant module /pliant/protocol/http/server.pli command http_server

now let's precompile it. the first time it will start at normal speed because
the binary/http.dump is not available, but the second time, it will start fast.
  pliant 'precompile /binary/http.dump module /pliant/protocol/http/server.pli' module /pliant/protocol/http/server.pli command http_server

so the HTTP server now starts instantly, but the first requested dynamic page
is still long to come because Pliant needs to precompile the default style
module, so let's precompile it also (you must delete the old /binary/http.dump):
  pliant 'precompile /binary/http.dump module /pliant/protocol/http/server.pli module /pliant/protocol/http/style/' module /pliant/protocol/http/server.pli command http_server

> Next, I've tried your suggestion from 08:48:04 again. 
> I got the same message:
> "File /binary/default.dump is not compatible with your configuration!
> Please rebuild it."

Seems like Pliant on Windows will be a problem until we have an advanced
user with programming capabilities using it everyday :-(
Message posted by Micky Latowicki on 2001/10/18 13:17:57
Every time I ran the command, I ran it from a bat file, with a single line.
It's much more convenient than typing it over and over again...

Message posted by michel on 2001/10/19 15:59:39
Precompiling Pliant and server lauch

An other way to precompile automaticaly the different servers.
You can also have a one shoot lauching of all enabled servers.
This way permits to automaticaly restore the servers when a crash occurs.

Th first thing to do is to create a “/pliant/custom/ directory”,
the second is to put in a customized “precompile.pli” (a Patrice's issue), see the patch joined.
the third is to make , where you want this “server.bat” file.

echo off
pliant debug 1 module /pliant/fullpliant/run.pli 
goto loop

After you have to stop your “server” and tu run a new time “install.bat”.
When you run now “server.bat” all your servers (DNS, HTTP, FTP, aso.) will start.
If a  server crashes; it is automatically restored.
If you update one of your server you normally have to restart it, just make a CTL C in your DOS window.
The only disadventage is for the sutdown of windows, you have to manualy close your DOS window where “server.bat” is running.
Hubert, do you agree with that method ?