From 1e5e516b082184b408c611df9e6c3c10b0b5ecf7 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Mon, 6 Oct 2008 01:19:27 -0400 Subject: [PATCH] - added (ikarus foreign) library that should be used instead of (ikarus system $foreign). - changed the names of some of the pointer primitives - changed the name of the procedure make-ffi to make-callout - updated examples and libraries to conform with new names - updated the users guide to provide a complete description of the (ikarus foreign) library - updated list of missing R6RS features in the users guide --- doc/ikarus-scheme-users-guide.pdf | Bin 253734 -> 309985 bytes doc/ikarus-scheme-users-guide.tex | 778 +++++++++++++++++++++++++++--- lab/objc-create-class.ss | 9 + lib/Cocoa/helpers.ss | 8 +- lib/Makefile.am | 3 + lib/Makefile.in | 59 ++- lib/ikarus/foreign.ss | 17 + lib/objc.ss | 26 +- lib/ypsilon-compat.ikarus.ss | 12 +- scheme/ikarus.pointers.ss | 186 ++++--- scheme/last-revision | 2 +- scheme/makefile.ss | 52 +- scheme/tests/pointers.ss | 18 +- src/ikarus-pointers.c | 86 +++- 14 files changed, 1050 insertions(+), 206 deletions(-) create mode 100644 lib/ikarus/foreign.ss diff --git a/doc/ikarus-scheme-users-guide.pdf b/doc/ikarus-scheme-users-guide.pdf index 4dae00d1f4448b574b5b46f0546dffebba43b8d4..74979cce4b1b15e3765776b0cd23b344f2aa4d87 100644 GIT binary patch delta 167131 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

