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

14736 commits

Author SHA1 Message Date
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
Andy Wingo
cdab9fc625 add ,reload meta-command and document it and reload-module
* module/ice-9/boot-9.scm (reload-module): Add docstring.
* module/system/repl/command.scm (reload): New meta-command.

* doc/ref/scheme-using.texi (Module Commands): Document the ,reload
  meta-command.
* doc/ref/api-modules.texi (Module System Reflection): Document
  reload-module.
2010-12-17 13:27:43 +01:00
Andy Wingo
626e36e5cb document variable-unset!
* doc/ref/api-modules.texi (Variables): Document variable-unset!.

* NEWS: Update.
2010-12-17 13:16:36 +01:00
Andy Wingo
d09c07fb10 document make-unbound-fluid et al
* doc/ref/api-scheduling.texi (Fluids and Dynamic States): Document the
  new fluid routines.

* NEWS: Update.
2010-12-17 13:14:13 +01:00
Andy Wingo
e01163b5f1 rename make-undefined-fluid to make-unbound-fluid
* libguile/fluids.c (scm_make_unbound_fluid): Rename from
  scm_make_undefined_fluid.

* libguile/fluids.h:
* module/language/elisp/runtime.scm: Update referrers.
2010-12-17 13:10:03 +01:00
Andy Wingo
60905b80d4 multicast manual updates
* doc/ref/posix.texi (Network Sockets and Communication): Add
  IP_MULTICAST_TTL and IP_MULTICAST_IF docs, from the docstring.

* NEWS: Update.
2010-12-17 13:04:23 +01:00
Andy Wingo
5cdab8b8f6 more web.texi "hacking"
* doc/ref/web.texi (Web Server, Web Examples): Finish these sections.
2010-12-17 12:58:43 +01:00
Andy Wingo
e2d4bfea00 build-response validates headers
* module/web/response.scm (build-response): Add some validation, like
  for build-request.
2010-12-17 12:01:34 +01:00
Ludovic Courtès
c21a5ddcaf Implement `(ice-9 threads)' high-level constructs in terms of futures.
* module/ice-9/threads.scm (parallel, par-mapper): Rewrite in terms of
  `future' and `touch'.

* test-suite/tests/threads.test ("par-map", "par-for-each"): New test
  prefixes.

* doc/ref/api-scheduling.texi (Parallel Forms): Add cross-ref to
  futures.  Recommend against the `n-' variants.
2010-12-16 23:45:24 +01:00
Ludovic Courtès
6c17f7bd71 futures: Support multiple-value returns.
* module/ice-9/futures.scm (process-future!): Use `call-with-values'
  when invoking `(future-thunk future)'.

* test-suite/tests/future.test ("futures")["multiple values"]: New test.
2010-12-16 23:45:24 +01:00
Ludovic Courtès
691a1c3c06 futures: Fix potential deadlock.
* module/ice-9/futures.scm (process-futures): Fix potential deadlock,
  whereby %FUTURES-MUTEX would be acquired *after* FUTURE's mutex.
2010-12-16 23:45:24 +01:00
Ludovic Courtès
70249b9857 Rehash weak hash tables less frequently.
* libguile/hashtab.c (weak_bucket_assoc): Call `scm_i_rehash' only when
  REMAINING is below `SCM_HASHTABLE_LOWER (table)'.
2010-12-16 23:45:23 +01:00
Ludovic Courtès
3854d5fd23 Fix `hash' for pointer objects.
Previously all pointer objects would hash to the same value.

* libguile/hash.c (scm_hasher): Add case for `scm_tc7_pointer'.
2010-12-16 23:45:23 +01:00
Ludovic Courtès
183f784947 Inline `scm_is_string'.
* libguile/strings.c (scm_is_string): Move to...
* libguile/inline.h (scm_is_string): ... here.  Inline.
2010-12-16 23:45:23 +01:00
Ludovic Courtès
18f06db925 Add compose', negate', and `const'.
* module/ice-9/boot-9.scm (compose, negate, const): New procedures.

* doc/ref/api-procedures.texi (Higher-Order Functions): New node.

* test-suite/Makefile.am (SCM_TESTS): Add `tests/procs.test'.

* test-suite/tests/procs.test: New file.
2010-12-16 23:45:23 +01:00
Andy Wingo
0bfba83a03 update web-response tests for http header parsing change
* test-suite/tests/web-response.test ("example-1"): Update for change in
  parsing Vary header.
2010-12-16 19:38:48 +01:00
Andy Wingo
92022c447d update NEWS
* NEWS: Update for Web documentation.
2010-12-16 19:33:16 +01:00
Andy Wingo
e471a3ee2f more web.texi work
* doc/ref/web.texi (Requests, Responses): Flesh out.
  (Web Examples): New section, replacing "Web Handlers". The only one
  that's not really written yet.
2010-12-16 19:31:50 +01:00
Andy Wingo
1148d02973 add section on format of parsed http headers
* doc/ref/web.texi (HTTP Headers): New section. Needs some examples,
  though.
