Newbie questions about Pliant

Newbie questions about Pliant

problem with 'later'

calling a function declared as later, before its definition
makes http server crash

Message posted by reitman on 2003/04/21 02:52:33
method page A
  arg_rw HtmlPage page
  later

method page B
  arg_rw HtmlPage page
  A

method page A 
  arg_rw HtmlPage page
  text "in A"

B

##############
if I move defnition of method B towards the end, its all good.

Another request: can someone describe the flow of control in code 
execution in .page, and the memory allocation (stack).  Also how p
arameter passing between page methods works for composite types. 
Particularly , how would I return a Data:MyType from a function 
and how would I pass a Data:MyType to a page method. Btw, I couldn't 
get samples/uvar.page to work ( I accessed the copy on pliant.cx site)
Message posted by hubert.tonneau on 2003/04/22 18:46:57
If you put the all thing in a .pli module instead of the .page, it will work.

The short explaination is that a .page is in facts the body of a function, so
doing complex things, from the compiler point of view, there is not a good idea
because it pushes Pliant compiler engine too far according to it's current design
and implementation quality.

For the long explaination, I have to track why nesting functions is disturbing
'later' implementation.

Could you elaborate about you other requests ?
Message posted by maybe Boris Reitman on 2007/09/23 18:37:57
Hi Hubert, 

This is a very old problem. Have you made any progress identifying why "later" works half the time
in .page ?  It still crashes the server sometime.

Thanks,
Boris 
Message posted by maybe Hubert Tonneau on 2007/09/24 18:34:04
I have no plan to work on this.
I've moved to a better compiling scheme with the UI (ui_path) so that more can
be recompiled on the fly.

If you plan to stick with .page, just don't use 'later' within a .page
Message posted by maybe Boris Reitman on 2007/09/24 19:46:12
It would be interesting to have a howto on how to port .page code to the
new UI.