unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GNU Guile 1.8.3 released
@ 2007-10-16 18:54 Ludovic Courtès
  2007-10-17 10:29 ` Puneet
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2007-10-16 18:54 UTC (permalink / raw)
  To: guile-devel; +Cc: guile-user

We are pleased to announce GNU Guile release 1.8.3.  This is the next
maintenance release for the 1.8 stable series.

You can find it here:

  ftp://ftp.gnu.org/gnu/guile/guile-1.8.3.tar.gz
  SHA1 checksum: 26cf7b70d4caff8fe2a5fbcc363f2457bc591c2b

A GPG detached signature of the package is available at:

  ftp://ftp.gnu.org/gnu/guile/guile-1.8.3.tar.gz.sig

The Guile web page is located at http://www.gnu.org/software/guile,
and among other things, it contains a link to the Guile FAQ and
pointers to the mailing lists.

Guile is an interpreter for the Scheme programming language, with
support for many SRFIs, packaged for use in a wide variety of
environments.  In addition to implementing the R5RS Scheme standard,
Guile includes a module system, full access to POSIX system calls,
networking support, multiple threads, dynamic linking, a foreign
function call interface, and powerful string processing.

Guile can run interactively or as a script interpreter, and is also
packaged as a library so that applications can easily incorporate a
complete Scheme interpreter.  An application can use Guile as an
extension language, a clean and powerful configuration language, or as
multi-purpose "glue" to connect primitives provided by the
application.  It is easy to call Scheme code from C code and vice
versa.  Applications can add new functions, data types, control
structures, and even syntax to Guile, to create a domain-specific
language tailored to the task at hand.

This is primarily a bugfix release.  Here are the highlights, taken from
the `NEWS' file:

  - New modules (see the manual for details)

   - `(srfi srfi-35)'
   - `(srfi srfi-37)'

  - Bugs fixed

   - The `(ice-9 slib)' module now works as expected
   - Expressions like "(set! 'x #t)" no longer yield a crash
   - Warnings about duplicate bindings now go to stderr
   - A memory leak in `make-socket-address' was fixed
   - Alignment issues (e.g., on SPARC) in network routines were fixed
   - A threading issue that showed up at least on NetBSD was fixed
   - Build problems on Solaris and IRIX fixed

  - Implementation improvements

   - The reader is now faster, which reduces startup time
   - Procedures returned by `record-accessor' and `record-modifier' are faster


Any bugs found in this release will be addressed by further bugfix
releases numbered 1.8.*.

You can follow Guile development in CVS and on the Guile mailing lists
(see ANON-CVS and HACKING).  Guile builds from the development branch
of CVS will have version number 1.9.0.

Guile versions with an odd middle number, e.g., 1.9.*, are unstable
development versions.  Even middle numbers indicate stable versions.
This has been the case since the 1.3.* series.

Please send bug reports to `bug-guile@gnu.org'.


Ludovic Courtès, on behalf of the Guile team.



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-16 18:54 GNU Guile 1.8.3 released Ludovic Courtès
@ 2007-10-17 10:29 ` Puneet
  2007-10-17 18:06   ` Neil Jerram
  2007-10-17 22:05   ` Ludovic Courtès
  0 siblings, 2 replies; 8+ messages in thread
From: Puneet @ 2007-10-17 10:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

