1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 22:40:25 +02:00
Commit graph

14224 commits

Author SHA1 Message Date
Andy Wingo
58baff08bc revert unfinished web.texi changes
These were prematurely committed in
17072fd2c6.
2011-01-07 09:31:36 -08:00
Andy Wingo
4a655e50a3 use scm_from_latin1_symboln for string literals and load-symbol
* libguile/bytevectors.c:
* libguile/eval.c:
* libguile/goops.c:
* libguile/i18n.c:
* libguile/load.c:
* libguile/memoize.c:
* libguile/modules.c:
* libguile/ports.c:
* libguile/print.c:
* libguile/procs.c:
* libguile/programs.c:
* libguile/read.c:
* libguile/script.c:
* libguile/srfi-14.c:
* libguile/stacks.c:
* libguile/strings.c:
* libguile/throw.c:
* libguile/vm.c: Use scm_from_latin1_symboln to make symbols from string
  literals, because they aren't in the user's locale -- they are in
  ASCII, and we can optimize this case.

* libguile/vm-i-loader.c: Also use scm_from_latin1_symboln when loading
  narrow symbols.
2011-01-07 09:18:41 -08:00
Andy Wingo
30c282bf93 optimize scm_from_latin1_symboln
* libguile/symbols.c (lookup_interned_latin1_symbol): New helper.
  (scm_from_latin1_symboln): Use lookup_interned_latin1_symbol, so we
  avoid allocating a string in that case.
2011-01-07 09:18:41 -08:00
Andy Wingo
17072fd2c6 lookup_interned_symbol uses get_handle_by_hash
* libguile/symbols.c (lookup_interned_symbol): Change to use
  scm_hash_fn_get_handle_by_hash.
2011-01-07 09:18:37 -08:00
Andy Wingo
6efbc280c5 add scm_hash_fn_get_handle_by_hash
* libguile/hashtab.h:
* libguile/hashtab.c (scm_hash_fn_get_handle_by_hash): New internal
  procedure, which should make symbol table lookup faster.
2011-01-07 09:18:37 -08:00
Andy Wingo
f0554ee74a remove vector hash table code
* libguile/hashtab.c: Remove deprecated hash-tables-as-vectors support
  code.
2011-01-07 09:18:36 -08:00
Andy Wingo
328255e4f4 hashtab cleanups
* libguile/hashtab.c: Update comments.
  (hashtable_size): Allow bigger vectors on 64-bit machines.
2011-01-07 09:18:36 -08:00
Andy Wingo
e0c83bf500 fix symbol garbage collection
* libguile/symbols.c (lookup_interned_symbol, intern_symbol): Refactor
  to use hashtab.[ch] interfaces.
2011-01-07 09:18:36 -08:00
Andy Wingo
622415380c add hash functions for locale, latin1, and utf8 strings
* libguile/hash.c (scm_i_locale_string_hash)
  (scm_i_latin1_string_hash, scm_i_utf8_string_hash): New functions.
2011-01-07 09:18:36 -08:00
Andy Wingo
f756cd3076 multibyte regex error handling fix
* libguile/regex-posix.c (fixup_multibyte_match): Fix mbrlen error
  handling.
2011-01-07 09:18:36 -08:00
Andy Wingo
247a56fa5a hash.c cleanup
* libguile/hash.c (scm_hasher): Remove needless remember_upto_here.
2011-01-07 09:18:36 -08:00
Andy Wingo
ad5cbc470f add scm_from_{latin1,utf8}_symbol{n,}
* libguile/symbols.c (scm_from_latin1_symbol, scm_from_latin1_symboln)
  (scm_from_utf8_symbol, scm_from_utf8_symboln): New functions.
2011-01-07 09:18:36 -08:00
Andy Wingo
d40e1ca893 add scm_{to,from}_{utf8,latin1}_string{n,}
* libguile/strings.h:
* libguile/strings.c (scm_from_latin1_string, scm_to_latin1_string): New
  functions, in terms of the latin1_stringn variants.
  (scm_from_utf8_string, scm_from_utf8_stringn)
  (scm_to_utf8_string, scm_to_utf8_stringn): New functions.
  (scm_i_from_utf8_string, scm_i_to_utf8_string): Removed these internal
  functions.
  (scm_from_stringn): Handle -1 as a length. Unlike the previous
  behavior of scm_from_locale_string (NULL), which returned the empty
  string, we now raise an error.  The null pointer is not the same as
  the empty string.

* libguile/stime.c (scm_strftime, scm_strptime): Adapt to publishing of
  utf8 functions.
2011-01-07 09:18:36 -08:00
Andy Wingo
929ccf48fc read-header returns EOF at end, update (web http) docs
* doc/ref/web.texi (HTTP): Add an example for declaring a header, and
  adapt to read-header change.

* module/web/http.scm (read-header): Return EOF for both values if there
  are no more headers, instead of #f.
  (read-headers): Adapt.
2011-01-07 09:18:36 -08:00
Andy Wingo
569269b4b2 update URI documentation
* doc/ref/web.texi (Types and the Web): Fix spacing.
  (URIs): Give default values, and clarify a number of procedure docs.
  Update "encoding" name, and string->uri name.
2011-01-07 09:18:36 -08:00
Andy Wingo
91b320fe16 uri-encode fast path
* module/web/uri.scm (uri-encode): Add a fast-path for the common case
  in which the string does not contain any reserved characters.
2011-01-07 09:18:36 -08:00
Andy Wingo
7d6b8b75fc uri-decode #:encoding, not #:charset
* module/web/uri.scm (call-with-encoded-output-string, encode-string)
  (decode-string, uri-decode, uri-encode): Change all instances of
  "charset" to "encoding", as variables and arguments.
2011-01-07 09:18:36 -08:00
Andy Wingo
8745c33afb rename string->uri and uri->string.
* module/web/uri.scm (string->uri, uri->string): Rename from parse-uri
  and unparse-uri.

* test-suite/tests/web-uri.test:
* module/web/http.scm: All callers changed.
2011-01-07 09:18:36 -08:00
Andy Wingo
b3f9444892 clarify uri fragment discussion
* doc/ref/web.texi (URIs): Clarify the discussion of URI fragments.
2011-01-07 09:18:36 -08:00
Andy Wingo
d75a81b128 rewrite web.texi intro
* doc/ref/web.texi (Web): Rewrite the intro.
  (Types and the Web): New subsection, a mini-rant.
