summaryrefslogtreecommitdiff
path: root/libguile/gen-scmconfig.c
Commit message (Collapse)AuthorAgeFilesLines
* Presume ISO C90 headers are always availableMike Gran2022-10-141-15/+1
| | | | | | | | | | | | | | | | | | | | | | | | This includes <assert.h>, <ctype.h>, <errno.h>, <float.h>, <iso646.h>, <limits.h>, <locale.h>, <math.h>, <setjmp.h>, <signal.h>, <stdarg.h>, <stddef.h>, <stdio.h>, <stdlib.h>, <string.h>, <time.h>, <wchar.h>, and <wctype.h>. * configure.ac: don't check for <limits.h>, <string.h>, <time.h>, <assert.h>. Remove AC_INCLUDES_DEFAULT macro * libguile/bytevectors.c: include <limits.h>, remove HAVE_LIMITS_H * libguile/filesys.c: include <string.h>, remove HAVE_STRING_H * libguile/fports.c: include <string.h>, remove HAVE_STRING_H * libguile/gen-scmconfig.c: remove HAVE_LIMITS_H, HAVE_TIME_H, STDC_HEADERS Remove SCM_HAVE_STDC_HEADERS * libguile/hash.c: include <wchar.h>, remove HAVE_WCHAR_H * libguile/net_db.c: include <string.h>, remove HAVE_STRING_H * libguile/numbers.h: remove SCM_HAVE_STDC_HEADERS * libguile/regex-posix.c: include <wchar.h>, remove HAVE_WCHAR_H (fixup_multibyte_match): always defined (scm_regexp_exec): use fixup_multibyte_match * libguile/scmsigs.c: remove STDC_HEADERS * libguile/socket.c: include <string.h>, remove HAVE_STRING_H * test-suite/standalone/test-unwind.c: include <string.h>, remove HAVE_STRING_H
* build: When cross-compiling, get type sizes of the target system.Ludovic Courtès2022-02-281-16/+16
| | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/54198>. As noted in the comment at the top, 'SIZEOF_TYPE' must be used instead of 'sizeof (TYPE)' to support cross-compilation. The regression was introduced in 5e5afde06fd9dd0992294d6c7dc9f9966c0caa37 but only became apparent with 717e787da6ae75bbaa53139c0ef3791cd758a9d8. * libguile/gen-scmconfig.c (main): Replace uses of 'sizeof' by references to the SIZEOF_* macros. * configure.ac: Add 'AC_CHECK_SIZEOF' call for 'intmax_t'.
* Fix define error for mini-gmpMichael Gran2021-03-081-1/+1
| | | | | * libguile/gen-scmconfig.c [!SCM_I_GSC_ENABLE_MINI_GMP]: define SCM_ENABLE_MINI_GMP as zero, not undef
* don't presume availability of gmp.pcMichael Gran2021-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | This suggests moving the conditional that determines if mini-gmp is used into scmconfig.h. * configure.ac: replace PKG_CHECK_MODULES for gmp with AC_LIB_HAVE_LINKFLAGS Remove ENABLE_MINI_GMP define. Also don't run mpz_inits test for --enable-mini-gmp. * libguile/gen-scmconfig.c (main) [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_I_GSC_ENABLE_MINI_GMP * libguile/bytevectors.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/init.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/numbers.c: include scm.h [SCM_ENABLE_MINI_GMP]: provide mpz_inits and mpz_clears [ENABLE_MINI_GMP]: prefer SCM_ENABLE_MINI_GMP to ENABLE_MINI_GMP * libguile/numbers.h: include scm.h * libguile/random.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/socket.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP
* improve autoconfigury for minigmpMichael Gran2021-03-021-3/+5
| | | | | | | | | | | | | | | | * configure.ac: add SCM_I_GSC_ENABLE_MINI_GMP var and rename GUILE_MINI_GMP to ENABLE_MINI_GMP * libguile/bytevectors (GUILE_MINI_GMP): rename to ENABLE_MINI_GMP * libguile/gen-scmconfig.c: renamed GUILE_MINI_GMP to ENABLE_MINI_GMP. rename GUILE_MINI_GMP to SCM_ENABLE_MINI_GMP * libguile/gen-scmconfig.h: add SCM_I_GSC_ENABLE_MINI_GMP * libguile/init.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/numbers.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/numbers.h: include scmconfig.h rename GUILE_MINI_GMP to SCM_ENABLE_MINI_GMP * libguile/random.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/socket.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile.h [GUILE_MINI_GMP]: prefer SCM_ENABLE_MINI_GMP
* Enable option to prefer mini-gmp over libgmpMichael Gran2021-03-021-2/+7
| | | | | | | | | | | | | | | * configure.ac: rework gmp library detection. Add new flag. * libguile.h: modify gmp header inclusion * libguile/Makefile.am: add mini-gmp.[ch] files * libguile/bytevectors.c: add mini-gmp headers * libguile/gen-scmconfig.c: new #include variable GUILE_MINI_GMP * libguile/init.c: add mini-gmp header * libguile/mini-gmp.c: new file * libguile/mini-gmp.h: new file * libguile/numbers.c: add fallback for missing mpz_get_d_2exp * libguile/numbers.h: yse mini-gmp header * libguile/random.c: use mini-gmp header * libguile/socket.c: use mini-gmp header
* in null threads, don't define sigmask stub when pthread_sigmask does not existMichael Gran2021-01-211-3/+9
| | | | | | | * libguile/gen-scmconfig.c (main) [HAVE_PTHREAD_SIGMASK]: new output define SCM_HAVE_PTHREAD_SIGMASK * libguile/null-threads.h (scm_i_pthread_sigmask) [SCM_HAVE_PTHREAD_SIGMASK]: make inline function conditional on existence of pthread_sigmask
* Deprecate scm_t_uint8 and similar typedefsAndy Wingo2018-06-211-15/+1
| | | | | | | | | | * libguile/deprecated.h (SCM_DEPRECATED_TYPE): New helper define; removed after. (scm_t_int8, scm_t_uint8, scm_t_int16, scm_t_uint16) (scm_t_int32, scm_t_uint32, scm_t_intmax, scm_t_uintmax) (scm_t_intptr, scm_t_uintptr, scm_t_int64 scm_t_uint64) (scm_t_ptrdiff): Deprecate these types. Even on Guile 2.2 people should use the stdint types.
* Use ptrdiff_t instead of scm_t_ptrdiffAndy Wingo2018-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | * libguile/continuations.h: * libguile/control.c: * libguile/control.h: * libguile/dynstack.c: * libguile/dynstack.h: * libguile/eval.c: * libguile/foreign.c: * libguile/frames.h: * libguile/gen-scmconfig.c: * libguile/gsubr.c: * libguile/gsubr.h: * libguile/loader.c: * libguile/numbers.h: * libguile/stacks.c: * libguile/throw.c: * libguile/vm-engine.c: * libguile/vm.c: * libguile/vm.h: Use ptrdiff_t from stddef.h.
* Start to use C99 stdint in gen-scmconfigAndy Wingo2018-06-211-66/+33
| | | | | | | | | | | | | | * configure.ac: Remove checks for stdint.h; we require C99 so it must be there; and in any case for our purposes we use gnulib, so it will be there. No need to check for inttypes.h. No need to check for what type maps to e.g. uint32_t either. * libguile/deprecated.h (SCM_HAVE_T_INT64, SCM_HAVE_T_UINT64): Deprecate these, as they are always 1. (SCM_HAVE_ARRAYS): Likewise deprecate; it's always 1. * libguile/gen-scmconfig.c: Always include stdint.h and stddef.h, and make it so that scmconfig.h also includes these. Use C99 types. * libguile/gen-scmconfig.h.in: Remove configure-substed vars that are no longer defined.
* Update license notices in all C filesAndy Wingo2018-06-201-17/+17
| | | | | Update to newest recommended license notices from the FSF. Everything stays LGPLv3+ except guile-readline which is GPLv3+.
* Remove (C) from copyright statementsAndy Wingo2018-06-201-1/+1
| | | | | | As the FSF advises, 'There is no legal significance to using the three-character sequence “(C)”, but it does no harm.' It does take up space though! For that reason, we remove it here from our C files.
* Make .c copyright headers uniformAndy Wingo2018-06-201-1/+2
|
* Make libguile header inclusion consistent within libguile c filesAndy Wingo2018-06-201-2/+2
| | | | | Change from '#include "libguile/foo.h"' and '#include <libguile/foo.h>' to '#include "foo.h"'.
* Rename __scm.h to scm.hAndy Wingo2018-06-201-2/+2
| | | | * libguile/scm.h: Rename. Update all includers.
* Use stdint.h limit macrosAndy Wingo2018-06-201-2/+2
| | | | | | | | | | | | | | | | * libguile/__scm.h: Include <stdint.h>, now that we rely on C99. (SCM_T_UINT8_MAX, SCM_T_INT8_MIN, SCM_T_INT8_MAX, SCM_T_UINT16_MAX) (SCM_T_INT16_MIN, SCM_T_INT16_MAX, SCM_T_UINT32_MAX, SCM_T_INT32_MIN) (SCM_T_INT32_MAX, SCM_T_UINT64_MAX, SCM_T_INT64_MIN, SCM_T_INT64_MAX) (SCM_T_UINTMAX_MAX, SCM_T_INTMAX_MIN, SCM_T_INTMAX_MAX) (SCM_T_UINTPTR_MAX, SCM_T_INTPTR_MIN, SCM_T_INTPTR_MAX): Define in terms of equivalent stdint.h definitions. * libguile/gen-scmconfig.c: * libguile/instructions.c: * libguile/numbers.c: * libguile/random.c: * libguile/tags.h: * test-suite/standalone/test-conversion.c: Adapt to use C99 names.
* Remove _scm.hAndy Wingo2018-06-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/_scm.h: Remove. An internal header, never installed. * libguile/__scm.h: Remove horrible documentation. * libguile/Makefile.am (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): Remove _scm.h. * libguile/alist.c: * libguile/array-handle.c: * libguile/array-map.c: * libguile/arrays.c: * libguile/async.c: * libguile/atomic.c: * libguile/backtrace.c: * libguile/bitvectors.c: * libguile/boolean.c: * libguile/bytevectors.c: * libguile/chars.c: * libguile/continuations.c: * libguile/control.c: * libguile/debug-malloc.c: * libguile/debug.c: * libguile/deprecated.c: * libguile/deprecation.c: * libguile/dynl.c: * libguile/dynstack.c: * libguile/dynwind.c: * libguile/eq.c: * libguile/error.c: * libguile/eval.c: * libguile/evalext.c: * libguile/expand.c: * libguile/extensions.c: * libguile/fdes-finalizers.c: * libguile/feature.c: * libguile/filesys.c: * libguile/finalizers.c: * libguile/fluids.c: * libguile/foreign-object.c: * libguile/foreign.c: * libguile/fports.c: * libguile/frames.c: * libguile/gc-malloc.c: * libguile/gc.c: * libguile/gen-scmconfig.c: * libguile/generalized-arrays.c: * libguile/generalized-vectors.c: * libguile/gettext.c: * libguile/goops.c: * libguile/gsubr.c: * libguile/guardians.c: * libguile/hash.c: * libguile/hashtab.c: * libguile/hooks.c: * libguile/i18n.c: * libguile/init.c: * libguile/instructions.c: * libguile/intrinsics.c: * libguile/ioext.c: * libguile/keywords.c: * libguile/list.c: * libguile/load.c: * libguile/loader.c: * libguile/macros.c: * libguile/mallocs.c: * libguile/memoize.c: * libguile/modules.c: * libguile/net_db.c: * libguile/null-threads.c: * libguile/numbers.c: * libguile/objprop.c: * libguile/options.c: * libguile/pairs.c: * libguile/poll.c: * libguile/ports-internal.h: * libguile/ports.c: * libguile/posix.c: * libguile/print.c: * libguile/procprop.c: * libguile/procs.c: * libguile/programs.c: * libguile/promises.c: * libguile/r6rs-ports.c: * libguile/random.c: * libguile/rdelim.c: * libguile/read.c: * libguile/regex-posix.c: * libguile/rw.c: * libguile/scmsigs.c: * libguile/script.c: * libguile/simpos.c: * libguile/smob.c: * libguile/socket.c: * libguile/sort.c: * libguile/srcprop.c: * libguile/srfi-1.c: * libguile/srfi-13.c: * libguile/srfi-14.c: * libguile/srfi-4.c: * libguile/srfi-60.c: * libguile/stackchk.c: * libguile/stacks.c: * libguile/stime.c: * libguile/strings.c: * libguile/strorder.c: * libguile/strports.c: * libguile/struct.c: * libguile/symbols.c: * libguile/syntax.c: * libguile/threads.c: * libguile/throw.c: * libguile/trees.c: * libguile/unicode.c: * libguile/uniform.c: * libguile/values.c: * libguile/variable.c: * libguile/vectors.c: * libguile/version.c: * libguile/vm.c: * libguile/vports.c: * libguile/weak-set.c: * libguile/weak-table.c: * libguile/weak-vector.c: Remove _scm.h includes.
* Add configure check for auxiliary stacksAndy Wingo2018-06-171-1/+5
| | | | | | | | * configure.ac: Add a check for struct GC_stack_base.reg_base, which is a proxy for checking for the only aspect of ia64 that we care about. * libguile/gen-scmconfig.c: * libguile/gen-scmconfig.h.in: Arrange to define SCM_HAVE_AUXILIARY_STACK.
* build: Add SCM_T_OFF_MAX and SCM_T_OFF_MIN to scmconfig.h.Mark H Weaver2016-05-221-0/+6
| | | | | * libguile/gen-scmconfig.c (main): Add SCM_T_OFF_MAX and SCM_T_OFF_MIN to the generated 'scmconfig.h' file.
* Merge remote-tracking branch 'origin/stable-2.0'Mark H Weaver2013-04-141-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: GUILE-VERSION libguile/array-map.c libguile/fports.h libguile/gc.h libguile/inline.h libguile/ports.c libguile/ports.h libguile/print.c libguile/r6rs-ports.c libguile/read.c test-suite/tests/00-socket.test
| * build: Tell `gen-scmconfig' whether the system has `struct timespec'.Ludovic Courtès2013-04-101-1/+1
| | | | | | | | | | | | | | | | * configure.ac: Reinstate `struct timespec' check removed in commit 7e7c6f6a937005b08fffd5aeccdf992459b07137, but define `HAVE_SYSTEM_STRUCT_TIMESPEC' instead of `HAVE_STRUCT_TIMESPEC'. * libguile/gen-scmconfig.c (main): Change `HAVE_STRUCT_TIMESPEC' to `HAVE_SYSTEM_STRUCT_TIMESPEC'.
* | Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo2013-02-181-1/+18
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: libguile/array-handle.c libguile/deprecated.h libguile/inline.c libguile/inline.h module/ice-9/deprecated.scm module/language/tree-il/peval.scm
| * Add copyright notice to gen-scmconfig.c.Mark H Weaver2013-02-021-0/+17
| | | | | | | | * libguile/gen-scmconfig.c: Add copyright notice.
| * Fix typo in comment generated by gen-scmconfig.c.Mark H Weaver2013-02-021-1/+1
| | | | | | | | * libguile/gen-scmconfig.c (main): Fix typo in generated comment.
* | Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo2012-07-061-10/+9
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: libguile/expand.c libguile/hashtab.c libguile/ports.c libguile/vectors.c libguile/weaks.c module/language/ecmascript/compile-tree-il.scm module/language/tree-il/effects.scm module/language/tree-il/fix-letrec.scm module/language/tree-il/peval.scm test-suite/tests/peval.test
| * be sure to include time.h for struct timespecAndy Wingo2012-07-061-10/+9
| | | | | | | | | | | | * libguile/gen-scmconfig.c: The GNU libc manual says that struct timespec is defined in time.h. So, just include both sys/time.h and time.h, if they are available.
* | remove mention of GUILE_DEBUG_FREELISTAndy Wingo2011-05-151-3/+3
| | | | | | | | | | * libguile/__scm.h: Remove commented-out GUILE_DEBUG_FREELIST define. * libguile/gen-scmconfig.c: Remove mention of GUILE_DEBUG_FREELIST.
* | remove all deprecated codeAndy Wingo2011-05-121-9/+0
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/async.c: * libguile/async.h: * libguile/debug.h: * libguile/deprecated.c: * libguile/deprecated.h: * libguile/evalext.h: * libguile/gc-malloc.c: * libguile/gc.h: * libguile/gen-scmconfig.c: * libguile/numbers.c: * libguile/ports.c: * libguile/ports.h: * libguile/procprop.c: * libguile/procprop.h: * libguile/read.c: * libguile/socket.c: * libguile/srfi-4.h: * libguile/strings.c: * libguile/strings.h: * libguile/tags.h: * module/ice-9/boot-9.scm: * module/ice-9/deprecated.scm: Remove all deprecated code. CPP defines that were not previously issuing warnings were changed so that their expansions would indicate the replacement forms to use, e.g. scm_sizet__GONE__REPLACE_WITH__size_t. The two exceptions were SCM_LISTN, which did not produce warnings before, and the string-filter argument order stuff. Drops the initial dirty memory usage of Guile down to 2.8 MB on my machine, from 4.4 MB.
* check for iconveh values at configure-timeAndy Wingo2011-04-281-5/+4
| | | | | | | | | | | | | | | * configure.ac: Check for the iconveh values here, instead of relying on gen-scmconfig to know them. That doesn't work in general because gen-scmconfig runs on the build machine, not the target machine. * libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): Revert rule to the revision before 533d8212. * libguile/gen-scmconfig.h.in (SCM_I_GSC_ICONVEH_ERROR): (SCM_I_GSC_ICONVEH_QUESTION_MARK): (SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE): * libguile/gen-scmconfig.c: Use configure-time substitutions to set SCM_ICONVEH_ERROR_HANDLER et al.
* pthread-threads.h: only redirect to GC_pthread_sigmask if it is presentAndy Wingo2011-04-031-0/+6
| | | | | | | * configure.ac: Check for pthread_sigmask. * libguile/gen-scmconfig.c: Create SCM_HAVE_GC_PTHREAD_SIGMASK. * libguile/pthread-threads.h (scm_i_pthread_sigmask): Only redirect to GC_pthread_sigmask if GC_pthread_sigmask is present.
* fix compilation with libgc 7.0, 7.1Andy Wingo2011-03-291-0/+12
| | | | | | | | | | | * configure.ac: Check for GC_pthread_exit and GC_pthread_cancel. * libguile/gen-scmconfig.c: Write HAVE_GC_PTHREAD_CANCEL and HAVE_GC_PTHREAD_EXIT into scmconfig.h. * libguile/pthread-threads.h (scm_i_pthread_exit, scm_i_pthread_cancel): Only redefine to their GC_pthread_* variants if we have those functions, which is not the case in libgc < 7.2.
* Use Gnulib's `isnan' and `isinf' modules.Ludovic Courtès2010-09-081-18/+0
| | | | | | | | | | | | | | | | | | | | | | This updates Gnulib to v0.0-4219-g84cdd8b. * m4/gnulib-cache.m4: Add `isinf' and `isnan'. * configure.ac: Remove checks for `floatingpoint.h', `ieeefp.h', and `nan.h'. * libguile/gen-scmconfig.c (main): Remove definitions of `SCM_HAVE_FLOATINGPOINT_H', `SCM_HAVE_IEEEFP_H', and `SCM_HAVE_NAN_H'. * libguile/numbers.c (isnan)[SCO && !HAVE_ISNAN]: Remove. (isinf)[SCO && !HAVE_ISINF]: Remove. (xisinf, xisnan): Remove. Change callers to use `isinf' and `isnan'. (guile_ieee_init): Remove the `defined HAVE_ISINF' and `define HAVE_ISNAN' conditions. * libguile/numbers.h: Remove code conditional on `SCM_HAVE_FLOATINGPOINT_H', `SCM_HAVE_IEEEFP_H', or `SCM_HAVE_NAN_H'.
* remove "discouraged" infrastructureAndy Wingo2010-08-081-6/+0
| | | | | | | | | | | | | | | | | | | | | * libguile/discouraged.h: Remove. * libguile/deprecated.c (scm_internal_select, scm_thread_sleep) (scm_thread_usleep): Deprecate formerly discouraged names. * libguile/eq.h (SCM_EQ_P): * libguile/pairs.h (SCM_NULLP, SCM_NNULLP, SCM_CONSP, SCM_NCONSP): * libguile/boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP, SCM_BOOL): (SCM_NEGATE_BOOL, SCM_BOOL_NOT): Undiscourage these names, because I'm not sure deprecating them will do any good. * libguile.h: * libguile/gen-scmconfig.c: * libguile/numbers.c: * libguile/init.c: * libguile/Makefile.am: * configure.ac: Remove bits that referenced discouraged.h, and dealt with the "discouraging" system.
* remove SCM_HAVE_T_INT64, SCM_HAVE_T_UINT64Andy Wingo2010-07-261-25/+5
| | | | | | | | | | | | * libguile/__scm.h: * libguile/numbers.h: * libguile/random.c: * libguile/srfi-4.c: * libguile/srfi-4.h: * libguile/numbers.c: * test-suite/standalone/test-conversion.c: * libguile/gen-scmconfig.c: As we require 64-bit integers in configure.ac, remove conditional definition of 64-bit types.
* lisp nil always enabledAndy Wingo2010-04-091-5/+0
| | | | | | | | | | | | | | | * configure.ac: Remove --disable-elisp option. Lisp nil is always enabled. * libguile/boolean.h: * libguile/gen-scmconfig.c: * libguile/gen-scmconfig.h.in: * libguile/init.c: * libguile/lang.c: * libguile/lang.h: * libguile/pairs.h: * libguile/private-options.h: * libguile/read.c: Remove conditionals for disabling elisp.
* Remove obsolete compile-time option for freelist debugging.Ludovic Courtès2010-03-051-8/+0
| | | | | | | | | | * configure.ac: Remove `--enable-debug-freelist' option and `SCM_I_GSC_GUILE_DEBUG_FREELIST' substitution variable. * libguile/gen-scmconfig.c (main): Remove references to `SCM_I_GSC_GUILE_DEBUG_FREELIST' and `GUILE_DEBUG_FREELIST'. * libguile/gen-scmconfig.h.in (SCM_I_GSC_GUILE_DEBUG_FREELIST): Remove.
* Don't rely on `HAVE_' macros in public header "tags.h".Ludovic Courtès2009-11-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Check for `intptr_t' and `uintptr_t'. Substitute `SCM_I_GSC_T_INTPTR' and `SCM_I_GSC_T_UINPTR'. * libguile/__scm.h (SCM_T_UINTPTR_MAX, SCM_T_INTPTR_MIN, SCM_T_INTPTR_MAX): New macros. * libguile/_scm.h (SIZEOF_SCM_T_BITS): New macro. * libguile/gen-scmconfig.c (main): Produce typedefs for `scm_t_intptr' and `scm_t_uintptr'. * libguile/gen-scmconfig.h.in (SCM_I_GSC_T_INTPTR, SCM_I_GSC_T_UINPTR): New macros. * libguile/tags.h: Don't check for `HAVE_INTTYPES_H' and `HAVE_STDINT_H'; don't include <inttypes.h> nor <stdint.h>. (scm_t_signed_bits, scm_t_bits): Define unconditionally as aliases for `scm_t_intptr' and `scm_t_uintptr', respectively. (SCM_T_SIGNED_BITS_MAX, SCM_T_SIGNED_BITS_MIN, SCM_T_BITS_MAX): Likewise. (SIZEOF_SCM_T_BITS): Remove.
* Remove references to undefined macros.Ludovic Courtès2009-11-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intent is to allow compilation with `-Wundef', which in turn should make it easier to catch erroneous uses of nonexistent macros. * libguile/__scm.h: Don't assume `BUILDING_LIBGUILE' is defined. * libguile/conv-uinteger.i.c (SCM_TO_TYPE_PROTO): Remove unneeded CPP conditional on `TYPE_MIN == 0'. * libguile/fports.c: Check for the definition of `HAVE_CHSIZE' and `HAVE_FTRUNCATE', not for their value. * libguile/ports.c: Likewise. * libguile/numbers.c (guile_ieee_init): Likewise with `HAVE_DINFINITY' and `HAVE_DQNAN'. * test-suite/standalone/test-conversion.c (ieee_init): Likewise. * libguile/strings.c: Likewise with `SCM_STRING_LENGTH_HISTOGRAM'. * libguile/strings.h: Likewise. * libguile/tags.h: Likewise with `HAVE_INTTYPES_H' and `HAVE_STDINT_H'. * libguile/threads.c: Likewise with `HAVE_PTHREAD_GET_STACKADDR_NP'. * libguile/vm-engine.c (VM_NAME): Likewise with `VM_CHECK_IP'. * libguile/gen-scmconfig.c (main): Use "#ifdef HAVE_", not "#if HAVE_". * libguile/socket.c (scm_setsockopt): Likewise.
* Use TLS when available for `SCM_I_CURRENT_THREAD'.Ludovic Courtès2009-10-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | * acinclude.m4 (GUILE_THREAD_LOCAL_STORAGE): New macro. * configure.ac: Use it. * libguile/__scm.h (SCM_THREAD_LOCAL): New macro. * libguile/gen-scmconfig.c (main): Define `SCM_HAVE_THREAD_STORAGE_CLASS'. * libguile/gen-scmconfig.h.in (SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS): New. * libguile/threads.c (scm_i_current_thread)[SCM_HAVE_THREAD_STORAGE_CLASS]: New. (SET_CURRENT_THREAD): New macro. (guilify_self_1, on_thread_exit, init_thread_key): Use it. * libguile/threads.h (scm_i_current_thread)[SCM_HAVE_THREAD_STORAGE_CLASS]: New declaration. (SCM_I_CURRENT_THREAD)[SCM_HAVE_THREAD_STORAGE_CLASS]: New macro. (init_thread_key_once, init_thread_key): Conditionalize on `!defined SCM_HAVE_THREAD_STORAGE_CLASS'. (scm_i_init_thread_for_guile): Update accordingly.
* Don't include libunistring headers in Guile public headersMichael Gran2009-08-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | This requres the creation of a new type scm_t_string_failed_conversion_handler to replace libunistring's enum iconveh_ilseq_handler. * libguile/strings.h: don't include <uniconv.h> (scm_t_string_failed_conversion_handler): new enum type (SCM_FAILED_CONVERSION_ERROR, SCM_FAILED_CONVERSION_QUESTION_MARK): (SCM_FAILED_CONVERSION_ESCAPE_SEQUENCE): new enum type values * libguile/strings.c (scm_to_stringn): now takes type scm_t_string_failed_conversion_handler. All callers changed. * libguile/print.c: include <uniconv.h> * libguile/ports.c (scm_lfwrite_substr): use scm_t_string_conversion_handler's constants * libguile/gen-scmconfig.c (SCM_ICONVEH_ERROR): (SCM_ICONVEH_QUESTION_MARK, SCM_ICONVEH_ESCAPE_SEQUENCE): store iconveh_ilseq_hander constants as #define's
* Remove the `long_long' and `ulong_long' types.Ludovic Courtès2009-07-151-15/+0
| | | | | | | | * libguile/gen-scmconfig.c (main): Don't emit typedefs for `long_long' and `ulong_long'. This was already deprecated in 1.8 and known to cause conflicts with other libraries such as HDF5, as reported by Mark Patterson <mpatterson@physics.queensu.ca> (http://lists.gnu.org/archive/html/bug-guile/2009-02/msg00003.html).
* Add `scm_t_off' type so that `scm_t_port' has a fixed layout.Ludovic Courtès2009-06-251-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/gen-scmconfig.c (main): Produce a definition for `scm_t_off'. * libguile/ports.h (scm_t_port)[read_buf_size, saved_read_buf_size, write_buf_size, seek, truncate]: Use `scm_t_off' instead of `off_t' so that the layout and size of the structure does not depend on the application's `_FILE_OFFSET_BITS' value. Reported by Bill Schottstaedt, see http://lists.gnu.org/archive/html/bug-guile/2009-06/msg00018.html. (scm_set_port_seek, scm_set_port_truncate): Update. * libguile/ports.c (scm_set_port_seek, scm_set_port_truncate): Use `scm_t_off' and `off_t_or_off64_t'. * libguile/fports.c (fport_seek, fport_truncate): Use `scm_t_off' instead of `off_t'. * libguile/r6rs-ports.c (bip_seek, cbp_seek, bop_seek): Use `scm_t_off' instead of `off_t'. * libguile/rw.c (scm_write_string_partial): Likewise. * libguile/strports.c (st_resize_port, st_seek, st_truncate): Likewise. * doc/ref/api-io.texi (Port Implementation): Update prototype of `scm_set_port_seek ()' and `scm_set_port_truncate ()'. * NEWS: Update.
* Include <config.h> in all C files; use `#ifdef HAVE_CONFIG_H' rather than `#if'.Ludovic Courtès2008-09-131-1/+1
|
* Handle lack of `struct dirent64' and `readdir64_r ()' on HP-UX 11.11.Ludovic Courtès2008-07-171-0/+13
|
* Don't use "-I$(srcdir)", so that our "random.h" doesn't shadow libc's on Tru64.Ludovic Courtès2008-04-241-1/+1
|
* Changes from arch/CVS synchronizationLudovic Courtès2007-10-101-0/+5
|
* merge from 1.8 branchKevin Ryde2006-10-091-0/+4
|
* (SCM_I_GSC_USE_COOP_THREADS, SCM_USE_COOP_THREADS): Removed.Marius Vollmer2005-03-021-4/+0
|
* Hard code SCM_HAVE_ARRAYS to "1", for real now.Marius Vollmer2005-01-021-1/+1
|
* * gen-scmconfig.h.in (SCM_I_GSC_HAVE_ARRAYS): Removed.Marius Vollmer2005-01-021-5/+2
| | | | * gen-scmconfig.c: Hard code SCM_HAVE_ARRAYS to "1".