* [PATCH] Test-suite update [not found] ` <87psr22c2p.fsf@zip.com.au> @ 2005-09-22 13:57 ` Ludovic Courtès 2005-09-22 19:25 ` Neil Jerram 2005-09-22 21:15 ` Kevin Ryde [not found] ` <87irwtqkop.fsf@laas.fr> 1 sibling, 2 replies; 16+ messages in thread From: Ludovic Courtès @ 2005-09-22 13:57 UTC (permalink / raw) Cc: guile-devel [Switched to `guile-devel'.] Kevin Ryde <user42@zip.com.au> writes: > You'll need to make something for > test-suite/tests/socket.test exercising each case, eventually. It turns out that I had never looked at the test-suite, mostly because it isn't run at `make check' time. Additionally, the `guile-test' script was largely outdated. The patch below fixes these two things. It also comments out the `elisp' test which results in a stack overflow here. My understanding is that the Elisp work is almost only due to Neil has never been widely used, so hopefully it won't hurt too much until a better solution is found. All the other tests pass on my PPC GNU/Linux box, some of them are unresolved though. Thanks, Ludovic. 2005-09-22 Ludovic Courtès <ludovic.courtes@laas.fr> * Makefile.am (check-local): New target. * guile-test: Made executable as a stand-alone script. (main): Fixed to use the latest `getopt-long'; use `option-ref'. * tests/elisp.test: Momentarily ignored. \f --- orig/test-suite/Makefile.am +++ mod/test-suite/Makefile.am @@ -101,3 +101,6 @@ cp -pR $(srcdir)/$$d $(distdir)/$$d; \ rm -rf $(distdir)/$$d/CVS; \ done + +check-local: + ./guile-test --test-suite tests/ --- orig/test-suite/guile-test +++ mod/test-suite/guile-test @@ -1,5 +1,12 @@ -#!../libguile/guile \ --e main -s +#!/bin/sh +# This is in fact -*- Scheme -*- code. + +# We need to make sure that we load the right `ice-9' modules so `-L' is not +# enough since it gets parsed too late. +GUILE_LOAD_PATH=".." +export GUILE_LOAD_PATH + +exec ../libguile/guile -L .. -l $0 -e main -- "$@" !# ;;;; guile-test --- run the Guile test suite @@ -166,7 +173,7 @@ (sort tests string<?))) (define (main args) - (let ((options (getopt-long args + (let ((options (getopt-long (cons "progname" args) `((test-suite (single-char #\t) (value #t)) @@ -177,15 +184,12 @@ (value #t)) (debug (single-char #\d)))))) - (define (opt tag default) - (let ((pair (assq tag options))) - (if pair (cdr pair) default))) - (if (opt 'debug #f) + (if (option-ref options 'debug #f) (enable-debug-mode)) (set! test-suite - (or (opt 'test-suite #f) + (or (option-ref options 'test-suite #f) (getenv "TEST_SUITE_DIR") default-test-suite)) @@ -194,13 +198,8 @@ ;; not the src-dir. (set! tmp-dir (getcwd)) - (let* ((tests - (let ((foo (opt '() '()))) - (if (null? foo) - (enumerate-tests test-suite) - foo))) - (log-file - (opt 'log-file "guile.log"))) + (let* ((tests (enumerate-tests test-suite)) + (log-file (option-ref options 'log-file "guile.log"))) ;; Open the log file. (let ((log-port (open-output-file log-file))) @@ -214,7 +213,8 @@ (register-reporter (lambda results (case (car results) ((unresolved) - (and (opt 'flag-unresolved #f) + (and (option-ref options + 'flag-unresolved #f) (set! global-pass #f))) ((fail upass error) (set! global-pass #f))))) --- orig/test-suite/tests/elisp.test +++ mod/test-suite/tests/elisp.test @@ -19,6 +19,9 @@ :use-module (test-suite lib) :use-module (ice-9 weak-vector)) +(if #t #t ;; FIXME: Ignore this test for now + (begin + ;;; ;;; elisp ;;; @@ -331,4 +334,6 @@ )) +)) + ;;; elisp.test ends here _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 13:57 ` [PATCH] Test-suite update Ludovic Courtès @ 2005-09-22 19:25 ` Neil Jerram 2005-09-22 19:41 ` Neil Jerram 2005-09-22 21:15 ` Kevin Ryde 1 sibling, 1 reply; 16+ messages in thread From: Neil Jerram @ 2005-09-22 19:25 UTC (permalink / raw) Cc: guile-devel ludovic.courtes@laas.fr (Ludovic Courtès) writes: > The patch below fixes these two things. It also comments out the > `elisp' test which results in a stack overflow here. My understanding > is that the Elisp work is almost only due to Neil has never been widely > used, so hopefully it won't hurt too much until a better solution is > found. That's correct. I'll see if I can debug this, though, so that the test can then be reinstated. Thanks for pointing it out. Neil _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 19:25 ` Neil Jerram @ 2005-09-22 19:41 ` Neil Jerram 2005-09-23 9:54 ` Ludovic Courtès 0 siblings, 1 reply; 16+ messages in thread From: Neil Jerram @ 2005-09-22 19:41 UTC (permalink / raw) Cc: guile-devel Neil Jerram <neil@ossau.uklinux.net> writes: > ludovic.courtes@laas.fr (Ludovic Courtès) writes: > >> The patch below fixes these two things. It also comments out the >> `elisp' test which results in a stack overflow here. My understanding >> is that the Elisp work is almost only due to Neil has never been widely >> used, so hopefully it won't hurt too much until a better solution is >> found. > > That's correct. I'll see if I can debug this, though, so that the > test can then be reinstated. Thanks for pointing it out. Actually I'm not sure I understand. Do you see the stack overflow only after applying your patch, or did it occur before the patch also on your system? I don't see a problem on Intel using current CVS. Thanks, Neil _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 19:41 ` Neil Jerram @ 2005-09-23 9:54 ` Ludovic Courtès 2005-09-23 18:57 ` Neil Jerram 0 siblings, 1 reply; 16+ messages in thread From: Ludovic Courtès @ 2005-09-23 9:54 UTC (permalink / raw) Cc: guile-devel Hi, Neil Jerram <neil@ossau.uklinux.net> writes: > Actually I'm not sure I understand. Do you see the stack overflow > only after applying your patch, or did it occur before the patch also > on your system? I don't see a problem on Intel using current CVS. When running `elisp.test' untouched. Here's what I get: $ guile -L .. -l tests/elisp.test [...] PASS: scheme: value preservation: cdr PASS: scheme: value preservation: vector-ref ERROR: Stack overflow Adding `format' expressions shows that this seems to occur when evaluating: (if (defined? '%nil) (use-modules (lang elisp interface))) However, it works when run like this: $ guile -L .. guile> (load "tests/elisp.test") PASS: scheme: nil value is a boolean: boolean? [...] PASS: elisp: (defvar x 4) PASS: elisp: x guile> So I tried the following: $ guile -L .. -c '(begin (set! %load-hook (lambda (f) (format #t "loading ~a...~%" f))) (load "tests/elisp.test"))' loading tests/elisp.test... [...] PASS: scheme: value preservation: vector-ref loading ../lang/elisp/interface.scm... [...] PASS: elisp: (defvar x 4) PASS: elisp: x And here everything works fine. Any idea of the difference between `-l' and `load'? Looking at `script.c', that seems equivalent. Thanks, Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-23 9:54 ` Ludovic Courtès @ 2005-09-23 18:57 ` Neil Jerram 2005-09-26 8:49 ` Ludovic Courtès 0 siblings, 1 reply; 16+ messages in thread From: Neil Jerram @ 2005-09-23 18:57 UTC (permalink / raw) Cc: guile-devel ludovic.courtes@laas.fr (Ludovic Courtès) writes: > When running `elisp.test' untouched. Here's what I get: > > $ guile -L .. -l tests/elisp.test > [...] > PASS: scheme: value preservation: cdr > PASS: scheme: value preservation: vector-ref > ERROR: Stack overflow I can't reproduce this, but I wonder if the processing is genuinely on the border line of the allowed stack depth. Does it help if you add this to elisp.test just before the problem: (debug-set! stack (* (cadr (memq 'stack (debug-options))) 2)) Also, can you confirm whether you see this problem with current CVS, i.e. without your patch? > Adding `format' expressions shows that this seems to occur when evaluating: > > (if (defined? '%nil) > (use-modules (lang elisp interface))) > > However, it works when run like this: > > $ guile -L .. > guile> (load "tests/elisp.test") > PASS: scheme: nil value is a boolean: boolean? > [...] > PASS: elisp: (defvar x 4) > PASS: elisp: x > guile> On the other hand, if it is a genuine stack depth problem, I'd expect this one to fail also, since the stack depth of the code for (top-repl) is a lot more than that of the code that script.c generates for a -l arg. > So I tried the following: > > $ guile -L .. -c '(begin (set! %load-hook (lambda (f) (format #t "loading ~a...~%" f))) (load "tests/elisp.test"))' > loading tests/elisp.test... > [...] > PASS: scheme: value preservation: vector-ref > loading ../lang/elisp/interface.scm... > [...] > PASS: elisp: (defvar x 4) > PASS: elisp: x > > And here everything works fine. > > Any idea of the difference between `-l' and `load'? Looking at > `script.c', that seems equivalent. Yes. This seems pretty odd. Neil _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-23 18:57 ` Neil Jerram @ 2005-09-26 8:49 ` Ludovic Courtès 2005-09-26 23:15 ` Kevin Ryde 0 siblings, 1 reply; 16+ messages in thread From: Ludovic Courtès @ 2005-09-26 8:49 UTC (permalink / raw) Cc: guile-devel Hi, Neil Jerram <neil@ossau.uklinux.net> writes: > I can't reproduce this, but I wonder if the processing is genuinely on > the border line of the allowed stack depth. Does it help if you add > this to elisp.test just before the problem: > > (debug-set! stack (* (cadr (memq 'stack (debug-options))) 2)) Yes, it does help, i.e. the test now passes even when ran with `-l'. > Also, can you confirm whether you see this problem with current CVS, > i.e. without your patch? My patch (the one that relates to the test-suite) merely comments out `elisp.test'. So I just reverted it so that I could actually run the test, that's it (i.e. it is current CVS). OTOH, I'm using the "per-module reader" patch I posted sometime ago. It (slightly) modifies `primitive-load' in a way that increases the number of Scheme procedure calls that are necessary to load the various elisp modules (not dramatically, though -- I guess it just yields an additional call to `apply' instead of calling `read' directly). But still, that doesn't explain why the stack overflows when using `-l' and why everything's fine when loading the test from the REPL. > On the other hand, if it is a genuine stack depth problem, I'd expect > this one to fail also, since the stack depth of the code for > (top-repl) is a lot more than that of the code that script.c generates > for a -l arg. Right. Thanks, Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-26 8:49 ` Ludovic Courtès @ 2005-09-26 23:15 ` Kevin Ryde 0 siblings, 0 replies; 16+ messages in thread From: Kevin Ryde @ 2005-09-26 23:15 UTC (permalink / raw) Cc: Neil Jerram ludovic.courtes@laas.fr (Ludovic Courtès) writes: > > But still, that doesn't explain why the stack overflows when using `-l' > and why everything's fine when loading the test from the REPL. gdb might show where the stack is being used up, trap on scm_report_stack_overflow I think. When I looked it was scm_ceval (or whatever it's called). That's the innermost recursion is it? Maybe someone smart could review to see if it can be reduced, for the commonest usages. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 13:57 ` [PATCH] Test-suite update Ludovic Courtès 2005-09-22 19:25 ` Neil Jerram @ 2005-09-22 21:15 ` Kevin Ryde 2005-09-22 22:06 ` Kevin Ryde 2005-09-23 7:43 ` Ludovic Courtès 1 sibling, 2 replies; 16+ messages in thread From: Kevin Ryde @ 2005-09-22 21:15 UTC (permalink / raw) Cc: guile-devel ludovic.courtes@laas.fr (Ludovic Courtès) writes: > > It turns out that I had never looked at the test-suite, mostly because > it isn't run at `make check' time. It is, but from the top-level ./check-guile. > Additionally, the `guile-test' script was largely outdated. Maybe could be removed if no longer used. > It also comments out the `elisp' test which results in a stack > overflow here. Works for me, you might have struck a bug. But check you're not compiling with -O0, that used a lot more stack for me with gcc 4 and overflowed in strange places. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 21:15 ` Kevin Ryde @ 2005-09-22 22:06 ` Kevin Ryde 2005-09-23 7:43 ` Ludovic Courtès 1 sibling, 0 replies; 16+ messages in thread From: Kevin Ryde @ 2005-09-22 22:06 UTC (permalink / raw) Cc: guile-devel I wrote: > > It is, but from the top-level ./check-guile. I mean the test-suite is run from make check, but via the top-level Makefile.am, not the Makefile.am in the test-suite directory. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-22 21:15 ` Kevin Ryde 2005-09-22 22:06 ` Kevin Ryde @ 2005-09-23 7:43 ` Ludovic Courtès 2005-09-23 23:54 ` Kevin Ryde 1 sibling, 1 reply; 16+ messages in thread From: Ludovic Courtès @ 2005-09-23 7:43 UTC (permalink / raw) Hi, Kevin Ryde <user42@zip.com.au> writes: > It is, but from the top-level ./check-guile. Ah, I see. BTW, this script sets `GUILE_LOAD_PATH' to `${top_srcdir}/test-suite' only. Consequently, the `ice-9' modules (and in particular `boot-9.scm') are loaded from `${datadir}/guile/1.7', /not/ from the source tree, which is wrong. > Maybe could be removed if no longer used. The top-level `check-guile' actually uses it. In fact, I would rather remove `check-guile' and the top-level Makefile.am's `TESTS', and let `make check' recursively find out what to do. This way, things related to the test suite would all be gathered into the `test-suite' directory. Additionally, `make check' from there would really run the whole test suite. > Works for me, you might have struck a bug. But check you're not > compiling with -O0, that used a lot more stack for me with gcc 4 and > overflowed in strange places. I did compile at least parts of Guile with `-O0' but I'm using GCC 3.3.5. BTW, as usual (sigh), here is a new version of the previous patch: the previous one disabled the ability to pass a list of test files to `guile-test'. Thanks, Ludovic. \f --- orig/test-suite/Makefile.am +++ mod/test-suite/Makefile.am @@ -101,3 +101,6 @@ cp -pR $(srcdir)/$$d $(distdir)/$$d; \ rm -rf $(distdir)/$$d/CVS; \ done + +check-local: + ./guile-test --test-suite tests/ --- orig/test-suite/guile-test +++ mod/test-suite/guile-test @@ -1,5 +1,12 @@ -#!../libguile/guile \ --e main -s +#!/bin/sh +# This is in fact -*- Scheme -*- code. + +# We need to make sure that we load the right `ice-9' modules so `-L' is not +# enough since it gets parsed too late. +GUILE_LOAD_PATH=".." +export GUILE_LOAD_PATH + +exec ../libguile/guile -L .. -l $0 -e main -- "$@" !# ;;;; guile-test --- run the Guile test suite @@ -177,15 +184,12 @@ (value #t)) (debug (single-char #\d)))))) - (define (opt tag default) - (let ((pair (assq tag options))) - (if pair (cdr pair) default))) - (if (opt 'debug #f) + (if (option-ref options 'debug #f) (enable-debug-mode)) (set! test-suite - (or (opt 'test-suite #f) + (or (option-ref options 'test-suite #f) (getenv "TEST_SUITE_DIR") default-test-suite)) @@ -194,13 +198,13 @@ ;; not the src-dir. (set! tmp-dir (getcwd)) - (let* ((tests - (let ((foo (opt '() '()))) - (if (null? foo) - (enumerate-tests test-suite) - foo))) - (log-file - (opt 'log-file "guile.log"))) + (let* ((tests (let ((files (option-ref options '() '()))) + (if (null? files) + (enumerate-tests test-suite) + (begin + (set! test-suite ".") + files)))) + (log-file (option-ref options 'log-file "guile.log"))) ;; Open the log file. (let ((log-port (open-output-file log-file))) @@ -214,7 +218,8 @@ (register-reporter (lambda results (case (car results) ((unresolved) - (and (opt 'flag-unresolved #f) + (and (option-ref options + 'flag-unresolved #f) (set! global-pass #f))) ((fail upass error) (set! global-pass #f))))) --- orig/test-suite/tests/elisp.test +++ mod/test-suite/tests/elisp.test @@ -19,6 +19,9 @@ :use-module (test-suite lib) :use-module (ice-9 weak-vector)) +(if #t #t ;; FIXME: Ignore this test for now + (begin + ;;; ;;; elisp ;;; @@ -331,4 +334,6 @@ )) +)) + ;;; elisp.test ends here _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-23 7:43 ` Ludovic Courtès @ 2005-09-23 23:54 ` Kevin Ryde 2005-09-26 8:35 ` Ludovic Courtès 0 siblings, 1 reply; 16+ messages in thread From: Kevin Ryde @ 2005-09-23 23:54 UTC (permalink / raw) Cc: guile-devel ludovic.courtes@laas.fr (Ludovic Courtès) writes: > > BTW, this script sets `GUILE_LOAD_PATH' to `${top_srcdir}/test-suite' > only. Consequently, the `ice-9' modules (and in particular > `boot-9.scm') are loaded from `${datadir}/guile/1.7', /not/ from the > source tree, which is wrong. Did you try it (ie. ./check-guile)? I believe it uses ./pre-inst-guile, and that script sets the paths correctly to run uninstalled. A typical run to do one test is say "./check-guile elisp.test" from the top-level. > In fact, I would rather remove `check-guile' and the top-level > Makefile.am's `TESTS', and let `make check' recursively find out what to > do. Yep. I've done that for my charting package, you can set TESTS_ENVIRONMENT to "guile -s" or whatever for setups and so the test files don't have to be executables. It's automake-friendly, but you miss out on the aggregated success/fail counts that the current setup gives. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-23 23:54 ` Kevin Ryde @ 2005-09-26 8:35 ` Ludovic Courtès 2005-09-26 23:18 ` Kevin Ryde 0 siblings, 1 reply; 16+ messages in thread From: Ludovic Courtès @ 2005-09-26 8:35 UTC (permalink / raw) Hi, Kevin Ryde <user42@zip.com.au> writes: > Did you try it (ie. ./check-guile)? I believe it uses > ./pre-inst-guile, and that script sets the paths correctly to run > uninstalled. This is true, I was wrong. ;-) > Yep. I've done that for my charting package, you can set > TESTS_ENVIRONMENT to "guile -s" or whatever for setups and so the test > files don't have to be executables. It's automake-friendly, but you > miss out on the aggregated success/fail counts that the current setup > gives. Right, but we do not care much about the aggregated counts, do we? Especially since there are only two test subdirectories. And I believe that reducing the complexity of the test scripts and leaving only those scripts that are useful would be beneficial. Thanks, Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] Test-suite update 2005-09-26 8:35 ` Ludovic Courtès @ 2005-09-26 23:18 ` Kevin Ryde 0 siblings, 0 replies; 16+ messages in thread From: Kevin Ryde @ 2005-09-26 23:18 UTC (permalink / raw) ludovic.courtes@laas.fr (Ludovic Courtès) writes: > > Right, but we do not care much about the aggregated counts, do we? Dunno, a matter of personal preference I guess :-). Myself I wouldn't mind a --gdb option or something on ./pre-inst-guile and/or ./check-guile. The best way I'd found to run up gdb was to change the exec at the end of pre-inst-guile (to ./libtool gdb ...). _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <87irwtqkop.fsf@laas.fr>]
[parent not found: <87slvog9sd.fsf@zip.com.au>]
[parent not found: <87wtkt9xyq.fsf_-_@laas.fr>]
[parent not found: <87hdbg4dl7.fsf@laas.fr>]
[parent not found: <87br1nakge.fsf@zip.com.au>]
[parent not found: <87hdbfnu9n.fsf@laas.fr>]
[parent not found: <87d5m2twaf.fsf@uni-dortmund.de>]
[parent not found: <878xwjb123.fsf@laas.fr>]
[parent not found: <874q76h9rh.fsf@zip.com.au>]
[parent not found: <87hdb5qogp.fsf@zagadka.de>]
[parent not found: <87zmovn4y5.fsf@zip.com.au>]
[parent not found: <87fyqn1gzy.fsf@laas.fr>]
[parent not found: <87br196yd8.fsf@zip.com.au>]
* Re: Socket API improvement, patch #6 [not found] ` <87br196yd8.fsf@zip.com.au> @ 2005-11-02 10:50 ` Ludovic Courtès 2005-11-02 20:07 ` Kevin Ryde 0 siblings, 1 reply; 16+ messages in thread From: Ludovic Courtès @ 2005-11-02 10:50 UTC (permalink / raw) Cc: guile-devel Hi, Kevin Ryde <user42@zip.com.au> writes: > Beaut, I gave it a bit of a tweak and applied it. Ok, I'm nitpicking: basically, for function descriptions, I prefer the style that I used rather than your style. For instance, I suggested: @deftypefn {C Function} {struct sockaddr *}scm_c_make_socket_address (SCM family, SCM address, SCM args, size_t *address_size) Return a newly-allocated @code{sockaddr} structure that reflects @var{address}, an address of family @var{family}, with the family-specific parameters @var{args} (see the description of @var{make-socket-address} for details). On success, a non-@code{NULL} pointer is returned and @var{address_size} is updated to the actual size (in bytes) of the returned address. The returned structure must eventually be freed using @code{free ()}. @end deftypefn while you preferred: @deftypefn {C Function} {struct sockaddr *} scm_c_make_socket_address (SCM family, SCM address, SCM args, size_t *outsize) Return a newly-@code{malloc}ed @code{struct sockaddr} created from arguments like those taken by @code{scm_make_socket_address} above. The size (in bytes) of the @code{struct sockaddr} return is stored into @code{*@var{outsize}}. An application must call @code{free} to release the returned structure when no longer required. @end deftypefn IMO, the style you used is "sploppier" and less concise. The "formal" declarative style I used is also more consistent with the rest of the manual and other GNU manuals as well I think. Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Socket API improvement, patch #6 2005-11-02 10:50 ` Socket API improvement, patch #6 Ludovic Courtès @ 2005-11-02 20:07 ` Kevin Ryde 2005-11-03 9:00 ` Ludovic Courtès 0 siblings, 1 reply; 16+ messages in thread From: Kevin Ryde @ 2005-11-02 20:07 UTC (permalink / raw) ludovic.courtes@laas.fr (Ludovic Courtès) writes: > > Ok, I'm nitpicking: My rationale below. > structure that reflects "reflects" is not a good word. > @var{address}, an address of family @var{family}, with the > family-specific parameters @var{args} (see the description of > @var{make-socket-address} for details). I felt all this could be left as a ref to scm_make_socket_address. > On success, a non-@code{NULL} It's always non-NULL, no need to say that. > @var{address_size} is updated I changed the name and tried to make it clearer that it's an output. "updated" might make you think it was some value then changed to another. > The returned structure must eventually be freed using > @code{free ()}. I thought "eventually" was a clumsy expression. What I replaced it with might stand further polish though. > "formal" declarative style A manual is not a specification (fortunately), so there's no need to be overly formal. A manual, even a reference manual, is essentially a teaching tool, you want a programmer reading it to learn what a func does, or refresh their memory of what it does. On that basis some informality in expression is fine, though you definitely need the ideas presented in a nice logical sequence. (Which for me means the key point or points first, followed by gory details or exceptions.) _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Socket API improvement, patch #6 2005-11-02 20:07 ` Kevin Ryde @ 2005-11-03 9:00 ` Ludovic Courtès 0 siblings, 0 replies; 16+ messages in thread From: Ludovic Courtès @ 2005-11-03 9:00 UTC (permalink / raw) Hi Kevin, I mostly agree with your remarks about the piece of documentation I included---these were mostly errors unrelated to the point I was trying to make. :-) Kevin Ryde <user42@zip.com.au> writes: > A manual is not a specification (fortunately), so there's no need to > be overly formal. Agreed. But you missed my point: the wording has to be consistent across the manual (or, even better, across GNU manuals) and it has to be non-ambiguous. For instance, a sentence like "Return _a_ Scheme object." doesn't give a lot of information. What I like in GNU reference manuals is that function descriptions usually start with a single sentence (or a couple of sentences) that describes the return value and each argument. Example: Apply PROC to each element of the list ARG1 (if only two arguments are given), or to the corresponding elements of the argument lists (if more than two arguments are given). The result(s) of the procedure applications are saved and returned in a list. Or (glibc): The `open' function creates and returns a new file descriptor for the file named by FILENAME. > A manual, even a reference manual, is essentially a teaching tool I disagree: a tutorial is teaching material, a reference manual is, well, a reference documentation. Of course, a manual may very well include a tutorial alongside the reference documentation: that's what Guile's manual does in the nodes other than `API Reference' and `Guile Modules'. Thanks, Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2005-11-03 9:00 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <87oecutxox.fsf@laas.fr> [not found] ` <87vf58cxxq.fsf@zagadka.de> [not found] ` <87k6kwopv5.fsf@laas.fr> [not found] ` <87fysk7ady.fsf@zagadka.de> [not found] ` <87mzmpmcm2.fsf@laas.fr> [not found] ` <87aci6u6f4.fsf@laas.fr> [not found] ` <87psr22c2p.fsf@zip.com.au> 2005-09-22 13:57 ` [PATCH] Test-suite update Ludovic Courtès 2005-09-22 19:25 ` Neil Jerram 2005-09-22 19:41 ` Neil Jerram 2005-09-23 9:54 ` Ludovic Courtès 2005-09-23 18:57 ` Neil Jerram 2005-09-26 8:49 ` Ludovic Courtès 2005-09-26 23:15 ` Kevin Ryde 2005-09-22 21:15 ` Kevin Ryde 2005-09-22 22:06 ` Kevin Ryde 2005-09-23 7:43 ` Ludovic Courtès 2005-09-23 23:54 ` Kevin Ryde 2005-09-26 8:35 ` Ludovic Courtès 2005-09-26 23:18 ` Kevin Ryde [not found] ` <87irwtqkop.fsf@laas.fr> [not found] ` <87slvog9sd.fsf@zip.com.au> [not found] ` <87wtkt9xyq.fsf_-_@laas.fr> [not found] ` <87hdbg4dl7.fsf@laas.fr> [not found] ` <87br1nakge.fsf@zip.com.au> [not found] ` <87hdbfnu9n.fsf@laas.fr> [not found] ` <87d5m2twaf.fsf@uni-dortmund.de> [not found] ` <878xwjb123.fsf@laas.fr> [not found] ` <874q76h9rh.fsf@zip.com.au> [not found] ` <87hdb5qogp.fsf@zagadka.de> [not found] ` <87zmovn4y5.fsf@zip.com.au> [not found] ` <87fyqn1gzy.fsf@laas.fr> [not found] ` <87br196yd8.fsf@zip.com.au> 2005-11-02 10:50 ` Socket API improvement, patch #6 Ludovic Courtès 2005-11-02 20:07 ` Kevin Ryde 2005-11-03 9:00 ` Ludovic Courtès
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).