2011-01-07 09:18:36 -08:00
Ludovic Courtès
8a41c56af1 Tiny style improvement in the ECMAScript compiler.
Followup to 8891bd1b16 ("Fix ECMAScript
object creation.").

* module/language/ecmascript/compile-tree-il.scm (comp): Use `@implv'
  for `new-object'.  Suggested by Kan-Ru Chen <kanru@kanru.info>.
2011-01-05 22:22:15 +01:00
Ludovic Courtès
66d8613108 Change getaddrinfo' test to handle the GNU-specific EAI_NODATA'.
* doc/ref/posix.texi (Network Databases): Mention `EAI_NODATA'.

* libguile/net_db.c (scm_getaddrinfo): Likewise for the docstring.

* test-suite/tests/net-db.test ("getaddrinfo")["no name"]: Handle
  `EAI_NODATA'.
2011-01-05 22:17:26 +01:00
Noah Lavine
8891bd1b16 Fix ECMAScript object creation.
* module/language/ecmascript/compile-tree-il.scm (compile-tree-il):
  generate correct tree-il for construction of new objects.
* test-suite/tests/ecmascript.test (ecompile): Add pattern with EXPECTED
  omitted.
  ("compiler"): test whether we generate new objects correctly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-04 18:36:58 +01:00
Ludovic Courtès
9dfcd9e2d6 Document `scm_misc_error' (bug #31969).
* doc/ref/api-control.texi (Handling Errors): Add `scm_misc_error'.
  Suggested by Bake Timmons <b3timmons@speedymail.org> (bug #31969).
2011-01-04 18:29:55 +01:00
Ludovic Courtès
bf7c2e964e Improve doc of string-index', string-index-right', and `string-rindex'.
Suggested by Noah Lavine <noah.b.lavine@gmail.com>.

* doc/ref/api-data.texi (String Searching): Mention the return value of
  `string-index', `string-index-right', and `string-rindex' when no
  match is found.

* libguile/srfi-13.c (scm_string_index, scm_string_index_right,
  scm_string_rindex): Adjust docstring accordingly.
2011-01-04 18:08:58 +01:00
Neil Jerram
03f6e5ed4c Manual typo fix
* doc/ref/api-overview.texi (API Overview): bot -> but
2010-12-23 12:17:26 +00:00
Ludovic Courtès
8aa47f2609 Have lookahead-u8' and get-u8' actually do binary input.
* libguile/r6rs-ports.c (scm_lookahead_u8): Use `scm_get_byte_or_eof'
  instead of `scm_peek_char'.
  (scm_get_u8): Likewise.

* test-suite/tests/r6rs-ports.test ("7.2.8 Binary
  Input")["lookahead-u8"]: Fix typo.
  ["lookahead-u8 non-ASCII"]: New test.
2010-12-21 00:50:22 +01:00
Ludovic Courtès
829ed325cf Temporarily fix unistr.in.h' to allow compilation with -Wundef'.
See <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/24225> for details.

* lib/unistr.in.h: Change #if's into #ifdef's.
2010-12-20 22:54:39 +01:00
Ludovic Courtès
ab4d62adbf Update Gnulib to v0.0-4544-gce083ca. 2010-12-20 22:51:46 +01:00
Andy Wingo
b90b4b2bf2 format handles ~@c better
* module/ice-9/format.scm (format): Fix ascii-ism in ~@c. Pull
  flush-output? into the let*.
2010-12-18 13:13:16 +01:00
Andy Wingo
79f124ac87 more format tweaks
* module/ice-9/format.scm (format): Strip format: prefix from port and
  output-col.
2010-12-18 13:02:07 +01:00
Andy Wingo
8390dac023 more format tweaks
* module/ice-9/format.scm (format): Move the port and output-col to let*
  vars, again removing a set!. We will probably move more state vars to
  the let*, to let the procedures exist in a more fixed-point style.
2010-12-18 12:57:29 +01:00
Andy Wingo
0e9306801a take advantage of letrec* in format
* module/ice-9/format.scm (format): Take advantage of letrec* internal
  expansion, and so have fewer set! invocations.
2010-12-18 12:50:00 +01:00
Andy Wingo
d55066ddc3 inline format:out into format
* module/ice-9/format.scm (format): Inline format:out into the body.
2010-12-18 12:42:50 +01:00
Andy Wingo
098e6fc63f more format cleanups
* module/ice-9/format.scm (format): Remove the need to save a copy of
  the incoming arguments, because they are available as local
  variables.  Do the check early for the format-string actually being a
  string.
2010-12-18 12:32:14 +01:00
Andy Wingo
f02f8a6174 format's first arg is "destination"
* module/ice-9/format.scm: The argument to format is "destination", not
  "port". Fix this newly reintroduced buglet.
2010-12-18 12:20:26 +01:00
Andy Wingo
3d56118c50 inline format:format into format
* module/ice-9/format.scm (format): Inline format:format body.
2010-12-18 12:17:46 +01:00
Andy Wingo
2ce77e6cf6 deprecate omission of port to ice-9 format
* module/ice-9/format.scm (format): Add port and format-string as formal
  arguments. Seems also to have triggered a reindent.  Formally
  deprecate omitting the port, as it's usually an error.

* test-suite/tests/format.test ("format basic output")
  ("format basic output", "~{ iteration"): Fix up tests that omitted the
  destination port.
2010-12-18 12:06:53 +01:00
Andy Wingo
29d096c8e6 letrec -> internal definitions in format.scm
* module/ice-9/format.scm (format): Change from letrec to internal
  definitions, and use the define (foo ...) .. shorthand. No semantic
  change.
2010-12-18 11:44:57 +01:00
Andy Wingo
9ebf1af3c1 format.scm cleanups
* module/ice-9/format.scm (format:symbol-case-conv)
  (format:iobj-case-conv): Remove these exports, they were not used.
  (format:expch): Remove this one, though it was used.
  (format:floats, format:complex-numbers, format:radix-pref): Inline
  these "configuration variables" into the format body.
2010-12-18 11:27:19 +01:00
Andy Wingo
e3e3394374 ice-9 format license update
* module/ice-9/format.scm: A more standard copyright header, with
  LGPLv3+ instead of public domain. Update define-module block.
2010-12-18 11:21:29 +01:00
Ludovic Courtès
7bc8b4afa2 Bump version number for 1.9.14.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2010-12-17 21:57:19 +01:00
Ludovic Courtès
831ed60ddb Tweak `NEWS'.
* NEWS: Update.
2010-12-17 21:55:56 +01:00
Ludovic Courtès
90b2c69c97 futures: Store pending futures in a queue.
* module/ice-9/futures.scm (%futures): Change from a list to a queue.
  (register-future!, process-futures, touch): Adjust accordingly.
  (unregister-future!): Remove.
2010-12-17 21:55:56 +01:00
Ludovic Courtès
3e0e4f1d87 Clarify doc regarding threading of par-map' and par-for-each'.
* doc/ref/api-scheduling.texi (Parallel Forms): Refine wording for
  `par-map' and `par-for-each'.
2010-12-17 21:55:56 +01:00
Andy Wingo
863f11969d add www-commit rule in doc/ref
* doc/ref/Makefile.am (www-commit): Add rule to update docs on web site.
2010-12-17 16:41:58 +01:00
Ludovic Courtès
6bf623ca34 Remove conflicting `scm_is_string' declaration.
* libguile/strings.h: Move `scm_is_string' declaration...
* libguile/inline.h: ... here.
  Reported by Noah Lavine <noah.b.lavine@gmail.com>.
2010-12-17 14:34:22 +01:00
Andy Wingo
133ef660af fix unbound fluid tests
* test-suite/tests/fluids.test: Fix tests.
2010-12-17 13:53:29 +01:00
Andy Wingo
27e346064e update NEWS
* NEWS: Update.
2010-12-17 13:33:29 +01:00
Andy Wingo
7cf64a0af1 guile-user has no filename
* module/ice-9/boot-9.scm (guile-user): Set #:filename to #f for
  guile-user module, as guile-user isn't really associated with any
  file.
2010-12-17 13:30:07 +01:00