Pyk5eD#{@bxrzP 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 delta 118499 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 diff --git a/doc/ikarus-scheme-users-guide.tex b/doc/ikarus-scheme-users-guide.tex index 5385d9c..26f9034 100644 --- a/doc/ikarus-scheme-users-guide.tex +++ b/doc/ikarus-scheme-users-guide.tex @@ -2065,7 +2065,7 @@ displayed. no collections 0 ms elapsed cpu time, including 0 ms collecting 0 ms elapsed real time, including 0 ms collecting - 56 bytes allocated + 24 bytes allocated 1 2 3 @@ -2075,10 +2075,686 @@ displayed. no collections 0 ms elapsed cpu time, including 0 ms collecting 0 ms elapsed real time, including 0 ms collecting - 32 bytes allocated + 0 bytes allocated 12 \end{verbatim} +\chapter{\label{chapter:foreign}The \texttt{(ikarus foreign)} Library} + +This chapter describes the facilities through which Ikarus +interfaces with the host operating system and other external +libraries. The facilities of the \texttt{(ikarus~foreign)} +library give the Scheme program unrestricted access to the computer +memory, allowing one to allocate, access, modify, and free memory as +needed. The facilities also allow the Scheme program to \emph{call +out} to system procedures as well as allow the native procedures to +\emph{call back} into Scheme. + +This chapter is organized as follows: Section~\ref{sec:ffi-overview} +gives an overview of the basic concepts such as shared libraries, +external symbols, foreign data types, pointers, and procedures. +Section~\ref{sec:ffi-memory} describes the primitives that +\texttt{(ikarus~foreign)} provides for direct manipulation of +memory. Section~\ref{sec:ffi-procedures} deals with loading +external libraries and calling out to native library procedures and +calling back into Scheme. To demonstrate the usefulness of the +foreign facilities, Ikarus ships with two libraries that also serve +as extended examples for using the system. +Section~\ref{sec:ffi-opengl} describes The OpenGL library +\texttt{(ikarus~opengl)} which allows the programmer to produce 2D +and 3D computer graphics. Section~\ref{sec:ffi-objc} describes the +\texttt{(ikarus~objc)} which allows the programmer to access +libraries and frameworks written in the Objective-C programming +language and thus provides full access to the Mac OS X system +(e.g.,~making graphical user interfaces with Cocoa and drawing +graphics with Quartz all from Scheme). + +Ikarus version \texttt{0.0.4} is the first version of Ikarus to +support the described foreign interfaces. +\newpage + +\section{\label{sec:ffi-overview}Overview} + +In order to make full use of the computer, it is important for a +programming environment (e.g., Ikarus Scheme) to facilitate access +to the underlying architecture on which it runs. The underlying +architecture includes the API provided by the host operating system +kernel (e.g., Linux), the system libraries (e.g., \texttt{libc}), +and other site-installed libraries (e.g., \texttt{sqlite3}). +Providing direct access to such API from within Scheme allows the +programmer to write Scheme libraries that have few or no +dependencies on external programs (such as \texttt{C} development +toolchain). When dealing with system libraries, the programmer +must have a thorough understanding of many aspects of the targetted +system. This section attempts to provide answers to many questions +that are frequently encountered when interfacing to external +libraries. + + +\section{Memory management} + +Ikarus Scheme is a managed environment. Like in many programming +environments, Ikarus manages its own memory. Scheme objects are +allocated in a special memory region (the Scheme heap) and have +type-specific object layout that allows the run time system to +distinguish object types and allows the garbage collector to locate +all potentially live objects and reclaim the memory of dead objects. +Scheme objects are also \emph{opaque} in the sense that the data +structures used to represent Scheme objects (e.g., pairs) are not +exposed to the programmer, who can only interact with objects +through an interface (e.g., \texttt{car}, \texttt{cdr}). + +Unmanaged environments, such as the operating system on which Ikarus +runs, require that the programmer manages the allocation and +deallocation of system resources herself. Memory regions, file +handles, external devices, the screen, etc., are all examples of +resources whose management must be coordinated among the different +parts of the system, and this becomes the responsibility of the +programmer who is wiring the different subsystems together. + +Memory, from a system's point of view, is \emph{transparent}. A +pointer is an integer denoting an address of memory. This memory +address may contain a value that requires interpretation. At the +lowest-level, each byte of memory contains eight bits, each of which +may be toggled on or off. A level higher, contiguous sequences of +bytes are grouped together and are interpreted as integers, floating +point numbers, or pointers to other memory addresses. These are the +basic data types that are often interpreted atomically. Yet a level +higher, groups of basic types form data structures such as arrays, +linked lists, trees, and so on. Objects, as found in +object-oriented programming languages, are at an even higher level +of abstraction since they are treated as opaque references that +retain state and know how to respond to messages. + +The procedures in the \texttt{(ikarus~foreign)} library are meant to +provide a way to interface with the low level memory operations such +as setting and getting bytes from specific locations in memory. +Although they do not provide high-level operations, the basic +procdures make implementing high-level operations (such as the +Objective-C system presented in Chapter~\ref{chapter:objc}) +possible. Programmers are encouraged to define their own +abstractions that are most suitable for the specific target library +rather than using the low-level operations directly. This results +in writing more robust and more easily maintainable libraries. To +put it more boldly: \textbf{Do not sprinkle your code with low-level +memory operations}. + + +\section{\label{sec:ffi-memory}Memory operations} + +\defun{malloc}{procedure} +\texttt{(malloc n)} + +The \texttt{malloc} procedure allocates \texttt{n} bytes of memory +and returns a pointer to the allocated memory. The \texttt{malloc} +Scheme procedure is implemented using the host-provided +\texttt{malloc} system procedure (often found in \texttt{libc}). +The number of bytes, \texttt{n}, must be a positive exact integer. + +\begin{verbatim} + > (malloc 10) + # + > (malloc 10000) + # +\end{verbatim} + +\newpage +\defun{free}{procedure} +\texttt{(free p)} + +The \texttt{free} procedure takes a pointer and frees the memory +region at the given address. The memory region must be allocated +with \texttt{malloc}, \texttt{calloc}, or a similar system +procedure. Once freed, memory operations on the given address are +invalid and may cause the system to crash at unpredictable times. +Ikarus cannot check for such errors since the memory may be freed by +procedures that are external to Ikarus. + + + +\defun{pointer->integer}{procedure} +\texttt{(pointer->integer p)} + +The procedure \texttt{pointer->integer} converts the value of the +pointer \texttt{p} to an exact integer value. The result may be a +fixnum or a bignum depending on the pointer. + +\defun{integer->pointer}{procedure} +\texttt{(integer->pointer n)} + +The procedure \texttt{integer->pointer} converts the exact integer +\texttt{n} to a pointer value. The lower 32 bits (or 64 bits on +64-bit systems) of the value of \texttt{n} are significant in +computing the pointer value. It is guaranteed that +\texttt{(integer->pointer (pointer->integer p))} points to the same +address as \texttt{p}. + +\defun{pointer?}{procedure} +\texttt{(pointer? x)} + +The predicate \texttt{pointer?} returns \texttt{\#t} if the value +of \texttt{x} is a pointer, and returns \texttt{\#f} otherwise. + +\BoxedText{Note:}{The result of calling the procedures +\texttt{eq?}, \texttt{eqv?} and \texttt{equal?} on pointer values is +unspecified.} + + +\newpage + +\defun{pointer-set-char}{procedure} +\texttt{(pointer-set-char p i n)} + +The procedure \texttt{pointer-set-char} sets a single byte of memory +located at offset \texttt{i} from the pointer \texttt{p} to the +value of \texttt{n}. The pointer \texttt{p} must be a valid +pointer. The index \texttt{i} must be an exact integer. The value +of \texttt{n} must be an exact integer. Only the 8 lowermost +bits of \texttt{n} are used in the operation and the remaining bits +are ignored. + +\defun{pointer-set-short}{procedure} +\texttt{(pointer-set-short p i n)} + +The procedure \texttt{pointer-set-char} sets two bytes located at +offset \texttt{i} and \texttt{(+ i 1)} to the 16 lowermost bits of +the exact integer \texttt{n}. Note that the offset \texttt{i} is a +byte offset; \texttt{pointer-set-short} does not perform any pointer +arithmetic such as scaling the offset by the size of the memory +location. + + +\defun{pointer-set-int}{procedure} +\texttt{(pointer-set-int p i n)} + +The procedure \texttt{pointer-set-int} sets four bytes located at +offset \texttt{i} to \texttt{(+ i 3)} to the 32 lowermost bits of +the exact integer \texttt{n}. Like \texttt{pointer-set-short}, +\texttt{pointer-set-int} does not scale the offset \texttt{i}. + + +\defun{pointer-set-long}{procedure} +\texttt{(pointer-set-long p i n)} + +On 64-bit systems, the procedure \texttt{pointer-set-long} sets +eight bytes located at offset \texttt{i} to \texttt{(+ i 7)} to the +64 lowermost bits of the exact integer \texttt{n}. Like the +previous procedures, \texttt{pointer-set-long} does not scale the +offset \texttt{i}. On 32-bit systems, \texttt{pointer-set-long} +performs the same task as \texttt{pointer-set-int}. + + +\defun{pointer-set-float}{procedure} +\texttt{(pointer-set-float p i fl)} + +The procedure \texttt{pointer-set-float} converts the Scheme +floating point number \texttt{fl} (represented in Ikarus as an +IEEE-754 double precision floating point number) to a float (an +IEEE-754 single precision floating point number) and stores the +result in the four bytes at offset \texttt{i} of the pointer +\texttt{p}. + +\defun{pointer-set-double}{procedure} +\texttt{(pointer-set-double p i fl)} + +The procedure \texttt{pointer-set-double} stores the double +precision IEEE-754 floating point value of the Scheme flonum +\texttt{fl} in the eight bytes at offset \texttt{i} of the pointer +\texttt{p}. + +\defun{pointer-set-pointer}{procedure} +\texttt{(pointer-set-pointer p i pv)} + +On 64-bit systems, the procedure \texttt{pointer-set-pointer} sets +eight bytes located at offset \texttt{i} to \texttt{(+ i 7)} to the +64-bit pointer value of \texttt{pv}. On 32-bit systems, the +procedure \texttt{pointer-set-pointer} sets four bytes located at +offset \texttt{i} to \texttt{(+ i 3)} to the 32-bit pointer value of +\texttt{pv}. Like the previous procedures, +\texttt{pointer-set-pointer} does not scale the offset \texttt{i}. + + + +\defun{pointer-ref-signed-char}{procedure} +\texttt{(pointer-ref-signed-char p i)} + +The procedure \texttt{pointer-ref-signed-char} loads a single byte located +at offset \texttt{i} from the pointer \texttt{p} and returns an +exact integer representing the sign-extended integer value of that +byte. The resulting value is in the range of $[-128, 127]$ inclusive. + +\defun{pointer-ref-unsigned-char}{procedure} +\texttt{(pointer-ref-unsigned-char p i)} + +The procedure \texttt{pointer-ref-unsigned-char} loads a single byte +located at offset \texttt{i} from the pointer \texttt{p} and returns +an exact integer representing the unsigned integer value of that +byte. The resulting value is in the range $[0, 255]$ inclusive. + + +The following example shows the difference between +\texttt{pointer-ref-signed-char} and +\texttt{pointer-ref-unsigned-char}. + + +\begin{verbatim} + > (let ([p (malloc 3)]) + (pointer-set-char p 0 #b01111111) + (pointer-set-char p 1 #b10000000) + (pointer-set-char p 2 #b11111111) + (let ([result + (list (pointer-ref-signed-char p 0) + (pointer-ref-signed-char p 1) + (pointer-ref-signed-char p 2) + (pointer-ref-unsigned-char p 0) + (pointer-ref-unsigned-char p 1) + (pointer-ref-unsigned-char p 2))]) + (free p) + result)) + (127 -128 -1 127 128 255) +\end{verbatim} + +\defun{pointer-ref-signed-short}{procedure} +\texttt{(pointer-ref-signed-short p i)} + +The procedure \texttt{pointer-ref-signed-short} loads two bytes +located at offsets \texttt{i} and \texttt{(+ i 1)} from the pointer +\texttt{p} and returns an exact integer representing the +sign-extended +integer value of the sequence. The resulting value is in the range +$[-32768, 32767]$ inclusive. + +\defun{pointer-ref-unsigned-short}{procedure} +\texttt{(pointer-ref-unsigned-short p i)} + +The procedure \texttt{pointer-ref-unsigned-short} loads two bytes +located at offsets \texttt{i} and \texttt{(+ i 1)} from the pointer +\texttt{p} and returns an exact integer representing the unsigned +integer value of the sequence. The resulting value is in the range +$[0, 65535]$ inclusive. + +\newpage +\defun{pointer-ref-signed-int}{procedure} +\texttt{(pointer-ref-signed-int p i)} + +The procedure \texttt{pointer-ref-signed-int} loads four bytes +starting at offset \texttt{i} of pointer \texttt{p} and returns an +exact integer in the range of $[-2^{31},2^{31}-1]$ inclusive. + + +\defun{pointer-ref-unsigned-int}{procedure} +\texttt{(pointer-ref-unsigned-int p i)} + +The procedure \texttt{pointer-ref-unsigned-int} loads four bytes +starting at offset \texttt{i} of pointer \texttt{p} and returns an +exact integer in the range of $[0,2^{32}-1]$ inclusive. + + +\defun{pointer-ref-signed-long}{procedure} +\texttt{(pointer-ref-signed-long p i)} + +On 64-bit systems, the procedure \texttt{pointer-ref-signed-long} +loads eight bytes starting at offset \texttt{i} of pointer +\texttt{p} and returns an integer in the range of +$[-2^{63},2^{63}-1]$ inclusive. On 32-bit systems, the procedure +\texttt{pointer-ref-signed-long} performs the same task as +\texttt{pointer-ref-signed-int}. + + +\defun{pointer-ref-unsigned-long}{procedure} +\texttt{(pointer-ref-unsigned-long p i)} + +On 64-bit systems, the procedure \texttt{pointer-ref-unsigned-long} +loads eight bytes starting at offset \texttt{i} of pointer +\texttt{p} and returns an integer in the range of +$[0,2^{64}-1]$ inclusive. On 32-bit systems, the procedure +\texttt{pointer-ref-unsigned-long} performs the same task as +\texttt{pointer-ref-unsigned-int}. + + +\defun{pointer-ref-float}{procedure} +\texttt{(pointer-ref-float p i)} + +The procedure \texttt{pointer-ref-float} returns the four-byte +float (represented as IEEE-754 single precision floating point +number) stored at offset \texttt{i} of the pointer \texttt{p}. +The value is extended to an IEEE-754 double precision floating +point number that Ikarus uses to represent inexact numbers. + +\defun{pointer-ref-double}{procedure} +\texttt{(pointer-ref-double p i)} + +The procedure \texttt{pointer-ref-double} returns the eight-byte +float (represented as IEEE-754 double precision floating point +number) stored at offset \texttt{i} of the pointer \texttt{p}. + + +\defun{pointer-ref-pointer}{procedure} +\texttt{(pointer-ref-pointer p i)} + +The procedure \texttt{pointer-ref-pointer} returns the pointer +stored at offset \texttt{i} from the pointer \texttt{p}. The size +of the pointer (also the number of bytes loaded) depends on the +architecture: it is 4 bytes on 32-bit systems and 8 bytes on 64-bit +systems. + +\section{\label{sec:foreign-objects}Accessing foreign objects from +Scheme} + + +\defun{dlopen}{procedure} +\texttt{(dlopen)}\\ +\texttt{(dlopen library-name)}\\ +\texttt{(dlopen library-name lazy? global?)} + +The procedure \texttt{dlopen} takes a string \texttt{library-name} +represented a system library and calls the system procedure +\texttt{dlopen} which dynamically loads the given library into the +running process. The name of the library is system-dependent and +must include the appropriate suffix (e.g., \texttt{*.so} on Linux, +\texttt{*.dylib} on Darwin and \texttt{*.dll} on Cygwin). The +\texttt{library-name} may include a full path which identifies the +location of the library, or may be just the name of the library in +which case the system will lookup the library name using the +\texttt{LD\_LIBRARY\_PATH} environment variable. + +The argument \texttt{lazy?} specifies how library dependencies are +loaded. If true, \texttt{dlopen} delays the resolution and loading +of dependent libraries until they are actually used. If false, all +library dependencies are loaded before the call to \texttt{dlopen} +returns. + +The argument \texttt{global?} specifies how the scope of the symbols +exported from the loaded library. If true, all exported symbols +become part of the running image, and subsequent \texttt{dlsym} +calls may not need to specify the library from which the symbol is +loaded. If false, the exported symbols are not global and the +library pointer needs to be specified for \texttt{dlsym}. + +Calling \texttt{(dlopen library-name)} is equivalent to +\texttt{(dlopen library-name \#f \#f)}. Calling \texttt{(dlopen)} +without arguments returns a pointer to the current process. + +If succesful, \texttt{dlopen} returns a pointer to the external +library which can be used subsequently by \texttt{dlsym} and +\texttt{dlclose}. If the library cannot be loaded, \texttt{dlopen} +returns \texttt{\#f} and the procedure \texttt{dlerror} can be used +to obtain the cause of the failure. + +Consult the \texttt{dlopen(3)} page in your system manual for +further details. + +\defun{dlclose}{procedure} +\texttt{(dlclose library-pointer)} + +The procedure \texttt{dlclose} is a wrapped around the system +procedure with the same name. It receives a library pointer +(e.g.,~one obtained from \texttt{dlopen}) and releases the resources +loaded from that library. Closing a library renders all symbols and +static data structures that the library exports invalid and the +program may crash or corrupt its memory if such symbols are used +after a library is closed. + +Most system implementations of dynamic loading employ reference +counting for \texttt{dlopen} and \texttt{dlclose} in that library +resources are not freed until the number of calls to +\texttt{dlclose} matches the number of calls to \texttt{dlopen}. + +The procedure \texttt{dlclose} returns a boolean value indicating +whether the success status of the operation. If \texttt{dlclose} +returns \texttt{\#f}, the procedure \texttt{dlerror} can be used to +obtain the cause of the error. + +Consult the \texttt{dlclose(3)} page in your system manual for +further details. + +\defun{dlerror}{procedure} +\texttt{(dlerror)} + +If any of the dynamic loading operations (i.e., \texttt{dlopen}, +\texttt{dlclose}, \texttt{dlsym}) fails, the cause of the error can +be obtained by calling \texttt{dlerror} which returns a string +describing the error. The procedure \texttt{dlerror} returns +\texttt{\#f} if there was no dynamic loading error. + +Consult the \texttt{dlerror(3)} page in your system manual for +further details. + +\defun{dlsym}{procedure} +\texttt{(dlsym library-pointer string)} + +The procedure \texttt{dlsym} takes a library pointer (e.g., one +obtained by a call to \texttt{dlopen}) and a string representing the +name of a symbol that the library exports and returns a pointer to +the location of that symbol in memory. If \texttt{dlsym} fails, it +returns \texttt{\#f} and the cause of the error can be obtained +using the procedure \texttt{dlerror}. + +Consult the \texttt{dlsym(3)} page in your system manual for +further details. + + +\section{\label{sec:callout}Calling out to foreign procedures} + +Ikarus provides the means to call out from Scheme to foreign +procedures. This allows the programmers to extend Ikarus to access +system-specific facilities that is available on the host machine. + +In order to call out to a foreign procedure, one must provide two +pieces of information: the signature of the foreign procedure (e.g., +its type declaration if it is a \texttt{C} procedure) and the +address of the procedure in memory. The address of the procedure +can be easily obtained using \texttt{dlsym} if the name of the +procedure and its exporting library are known. The signature of the +procedure cannot, in general, be obtained dynamically, and therefore +must be hard coded into the program. + +The signature of the foreign procedure is required for proper +linkeage between the Scheme system and the foreign system. Using +the signature, Ikarus determines how Scheme values are converted +into native values, and where (e.g., in which registers and stack +slots) to put these arguments. The signature also determines where +the returned values are placed and how they are converted from the +system data types to the corresponding Scheme data types. + +A procedure's signature is composed of two parts: the return type +and the parameter types. The return type is a symbol that can be +any one of the type specifiers listed in +Figure~\ref{fig:foreign-types}, page~\pageref{fig:foreign-types}. +The parameter types is a list of type specifier symbols. The symbol +\texttt{void} can appear as a return type but cannot appear as a +parameter type. + + + +\defun{make-callout}{procedure} +\texttt{((make-callout return-type parameter-types) native-pointer)} + +The procedure \texttt{make-callout} is the primary facility for +making foreign procedures callable from Scheme. It works as +follows. First, \texttt{make-callout} receives two arguments +denoting the signature of the procedure to be called. It prepares a +bridge that converts from Scheme's calling conventions and data +structures to their foreign counterparts. It returns a procedure +$p_1$. Second, the procedure $p_1$ accepts a pointer to a foreign +procedure (e.g., one obtained from \texttt{dlsym}) and returns a +Scheme procedure $p_2$ that encapsulates the foreign procedure. The +final procedure $p_2$ can be called with as many arguments as the +ones specified in the \texttt{parameter-types}. The parameters +supplies to $p_2$ must match the types supplied as the +\texttt{parameter-types} according to the ``Valid Scheme types'' +column in the table in Figure~\ref{fig:foreign-types}. The +procedure $p_2$ converts the parameters from Scheme types to native +types, calls the foreign procedure, obtains the result, and converts +it to the appropriate Scheme value (depending on the +\texttt{return-type}). + +The interface of \texttt{make-callout} is broken down into three +stages in order to accomodate common usage patterns. Often types, a +function signature can be used by many foreign procedures and +therefore, \texttt{make-callout} can be called once per signature +and each signature can be used multiple times. Similarly, +separating the foreign procedure preparation from parameter passing +allows for preparing the foreign procedure once and calling it many +times. + +The types listed in Figure~\ref{fig:foreign-types} are restricted to +basic types and provide no automatic conversion from composite +Scheme data structures (such as strings, symbols, vectors, and +lists) to native types. The restriction is intentional in order for +Ikarus to avoid making invalid assumptions about the memory +management of the targeted library. For example, while Ikarus +\emph{can} convert a Scheme string to a native byte array (e.g., +using \texttt{string->bytevector} to decode the string, then using +\texttt{malloc} to allocate a temporary buffer, and copying the +bytes from the bytevector to the allocated memory), it cannot decide +when this allocated byte array is no longer needed and should be +freed. This knowledge is library-dependent and is often +procedure-dependent. Therefore, Ikarus leaves it to the programmer +to manage all memory related issues. + +Outgoing parameters to foreign procedures are checked against the +declared types. For example, if a callback is prepared to expect a +parameter of type \texttt{signed-int}, only exact integers are +allowed to be passed out. For integer types, only a fixed number of +bits is used and the remaining bits are ignored. For floating point +types, the argument is checked to be a Scheme flonum. No implicit +conversion between exact and inexact numbers is performed. +{ +\begin{figure}[b!] +\begin{center} +\begin{tabular}{@{}llll@{}} +\hline +Type specifier & Size & Valid Scheme types & Corresponding \texttt{C} types\\ +\hline +\texttt{signed-char} & 1 byte & exact integer & \texttt{char}\\ +\texttt{unsigned-char} & 1 byte & exact integer & \texttt{unsigned char}\\ +\texttt{signed-short} & 2 bytes & exact integer & \texttt{short}\\ +\texttt{unsigned-short} & 2 bytes & exact integer & \texttt{unsigned short}\\ +\texttt{signed-int} & 4 bytes & exact integer & \texttt{int}\\ +\texttt{unsigned-int} & 4 bytes & exact integer & \texttt{unsigned int}\\ +\texttt{signed-long} & 4/8 bytes & exact integer & \texttt{long}\\ +\texttt{unsigned-long} & 4/8 bytes & exact integer & \texttt{unsigned long}\\ +\texttt{float} & 4 bytes & flonum & \texttt{float}\\ +\texttt{double} & 8 bytes & flonum & \texttt{double}\\ +\texttt{pointer} & 4/8 bytes & pointer & +\texttt{void*}, \texttt{char*}, \texttt{int*}, \texttt{int**}, \\ +&&& \texttt{int(*)(int,int,int)}, etc. \\ +\texttt{void} & -- & -- & \texttt{void}\\ +\hline +\end{tabular} +\end{center} +\caption{\label{fig:foreign-types}The above table lists valid type +specifiers that can be used in callout and callback signatures. +Specifiers with ``4/8 bytes'' have size that depends on the system: +it is 4 bytes on 32-bit systems and 8 bytes on 64-bit systems. The +\texttt{void} specifier can only be used as a return value +specifier to mean ``no useful value is returned''.} +\end{figure} +} + + +The following example illustrates the use of the +\texttt{make-callout} procedure in combination with \texttt{dlopen} +and \texttt{dlsym}. The session was run on a 32-bit Ikarus running +under Mac OS X 10.4. First, the \texttt{libc.dylib} foreign library +is loaded and is bound to the variable \texttt{libc}. Next, we +obtain a pointer to the \texttt{atan} foreign procedure that is +defined in \texttt{libc}. The native procedure \texttt{atan} takes +a \texttt{double} as an argument and returns a \texttt{double} and +that's the signature that we use for \texttt{make-callout}. +Finally, we call the foreign procedure interface with one argument, +\texttt{1.0}, which is a flonum and thus matches the required +parameter type. The native procedure returns a \texttt{double} +value which is converted to the Scheme flonum with value +\texttt{0.7853981633974483}. + +\begin{verbatim} + > (import (ikarus foreign)) + > (define libc (dlopen "libc.dylib")) + > libc + # + > (define libc-atan-ptr (dlsym libc "atan")) + > libc-atan-ptr + # + > (define libc-atan + ((make-callout 'double '(double)) libc-atan-ptr)) + > libc-atan + # + > (libc-atan 1.0) + 0.7853981633974483 + > (libc-atan 1) + Unhandled exception + Condition components: + 1. &assertion + 2. &who: callout-procedure + 3. &message: "argument does not match type double" + 4. &irritants: (1) +\end{verbatim} + + +\section{\label{sec:callback}Calling back to Scheme} + +In order to provide full interoperability with native procedures, +Ikarus allows native procedures to call back into Scheme just as it +allows Scheme to call out to native procedures. This is important +for many system libraries that provide graphical user interfaces +with event handling (e.g., Cocoa, GTK+, GLUT, etc.), database +engines (e.g., libsqlite, libmysql, etc.), among others. + +The native calling site for the call back is compiled with a +specific callback signature encoding the expected parameter types +and return type. Therefore, a Scheme procedure used for a call back +must be wrapped with a proper adapter that converts the incoming +parameters from native format to Scheme values as well as convert +the value that the Scheme procedure returns back to native format. +The signature format is similar to the one used for call outs (see +Figure~\ref{fig:foreign-types} on page~\pageref{fig:foreign-types} for +details). + + +\defun{make-callback}{procedure} +\texttt{((make-callback return-type parameter-types) scheme-procedure)} + +The procedure \texttt{make-callback} is similar to the procedure +\texttt{make-callout} except that it provides a bridge from native +procedures back into Scheme. While the procedure +\texttt{make-callout} takes a native pointer and returns a Scheme +procedure, \texttt{make-callback} takes a Scheme procedure and +returns a native pointer. The native pointer can be called by +foreign procedures. The native parameters are converted to Scheme +data (according to \texttt{parameter-types}), the Scheme procedure +is called with these parameters, and the returned value is converted +back into native format (according to \texttt{return-type}) before +control returns to the native call site. + + +Note that the native procedure pointer obtained from +\texttt{make-callback} is indistinguishable from other native +procedures that are obtained using \texttt{dlsym} or similar means. +In particular, such native pointers can be used as arguments to +\texttt{make-callout} resulting in a Scheme procedure that calls out +to the native procedure that in turn calls back into Scheme. The +following segment illustrates a very inefficient way of extracting +the lowermost 32 bits from an exact integer. + +\begin{verbatim} + > (format "~x" + (((make-callout 'unsigned-int '(unsigned-int)) + ((make-callback 'unsigned-int '(unsigned-int)) + values)) + #xfedcba09876543210fedcba09876543210)) + "76543210" +\end{verbatim} + +\BoxedText{Caveat emptor:}{Preparing each call out and call back +procedure leaks a small amount of memory. This is because the +system cannot track such pointers that go into native code +(which may retain such pointers indefinitely). Use judiciously.} + +% \chapter{\label{chapter:objc}The \texttt{(ikarus~objc)} Library} +% \newpage + \chapter{\label{chapter:contributed}Contributed Libraries} We try to keep Ikarus Scheme small and its complexity manageable. @@ -2166,7 +2842,15 @@ following lines: export IKARUS_LIBRARY_PATH \end{verbatim} + \newpage + + +\section{\label{sec:aux-opengl}\texttt{(gl)} and \texttt{(glut)}} +FIXME +\newpage + + \section{\texttt{(srfi *)}} Ported by: Derick Eddington @@ -2253,15 +2937,14 @@ URL: \url{https://launchpad.net/r6rs-clos} \rnrs{6}-clos is a port of tiny-clos to the latest -(6$^{\textrm{th}}$) revision -of the language standard for scheme. It uses the library -system that is new in \rnrs{6} to structure the code based on -functionality (bootstrap of core classes and generic functions, -actual implementation of the standard protocols, class layout -and slot access \ldots). +(6$^{\mathrm{th}}$) revision of the language standard for scheme. It +uses the library system that is new in \rnrs{6} to structure the +code based on functionality (bootstrap of core classes and generic +functions, actual implementation of the standard protocols, class +layout and slot access \ldots). -The homepage for now is \url{https://launchpad.net/r6rs-clos}, -where my current development branch can be found. +The homepage for now is \url{https://launchpad.net/r6rs-clos}, where +my current development branch can be found. % Currently the code in my repository will only work with the % 0.0.2 release of Ikarus and uses a private copy of two @@ -2313,77 +2996,48 @@ To load both stream libraries, say: \chapter{Missing Features} Ikarus does not fully conform to \rnrs{6} yet. Although it -implements more than 94\% of \rnrs{6}'s macros and procedures, some -are still missing. This section summarizes the set of missing -features and procedures. +implements most of \rnrs{6}'s macros and procedures, some are still +missing. This section summarizes the set of missing features and +procedures. \begin{itemize} -\item Numeric tower is complete except for complex numbers.\\ - Consequences: \\ - -- Reader does not recognize complex number notation - (e.g.~\texttt{5-7i}).\\ - -- Procedures that may construct complex numbers from non-complex - arguments may signal an error or return an incorrect value - (e.g., \texttt{(sqrt~-1)} should return \verb|+i| instead - of signaling an error). \item The procedure \texttt{equal?}\ may not terminate on \texttt{equal?}\ infinite (circular) input. \item \texttt{number->string} does not accept the third argument (precision). Similarly, \texttt{string->number} and the reader do not recognize the \texttt{|p} notation. -\end{itemize} -\newpage -\section{List of missing \rnrs{6} procedures} -The following procedures are missing from \texttt{(rnrs base)}: + +\item The following procedures are missing from \texttt{(rnrs unicode)}: \begin{Verbatim} -angle make-polar make-rectangular -\end{Verbatim} - -% magnitude -% string->utf16 -% string->utf32 -% utf16->string -% utf32->string - - -The following procedures are missing from \texttt{(rnrs unicode)}: -\begin{Verbatim} -string-downcase string-titlecase string-upcase +string-titlecase string-normalize-nfc string-normalize-nfd string-normalize-nfkc string-normalize-nfkd \end{Verbatim} -The following procedures are missing from \texttt{(rnrs arithmetic +\item The following procedures are missing from \texttt{(rnrs arithmetic bitwise)}: \begin{Verbatim} -bitwise-ior bitwise-xor bitwise-if bitwise-copy-bit-field bitwise-reverse-bit-field bitwise-rotate-bit-field \end{Verbatim} -% bitwise-bit-field -% bitwise-copy-bit -% bitwise-length -The following procedures are missing from \texttt{(rnrs arithmetic +\item The following procedures are missing from \texttt{(rnrs arithmetic fixnum)}: \begin{Verbatim} fxreverse-bit-field fxrotate-bit-field \end{Verbatim} -The following procedures are missing from \texttt{(rnrs hashtables)}: +\item The following procedures are missing from \texttt{(rnrs hashtables)}: \begin{Verbatim} make-eqv-hashtable make-hashtable equal-hash hashtable-hash-function hashtable-equivalence-function \end{Verbatim} - - -The following procedures are missing from \texttt{(rnrs io ports)}: +\item The following procedures are missing from \texttt{(rnrs io ports)}: \begin{Verbatim} -string->bytevector bytevector->string port-has-port-position? port-position port-has-set-port-position!? set-port-position! make-custom-binary-input/output-port @@ -2391,31 +3045,7 @@ make-custom-textual-input/output-port open-file-input/output-port \end{Verbatim} - -% get-bytevector-some -% call-with-bytevector-output-port -% call-with-string-output-port -% binary-port? -% textual-port? -% port-eof? -% call-with-port -% lookahead-char -% lookahead-u8 -% get-bytevector-all -% get-bytevector-some -% get-string-all -% make-custom-binary-input-port -% make-custom-binary-output-port -% make-custom-textual-input-port -% make-custom-textual-output-port -% open-bytevector-input-port -% open-bytevector-output-port -% open-file-input-port -% open-file-output-port -% transcoded-port -% port-transcoder -% put-bytevector -% output-port-buffer-mode +\end{itemize} diff --git a/lab/objc-create-class.ss b/lab/objc-create-class.ss index d85b8f3..51b080d 100755 --- a/lab/objc-create-class.ss +++ b/lab/objc-create-class.ss @@ -14,4 +14,13 @@ 1 (* n [$ self fact: (sub1 n)])))) +(class-add-class-method IKFact 'fact:ac: 'int '(class selector int int) + (trace-lambda fact (self sel n ac) + (if (zero? n) + ac + [$ self fact: (sub1 n) ac: (* n ac)]))) + (printf "(fact 5) = ~s\n" [$ IKFact fact: 5]) + +(printf "(fact 5) = ~s\n" [$ IKFact fact: 5 ac: 1]) + diff --git a/lib/Cocoa/helpers.ss b/lib/Cocoa/helpers.ss index d0ed0f4..59f7399 100644 --- a/lib/Cocoa/helpers.ss +++ b/lib/Cocoa/helpers.ss @@ -4,15 +4,15 @@ (define (make-app) (define kProcessTransformToForegroundApplication 1) - (define self (dlopen #f)) + (define self (dlopen)) (define get-current-process - ((make-ffi 'void '(pointer)) + ((make-callout 'void '(pointer)) (dlsym self "GetCurrentProcess"))) (define transform-process-type - ((make-ffi 'void '(pointer sint32)) + ((make-callout 'void '(pointer signed-int)) (dlsym self "TransformProcessType"))) (define set-front-process - ((make-ffi 'void '(pointer)) + ((make-callout 'void '(pointer)) (dlsym self "SetFrontProcess"))) (let ([p (malloc 16)]) (get-current-process p) diff --git a/lib/Makefile.am b/lib/Makefile.am index 17af419..4f72f63 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,8 +1,11 @@ libstreamsdir=$(pkglibdir)/streams dist_libstreams_DATA=streams/primitive.ss streams/derived.ss +libikarusdir=$(pkglibdir)/ikarus +dist_libikarus_DATA=ikarus/foreign.ss libCocoadir=$(pkglibdir)/Cocoa dist_libCocoa_DATA=Cocoa/helpers.ss + dist_pkglib_DATA= streams.ss match.ss pregexp.ss gl.ss glut.ss \ ypsilon-compat.ikarus.ss ypsilon-compat.ypsilon.ss \ objc.ss Cocoa.ss diff --git a/lib/Makefile.in b/lib/Makefile.in index 69976c8..60c27b1 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -34,9 +34,9 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = lib -DIST_COMMON = $(dist_libCocoa_DATA) $(dist_libstreams_DATA) \ - $(dist_pkglib_DATA) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(dist_libCocoa_DATA) $(dist_libikarus_DATA) \ + $(dist_libstreams_DATA) $(dist_pkglib_DATA) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -53,12 +53,14 @@ am__vpath_adj = case $$p in \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libCocoadir)" \ - "$(DESTDIR)$(libstreamsdir)" "$(DESTDIR)$(pkglibdir)" + "$(DESTDIR)$(libikarusdir)" "$(DESTDIR)$(libstreamsdir)" \ + "$(DESTDIR)$(pkglibdir)" dist_libCocoaDATA_INSTALL = $(INSTALL_DATA) +dist_libikarusDATA_INSTALL = $(INSTALL_DATA) dist_libstreamsDATA_INSTALL = $(INSTALL_DATA) dist_pkglibDATA_INSTALL = $(INSTALL_DATA) -DATA = $(dist_libCocoa_DATA) $(dist_libstreams_DATA) \ - $(dist_pkglib_DATA) +DATA = $(dist_libCocoa_DATA) $(dist_libikarus_DATA) \ + $(dist_libstreams_DATA) $(dist_pkglib_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -163,6 +165,8 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ libstreamsdir = $(pkglibdir)/streams dist_libstreams_DATA = streams/primitive.ss streams/derived.ss +libikarusdir = $(pkglibdir)/ikarus +dist_libikarus_DATA = ikarus/foreign.ss libCocoadir = $(pkglibdir)/Cocoa dist_libCocoa_DATA = Cocoa/helpers.ss dist_pkglib_DATA = streams.ss match.ss pregexp.ss gl.ss glut.ss \ @@ -218,6 +222,23 @@ uninstall-dist_libCocoaDATA: echo " rm -f '$(DESTDIR)$(libCocoadir)/$$f'"; \ rm -f "$(DESTDIR)$(libCocoadir)/$$f"; \ done +install-dist_libikarusDATA: $(dist_libikarus_DATA) + @$(NORMAL_INSTALL) + test -z "$(libikarusdir)" || $(MKDIR_P) "$(DESTDIR)$(libikarusdir)" + @list='$(dist_libikarus_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_libikarusDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(libikarusdir)/$$f'"; \ + $(dist_libikarusDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(libikarusdir)/$$f"; \ + done + +uninstall-dist_libikarusDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_libikarus_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(libikarusdir)/$$f'"; \ + rm -f "$(DESTDIR)$(libikarusdir)/$$f"; \ + done install-dist_libstreamsDATA: $(dist_libstreams_DATA) @$(NORMAL_INSTALL) test -z "$(libstreamsdir)" || $(MKDIR_P) "$(DESTDIR)$(libstreamsdir)" @@ -289,7 +310,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(libCocoadir)" "$(DESTDIR)$(libstreamsdir)" "$(DESTDIR)$(pkglibdir)"; do \ + for dir in "$(DESTDIR)$(libCocoadir)" "$(DESTDIR)$(libikarusdir)" "$(DESTDIR)$(libstreamsdir)" "$(DESTDIR)$(pkglibdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -334,7 +355,8 @@ info: info-am info-am: -install-data-am: install-dist_libCocoaDATA install-dist_libstreamsDATA +install-data-am: install-dist_libCocoaDATA install-dist_libikarusDATA \ + install-dist_libstreamsDATA install-dvi: install-dvi-am @@ -368,7 +390,7 @@ ps: ps-am ps-am: -uninstall-am: uninstall-dist_libCocoaDATA \ +uninstall-am: uninstall-dist_libCocoaDATA uninstall-dist_libikarusDATA \ uninstall-dist_libstreamsDATA uninstall-dist_pkglibDATA .MAKE: install-am install-strip @@ -376,15 +398,16 @@ uninstall-am: uninstall-dist_libCocoaDATA \ .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ - install-dist_libCocoaDATA install-dist_libstreamsDATA \ - install-dist_pkglibDATA install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am \ - uninstall-dist_libCocoaDATA uninstall-dist_libstreamsDATA \ + install-dist_libCocoaDATA install-dist_libikarusDATA \ + install-dist_libstreamsDATA install-dist_pkglibDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ + uninstall-am uninstall-dist_libCocoaDATA \ + uninstall-dist_libikarusDATA uninstall-dist_libstreamsDATA \ uninstall-dist_pkglibDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/lib/ikarus/foreign.ss b/lib/ikarus/foreign.ss new file mode 100644 index 0000000..d536b5d --- /dev/null +++ b/lib/ikarus/foreign.ss @@ -0,0 +1,17 @@ + +(library (ikarus foreign) + + (export malloc free pointer-set-char pointer-set-short + pointer-set-int pointer-set-long pointer-set-pointer + pointer-set-float pointer-set-double + pointer-ref-signed-char pointer-ref-signed-short + pointer-ref-signed-int pointer-ref-signed-long + pointer-ref-unsigned-char pointer-ref-unsigned-short + pointer-ref-unsigned-int pointer-ref-unsigned-long + pointer-ref-pointer pointer-ref-float pointer-ref-double + pointer->integer integer->pointer pointer? dlopen dlsym + dlclose dlerror + make-callout make-callback) + + (import (ikarus system $foreign))) + diff --git a/lib/objc.ss b/lib/objc.ss index c1e8c87..5e92127 100644 --- a/lib/objc.ss +++ b/lib/objc.ss @@ -61,7 +61,7 @@ (define (pointer-ref addr offset) (assert (pointer? addr)) - (integer->pointer (pointer-ref-long addr offset))) + (integer->pointer (pointer-ref-signed-long addr offset))) (define (offset? x) (or (fixnum? x) (bignum? x))) @@ -75,7 +75,7 @@ (define (char*len x) (let f ([i 0]) (cond - [(zero? (pointer-ref-uchar x i)) i] + [(zero? (pointer-ref-unsigned-char x i)) i] [else (f (+ i 1))]))) (define (char*->bv x) @@ -85,7 +85,7 @@ (cond [(= i n) bv] [else - (bytevector-u8-set! bv i (pointer-ref-uchar x i)) + (bytevector-u8-set! bv i (pointer-ref-unsigned-char x i)) (f (+ i 1))]))))) (define (bv->char* x) @@ -183,7 +183,7 @@ (define (class-instance-size x) (check 'class-instance-size class? x) - (pointer-ref-long (class-ptr x) objc-class-instance-size-offset)) + (pointer-ref-signed-long (class-ptr x) objc-class-instance-size-offset)) (define (ivar-name x) (check 'ivar-name ivar? x) @@ -195,14 +195,14 @@ (define (ivar-offset x) (check 'ivar-offset ivar? x) - (pointer-ref-int (ivar-ptr x) (* 2 ptrsize))) + (pointer-ref-signed-int (ivar-ptr x) (* 2 ptrsize))) (define (class-ivars x) (check 'class-ivars class? x) (let ([p (pointer-ref (class-ptr x) objc-class-ivars-offset)]) (if (nil? p) '() - (let ([n (pointer-ref-long p 0)]) + (let ([n (pointer-ref-signed-long p 0)]) (let f ([i 0] [off objc-ivarlist-ivars-offset]) (if (= i n) '() @@ -312,11 +312,11 @@ (cond [(assq what alist) => cadr] [else (error 'class-is? "invalid what" what)])]) - (= mask (bitwise-and mask (pointer-ref-long (class-ptr x) (* ptrsize 4)))))) + (= mask (bitwise-and mask (pointer-ref-signed-long (class-ptr x) (* ptrsize 4)))))) (define (class-methods x) (define (methods x) - (let ([n (pointer-ref-int x ptrsize)] + (let ([n (pointer-ref-signed-int x ptrsize)] [array (integer->pointer (+ (pointer->integer x) (* 2 ptrsize)))]) (let f ([i 0]) (if (= i n) @@ -354,7 +354,7 @@ (cons (make-class (integer->pointer - (pointer-ref-long buffer (* ptrsize i)))) + (pointer-ref-signed-long buffer (* ptrsize i)))) ac))))))))) (define (nil? x) @@ -569,9 +569,9 @@ [(class) 'pointer] [(void) 'void] [(float) 'float] - [(uint) 'uint32] - [(int) 'sint32] - [(char) 'sint8] + [(uint) 'unsigned-int] + [(int) 'signed-int] + [(char) 'signed-char] [(char*) 'pointer] [else (error 'objc-type->ikarus-type "invalid type" x)])])) @@ -643,7 +643,7 @@ (let ([rtype (car sig)] [argtypes (cdr sig)]) (unless (= (length args) (length argtypes)) (error 'call-with-sig "incorrect number of args" args argtypes)) - (let ([ffi (make-ffi + (let ([ffi (make-callout (objc-type->ikarus-type rtype) (map objc-type->ikarus-type argtypes))]) (let ([proc (ffi mptr)]) diff --git a/lib/ypsilon-compat.ikarus.ss b/lib/ypsilon-compat.ikarus.ss index d9fe5f6..318f7d8 100644 --- a/lib/ypsilon-compat.ikarus.ss +++ b/lib/ypsilon-compat.ikarus.ss @@ -54,6 +54,9 @@ (define-record-type library (fields name pointer)) (define (load-shared-object libname) + (unless (string? libname) + (error 'load-shared-object "library name must be a string" + libname)) (make-library libname (or (dlopen libname) (error 'load-shared-object (dlerror) libname)))) @@ -184,7 +187,7 @@ (define (strlen x) (let f ([i 0]) (cond - [(= 0 (pointer-ref-uchar x i)) i] + [(= 0 (pointer-ref-unsigned-char x i)) i] [else (f (+ i 1))]))) (let ([n (strlen x)]) (let ([s (make-string n)]) @@ -192,7 +195,8 @@ (if (= i n) s (begin - (string-set! s i (integer->char (pointer-ref-uchar x i))) + (string-set! s i + (integer->char (pointer-ref-unsigned-char x i))) (f (+ i 1)))))))) (define-syntax convert-return @@ -213,7 +217,7 @@ [double double] [void* pointer] [byte* pointer] - [int sint32])) + [int signed-int])) (define (valid x) (cond [(and (list? x) (= (length x) 3) (eq? (car x) 'c-callback)) @@ -250,7 +254,7 @@ (with-syntax ([x x] [(t* ...) (generate-temporaries #'(arg-type* ...))]) #'(let ([callout - ((make-ffi + ((make-callout (convert-type return-type) (list (convert-type arg-type*) ...)) (lookup-shared-object lib 'foreign-name))]) diff --git a/scheme/ikarus.pointers.ss b/scheme/ikarus.pointers.ss index 686b78e..f48f08a 100644 --- a/scheme/ikarus.pointers.ss +++ b/scheme/ikarus.pointers.ss @@ -2,10 +2,19 @@ (library (ikarus.pointers) (export pointer? integer->pointer pointer->integer dlopen dlerror dlclose dlsym malloc free - pointer-ref-char pointer-ref-short pointer-ref-int pointer-ref-long - pointer-ref-uchar pointer-ref-ushort pointer-ref-uint pointer-ref-ulong + pointer-ref-signed-char + pointer-ref-signed-short + pointer-ref-signed-int + pointer-ref-signed-long + pointer-ref-unsigned-char + pointer-ref-unsigned-short + pointer-ref-unsigned-int + pointer-ref-unsigned-long pointer-set-char pointer-set-short pointer-set-int pointer-set-long - make-ffi make-callback) + pointer-set-pointer pointer-ref-pointer + pointer-set-float pointer-ref-float + pointer-set-double pointer-ref-double + make-callout make-callback) (import (except (ikarus) pointer? @@ -41,15 +50,18 @@ (and p (utf8->string p))))) (define dlopen - (case-lambda - [(x) (dlopen x #t #t)] - [(x lazy? global?) - (define (open x) - (foreign-call "ikrt_dlopen" x lazy? global?)) - (cond - [(not x) (open #f)] - [(string? x) (open (string->utf8 x))] - [else (die 'dlopen "name should be a string or #f" x)])])) + (let () + (define (open x lazy? global?) + (foreign-call "ikrt_dlopen" x lazy? global?)) + (case-lambda + [() + (open #f #f #f)] + [(x) + (dlopen x #f #f)] + [(x lazy? global?) + (cond + [(string? x) (open (string->utf8 x) lazy? global?)] + [else (die 'dlopen "library name must be a string" x)])]))) (define dlclose (lambda (x) @@ -93,34 +105,74 @@ (define-syntax define-setter (syntax-rules () - [(_ name foreign-name) + [(_ name pred? foreign-name) (define name (lambda (p i v) (if (pointer? p) (if (fixnum? i) - (if (or (fixnum? v) (bignum? v)) + (if (pred? v) (foreign-call foreign-name p i v) - (die 'name "value must be a fixnum or bignum" v)) + (die 'name + (format "value must satisfy the predicate ~a" 'pred?) + v)) (die 'name "index is not a fixnum" i)) (die 'name "not a pointer" p))))])) - (define-getter pointer-ref-char "ikrt_ref_char") - (define-getter pointer-ref-short "ikrt_ref_short") - (define-getter pointer-ref-int "ikrt_ref_int") - (define-getter pointer-ref-long "ikrt_ref_long") - - (define-getter pointer-ref-uchar "ikrt_ref_uchar") - (define-getter pointer-ref-ushort "ikrt_ref_ushort") - (define-getter pointer-ref-uint "ikrt_ref_uint") - (define-getter pointer-ref-ulong "ikrt_ref_ulong") + (define (int? x) (or (fixnum? x) (bignum? x))) - (define-setter pointer-set-char "ikrt_set_char") - (define-setter pointer-set-short "ikrt_set_short") - (define-setter pointer-set-int "ikrt_set_int") - (define-setter pointer-set-long "ikrt_set_long") + (define-getter pointer-ref-signed-char "ikrt_ref_char") + (define-getter pointer-ref-signed-short "ikrt_ref_short") + (define-getter pointer-ref-signed-int "ikrt_ref_int") + (define-getter pointer-ref-signed-long "ikrt_ref_long") + (define-getter pointer-ref-unsigned-char "ikrt_ref_uchar") + (define-getter pointer-ref-unsigned-short "ikrt_ref_ushort") + (define-getter pointer-ref-unsigned-int "ikrt_ref_uint") + (define-getter pointer-ref-unsigned-long "ikrt_ref_ulong") + (define-getter pointer-ref-float "ikrt_ref_float") + (define-getter pointer-ref-double "ikrt_ref_double") + (define-getter pointer-ref-pointer "ikrt_ref_pointer") + + (define-setter pointer-set-char int? "ikrt_set_char") + (define-setter pointer-set-short int? "ikrt_set_short") + (define-setter pointer-set-int int? "ikrt_set_int") + (define-setter pointer-set-long int? "ikrt_set_long") + (define-setter pointer-set-float flonum? "ikrt_set_float") + (define-setter pointer-set-double flonum? "ikrt_set_double") + (define-setter pointer-set-pointer pointer? "ikrt_set_pointer") ;;; libffi interface + (define (checker who) + (define (checker t) + (cond + [(vector? t) + (let ([t* (vector-map checker t)]) + (lambda (v) + (and (vector? v) + (let ([n (vector-length v)]) + (and (= n (vector-length t)) + (let f ([i 0]) + (or (= i n) + (and ((vector-ref t* i) (vector-ref v i)) + (f (+ i 1))))))))))] + [else + (case t + [(unsigned-char) int?] + [(signed-char) int?] + [(unsigned-short) int?] + [(signed-short) int?] + [(unsigned-int) int?] + [(signed-int) int?] + [(unsigned-long) int?] + [(signed-long) int?] + [(float) flonum?] + [(double) flonum?] + [(pointer) pointer?] + [else (die who "invalid type" t)])])) + checker) + + + (define (ffi-prep-cif rtype argtypes) (define who 'ffi-prep-cif) (define (convert x) @@ -128,18 +180,18 @@ [(vector? x) (vector-map convert x)] [else (case x - [(void) 1] - [(uint8) 2] - [(sint8) 3] - [(uint16) 4] - [(sint16) 5] - [(uint32) 6] - [(sint32) 7] - [(uint64) 8] - [(sint64) 9] - [(float) 10] - [(double) 11] - [(pointer) 12] + [(void) 1] + [(unsigned-char) 2] + [(signed-char) 3] + [(unsigned-short) 4] + [(signed-short) 5] + [(unsigned-int) 6] + [(signed-int) 7] + [(unsigned-long) 8] + [(signed-long) 9] + [(float) 10] + [(double) 11] + [(pointer) 12] [else (die who "invalid type" x)])])) (unless (list? argtypes) (die who "arg types is not a list" argtypes)) @@ -150,31 +202,55 @@ argtypes-n rtype-n))) - (define (make-ffi rtype argtypes) - (define who 'make-ffi) + (define (make-callout rtype argtypes) + (define who 'make-callout) (let-values ([(cif argtypes-n rtype-n) (ffi-prep-cif rtype argtypes)]) - (lambda (cfun) - (define data (vector cif cfun argtypes-n rtype-n)) - (unless (pointer? cfun) - (die 'ffi "not a pointer" cfun)) - (lambda args - (let ([argsvec (list->vector args)]) - (unless (= (vector-length argsvec) - (vector-length argtypes-n)) - (error 'ffi "args mismatch" argtypes args)) - (foreign-call "ikrt_ffi_call" data argsvec)))))) + (let* ([argtypes-vec (list->vector argtypes)] + [checkers (vector-map (checker who) argtypes-vec)]) + (lambda (cfun) + (define data (vector cif cfun argtypes-n rtype-n)) + (unless (pointer? cfun) + (die who "not a pointer" cfun)) + (lambda args + (let ([argsvec (list->vector args)]) + (unless (= (vector-length argsvec) + (vector-length argtypes-vec)) + (error 'callout-procedure "arg length mismatch" + (vector->list argtypes-vec) + args)) + (vector-for-each + (lambda (p? t x) + (unless (p? x) + (die 'callout-procedure + (format "argument does not match type ~a" t) + x))) + checkers argtypes-vec argsvec) + (foreign-call "ikrt_ffi_call" data argsvec))))))) (define (make-callback rtype argtypes) (let-values ([(cif argtypes-n rtype-n) (ffi-prep-cif rtype argtypes)]) (lambda (proc) (define who 'make-callback) - (define data (vector cif proc argtypes-n rtype-n)) (unless (procedure? proc) (die who "not a procedure")) - (or (foreign-call "ikrt_prepare_callback" data) - (die who "cannot prepare foreign callback"))))) + (let ([proc + (cond + [(eq? rtype 'void) proc] + [else + (let ([p? ((checker who) rtype)]) + (lambda args + (let ([v (apply proc args)]) + (unless (p? v) + (die 'callback + (format "returned value does not match type ~a" + rtype) + v)) + v)))])]) + (let ([data (vector cif proc argtypes-n rtype-n)]) + (or (foreign-call "ikrt_prepare_callback" data) + (die who "cannot prepare foreign callback"))))))) ) diff --git a/scheme/last-revision b/scheme/last-revision index f800fc8..c772079 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1617 +1620 diff --git a/scheme/makefile.ss b/scheme/makefile.ss index 8df923d..8a69fbe 100755 --- a/scheme/makefile.ss +++ b/scheme/makefile.ss @@ -1455,29 +1455,35 @@ [cp0-effort-limit i] [tag-analysis-output i] [perform-tag-analysis i] - [pointer? $for] - [pointer->integer $for] - [integer->pointer $for] - [dlopen $for] - [dlerror $for] - [dlclose $for] - [dlsym $for] - [malloc $for] - [free $for] - [pointer-ref-char $for] - [pointer-ref-short $for] - [pointer-ref-int $for] - [pointer-ref-long $for] - [pointer-ref-uchar $for] - [pointer-ref-ushort $for] - [pointer-ref-uint $for] - [pointer-ref-ulong $for] - [pointer-set-char $for] - [pointer-set-short $for] - [pointer-set-int $for] - [pointer-set-long $for] - [make-ffi $for] - [make-callback $for] + [pointer? $for] + [pointer->integer $for] + [integer->pointer $for] + [dlopen $for] + [dlerror $for] + [dlclose $for] + [dlsym $for] + [malloc $for] + [free $for] + [pointer-ref-signed-char $for] + [pointer-ref-signed-short $for] + [pointer-ref-signed-int $for] + [pointer-ref-signed-long $for] + [pointer-ref-unsigned-char $for] + [pointer-ref-unsigned-short $for] + [pointer-ref-unsigned-int $for] + [pointer-ref-unsigned-long $for] + [pointer-set-char $for] + [pointer-set-short $for] + [pointer-set-int $for] + [pointer-set-long $for] + [pointer-set-pointer $for] + [pointer-ref-pointer $for] + [pointer-set-float $for] + [pointer-ref-float $for] + [pointer-set-double $for] + [pointer-ref-double $for] + [make-callout $for] + [make-callback $for] [host-info i] )) diff --git a/scheme/tests/pointers.ss b/scheme/tests/pointers.ss index 25398b1..bade174 100644 --- a/scheme/tests/pointers.ss +++ b/scheme/tests/pointers.ss @@ -90,7 +90,7 @@ (let ([m (getter p 0)]) (free p) m))]) - (unless (= n m) + (unless (= n m) (error 'test "failed" getter setter n m)))) combinations)) @@ -115,14 +115,14 @@ (for-each check-combinations '(8 16 32 64)) (test-pointer-values) - (test-ref/set 'char (s* 8) pointer-ref-char pointer-set-char) - (test-ref/set 'short (s* 16) pointer-ref-short pointer-set-short) - (test-ref/set 'int (s* 32) pointer-ref-int pointer-set-int) - (test-ref/set 'long (s* 64) pointer-ref-long pointer-set-long) - (test-ref/set 'uchar (u* 8) pointer-ref-uchar pointer-set-char) - (test-ref/set 'ushort (u* 16) pointer-ref-ushort pointer-set-short) - (test-ref/set 'uint (u* 32) pointer-ref-uint pointer-set-int) - (test-ref/set 'ulong (u* 64) pointer-ref-ulong pointer-set-long) + (test-ref/set 'char (s* 8) pointer-ref-signed-char pointer-set-char) + (test-ref/set 'short (s* 16) pointer-ref-signed-short pointer-set-short) + (test-ref/set 'int (s* 32) pointer-ref-signed-int pointer-set-int) + (test-ref/set 'long (s* 64) pointer-ref-signed-long pointer-set-long) + (test-ref/set 'uchar (u* 8) pointer-ref-unsigned-char pointer-set-char) + (test-ref/set 'ushort (u* 16) pointer-ref-unsigned-short pointer-set-short) + (test-ref/set 'uint (u* 32) pointer-ref-unsigned-int pointer-set-int) + (test-ref/set 'ulong (u* 64) pointer-ref-unsigned-long pointer-set-long) ) diff --git a/src/ikarus-pointers.c b/src/ikarus-pointers.c index 27d16a6..adf1bd1 100644 --- a/src/ikarus-pointers.c +++ b/src/ikarus-pointers.c @@ -43,13 +43,26 @@ make_pointer(long int x, ikpcb* pcb) { return r+vector_tag; } +#define bnfst_negative(x) \ + (((unsigned long int)(x)) & bignum_sign_mask) +static long +integer_to_long(ikptr x) { + if (is_fixnum(x)) { + return ((long)x) >> fx_shift; + } else { + if(bnfst_negative(ref(x, -vector_tag))){ + return -(long)ref(x, wordsize-vector_tag); + } else { + return (long)ref(x, wordsize-vector_tag); + } + } +} + ikptr ikrt_fx_to_pointer(ikptr x, ikpcb* pcb) { return make_pointer(unfix(x), pcb); } -#define bnfst_negative(x) \ - (((unsigned long int)(x)) & bignum_sign_mask) ikptr ikrt_bn_to_pointer(ikptr x, ikpcb* pcb) { if(bnfst_negative(ref(x, -vector_tag))){ @@ -152,6 +165,67 @@ ikrt_ref_ushort(ikptr p, ikptr off /*, ikpcb* pcb*/) { return fix(*((unsigned short*)(((long)ref(p, off_pointer_data)) + unfix(off)))); } +ikptr +ikrt_ref_pointer(ikptr p, ikptr off, ikpcb* pcb) { + long idx = integer_to_long(off); + void* ptr = (void*)ref(p, off_pointer_data); + return make_pointer(ref(ptr, idx), pcb); +} + +ikptr +ikrt_set_pointer(ikptr p, ikptr off, ikptr v /*, ikpcb* pcb*/) { + long idx = integer_to_long(off); + void* ptr = (void*)ref(p, off_pointer_data); + ref(ptr, idx) = ref(v, off_pointer_data); + return void_object; +} + +static ikptr +double_to_flonum(double x, ikpcb* pcb){ + ikptr r = ik_safe_alloc(pcb, flonum_size) + vector_tag; + ref(r, -vector_tag) = flonum_tag; + flonum_data(r) = x; + return r; +} + +ikptr +ikrt_set_float(ikptr p, ikptr off, ikptr v /*, ikpcb* pcb*/) { + long idx = integer_to_long(off); + ikptr ptr = ref(p, off_pointer_data); + *((float*)(ptr+idx)) = flonum_data(v); + return void_object; +} + +ikptr +ikrt_ref_float(ikptr p, ikptr off, ikpcb* pcb) { + long idx = integer_to_long(off); + ikptr ptr = ref(p, off_pointer_data); + double v = *((float*)(ptr+idx)); + return double_to_flonum(v, pcb); +} + + +ikptr +ikrt_set_double(ikptr p, ikptr off, ikptr v /*, ikpcb* pcb*/) { + long idx = integer_to_long(off); + ikptr ptr = ref(p, off_pointer_data); + *((double*)(ptr+idx)) = flonum_data(v); + return void_object; +} + +ikptr +ikrt_ref_double(ikptr p, ikptr off, ikpcb* pcb) { + long idx = integer_to_long(off); + ikptr ptr = ref(p, off_pointer_data); + double v = *((double*)(ptr+idx)); + return double_to_flonum(v, pcb); +} + + + + + + ikptr s_to_number(signed long n, ikpcb* pcb) { ikptr fx = fix(n); @@ -234,16 +308,18 @@ long extract_num(ikptr x) { if (is_fixnum(x)) { return unfix(x); + } else if (x == void_object) { + return 0; } else { - if (x == void_object) { return 0; } - if(bnfst_negative(ref(x, -vector_tag))){ + if (bnfst_negative(ref(x, -vector_tag))){ return (long)(-ref(x, wordsize-vector_tag)); } else { return (long)(ref(x, wordsize-vector_tag)); } - } + } } + ikptr ikrt_set_char(ikptr p, ikptr off, ikptr v/*, ikpcb* pcb*/) { *((signed char*)(((long)ref(p, off_pointer_data)) + unfix(off))) =