summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cross-compiling should not imply need for and use of GUILE_FOR_BUILDbranch-notes/wip-1-8-mingw-buildhistorical/wip-1-8-mingw-buildNeil Jerram2010-03-252-10/+14
|
* On MinGW, return #t instead of calling system (NULL)Neil Jerram2010-03-051-0/+7
| | | | | * libguile/simpos.c (scm_system): On MinGW avoid call system (NULL), return hardcoded #t instead.
* Make test scripts check GUILE environment variableNeil Jerram2010-03-056-12/+12
| | | | | | | | | | | | | | | | | | So that they use the guile (or guile.exe, in the MinGW case) that was just built, and not just any guile that can be found in the PATH. * test-suite/standalone/test-asmobs: Use ${GUILE:-guile} instead of guile. * test-suite/standalone/test-bad-identifiers: Ditto. * test-suite/standalone/test-fast-slot-ref.in: Ditto. * test-suite/standalone/test-require-extension: Ditto. * test-suite/standalone/test-system-cmds: Ditto. * test-suite/standalone/test-use-srfi.in: Ditto.
* Ignore built *.exe filesNeil Jerram2010-03-051-0/+1
| | | | * .gitignore: Add *.exe
* Patch ltmain.sh to handle args correctly when invoking a Windows executableNeil Jerram2010-03-052-0/+149
| | | | | | | | (From http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=101ad44541c6d303cf465937a212042885f4338e) * ltmain.sh.patch: New file. * autogen.sh: Apply patch to build-aux/ltmain.sh.
* Add @EXEEXT@ to Guile executable pathsNeil Jerram2010-03-052-1/+5
| | | | | | | | | | Fixes this MinGW build error: cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc continuations.doc debug.doc deprecation.doc deprecated.doc discouraged.doc dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc extensions.doc feature.doc fluids.doc fports.doc futures.doc gc.doc goops.doc gsubr.doc gc-mark.doc gc-segment.doc gc-malloc.doc gc-card.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc srfi-4.doc srfi-13.doc srfi-14.doc strorder.doc strports.doc struct.doc symbols.doc threads.doc throw.doc values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc ramap.doc unif.doc dynl.doc filesys.doc posix.doc net_db.doc socket.doc win32-uname.doc win32-dirent.doc win32-socket.doc inet_aton.doc mkstemp.doc | GUILE="/home/neil/SW/Guile/branch_release-1-8/pre-inst-guile" ../scripts/snarf-check-and-output-texi > guile-procedures.texi || { rm guile-procedures.texi; false; } /home/neil/SW/Guile/branch_release-1-8/pre-inst-guile: line 94: /home/neil/SW/Guile/branch_release-1-8/libguile/guile: No such file or directory /home/neil/SW/Guile/branch_release-1-8/pre-inst-guile: line 94: exec: /home/neil/SW/Guile/branch_release-1-8/libguile/guile: cannot execute: No such file or directory * pre-inst-guile-env.in, pre-inst-guile.in: Add @EXEEXT@
* Use scm_t_ptrdiff consistently instead of ptrdiff_tNeil Jerram2010-03-041-2/+2
| | | | | | | | | | | | | This fixes the following errors in a MinGW cross-build. libtool: compile: i586-mingw32msvc-gcc -DHAVE_CONFIG_H -I.. -I.. -I.. -I/usr/local/i586-mingw32msvc/include -I/usr/local/i586-mingw32msvc/include -g -O2 -Wall -Wmissing-prototypes -Werror -MT libguile_la-discouraged.lo -MD -MP -MF .deps/libguile_la-discouraged.Tpo -c discouraged.c -DDLL_EXPORT -DPIC -o .libs/libguile_la-discouraged.o discouraged.c:75: error: conflicting types for 'scm_ptrdiff2num' ../libguile/discouraged.h:75: error: previous declaration of 'scm_ptrdiff2num' was here discouraged.c:123: error: conflicting types for 'scm_num2ptrdiff' ../libguile/discouraged.h:89: error: previous declaration of 'scm_num2ptrdiff' was here * libguile/discouraged.c (scm_ptrdiff2num, scm_num2ptrdiff): Use scm_t_ptrdiff instead of ptrdiff_t.
* Improve README text on cross-building for WindowsNeil Jerram2010-03-041-13/+29
| | | | | | * README: In particular, cover and recommend using wine. Separate the "not recently tested" instructions into a separate section. Otherwise, various minor textual improvements.
* Fix test environment issue with ltdl from Libtool 2.2.6b.Ludovic Courtès2009-12-182-2/+5
| | | | | | | | | | | Earlier versions of ltdl would look for extensions under $PWD; this behavior changed in 2.2.6b. * test-suite/standalone/Makefile.am (TESTS_ENVIRONMENT): Define $builddir. * test-suite/standalone/test-asmobs: Specify the full path to `libtest-asmobs', using $builddir.
* Work around path name length limitations in `socket.test'.Ludovic Courtès2009-11-261-8/+26
| | | | | | * test-suite/tests/socket.test (%tmpdir, %curdir): New variables. Chdir to %TMPDIR. Switch back to %CURDIR at the end. (temp-file-path): Return a base file name, not an absolute path.
* Update `NEWS'.Ludovic Courtès2009-10-261-0/+2
|
* Add GOOPS `class-of' test for nameless structs.Ludovic Courtès2009-10-261-1/+6
| | | | | * test-suite/tests/goops.test ("classes for built-in types")["struct vtable"]: New test case.
* SRFI-35: Provide nice vtable names, to make GOOPS happier.Ludovic Courtès2009-10-262-13/+25
| | | | | | | | * module/srfi/srfi-35.scm (%make-condition-type): New procedure. (make-condition-type, make-compound-condition-type): Use it. * test-suite/tests/srfi-35.test ("condition types")["struct-vtable-name"]: New test.
* Fix unbound variable references in `srfi-19.scm'.Ludovic Courtès2009-10-261-14/+23
| | | | | | | * module/srfi/srfi-19.scm: Use `(ice-9 rdelim)'. (date->broken-down-time, priv:year-day, priv:char->int): Fix typo. (time-*->time-*, time-*->time-*!): Fix reference to unbound variable `caller'.
* Fix doc for inet-ntop: always produces a stringNeil Jerram2009-10-013-6/+6
| | | | | | | | | | | | Thanks to Scott McPeak for reporting this. * libguile/socket.c (scm_inet_ntop): In docstring, add quotes around IPv6 address (+ reflow a bit). * doc/ref/posix.texi (Network Address Conversion): Corresponding change. * doc/maint/guile.texi: Corresponding change.
* Fix handling of IPv6 addressesNeil Jerram2009-10-013-2/+89
| | | | | | | | | | | | | Thanks to Scott McPeak for reporting this and providing a patch. * libguile/socket.c (scm_to_ipv6): When address is the wrong type, provide more information in the exception message. (scm_to_sockaddr): scm_to_ipv6 expects just an address, not the whole vector. * test-suite/tests/socket.test ("AF_INET6/SOCK_STREAM"): New set of tests.
* Fix incorrect doc mentions of INADDR_LOCALHOSTNeil Jerram2009-10-012-2/+3
| | | | | | | Thanks to Scott McPeak for reporting this. * doc/ref/posix.texi (Network Sockets and Communication): Change INADDR_LOCALHOST to INADDR_LOOPBACK.
* bugfix: don't dynamic link if we found a registered extensionAndy Wingo2009-09-232-0/+6
| | | | | * libguile/extensions.c (load_extension): Don't do dynamic linking if we actually did find an extension in the list.
* Fix doc of let*-valuesNeil Jerram2009-08-272-1/+2
| | | | | | | Thanks to Judy Hawkins for reporting this. * doc/ref/api-modules.texi (Included Guile Modules): Change `let-values*' to `let*-values'.
* Update NEWSNeil Jerram2009-08-211-0/+1
|
* Avoid clash with system setjmp/longjmp on IA64Neil Jerram2009-08-216-17/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was that if an application includes both libguile.h and the system's setjmp.h, and is compiled on IA64, it gets compile errors because of jmp_buf, setjmp and longjmp being multiply defined. * libguile/__scm.h (__ia64__): Define scm_i_jmp_buf, SCM_I_SETJMP and SCM_I_LONGJMP instead of jmp_buf, setjmp and longjmp. (all other platforms): Map scm_i_jmp_buf, SCM_I_SETJMP and SCM_I_LONGJMP to jmp_buf, setjmp and longjmp. * libguile/continuations.c (scm_make_continuation): Use `SCM_I_SETJMP' instead of `setjmp'. (copy_stack_and_call): Use `SCM_I_LONJMP' instead of `longjmp'. (scm_ia64_longjmp): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/continuations.h (scm_t_contregs): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/threads.c (suspend): Use `SCM_I_SETJMP' instead of `setjmp'. * libguile/threads.h (scm_i_thread): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/throw.c (JBJMPBUF, make_jmpbuf, jmp_buf_and_retval): Use type `scm_i_jmp_buf' instead of `jmp_buf'. (scm_c_catch): Use `SCM_I_SETJMP' instead of `setjmp'. (scm_ithrow): Use `SCM_I_LONGJMP' instead of `longjmp'.
* Update `NEWS' for commit d8dd381fa781c236ae777ca1ac55b73d3ca91c2a.Ludovic Courtès2009-08-172-0/+8
|
* fix buffer overrun reading partial numbers: 1.0f, 1.0/, and 1.0+Andy Wingo2009-08-041-1/+16
| | | | | | | | | | | * libguile/numbers.c (mem2decimal_from_point, mem2ureal, mem2complex): Fix a number of cases where, for invalid numbers, we could read past the end of the buffer. This happened in e.g. "1.0+", "1/" and "1.0f". But I couldn't figure out how to test for these, given that the behavior depended on the contents of uninitialized memory in the reader buffer. We'll just have to be happy with this. Thanks to Kjetil S. Matheussen for the report.
* Bump version number for 1.8.7.release_1-8-7Ludovic Courtès2009-07-051-2/+2
| | | | | * GUILE-VERSION (GUILE_MICRO_VERSION): Increment. (LIBGUILE_INTERFACE_REVISION): Increment.
* Update `NEWS'.Ludovic Courtès2009-07-051-0/+1
| | | | * NEWS: Update.
* Enclose `bit-operations.test' in its own module.Ludovic Courtès2009-07-051-3/+4
| | | | * test-suite/tests/bit-operations.test: Use the `define-module' clause.
* Work around the lack of a vsnprintf(3) declaration on AIX 5.3.Ludovic Courtès2009-07-052-3/+7
| | | | | | | * configure.in: Check for the vsnprintf(3) declaration. * libguile/deprecation.c [!HAVE_DECL_VSNPRINTF]: Provide vsnprintf(3) declaration. This is needed on `powerpc-ibm-aix5.3.0.0'.
* Fix the `BUILD_PTHREAD_SUPPORT' Automake conditional when not using pthread.Ludovic Courtès2009-07-051-5/+6
| | | | | | * configure.in: Set $build_pthread_support to "no" when thread support isn't built. This fixes the `BUILD_PTHREAD_SUPPORT' Automake conditional.
* Aggregate makefiles under `ice-9'.Ludovic Courtès2009-07-044-72/+17
| | | | | | | | | | | | * configure.in: Remove `ice-9/{debugger,debugging}/Makefile' from `AC_CONFIG_FILES'. * ice-9/Makefile.am (SUBDIRS): Remove. (ice9_debugger_sources, ice9_debugging_sources): New variables. (subpkgdata_DATA): Remove (nobase_subpkgdata_DATA): New. (TAGS_FILES): Point to $(nobase_subpkgdata_DATA). (EXTRA_DIST): Add `$(ice9_debugger_sources) $(ice9_debugging_sources)'.
* Update `NEWS' and `README' to cover MinGW cross-compilingNeil Jerram2009-07-042-16/+33
| | | | | | | Also - removed the completely content-free `Special Instructions For Some Systems' section from `README' - changed the version number in `README' to 1.8.7.
* Revert "Add libguile to the subdirs where pre-inst-guile* looks for libraries"Neil Jerram2009-07-012-2/+2
| | | | | | | | This reverts commit b6c09de56a6978e60c6815ce69403fc7dc0268b5. Sorry, 1.8/master confusion on my part. Thanks to Ludovic for explaining why this commit isn't needed. (http://lists.gnu.org/archive/html/guile-devel/2009-07/msg00001.html)
* Read complex numbers where both parts are inexact decimalsNeil Jerram2009-07-013-7/+22
| | | | | | | | | | | | Thanks to Bill Schottstaedt for reporting this problem! * libguile/numbers.c (mem2ureal): Don't be misled by *p_exactness being INEXACT on entry (as is possible when reading a complex number): use local exactness variable x which starts as EXACT. Call mem2decimal_from_point () with &x instead of p_exactness. * test-suite/tests/numbers.test ("string->number"): Add complex number tests suggested by Bill.
* Correction to doc on Accessing Arrays from CNeil Jerram2009-06-301-15/+7
| | | | | | | | Thanks to Ludovic for the new wording! * doc/ref/api-compound.texi (Accessing Arrays from C): Correct text to reflect the current implementation of scm_array_get_handle and scm_array_handle_release - which don't actuall do any dynwind stuff.
* URL missing from previous commit messageNeil Jerram2009-06-300-0/+0
| | | | | | http://www.mail-archive.com/guile-devel@gnu.org/msg01635.html (Second time this has happened. I don't know why!)
* Add libguile to the subdirs where pre-inst-guile* looks for librariesNeil Jerram2009-06-302-2/+2
| | | | | | | | | | | | | | This fixes a problem on some platforms where a pre-inst guile incorrectly picks up an old installed library (e.g. from /usr/local/lib) instead of the not-yet-installed newly built library. For detailed discussion see and http://www.mail-archive.com/guile-devel@gnu.org/msg02529.html. * pre-inst-guile-env.in (subdirs_with_ltlibs): Add libguile. * pre-inst-guile.in (subdirs_with_ltlibs): Add libguile.
* For MinGW hide exported struct variables behind pointersNeil Jerram2009-06-294-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | MinGW apparently can't export/import struct variables from/to a DLL, so wrap the ones needed by inline.h in exported/imported pointer variables. All of the following changes apply to a MinGW build only. * libguile/gc-freelist.c (scm_i_master_freelist_ptr, scm_i_master_freelist2_ptr): New API variables. * libguile/gc.h (scm_i_freelist_ptr, scm_i_freelist2_ptr, scm_i_master_freelist_ptr, scm_i_master_freelist2_ptr): New global variable declarations. * libguile/inline.h (scm_cell): Use scm_i_freelist_ptr and scm_i_master_freelist_ptr instead of scm_i_freelist and scm_i_master_freelist. (scm_double_cell): Use scm_i_freelist2_ptr and scm_i_master_freelist2_ptr instead of scm_i_freelist2 and scm_i_master_freelist2. * libguile/threads.c (scm_i_freelist_ptr, scm_i_freelist2_ptr): New global variables.
* Use GUILE_FOR_BUILD for autogeneration steps during the buildNeil Jerram2009-06-291-1/+1
| | | | | | | This is a fix for a MinGW cross compile build. * doc/ref/Makefile.am (autoconf-macros.texi): Use GUILE_FOR_BUILD to generate this.
* srfi-60.c shouldn't include private-gc.hNeil Jerram2009-06-291-1/+1
| | | | | * srfi/srfi-60.c (SCM_MIN): Define here instead of including private-gc.h.
* In MinGW build, avoid clash between libguile and SRFI library function namesNeil Jerram2009-06-293-5/+13
| | | | | | | | | | | | | | | | | | | | | The dummy scm_init_* and scm_c_init_* functions in the empty libraries for SRFIs 4, 13 and 14 clash with declarations with the same names in libguile.h that are marked (in the MinGW build) with __declspec (dllimport). These libraries are empty because their content was moved into libguile some time ago, and I think these functions are needed only so that the libraries appear to contain something. They used also to be needed for the (load-extension ...) forms in the corresponding .scm modules, but those forms were not needed anymore, and so were removed, when everything moved into libguile. * srfi/srfi-13.c (scm_init_srfi_13_no_clash_with_libguile): Renamed from scm_init_srfi_13. (scm_init_srfi_13_14_no_clash_with_libguile): Same. * srfi/srfi-14.c (scm_init_srfi_14_no_clash_with_libguile): Same. (scm_c_init_srfi_14_no_clash_with_libguile): Same. * srfi/srfi-4.c (scm_init_srfi_4_no_clash_with_libguile): Same.
* Revert "* FAQ: New file."Neil Jerram2009-06-253-27/+1
| | | | | | | | | This reverts commit 0b3d52fae15fe7abb84a86bdcde1ae796ba7b549. It was a confusing mistake to create an FAQ file in the Guile repository/distribution, because there was already an FAQ page on the Guile web site. The information that was in the FAQ file is now in the FAQ web page.
* Remove GDB_INTERFACE stuff from guile's main programNeil Jerram2009-06-251-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main motivation for this is wanting a successful MinGW build, which is currently failing with: guile-guile.o: In function `inner_main': /home/neil/SW/Guile/ovnight/libguile/guile.c:55: undefined reference to `__imp__gdb_result' /home/neil/SW/Guile/ovnight/libguile/guile.c:55: undefined reference to `__imp__gdb_output' /home/neil/SW/Guile/ovnight/libguile/guile.c:55: undefined reference to `__imp__gdb_output_length' The detailed problem here is to do with how those variables are declared as exported from the libguile DLL and imported by the guile.c main program. But in fact we don't need to solve that problem because the GDB interface is an idea that never actually happened. So here we just remove the offending variable references from guile.c. For the record, Guile contains two kinds of GDB support, one of which is real (and works, last time I tried it), and the other mythical. The first kind is that libguile includes the utility functions gdb_print, gdb_eval, etc., and the variable gdb_output. These have no purpose except for developers to use from GDB when debugging something. For example, if you have a SCM x and want to know what it is, you can do: (gdb) call gdb_print(x) (gdb) p gdb_output The second kind is that those utility functions are somehow declared to GDB, and then GDB itself uses/calls them in some useful way. This was an interesting idea, but (AFAICT) never actually happened. I think it's worth leaving gdb_interface.h in the repository and the distribution, in case this idea is properly resurrected in the future. * libguile/guile.c (top level): Remove GDB_INTERFACE declaration. (inner_main): Remove GDB_INTERFACE_INIT call.
* Fix MinGW build warning caused by tzname redeclarationNeil Jerram2009-06-211-2/+3
| | | | | | | | | | | | | | | | | The warning is: stime.c:85: warning: `tzname' redeclared without dllimport attribute: previous dllimport ignored The second half of this section of #ifdefery implies that the MinGW build isn't going to reference a function called `tzname' anyway (because it's going to use `_tzname' instead). So why should a MinGW build want any declaration of `tzname' at all? As far as a declaration of `_tzname' is concerned, there are no more #includes after this, so we must have already got a declaration of `_tzname' from one of the preceding includes. * libguile/stime.c (tzname): Remove declaration in __MINGW32__ build. It isn't needed and causes a build warning.
* Thank SylvainNeil Jerram2009-06-181-0/+1
|
* URL omitted from the previous commit message...Neil Jerram2009-06-180-0/+0
| | | | | | | Should have said: The readline part of this goes back to this problem report: http://sources.redhat.com/ml/guile/2000-05/msg00177.html; and is an excellent example...
* Remove AC_SYS_RESTARTABLE_SYSCALLS and related codeNeil Jerram2009-06-186-158/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the Autoconf documentation says, "These days portable programs [...] should not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a system call is restartable is a dynamic issue, not a configuration-time issue." In other words, if we ever rely on HAVE_RESTARTABLE_SYSCALLS, we are at the mercy of any code that Guile happens to be linked with, because that code could install a signal handler without the SA_RESTART flag, and then a Guile system call could unexpectedly return EINTR. The readline part of this goes back to this problem report: excellent example of the above paragraph. It was noted during the discussion that undefining HAVE_RESTARTABLE_SYSCALLS would fix the problem, but that solution wasn't adopted - I guess because Guile was still using cooperative threads then (not pthreads) and so there was a significant concern (whether founded or not) that not using restartable syscalls (where available) could lead to a loss of performance. Now Guile's default mode of operation is with pthreads, where we already don't assume that HAVE_RESTARTABLE_SYSCALLS is reliable, so there is no possible further performance loss. And in any case we really have no choice, if we want correct operation. * configure.in (AC_SYS_RESTARTABLE_SYSCALLS): Removed. * doc/ref/posix.texi (Signals): Remove statement that Guile always sets SA_RESTART flag. * guile-readline/configure.in (GUILE_SIGWINCH_SA_RESTART_CLEARED): Remove this setting, together with its test code. (HAVE_RL_PRE_INPUT_HOOK): Remove this setting and its code, as no longer needed. * guile-readline/readline.c (sigwinch_enable_restart): Removed. (scm_init_readline): Remove setting of rl_pre_input_hook. * libguile/_scm.h (SCM_SYSCALL): Remove the definition that relies on HAVE_RESTARTABLE_SYSCALLS. * libguile/scmsigs.c (scm_sigaction_for_thread): Don't always set the SA_RESTART flag if available. Update docstring accordingly. (scm_init_scmsigs): Remove code that sets SA_RESTART flag for all signals.
* Fix popen.test on NetBSD and Ubuntu Jaunty, where sh is not BashNeil Jerram2009-06-062-1/+2
| | | | | | | | | Thanks to Greg Troxel for reporting, and Barry Fishman for the explanation and fix. * test-suite/tests/popen.test ("open-input-pipe"): Use shell function `read' with an explicit argument, as apparently not all shells support read with no argument.
* Remove possible deadlock in scm_join_threadNeil Jerram2009-05-202-11/+40
| | | | | | | * libguile/threads.c (scm_join_thread): Always recheck t->exited before calling block_self again, in case thread t has now exited. * test-suite/tests/threads.test (joining): New test.
* Avoid "no duplicate" popen tests leaving zombie processesNeil Jerram2009-05-201-31/+77
| | | | | | | | | | | | | | | | | | | | | On the one hand we want the child process in these tests to exit. On the other, we don't want it to exit before the parent Guile code has tested the relevant condition (EOF in the first test, broken pipe in the second) - because these conditions would obviously be true if the child had already exited, and that's not what we're trying to test here. We're trying to test getting EOF and broken pipe while the child process is still alive. * test-suite/tests/popen.test (open-input-pipe:no duplicate): Add another pipe from parent to child, so that the child can finish by reading from this. Then the parent controls the child lifetime by writing to this pipe. * test-suite/tests/popen.test (open-output-pipe:no duplicate): Add another pipe from child to parent, and have the child finish by endlessly writing into this. Then the parent controls the child lifetime by closing its end of the pipe, causing a broken pipe in the child.
* Fix `explicitely' typos, should be `explicitly'Neil Jerram2009-05-2010-11/+11
|
* Update `NEWS'.Ludovic Courtès2009-05-121-0/+1
|