summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-03-25cross-compiling should not imply need for and use of GUILE_FOR_BUILDbranch-notes/wip-1-8-mingw-buildhistorical/wip-1-8-mingw-buildNeil Jerram2-10/+14
2010-03-05On MinGW, return #t instead of calling system (NULL)Neil Jerram1-0/+7
* libguile/simpos.c (scm_system): On MinGW avoid call system (NULL), return hardcoded #t instead.
2010-03-05Make test scripts check GUILE environment variableNeil Jerram6-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.
2010-03-05Ignore built *.exe filesNeil Jerram1-0/+1
* .gitignore: Add *.exe
2010-03-05Patch ltmain.sh to handle args correctly when invoking a Windows executableNeil Jerram2-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.
2010-03-05Add @EXEEXT@ to Guile executable pathsNeil Jerram2-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@
2010-03-04Use scm_t_ptrdiff consistently instead of ptrdiff_tNeil Jerram1-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.
2010-03-04Improve README text on cross-building for WindowsNeil Jerram1-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.
2009-12-18Fix test environment issue with ltdl from Libtool 2.2.6b.Ludovic Courtès2-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.
2009-11-26Work around path name length limitations in `socket.test'.Ludovic Courtès1-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.
2009-10-26Update `NEWS'.Ludovic Courtès1-0/+2
2009-10-26Add GOOPS `class-of' test for nameless structs.Ludovic Courtès1-1/+6
* test-suite/tests/goops.test ("classes for built-in types")["struct vtable"]: New test case.
2009-10-26SRFI-35: Provide nice vtable names, to make GOOPS happier.Ludovic Courtès2-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.
2009-10-26Fix unbound variable references in `srfi-19.scm'.Ludovic Courtès1-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'.
2009-10-01Fix doc for inet-ntop: always produces a stringNeil Jerram3-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.
2009-10-01Fix handling of IPv6 addressesNeil Jerram3-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.
2009-10-01Fix incorrect doc mentions of INADDR_LOCALHOSTNeil Jerram2-2/+3
Thanks to Scott McPeak for reporting this. * doc/ref/posix.texi (Network Sockets and Communication): Change INADDR_LOCALHOST to INADDR_LOOPBACK.
2009-09-23bugfix: don't dynamic link if we found a registered extensionAndy Wingo2-0/+6
* libguile/extensions.c (load_extension): Don't do dynamic linking if we actually did find an extension in the list.
2009-08-27Fix doc of let*-valuesNeil Jerram2-1/+2
Thanks to Judy Hawkins for reporting this. * doc/ref/api-modules.texi (Included Guile Modules): Change `let-values*' to `let*-values'.
2009-08-21Update NEWSNeil Jerram1-0/+1
2009-08-21Avoid clash with system setjmp/longjmp on IA64Neil Jerram6-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'.
2009-08-17Update `NEWS' for commit d8dd381fa781c236ae777ca1ac55b73d3ca91c2a.Ludovic Courtès2-0/+8
2009-08-04fix buffer overrun reading partial numbers: 1.0f, 1.0/, and 1.0+Andy Wingo1-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.
2009-07-05Bump version number for 1.8.7.release_1-8-7Ludovic Courtès1-2/+2
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment. (LIBGUILE_INTERFACE_REVISION): Increment.
2009-07-05Update `NEWS'.Ludovic Courtès1-0/+1
* NEWS: Update.
2009-07-05Enclose `bit-operations.test' in its own module.Ludovic Courtès1-3/+4
* test-suite/tests/bit-operations.test: Use the `define-module' clause.
2009-07-05Work around the lack of a vsnprintf(3) declaration on AIX 5.3.Ludovic Courtès2-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'.
2009-07-05Fix the `BUILD_PTHREAD_SUPPORT' Automake conditional when not using pthread.Ludovic Courtès1-5/+6
* configure.in: Set $build_pthread_support to "no" when thread support isn't built. This fixes the `BUILD_PTHREAD_SUPPORT' Automake conditional.
2009-07-04Aggregate makefiles under `ice-9'.Ludovic Courtès4-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)'.
2009-07-04Update `NEWS' and `README' to cover MinGW cross-compilingNeil Jerram2-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.
2009-07-01Revert "Add libguile to the subdirs where pre-inst-guile* looks for libraries"Neil Jerram2-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)
2009-07-01Read complex numbers where both parts are inexact decimalsNeil Jerram3-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.
2009-06-30Correction to doc on Accessing Arrays from CNeil Jerram1-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.
2009-06-30URL missing from previous commit messageNeil Jerram0-0/+0
http://www.mail-archive.com/guile-devel@gnu.org/msg01635.html (Second time this has happened. I don't know why!)
2009-06-30Add libguile to the subdirs where pre-inst-guile* looks for librariesNeil Jerram2-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.
2009-06-29For MinGW hide exported struct variables behind pointersNeil Jerram4-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.
2009-06-29Use GUILE_FOR_BUILD for autogeneration steps during the buildNeil Jerram1-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.
2009-06-29srfi-60.c shouldn't include private-gc.hNeil Jerram1-1/+1
* srfi/srfi-60.c (SCM_MIN): Define here instead of including private-gc.h.
2009-06-29In MinGW build, avoid clash between libguile and SRFI library function namesNeil Jerram3-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.
2009-06-25Revert "* FAQ: New file."Neil Jerram3-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.
2009-06-25Remove GDB_INTERFACE stuff from guile's main programNeil Jerram1-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.
2009-06-21Fix MinGW build warning caused by tzname redeclarationNeil Jerram1-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.
2009-06-18Thank SylvainNeil Jerram1-0/+1
2009-06-18URL omitted from the previous commit message...Neil Jerram0-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...
2009-06-18Remove AC_SYS_RESTARTABLE_SYSCALLS and related codeNeil Jerram6-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.
2009-06-06Fix popen.test on NetBSD and Ubuntu Jaunty, where sh is not BashNeil Jerram2-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.
2009-05-20Remove possible deadlock in scm_join_threadNeil Jerram2-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.
2009-05-20Avoid "no duplicate" popen tests leaving zombie processesNeil Jerram1-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.
2009-05-20Fix `explicitely' typos, should be `explicitly'Neil Jerram10-11/+11
2009-05-12Update `NEWS'.Ludovic Courtès1-0/+1