[-- Attachment #1: Type: text/plain, Size: 1836 bytes --]

Greetings

  Let me first express my gratitude for the continued development of
Guile. Speed improvements in the new version are noticeable.

  I have just compiled the new guile version. It all works fine, but I
am facing a peculiar problem with my application. There was no such
problem with the previous version of guile. Looks like there is some
small glitch in the new scheme reader/parser.

  Let me first explain what I am trying to do in my application. I am
using the sockets to open a TCP/IP port. Then I attach a top-repl to
it and wait for guile commands over the TCP. I am attaching the log of
my interactive sessions (one where guile is launched and the telnet
session to feed guile commands). Please let me know if you need any
other information to replicate the bug or to debug.

Many thanks and Regards
Puneet




########## Guile session -- serv.scm file is attached to the email

$ guile --version
Guile 1.8.3
Copyright (c) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007 Free Software Foundation
Guile may be distributed under the terms of the GNU General Public Licence;
certain other uses are permitted as well.  For details, see the file
`COPYING', which is included in the Guile distribution.
There is no warranty, to the extent permitted by law.
$ guile serv.scm
071017 15:40:45: Opening connection from 127.0.0.1 at port 34196



########## Telnet Session on same machine but different terminal

$ telnet localhost 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
guile> (define a 'foo)
guile> a
}#ROR: Unbound variable: #{a\
ABORT: (unbound-variable)
guile> (use-modules (ice-9 pretty-print))
guile> (pretty-print '(1 2 3))
(1 2 3)
guile> (pretty-print
'(1 2 3))
}#ROR: Unbound variable: #{pretty-print\
ABORT: (unbound-variable)
guile> (pretty-print a)
foo
guile>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: serv.scm --]
[-- Type: text/x-scheme; name="serv.scm", Size: 2264 bytes --]

(define-module (txc utils serv)
  #:use-module (ice-9 threads)
  #:use-module (ice-9 format)
  #:export     (start-repl
                exit-repl
                start-repl-no-thread))

(define (server-report action conn p)
  (display (strftime "%y%m%d %H:%M:%S: " (localtime (current-time))) p)
  (display action p)
  (display " connection from " p)
  (display (inet-ntoa (vector-ref conn 1)) p)
  (display " at port " p)
  (display (vector-ref conn 2) p)
  (newline p))

(define user-repl-interactive-flag #f)

(define (start-repl server-port)
  (let ((o (current-output-port))
	(port (socket AF_INET SOCK_STREAM 0)))
    (setsockopt port SOL_SOCKET SO_REUSEADDR 1)
    (bind port AF_INET INADDR_ANY server-port)
    (listen port 10)			; Queue up to 10 requests.
    (select (list port) '() '())
    (set! user-repl-interactive-flag #t)
    (let ((p (accept port)))
      (begin-thread
       (server-report "Opening" (cdr p) o)
       (server-repl (car p))
       (server-report "Closing" (cdr p) o)
       (close-port (car p)))
      (while user-repl-interactive-flag
        (usleep 1000)))))

(define exit-repl
  (lambda ()
    (set! user-repl-interactive-flag #f)
    (exit)))

(define (start-repl-no-thread server-port)
  (let ((o (current-output-port))
	(port (socket AF_INET SOCK_STREAM 0)))
    (setsockopt port SOL_SOCKET SO_REUSEADDR 1)
    (bind port AF_INET INADDR_ANY server-port)
    (listen port 10)			; Queue up to 10 requests.
    (select (list port) '() '())
    (set! user-repl-interactive-flag #t)
    (let ((p (accept port)))
      (server-report "Opening" (cdr p) o)
      (server-repl (car p))
      (server-report "Closing" (cdr p) o)
      (close-port (car p)))
      ))

;; As we are not running a Guile shell and we run things by way of
;; shells only, it is perfectly fine to not revert to the original
;; input/output ports.
(define (server-repl p)
;;   (let ((i-port (current-input-port))
;;         (o-port (current-output-port))
;;         (e-port (current-error-port)))
    (set-current-input-port p)
    (set-current-output-port p)
    (set-current-error-port p)
    (top-repl)
;;     (set-current-input-port i-port)
;;     (set-current-output-port o-port)
;;     (set-current-error-port e-port))
    )
    
(start-repl 12345)

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 10:29 ` Puneet
@ 2007-10-17 18:06   ` Neil Jerram
  2007-10-17 21:14     ` Neil Jerram
  2007-10-17 22:05   ` Ludovic Courtès
  1 sibling, 1 reply; 8+ messages in thread
From: Neil Jerram @ 2007-10-17 18:06 UTC (permalink / raw)
  To: Puneet; +Cc: Ludovic Courtès, guile-devel

Puneet <schemer@gmail.com> writes:

> $ telnet localhost 12345
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.
> guile> (define a 'foo)
> guile> a
> }#ROR: Unbound variable: #{a\
> ABORT: (unbound-variable)

FWIW: it looks like this problem is to do with not stripping trailing
end-of-line whitespace characters (in particular, probably Ctrl-M)
from read symbol names.

From http://unixhelp.ed.ac.uk/CGI/man-cgi?telnet, it looks like telnet
by default sends <CR><NUL> between each line.  Does it help if you use
the telnet command "toggle crlf", to tell it to send <CR><LF> instead?

(Note that the latter is only a possible workaround.  Guile should
handle the default telnet behaviour too, in my opinion.)

Regards,
        Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 18:06   ` Neil Jerram
@ 2007-10-17 21:14     ` Neil Jerram
  2007-10-17 21:30       ` Neil Jerram
  0 siblings, 1 reply; 8+ messages in thread
From: Neil Jerram @ 2007-10-17 21:14 UTC (permalink / raw)
  To: Puneet; +Cc: Ludovic Courtès, guile-devel

Neil Jerram <neil@ossau.uklinux.net> writes:

> Puneet <schemer@gmail.com> writes:
>
>> $ telnet localhost 12345
>> Trying 127.0.0.1...
>> Connected to localhost.
>> Escape character is '^]'.
>> guile> (define a 'foo)
>> guile> a
>> }#ROR: Unbound variable: #{a\
>> ABORT: (unbound-variable)
>
> FWIW: it looks like this problem is to do with not stripping trailing
> end-of-line whitespace characters (in particular, probably Ctrl-M)
> from read symbol names.

With current CVS HEAD:

guile> (string->list (symbol->string (with-input-from-string "hello\r" read)))
(#\h #\e #\l #\l #\o #\cr)



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 21:14     ` Neil Jerram
@ 2007-10-17 21:30       ` Neil Jerram
  2007-10-17 22:10         ` Ludovic Courtès
  2007-10-18  6:06         ` Puneet
  0 siblings, 2 replies; 8+ messages in thread
From: Neil Jerram @ 2007-10-17 21:30 UTC (permalink / raw)
  To: Puneet; +Cc: Ludovic Courtès, guile-devel

Neil Jerram <neil@ossau.uklinux.net> writes:

> With current CVS HEAD:
>
> guile> (string->list (symbol->string (with-input-from-string "hello\r" read)))
> (#\h #\e #\l #\l #\o #\cr)

The following change fixes this for me:

guile> (string->list (symbol->string (with-input-from-string "hello\r" read)))
(#\h #\e #\l #\l #\o)

Can you patch your Guile 1.8.3 and confirm whether it works for you
too?

Regards,
     Neil

--- libguile/read.c	3 Sep 2007 16:58:19 -0000	1.127
+++ libguile/read.c	17 Oct 2007 21:25:02 -0000
@@ -150,7 +150,7 @@
 /* `isblank' is only in C99.  */
 #define CHAR_IS_BLANK_(_chr)					\
   (((_chr) == ' ') || ((_chr) == '\t') || ((_chr) == '\n')	\
-   || ((_chr) == '\f'))
+   || ((_chr) == '\f') || ((_chr) == '\r'))
 
 #ifdef MSDOS
 # define CHAR_IS_BLANK(_chr)			\



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 10:29 ` Puneet
  2007-10-17 18:06   ` Neil Jerram
@ 2007-10-17 22:05   ` Ludovic Courtès
  1 sibling, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2007-10-17 22:05 UTC (permalink / raw)
  To: guile-devel; +Cc: Puneet

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

Hello,

Puneet <schemer@gmail.com> writes:

>   I have just compiled the new guile version. It all works fine, but I
> am facing a peculiar problem with my application. There was no such
> problem with the previous version of guile. Looks like there is some
> small glitch in the new scheme reader/parser.

I apologize for this regression.

Thanks to Neil's hint, I just committed a fix that reinstates CR (ASCII
0x0d) as a token delimiter, along with a test case.  However, the patch
won't appear until the next 1.8 release, which means you'd probably have
to wait a couple of months or so (unless such critical bugs affecting
many users are found...).

In the meantime, you can either apply the attached patch to 1.8.3
(running "patch -p1 < the-patch.diff" in the source directory), or
follow Neil's suggestion regarding telnet.  Let us know if it works for
you.

Thanks,
Ludovic.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: The patch --]
[-- Type: text/x-patch, Size: 359 bytes --]

--- orig/libguile/read.c
+++ mod/libguile/read.c
@@ -150,7 +150,7 @@ static SCM *scm_read_hash_procedures;
 /* `isblank' is only in C99.  */
 #define CHAR_IS_BLANK_(_chr)					\
   (((_chr) == ' ') || ((_chr) == '\t') || ((_chr) == '\n')	\
-   || ((_chr) == '\f'))
+   || ((_chr) == '\f') || ((_chr) == '\r'))
 
 #ifdef MSDOS
 # define CHAR_IS_BLANK(_chr)			\

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 21:30       ` Neil Jerram
@ 2007-10-17 22:10         ` Ludovic Courtès
  2007-10-18  6:06         ` Puneet
  1 sibling, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2007-10-17 22:10 UTC (permalink / raw)
  To: guile-devel

Hi,

Neil Jerram <neil@ossau.uklinux.net> writes:

> Can you patch your Guile 1.8.3 and confirm whether it works for you
> too?

Oh, I reached the same conclusion on my side, but with a slight delay it
seems.  ;-)

Thanks!

Ludovic.



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: GNU Guile 1.8.3 released
  2007-10-17 21:30       ` Neil Jerram
  2007-10-17 22:10         ` Ludovic Courtès
@ 2007-10-18  6:06         ` Puneet
  1 sibling, 0 replies; 8+ messages in thread
From: Puneet @ 2007-10-18  6:06 UTC (permalink / raw)
  To: Neil Jerram; +Cc: Ludovic Courtès, guile-devel

> Can you patch your Guile 1.8.3 and confirm whether it works for you
> too?

It does. Thanks.


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-10-18  6:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-16 18:54 GNU Guile 1.8.3 released Ludovic Courtès
2007-10-17 10:29 ` Puneet
2007-10-17 18:06   ` Neil Jerram
2007-10-17 21:14     ` Neil Jerram
2007-10-17 21:30       ` Neil Jerram
2007-10-17 22:10         ` Ludovic Courtès
2007-10-18  6:06         ` Puneet
2007-10-17 22:05   ` 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).