2010-12-16 19:06:41 +01:00
Andy Wingo
adc91e41bf http: lists of header names parse better
* module/web/http.scm (list-of-strings?, write-list-of-strings): Move
  definitions up.
  (split-header-names, list-of-header-names?, write-header-list): New
  helpers.
  (declare-header-list-header): New helper.
  (cache-control): Use split-header-names for private and no-cache.
  (trailer): Use declare-header-list-header to parse known headers to
  symbols.
  (vary): Likewise, use split-header-names et al.

* test-suite/tests/web-http.test ("general headers"): Add a test.
2010-12-16 18:12:14 +01:00
Andy Wingo
25731543d4 better cache-control: private, no-cache parsing
* module/web/http.scm (cache-control): Parse private and no-cache
  better.
* test-suite/tests/web-http.test ("general headers"): Update.
2010-12-16 17:56:03 +01:00
Andy Wingo
ac7f17e3ca fix web.texi
* doc/ref/web.texi: Texinfo syntax fixen!
2010-12-16 16:44:44 +01:00
Andy Wingo
299cd1a229 update web.texi
* doc/ref/web.texi (URIs, HTTP): Update these sections.
2010-12-16 16:43:01 +01:00
Andy Wingo
8db7e0947d add web.texi to manual
* doc/ref/web.texi: New file, here to document the various (web ...)
  modules.  Quite a rough beginning, but it is a start...

* doc/ref/guile.texi:
* doc/ref/Makefile.am: Add to manual.
2010-12-16 14:52:25 +01:00
Andy Wingo
43d6659ae2 (web server) docstrings
* module/web/server.scm: Docstrings in the house.
2010-12-16 14:48:35 +01:00
Andy Wingo
cc1e26c2cd docstrings in (web request) and (web response)
* module/web/request.scm:
* module/web/response.scm: Add docstrings.
2010-12-16 14:48:34 +01:00
Andy Wingo
92c5c0b67c (web http) docstrings
* module/web/http.scm: Add docstrings all around.
2010-12-16 14:48:34 +01:00
Andy Wingo
277bbe9624 document (web uri), and simplify uri-encode
* module/web/uri.scm: Add docstrings.
  (uri-encode): Simplify. Not sure what I was thinking before.
2010-12-16 14:48:34 +01:00
Andy Wingo
76ebf23fce update NEWS
* NEWS: Update.
2010-12-13 23:35:34 +01:00
Andy Wingo
557abc4978 fix bugs in primitive-poll
* libguile/poll.c (scm_primitive_poll): Only mark POLLOUT for output
  ports. Don't override results from the syscall, add to them.
2010-12-13 20:25:36 +01:00
Andy Wingo
998191fd4f fix testing code in web/server
* module/web/server.scm (call-with-encoded-output-string): Fix some code
  I accidentally left in while testing. Re-tested the difference in
  speed; pleasantly surprised.

* module/web/uri.scm: Make the same change here.
2010-12-12 23:34:18 +01:00
Andy Wingo
a6b1b27aad foreign: c-struct parsing simplification
* module/system/foreign.scm: Revert much of fb636a1cce. Short et al are
  not distinct types -- they are all aliases to e.g. int16. The only
  case that was not covered before was the pointer case.
  (bytevector-pointer-ref, bytevector-pointer-set!): Implement these,
  and use them for pointers.
2010-12-12 23:13:08 +01:00
Andy Wingo
ef6b0e8d48 1.9.13 news to main body
* NEWS: Fold 1.9.13 text into the main text.
2010-12-12 22:45:47 +01:00
Andy Wingo
ec3c7570d8 http-read robustness
* module/web/server/http.scm (http-read): Record the client index in
  more cases in which code could throw an error.
2010-12-12 21:59:29 +01:00
Andy Wingo
c7857da63a (web uri) can uri-decode non-utf-8 payloads
* module/web/uri.scm (call-with-encoded-output-string, encode-string):
  Copy from server.scm
  (decode-string): Copy from tekuti.
  (uri-decode): The #:charset arg is a string, like
  port-encoding. Support other charsets.
  (uri-encode): Charset is a string. Other encodings still not nicely
  supported. Hmm.
2010-12-11 19:19:41 +01:00
Andy Wingo
9582b26c62 add return/values hack to compile-glil for lua
* module/language/tree-il/compile-glil.scm (*primcall-ops*): Add a hack
  like 'return but for multiple values, for lua.
2010-12-10 18:04:06 +01:00
Andy Wingo
ed3fd27adb rnrs control only depends on (guile)
* module/rnrs/control.scm: Depend only on (guile).
2010-12-10 18:04:02 +01:00
Andy Wingo
84b67e1971 fix self-tail-calls for lexical procs with optional, rest, or kwargs
* module/language/tree-il/compile-glil.scm (flatten-lambda): Don't emit
  a self-label, because when we can't match the args for a lexical call,
  we have no space to shuffle args and jump.
  (flatten): Apply the self-tail-call optimization to optional args
  too, but only if the procedure is fix-allocated. If we can't apply the
  optimization, use the normal tail-call sequence.

* test-suite/tests/optargs.test ("lambda* inits"): Add tests.
2010-12-10 16:07:58 +01:00
Andy Wingo
3b24aee6e3 clarify compile-glil error messages
* module/language/tree-il/compile-glil.scm (vars->bind-list, flatten):
  Make internal self-checking error messages more clear, for
  implementors of other languages.
2010-12-09 21:53:46 +01:00