[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Compiling again!




   Hi,

   I have tried to compile Lisp functions generated by compiling TYPOL files
and used by these TYPOL files (by means of "Lispcall").

   First, I have a criticism: I discovered that we must declare res as a global
variable, because it seems to me that it is used dynamically by the
communication with Mu-Prolog.  For example, look:

	(de #:demo_tester:test_modules (P)
	   (let ((res ()))
	      (#:prolog:send
	         (catenate
	            "'demo_tester$test_modules$'("
        	    (#:PSP:loc P) ").")) res))

   If you do not put:

	(defvar res)

before, this function works fine in interpreted mode, but not in compiled one.

   Second, I got a strange problem.  Sometimes, the command:
	Loading PSP.
crashes with the message:
*** sun4 bus error

   It seems to me that this problem occurs when there is not enough available
swap.  But it seems more frequent in compiled mode that in interpreted one.

   As a last criticism---for today!---the search rules of TYPOL perplexes me,
because it searches:
   ---the current directory,
   ---the "semantics" directories.

   Let us suppose that we have different tools written in TYPOL and using the
same formalism.  (These two tools may have be written by different people.)
For organizational reasons (avoiding name conflicts, for instance), it is
logical to separate locating these two tools in:
	.../semantics/tool-1
	.../semantics/tool-2

but, in this case, the search rules of TYPOL fail.  There is a solution:

	(with ((current-directory ".../semantics/tool-1"))
	  (#:tool-1:call ...))

	(with ((current-directory ".../semantics/tool-2"))
	  (#:tool-2:call ...))

which works fine, but is somewhat dirty.

   As I explained to you at the Centaur meeting, we have such problems because
we are developing a tool whose parts are written in parallel, by different
people possibly located in different sites.  Maybe we go beyond the present
possibilities of Centaur.  But it seems to me that if you aims an ambitious and
industrial use of Centaur, you will have to integrate the possibility of
"parallel" developments.

   Yours faithfully,

				     J.-M.