From: <cli...@li...> - 2005-10-23 03:20:37
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/modules/syscalls syscalls.xml,1.57,1.58 (Sam Steingold) 2. clisp/doc impext.xml,1.398,1.399 (Sam Steingold) 3. clisp/src ChangeLog,1.5039,1.5040 (Sam Steingold) 4. clisp/src/m4 poll.m4,1.2,1.3 eloop.m4,1.2,1.3 (Sam Steingold) 5. clisp/src screen.lisp,1.9,1.10 ChangeLog,1.5040,1.5041 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/syscalls syscalls.xml,1.57,1.58 Date: Sun, 23 Oct 2005 00:46:24 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25264/modules/syscalls Modified Files: syscalls.xml Log Message: (resolve-host): also calls gethostent Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- syscalls.xml 7 Oct 2005 17:03:40 -0000 1.57 +++ syscalls.xml 23 Oct 2005 00:46:22 -0000 1.58 @@ -29,7 +29,8 @@ <filename>/etc/hosts</filename> file on a &unix; system or <filename>${windir}/system32/etc/hosts</filename> on a &win32; system). </para><simpara>This is an interface - to <function role="unix">gethostbyname</function> + to <function role="unix">gethostent</function>, + <function role="unix">gethostbyname</function>, and <function role="unix">gethostbyaddr</function>. </simpara></listitem></varlistentry> <varlistentry id="file-stat"><term><code>(<function>POSIX:FILE-STAT</function> --__--__-- Message: 2 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/doc impext.xml,1.398,1.399 Date: Sun, 23 Oct 2005 00:45:54 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25145/doc Modified Files: impext.xml Log Message: (dffi-ex-macro): reinstated Index: impext.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impext.xml,v retrieving revision 1.398 retrieving revision 1.399 diff -u -d -r1.398 -r1.399 --- impext.xml 20 Oct 2005 21:03:27 -0000 1.398 +++ impext.xml 23 Oct 2005 00:45:52 -0000 1.399 @@ -2178,10 +2178,12 @@ <listitem><simpara>Lisp objects have type <type>object</type>. </simpara></listitem> <listitem><simpara>Variables of this type are invalidated by - <link linkend="gc-safety">memory allocation</link> and must be saved - on the &STACK; using macros <function>pushSTASK()</function>, - <function>popSTACK()</function> and <function>skipSTACK()</function>. - </simpara></listitem> + <link linkend="gc-safety">lisp memory allocation</link> + (<function>allocate_*()</function> functions) - but ¬-e; &c-lang; + allocations (<function role="unix">malloc</function> et al) - + and must be saved on the &STACK; using &cpp; macros + <function>pushSTASK()</function>, <function>popSTACK()</function> + and <function>skipSTACK()</function>.</simpara></listitem> <listitem><simpara>Access object slots using the appropriate <function>TheFoo()</function> macro, e.g., <function>TheCons(my_cons)->Car</function>, but first check the @@ -2246,9 +2248,12 @@ out your code. This is a huge advantage for rapid prototyping. </simpara></listitem></varlistentry> <varlistentry><term>UI: &c-lang; wins</term> - <listitem><simpara>To produce a nice lispy UI (using optional and - keyword arguments etc), you will need to write wrappers to your - &ffi-pac; functions, while in &c-lang; you can do that directly. + <listitem><simpara>To produce a nice lispy UI (using &optional-amp; and + &key-amp;word arguments etc), you will need to write wrappers to your + &foreign-function-t;s, while in &c-lang; you can do that directly. + The same goes for <quote>polymorphism</quote>: accepting different + argument types (like, e.g., &resolve-host; does) would require a lisp + wrapper for &foreign-function-t;s. </simpara></listitem></varlistentry> <varlistentry><term>Learning curve: unclear</term> <listitem><simpara>If you are comfortable with &c-lang;, you might @@ -2421,7 +2426,8 @@ &cpp; macros and <literal>inline</literal> functions cannot be accessed this way.</simpara></listitem> <listitem><simpara>Use a somewhat less direct way: when you do not use - the &library-k; argument, &compile-file; produces a &c-lang; file. + the &library-k; argument, &compile-file; produces a &c-file; file (in + addition to a &fasl-file; and a &lib-file;). Then you compile (with a &c-lang; compiler) and link it into &clisp; (statically, linking it into <filename>lisp.a</filename>, or dynamically, loading it into a running &clisp; using @@ -2429,7 +2435,8 @@ <function role="unix">dlsym</function>). This way you can use any functionality your foreign library exports, whether using ordinary functions, <literal>inline</literal> functions, - or &cpp; macros.</simpara></listitem></orderedlist> + or &cpp; macros (see <xref linkend="dffi-ex-macro"/>). + </simpara></listitem></orderedlist> </para> <para>All symbols relating to the foreign function interface are @@ -2519,6 +2526,7 @@ <varlistentry><term><code>(&documentation-k; &string-r;)</code></term> <listitem><simpara>Specifies the (optional) &variable-doc; documentation. </simpara></listitem></varlistentry></variablelist> + <simpara>See also <xref linkend="dffi-ex-macro"/>.</simpara> </listitem></varlistentry> <varlistentry id="def-call-out"><term><code>(&def-call-out; @@ -3529,7 +3537,7 @@ (:return-type div_t)) </programlisting> -Sample call from within Lisp: +Sample call from within Lisp (after running &clisp-link;): <programlisting language="lisp"> (div 20 3) @@ -3635,6 +3643,37 @@ (&foreign-free; data :FULL nil)))) </programlisting></para></example> +<example id="dffi-ex-macro"><title>Accessing &cpp; macros</title> +<para>Suppose you are interfacing to a library <filename>mylib.so</filename> + which defines macros and <literal>inline</literal> functions + in <filename>mylib.h</filename>:<programlisting language="C"> +#define FOO(x) ..... +inline int bar (int x) { ... } +</programlisting> + To make them available from &clisp;, write these forms into the lisp + file <filename>my.lisp</filename>:<programlisting language="lisp"> +(&c-lines; "#include <mylib.h> +int my_foo (int x) { return FOO(x); } +int my_bar (int x) { return bar(x); }~%") +(&def-call-out; my-foo (:name "my_foo") (:arguments (x int)) (:return-type int)) +(&def-call-out; my-bar (:name "my_bar") (:arguments (x int)) (:return-type int)) +</programlisting></para> +<para>Compiling this file will produce <filename>my.c</filename> + and <filename>my.fas</filename> and you have two options: + <orderedlist><listitem><para>Compile <filename>my.c</filename> + into <filename>my.o</filename> with <screen> +<prompt>$</prompt> gcc -c my.c -lmylib +</screen> and use &clisp-link; to create a new &clisp; &linkset;. + </para></listitem> + <listitem><para>Add <code>(:library "my.dll")</code> to the + &def-call-out; forms, compile <filename>my.c</filename> + into <filename>my.so</filename> (or <filename>my.dll</filename> on + &win32;) with <screen> +<prompt>$</prompt> gcc -shared -o my.so my.c -lmylib +</screen> and load <filename>my.fas</filename>. +</para></listitem></orderedlist></para> +</example> + <example id="ex-call-in"><title>Calling Lisp from &c-lang;</title> <para>To sort an array of double-floats using the Lisp function &sort; --__--__-- Message: 3 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.5039,1.5040 Date: Sun, 23 Oct 2005 00:47:52 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25428/src Modified Files: ChangeLog Log Message: avoid configure errors on woe32 Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5039 retrieving revision 1.5040 diff -u -d -r1.5039 -r1.5040 --- ChangeLog 21 Oct 2005 21:00:35 -0000 1.5039 +++ ChangeLog 23 Oct 2005 00:47:50 -0000 1.5040 @@ -1,3 +1,10 @@ +2005-10-22 Sam Steingold <sd...@gn...> + + avoid configure errors on woe32 + * m4/eloop.m4: check that conftest exists before running it + * m4/poll.m4: if AC_CHECK_FUNC does not find poll, + cl_cv_func_poll will not be set + 2005-10-21 Sam Steingold <sd...@gn...> * modules/rawsock/rawsock.c (SOCK-LISTEN): backlog is optional --__--__-- Message: 4 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src/m4 poll.m4,1.2,1.3 eloop.m4,1.2,1.3 Date: Sun, 23 Oct 2005 00:47:52 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src/m4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25428/src/m4 Modified Files: poll.m4 eloop.m4 Log Message: avoid configure errors on woe32 Index: eloop.m4 =================================================================== RCS file: /cvsroot/clisp/clisp/src/m4/eloop.m4,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- eloop.m4 3 Aug 2003 00:22:38 -0000 1.2 +++ eloop.m4 23 Oct 2005 00:47:50 -0000 1.3 @@ -37,12 +37,16 @@ #endif EOF AC_TRY_EVAL(ac_link) -cl_cv_decl_ELOOP=`./conftest` -if test "$cl_cv_decl_ELOOP" = "ELOOP"; then - cl_cv_decl_eloop=yes -else - cl_cv_decl_eloop="$cl_cv_decl_ELOOP" -fi + if test -x conftest; then + cl_cv_decl_ELOOP=`./conftest` + if test "$cl_cv_decl_ELOOP" = "ELOOP"; then + cl_cv_decl_eloop=yes + else + cl_cv_decl_eloop="$cl_cv_decl_ELOOP" + fi + else cl_cv_decl_eloop=no + cl_cv_decl_ELOOP="ELOOP" + fi else AC_EGREP_CPP(yes,[ #include <stdlib.h> Index: poll.m4 =================================================================== RCS file: /cvsroot/clisp/clisp/src/m4/poll.m4,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- poll.m4 1 Jun 2005 11:29:20 -0000 1.2 +++ poll.m4 23 Oct 2005 00:47:50 -0000 1.3 @@ -13,7 +13,7 @@ AC_DEFUN([CL_POLL], [AC_REQUIRE([CL_OPENFLAGS])dnl AC_CHECK_FUNC(poll, - [# Check whether poll() works on special files (like /dev/null) and + [# Check whether poll() works on special files (like /dev/null) # and ttys (like /dev/tty). On MacOS X 10.4.0, it doesn't. AC_TRY_RUN([ #include <fcntl.h> @@ -49,7 +49,8 @@ This is MacOSX #endif ], [cl_cv_func_poll=no], [cl_cv_func_poll=yes])])]) -if test $cl_cv_func_poll = yes; then +dnl if AC_CHECK_FUNC does not find poll, cl_cv_func_poll will not be set +if test x$cl_cv_func_poll = xyes; then AC_DEFINE([HAVE_POLL], 1, [Define to 1 if you have the 'poll' function and it works.]) # Now check whether poll() works reliably on regular files, i.e. signals --__--__-- Message: 5 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src screen.lisp,1.9,1.10 ChangeLog,1.5040,1.5041 Date: Sun, 23 Oct 2005 01:22:29 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32121/src Modified Files: screen.lisp ChangeLog Log Message: (*new-window*, read-keyboard-char): removed undocumented and unused symbols Index: screen.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/screen.lisp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- screen.lisp 21 Oct 2004 11:18:38 -0000 1.9 +++ screen.lisp 23 Oct 2005 01:22:27 -0000 1.10 @@ -5,47 +5,20 @@ ;; thus we have to use DEFPACKAGE here just in case (defpackage "SCREEN" - (:documentation "http://clisp.cons.org/impnotes.html#screen") - (:use "COMMON-LISP" "EXT")) + (:documentation "http://clisp.cons.org/impnotes/screen.html") + (:use "COMMON-LISP" "EXT") + (:export ;; exported functions and macros: + #:make-window #:window-size + #:window-cursor-position #:set-window-cursor-position + #:clear-window #:clear-window-to-eot #:clear-window-to-eol + #:delete-window-line #:insert-window-line + #:highlight-on #:highlight-off #:window-cursor-on #:window-cursor-off + #:with-window #:*window*)) (in-package "SCREEN") -#| -; Re-Export von importierten Symbolen kann man nicht mit der -; P I S E R U I - Regel erreichen. Diese Symbole muss man zuerst importieren. - (in-package "SYSTEM") - (import '(make-window window-size - window-cursor-position set-window-cursor-position - clear-window clear-window-to-eot clear-window-to-eol - delete-window-line insert-window-line - highlight-on highlight-off window-cursor-on window-cursor-off) - "SCREEN") - (in-package "SCREEN") -|# - -(export '(; exported functions and macros: - make-window window-size - window-cursor-position set-window-cursor-position - clear-window clear-window-to-eot clear-window-to-eol - delete-window-line insert-window-line - highlight-on highlight-off window-cursor-on window-cursor-off - with-window *window* - read-keyboard-char - ; user-settable things: - *new-window* -) ) - -(proclaim '(special *window*)) ; ABI - -(defun read-keyboard-char (stream) - (declare (ignore stream)) - (read-char *keyboard-input*) -) - -(defconstant *new-window* nil) +(defvar *window*) ; ABI (defmacro with-window (&body body) `(LET ((*WINDOW* (MAKE-WINDOW))) - (UNWIND-PROTECT (PROGN ,@body) (CLOSE *WINDOW*)) - ) -) + (UNWIND-PROTECT (PROGN ,@body) (CLOSE *WINDOW*)))) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5040 retrieving revision 1.5041 diff -u -d -r1.5040 -r1.5041 --- ChangeLog 23 Oct 2005 00:47:50 -0000 1.5040 +++ ChangeLog 23 Oct 2005 01:22:27 -0000 1.5041 @@ -1,5 +1,10 @@ 2005-10-22 Sam Steingold <sd...@gn...> + * screen.lisp (*new-window*, read-keyboard-char): removed + undocumented and unused symbols + +2005-10-22 Sam Steingold <sd...@gn...> + avoid configure errors on woe32 * m4/eloop.m4: check that conftest exists before running it * m4/poll.m4: if AC_CHECK_FUNC does not find poll, --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |