-;;;; Misc utils
-
-; (defun name-to-string (name)
-; (substitute #\_ #\- (string-downcase (string name))))
-
-; (defun string-to-name (name &optional (package "KEYWORD"))
-; (intern (substitute #\- #\_ (string-upcase name)) package))
-
-
-;;; Argument stuff - to be removed soon
-
-(deftype arg () 'pointer)
-
-(defconstant +arg-type-offset+ 0)
-(defconstant +arg-name-offset+ 4)
-(defconstant +arg-value-offset+ 8)
-(defconstant +arg-size+ 16)
-
-(defbinding arg-new () arg
- (type type-number))
-
-(defbinding %arg-free () nil
- (arg arg)
- (free-contents boolean))
-
-(defun arg-free (arg free-contents &optional alien)
- (cond
- (alien (%arg-free arg free-contents))
- (t
- (unless (null-pointer-p arg)
- (when free-contents
- (funcall
- (intern-destroy-function (type-from-number (arg-type arg)))
- arg +arg-value-offset+))
- (deallocate-memory arg)))))
-
-(defbinding %arg-reset () nil
- (arg arg))
-
-(defun arg-name (arg)
- (funcall (intern-reader-function 'string) arg +arg-name-offset+))
-
-(defun (setf arg-name) (name arg)
- (funcall (intern-writer-function 'string) name arg +arg-name-offset+)
- name)
-
-(defun arg-type (arg)
- (system:sap-ref-32 arg +arg-type-offset+))
-
-(defun (setf arg-type) (type arg)
- (setf (system:sap-ref-32 arg +arg-type-offset+) type))
-
-(defun arg-value (arg &optional (type (type-from-number (arg-type arg))))
- (funcall (intern-reader-function type) arg +arg-value-offset+))
-
-;; One should never call this function on an arg whose value is already set
-(defun (setf arg-value)
- (value arg &optional (type (type-from-number (arg-type arg))))
- (funcall (intern-writer-function type) value arg +arg-value-offset+)
- value)
-
-(defun (setf return-arg-value)
- (value arg &optional (type (type-from-number (arg-type arg))))
- ; this is probably causing a memory leak
- (funcall (intern-writer-function type) value (arg-value arg 'pointer) 0)
- value)
-
-(defun arg-array-ref (arg0 index)
- (system:sap+ arg0 (* index +arg-size+)))
-
-