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

More AKCL trouble



I hit on more obscure behavior of AKCL, so given that I have already
admitted that AKCL and KCL are only very distant relatives and that
what I know about KCL won't help me here, let me humbly ask for a
pointer to the documentation.  Nothing I found in /doc helped me
with the previously reported problem, nor with these:

* How do you proclaim that a function returns two values?

The documentation for DESCRIBE gives this syntax:

  (FUNCTION function-name ({arg-type}*) {return-type}*)

That cannot be right, right?

I say somewhere:

  (proclaim '(function index->object (object-index universe) (values t t)))

or else, just in case

  (proclaim '(function index->object (object-index universe) t t))

In both cases I get

    ;; Warning: INDEX->OBJECT was proclaimed to have only one return value. 
    ;But you appear to want multiple values.
    ;; Warning: INDEX->OBJECT was proclaimed to have only one return value. 
    ;But you appear to want multiple values.

The function follows, just in case it is obvious why this compiled
and worked under KCL but doesn't in AKCL:

(defun index->object (index universe)
  "(INDEX->OBJECT INDEX UNIVERSE) => any object, T-or-NIL
If INDEX corresponds to an element registered in UNIVERSE, this
function returns that element and T.  Else, the function returns NIL
and NIL.  This permits discriminating a NIL that is properly an
element of the universe from one that just indicates a failure."
  (declare (type object-index index)
           (type universe universe))
  (let ((i->o (universe-index->object universe)))
    (if (< index (fill-pointer i->o))
        (values (elt i->o index) t)
        (values nil nil))))

* Finally, what does this:

;; Warning:  NEW-UNIVERSE is proclaimed but not in *inline-functions* 
T1defun could not assure suitability of args for C call

mean?  Sounds vaguely scary, but I have not the faintest.  No,
the *inline-functions* symbol is not particularly documented either:

    >>(describe '*inline-functions*)

    *INLINE-FUNCTIONS* - internal symbol in USER package

Many thanks in advance!
Cesar
PS.  Does anyone know how to get KCL to run in a Sun 4 under Sun OS
4.0.3?