david135 / mosh-scheme Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/mosh-scheme
License: Other
Automatically exported from code.google.com/p/mosh-scheme
License: Other
Ypsilon and Ikarus can deal with a single source file contains multiple
libraries and a top-level
program like below:
;;;; quux.ss
(library (foo)
(export f)
(import (rnrs))
(define f 0))
(library (bar)
(export g)
(import (rnrs))
(define g 1))
(import (rnrs) (foo) (bar))
;; top-level program goes here
...
;;; [eof]
Mosh now raises conditions for an above file:
Condition components:
1. &assertion
2. &who: expander
3. &message: "top-level program is missing an (import ---) clause"
4. &irritants: ()
A file of such the structure is very useful for daily kldgey programs. Could
mosh support such
the format of programs?
Original issue reported on code.google.com by [email protected]
on 21 Jan 2009 at 10:45
What steps will reproduce the problem?
In REPL,
mosh>@
1. &assertion
2. &who: "eval"
3. &message: "unbound variable"
4. &irritants: ASSERT failure Symbol.cpp:78: memcmp(savedName_, name_, text.size()) == 0
What is the expected output? What do you see instead?
`@' is not valid symbol. &lexical exception must be raised.
What version of the product are you using? On what operating system?
mosh-0.0.7 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 7 Dec 2008 at 6:18
What steps will reproduce the problem?
1. (infinite? 1+2i)
2. (infinite? (+ +inf.0 2i))
What is the expected output? What do you see instead?
#f and #t, but an error is raised
What version of the product are you using? On what operating system?
mosh checkout 963 (more or less), i686-pc-linux-gnu
Original issue reported on code.google.com by [email protected]
on 13 Jan 2009 at 12:33
Are there any plans for a socket interface in Mosh?
Original issue reported on code.google.com by [email protected]
on 28 Mar 2009 at 8:27
What steps will reproduce the problem?
1. see mosh.monaos.org/top.html
What is the expected output? What do you see instead?
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 2:22
[deleted issue]
Reported by kz.nishikawa, Today (14 hours ago)
This is error log.
$ grep -i error config.log
conftest.c:10:28: error: ac_nonexistent.h: No such file or directory
conftest.c:10:28: error: ac_nonexistent.h: No such file or directory
conftest.c:65: error: size of array 'test_array' is negative
Delete comment
Comment 1 by higepon, Today (14 hours ago)
Thanks.
What is your g++ --version and uname -ar
Status: Started
Delete comment
Comment 2 by kz.nishikawa, Today (10 hours ago)
Sorry, I've forgotten that. Here is it.
$ uname -ar
Linux ubuntu 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
GNU/Linux
$ g++ --version
g++ (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 2:38
What steps will reproduce the problem?
(+)
→
Error:
error : (+ " got too few argment")
zsh: bus error ./mosh ~/tmp/hoge.scm
(*)
→
Error:
error : (* " got too few argment")
zsh: bus error ./mosh ~/tmp/hoge.scm
What is the expected output? What do you see instead?
They must be 0 and 1, respectively.
What version of the product are you using? On what operating system?
Mosh 0.0.2
MacOSX 10.4.11
% uname -a
Darwin xxx 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007;
root:xnu-
792.25.20~1/RELEASE_I386 i386 i386
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 3:54
What steps will reproduce the problem?
mosh>(mod -123 10)
-3
mosh>(mod -123 -10)
-3
What is the expected output? What do you see instead?
Both of them must be 7 (See R6RS 11.7.3.1).
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Please provide any additional information below.
Now we lack div, div0, and mod0.
Original issue reported on code.google.com by [email protected]
on 20 May 2008 at 6:25
It would really help me in using Mosh if the
library search path could be extended by
a ":" separated list of directories from an
environment variable. I see that there is a
MOSH_LIB_PATH in the sources, but it looks
like it is not used yet?
Also, other Schemes like Ypsilon, Ikarus and
Larceny support selection of libraries using
an implementation specific file suffix. That is,
when the following file hierarchy exists:
<lib>/uriel/lang/compat.ikarus.sls
<lib>/uriel/lang/compat.larceny.sls
<lib>/uriel/lang/compat.ypsilon.sls
and we import "(uriel lang compat)" the
implementation loads its own file, ignoring
the others. Can Mosh support this with a
".mosh.sls" suffix?
Thanks.
Original issue reported on code.google.com by [email protected]
on 3 Jan 2009 at 6:37
What steps will reproduce the problem?
1. (define (foo n) (let loop ((n n)) (cond ((null? n)) (else (loop (cdr n))))))
What is the expected output?
expected #t
What do you see instead?
got #f
What version of the product are you using?
trunk (mosh-scheme-read-only)
On what operating system?
Linux ubuntu-core2 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008
i686 GNU/Linux
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Please provide any additional information below.
gambatte kudasai ^_-b
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 1:35
What steps will reproduce the problem?
(raise 1)
What is the expected output? What do you see instead?
On top-level:
Exception:
error in raise: unhandled exception has occurred
#<compound-condition #<record &assertion > #<record &who "record-rtd" >
#<record
&message "record required, but got 1" > #<record &irritants () > >
In REPL:
Condition components:
1. &assertion
2. &who: "record-rtd"
3. &message: "record required, but got 1"
4. &irritants: ()
These conditions are raised by the implementation, not by the user. I did raise
1, and it was not
handled anywhere, so the 1 should be handled by the top-level exception
handler, nonetheless,
&assertion condition was raised for violating argument assertion of record-rtd.
What version of the product are you using? On what operating system?
mosh rev. 991 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 29 Jan 2009 at 8:34
What steps will reproduce the problem?
1. configure
2. make
What is the expected output? What do you see instead?
When generating "psyntax.scmc" an error is raised:
gosh: "error": unbound variable: eq-hashtable-copy
What version of the product are you using? On what operating system?
i686-pc-linux-gnu mosh-911 gauche-0.8.14
Original issue reported on code.google.com by [email protected]
on 1 Jan 2009 at 4:24
What steps will reproduce the problem?
mosh>(let loop ((i (loop i)) (+ i 1))
-> infinite loop
^C
What is the expected output? What do you see instead?
Above expression is now expanded to:
(letrec ((loop (lambda (i) (+ i 1))))
(loop (loop i)))
It should be:
((letrec ((loop (lambda (i) (+ i 1))))
loop) (loop i)) => exception
(See also R6RS Appendix B.)
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 7:44
What steps will reproduce the problem?
Run the code below.
(import (rnrs))
(define v 0)
#| #|
|#
(define v 1)
|#
(display v)
(newline)
What is the expected output? What do you see instead?
0 should be displayed, but &syntax condition is raised.
Condition components:
1. &who: v
2. &message: "multiple definitions of identifier"
3. &syntax: form: v subform: #f
4. &trace: #<record stx >
ASSERT failure VM.cpp:1764: false
What version of the product are you using? On what operating system?
mosh trunk revision 875 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 5:28
hi
high memory usage while compiling psyntax.cpp (and it's still not finished
at 600M)
g++ -DHAVE_CONFIG_H -I. -I ./gc-7.1alpha3/include -I ./onig-5.7.0
-fomit-frame-pointer -D MONA_SCHEME -D USE_BOEHM_GC -Wall -D
MOSH_LIB_PATH="\"/usr/share/mosh\"" -O2 -march=i486 -O0 -MT
libpsyntax_a-psyntax.o -MD -MP -MF .deps/libpsyntax_a-psyntax.Tpo -c -o
libpsyntax_a-psyntax.o `test -f 'psyntax.cpp' || echo './'`psyntax.cpp
top - 22:37:53 up 2 days, 7:06, 0 users, load average: 3.54, 3.42, 3.27
Tasks: 115 total, 6 running, 109 sleeping, 0 stopped, 0 zombie
Cpu(s): 91.0%us, 7.6%sy, 1.3%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 900612k total, 878300k used, 22312k free, 6432k buffers
Swap: 0k total, 0k used, 0k free, 147456k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31762 root 20 0 556m 548m 2820 R 68.5 62.4 10:12.75 cc1plus
Original issue reported on code.google.com by [email protected]
on 29 Aug 2008 at 10:35
What steps will reproduce the problem?
Some of the examples in http://tips.lisp-
users.org/scheme/index.cgi?%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%aa%ad%e3%81%b
f%e6%9b%b8%e3%81%8d%e3%81%99%e3%82%8b (in Japanese) do not work.
What version of the product are you using? On what operating system?
mosh trunk revision 873 on MacOSX 10.4.11
Please provide any additional information below.
R6RS (4.2.6 Characters) says: "The #\newline notation is retained for backward
compatibility. Its
use is deprecated; #\linefeed should be used instead."
The output notation should follow this too.
Original issue reported on code.google.com by [email protected]
on 24 Dec 2008 at 7:37
Quoting from comp.lang.scheme:
From: William D Clinger
Subject: Re: definitions in the body of GUARD
Marco Maggi wrote:
> Ypsilon and Larceny allow definitions in the
> body of a GUARD...while Ikarus and Mosh disallow them.
If so, then that's a (minor) bug in Ikarus and Mosh.
> R6RS says nothing explicitly.
Untrue. R6RS library section 7.1 says the syntax for
guard is
(guard (<variable>
<cond clause> <cond clause> ...)
<body>)
R6RS section 11.3 says the syntax for <body> is
<definition> ... <expression> <expression> ...
So definitions are definitely allowed in the body
of a guard.
Original issue reported on code.google.com by [email protected]
on 2 Jan 2009 at 9:41
What steps will reproduce the problem?
1. ./configure
2. cd gc-7.1alpha3; ./configure --disable-shared
3. make
What is the expected output? What do you see instead?
Messages:
g++ -O2 -fomit-frame-pointer -D MONA_SCHEME -D USE_BOEHM_GC -Wall -D
MOSH_LIB_PATH="\"/usr/local/share/mosh\"" -o mosh.exe mosh-main.o
mosh-scheme.o mosh-read.o mosh-Port.o mosh-Regexp.o mosh-Symbol.o mosh-VM.o
mosh-freeproc.o ./gc-7.1alpha3/.libs/libgc.a ./onig-5.7.0/.libs/libonig.a
libcompiler.a
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEEC2EPKlRKS
2_[std::basic_string<long,
std::char_traits<long>, gc_allocator<long>
>::basic_string[not-in-charge](long const*, gc_allocator<long>
const&)]+0x18): undefined reference to `std::char_traits<long>::length(long
const*)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE12_S_cons
tructIPKlEEPlT_S8_RKS2_St20forward_iterator_tag[long*
std::basic_string<long, std::char_traits<long>, gc_allocator<long>
>::_S_construct<long const*>(long const*, long const*, gc_allocator<long>
const&, std::forward_iterator_tag)]+0xbf): undefined reference to
`std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE15_M_repl
ace_safeIPKlEERS3_N9__gnu_cxx17__normal_iteratorIPlS3_EESB_T_SC_[std::basic_stri
ng<long,
std::char_traits<long>, gc_allocator<long> >& std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_M_replace_safe<long
const*>(__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >, long const*,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >)]+0x8c): undefined reference
to `std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE15_M_repl
ace_safeIN9__gnu_cxx17__normal_iteratorIPlS3_EEEERS3_S8_S8_T_SA_[std::basic_stri
ng<long,
std::char_traits<long>, gc_allocator<long> >& std::basic_string<long,
std::char_traits<long>, gc_allocator<long>
>::_M_replace_safe<__gnu_cxx::__normal_iterator<long*,
std::basic_string<long, std::char_traits<long>, gc_allocator<long> > >
>(__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >)]+0x8c): undefined reference
to `std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE9_M_mutat
eEjjj[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_M_mutate(unsigned, unsigned,
unsigned)]+0x1ab): undefined reference to
`std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE9_M_mutat
eEjjj[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_M_mutate(unsigned, unsigned,
unsigned)]+0x1dd): undefined reference to
`std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE9_M_mutat
eEjjj[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_M_mutate(unsigned, unsigned,
unsigned)]+0x251): undefined reference to
`std::char_traits<long>::move(long*, long const*, unsigned)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE7replaceE
N9__gnu_cxx17__normal_iteratorIPlS3_EES7_jl[std::basic_string<long,
std::char_traits<long>, gc_allocator<long>
>::replace(__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >, unsigned, long)]+0x8b):
undefined reference to `std::char_traits<long>::assign(long*, unsigned, long)'
mosh-main.o:main.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE4_Rep8_M_
cloneERKS2_j[std::basic_string<long,
std::char_traits<long>, gc_allocator<long>
>::_Rep::_M_clone(gc_allocator<long> const&, unsigned)]+0xbc): undefined
reference to `std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-scheme.o:scheme.cpp:(.text+0x24b): undefined reference to
`std::char_traits<long>::compare(long const*, long const*, unsigned)'
mosh-scheme.o:scheme.cpp:(.text+0x512): undefined reference to
`std::char_traits<long>::compare(long const*, long const*, unsigned)'
mosh-scheme.o:scheme.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE12_S_
constructEjlRKS2_[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_S_construct(unsigned, long,
gc_allocator<long> const&)]+0xe1): undefined reference to
`std::char_traits<long>::assign(long*, unsigned, long)'
mosh-read.o:read.cpp:(.text+0x1797): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-read.o:read.cpp:(.text+0x1b94): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-read.o:read.cpp:(.text+0x2645): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-read.o:read.cpp:(.text+0x2aca): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-read.o:read.cpp:(.text+0x2e63): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-read.o:read.cpp:(.text+0x2ea4): more undefined references to
`std::char_traits<long>::assign(long&, long const&)' follow
mosh-Port.o:Port.cpp:(.text$_ZNKSbIlSt11char_traitsIlE12gc_allocatorIlEE4findElj
[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::find(long, unsigned)
const]+0x45): undefined reference to `std::char_traits<long>::find(long
const*, unsigned, long const&)'
mosh-Regexp.o:Regexp.cpp:(.text+0xc20): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-Regexp.o:Regexp.cpp:(.text+0xdd1): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-Regexp.o:Regexp.cpp:(.text$_ZNSbIlSt11char_traitsIlE12gc_allocatorIlEE12_S_
constructIN9__gnu_cxx17__normal_iteratorIPlS3_EEEES7_T_S9_RKS2_St20forward_itera
tor_tag[long*
std::basic_string<long, std::char_traits<long>, gc_allocator<long>
>::_S_construct<__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >
>(__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >,
__gnu_cxx::__normal_iterator<long*, std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > >, gc_allocator<long> const&,
std::forward_iterator_tag)]+0xf1): undefined reference to
`std::char_traits<long>::copy(long*, long const*, unsigned)'
mosh-VM.o:VM.cpp:(.text+0x757): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-VM.o:VM.cpp:(.text+0x2743): undefined reference to
`std::char_traits<long>::length(long const*)'
mosh-VM.o:VM.cpp:(.text+0x2791): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-VM.o:VM.cpp:(.text+0x8ed6): undefined reference to
`std::char_traits<long>::length(long const*)'
mosh-VM.o:VM.cpp:(.text+0x8fac): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-VM.o:VM.cpp:(.text+0x90cc): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-VM.o:VM.cpp:(.text$_ZStplIlSt11char_traitsIlE12gc_allocatorIlEESbIT_T0_T1_E
PKS4_RKS7_[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> > std::operator+<long,
std::char_traits<long>, gc_allocator<long> >(long const*,
std::basic_string<long, std::char_traits<long>, gc_allocator<long> >
const&)]+0x59): undefined reference to `std::char_traits<long>::length(long
const*)'
mosh-VM.o:VM.cpp:(.text$_ZNKSbIlSt11char_traitsIlE12gc_allocatorIlEE4findEPKljj[
std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::find(long const*, unsigned,
unsigned) const]+0x40): undefined reference to
`std::char_traits<long>::compare(long const*, long const*, unsigned)'
mosh-freeproc.o:freeproc.cpp:(.text+0x1678): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-freeproc.o:freeproc.cpp:(.text+0x3336): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-freeproc.o:freeproc.cpp:(.text+0x3893): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-freeproc.o:freeproc.cpp:(.text+0x3ac1): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-freeproc.o:freeproc.cpp:(.text+0x60aa): undefined reference to
`std::char_traits<long>::assign(long&, long const&)'
mosh-freeproc.o:freeproc.cpp:(.text+0x6860): more undefined references to
`std::char_traits<long>::assign(long&, long const&)' follow
libcompiler.a(libcompiler_a-compiler.o):compiler.cpp:(.text$_ZNSbIlSt11char_trai
tsIlE12gc_allocatorIlEE13_S_copy_charsEPlPKlS6_[std::basic_string<long,
std::char_traits<long>, gc_allocator<long> >::_S_copy_chars(long*, long
const*, long const*)]+0x24): undefined reference to
`std::char_traits<long>::copy(long*, long const*, unsigned)'
What version of the product are you using? On what operating system?
Mosh 0.0.2
Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]
Windows XP Professional SP2
% uname -a
CYGWIN_NT-5.1 XXXXX 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 1:15
Run the attached code. It creates a pipe, which consists of two binary
ports, and then transcodes both of them. This should create two textual
ports. Then it attempts to write to one port, and read from the other.
Two issues are visible here:
1. The textual ports, when printed, are named as "<binary-input-port
...>" and "<binary-output-port ...>", even though the "textual-port?"
predicate displays the correct result.
2. Attempts to read or write these ports will fail, claiming that the
port is closed.
Additionally, I have found that these ports work, after a fashion, when
used as arguments to the "spawn" procedure. The spawned process can write
to its (non-transcoded) port just fine, and "get-string-all" will return
all output, but attempts to use "get-line" or "get-char" on the output will
fail with the same error seen here.
I would suspect that the main issue here is the pseudo-close procedure. I
am not fully acquainted with the code, but it appears that the issue may be
a combination of the facts that all of the binary port "isClosed()"
procedures return true when it is closed *or* pseudo-closed,
"scheme::getCharEx()" and others in "PortProcedures.cpp" use the
"checkPortIsOpen" macro, which returns an error any time the port is
closed, and the TranscodedPort classes all pass their "isClosed()" calls to
their encapsulated ports.
This suspicion is further supported by the fact that "getStringAllEx()",
which works, *doesn't* contain a call to the "checkPortIsOpen" macro.
I would assume that this bug can be solved by adding another variable to
the transcoded port classes, initializing it to true, setting it false when
the close method is called, and returning that when the class's "isClosed"
method is called.
As for the display error, that also seems to be the result of excessive
delegation, where the transcoded port "toString" procedure simply calls
that of its encapsulated binary port. It is very confusing, and made
debugging significantly harder.
If I have time later today, I may try fixing these errors and see if it works.
Original issue reported on code.google.com by [email protected]
on 29 Mar 2009 at 7:51
Attachments:
What steps will reproduce the problem?
1. how to quit repl
2.
3.
What is the expected output? What do you see instead?
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 20 May 2008 at 11:27
What steps will reproduce the problem?
1. mosh>((define (g n) (if (= n 0) 1 (* n (g (- n 1))))) 5)
2.
3.
What is the expected output? What do you see instead?
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 20 May 2008 at 11:21
What steps will reproduce the problem?
1. ./configure
2. make
What is the expected output? What do you see instead?
I see the following:
Making all in .
make[2]: Entering directory `/SPACE/DOWNLOADS/SCHEME/mosh-0.0.7'
g++ -DHAVE_CONFIG_H -I. -I ./gc-7.1alpha3/include -I ./onig-5.7.0 -O3 -D
MONA_SCHEME -D USE_BOEHM_GC -Wall -D
MOSH_LIB_PATH="\"/SPACE/SOFTWARE/SCHEME/mosh007/share/mosh\"" -g
-fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -Wall -DDEBUG_VERSION -MT
mosh-read.o -MD -MP -MF .deps/mosh-read.Tpo -c -o mosh-read.o `test -f
'read.cpp' || echo './'`read.cpp
read.cpp: In function `scheme::Object read_char(ScmPort*, ScmReadContext*)':
read.cpp:1311: error: `u_int32_t' undeclared (first use this function)
read.cpp:1311: error: (Each undeclared identifier is reported only once for
each function it appears in.)
read.cpp:1311: error: expected `;' before "namelen"
read.cpp:1325: error: `namelen' undeclared (first use this function)
read.cpp:1326: error: `namesize' undeclared (first use this function)
make[2]: *** [mosh-read.o] Error 1
make[2]: Leaving directory `/SPACE/DOWNLOADS/SCHEME/mosh-0.0.7'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/SPACE/DOWNLOADS/SCHEME/mosh-0.0.7'
make: *** [all] Error 2
What version of the product are you using? On what operating system?
mosh 0.0.7
SunOS antonio 5.11 snv_101b i86pc i386 i86pc Solaris
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 9 Mar 2009 at 9:00
What steps will reproduce the problem?
mosh>(/ 2)
2
mosh>(/ 3)
3
mosh>(/ 0)
0
What is the expected output? What do you see instead?
(/ x) should equal to (/ 1 x). (/ 0) will have to raise &assertion exception.
Original issue reported on code.google.com by [email protected]
on 20 May 2008 at 5:44
What steps will reproduce the problem?
1. ./configure
2. make
What is the expected output? What do you see instead?
error message
/usr/include/c++/4.0.0/bits/stl_tree.h:367: error: no matching function for
call to ‘gc_allocator<std::pair<const ucs4char*, scheme::Object>
>::construct(std::pair<const ucs4char* const, scheme::Object>*, const
std::pair<const ucs4char* const, scheme::Object>&)’
./gc-7.1alpha3/include/gc_allocator.h:138: note: candidates are: void
gc_allocator<GC_Tp>::construct(GC_Tp*, const GC_Tp&) [with GC_Tp =
std::pair<const ucs4char*, scheme::Object>]
make[2]: *** [libcompiler_a-compiler.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
What version of the product are you using? On what operating system?
0.0.1. mac osx 10.4.11 intel
Please provide any additional information below.
Delete comment
Comment 1 by hira.tara, Today (14 hours ago)
Same error occurred.
OS Version -> Mac OS X 10.5.2 (intel)
Delete comment
Comment 2 by higepon, Today (14 hours ago)
(No comment was entered for this change.)
Status: Started
Owner: higepon
Delete comment
Comment 3 by higepon, Today (14 hours ago)
Thanks i will check on OSX
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 2:37
What steps will reproduce the problem?
1. configure
2. make
What is the expected output? What do you see instead?
Everything should be compiled, but I get an error
saying that my libtool version (2.2.4) it too new,
and I should rebuild the build scripts.
What version of the product are you using? On what operating system?
mosh checkout 908
Please provide any additional information below.
i686-pc-linux-gnu
Can you publish a script to rebuild the whole set
of configuration and building scripts?
Original issue reported on code.google.com by [email protected]
on 1 Jan 2009 at 12:59
What steps will reproduce the problem?
(define (loop a) (
(begin
(print a)
(loop (+ a 1))
)
))
(loop 1)
What is the expected output? What do you see instead?
expect stack overflow
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 5:26
What steps will reproduce the problem?
% mosh
mosh>(import (mosh process))
#<unspecified>
mosh>(spawn "hoge" '())
1573
mosh>
Unhandled exception:
Condition components:
1. &assertion
2. &who: "%exec"
3. &message: "failed"
4. &irritants: ("hoge" "No such file or directory")
% ps
PID TT STAT TIME COMMAND
...
1573 p5 R 0:26.20 mosh
% kill 1573
What version of the product are you using? On what operating system?
Mosh rev. 1194 on MacOSX 10.4.11.
Please provide any additional information below.
The zombie process seems to be going to guzzle CPU.
Original issue reported on code.google.com by [email protected]
on 19 Feb 2009 at 11:08
What steps will reproduce the problem?
What is the expected output? What do you see instead?
The code:
(import (rnrs))
#!r6rs (display 0) (newline)
should display 0, but displays nothing.
What version of the product are you using? On what operating system?
mosh trunk revision 875 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 5:37
What steps will reproduce the problem?
#!r6rs
#/a/ ; => #/a/
What is the expected output? What do you see instead?
In #!r6rs mode, lexical syntax violates R6RS chapter 4 must be raise &lexical
exception.
What version of the product are you using? On what operating system?
Mosh trunk rev. 1450 on MacOSX 10.5.6.
Please provide any additional information below.
In Ikarus, extended syntax is available by default and is turned on by #!ikarus
token.
When #!r6rs is read, syntax extensions are turned off.
Original issue reported on code.google.com by [email protected]
on 28 Mar 2009 at 5:12
What is the expected output? What do you see instead?
Internal defines must not be replaced with letrec but letrec* (the procedure
internal-define->letrec
in compiler.scm).
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 8:51
What steps will reproduce the problem?
1.
2.
3.
What is the expected output? What do you see instead?
Please use labels and text to provide additional information.
http://d.hatena.ne.jp/cranebird/20081106/1225928329
Original issue reported on code.google.com by [email protected]
on 6 Nov 2008 at 1:52
What steps will reproduce the problem?
1. test failed
What is the expected output? What do you see instead?
test ((rxmatch-start (rxmatch #/¥d+/ ”a345a”))), expects 1 ===> NG got #f
Please use labels and text to provide additional information.
mosh 0.0.2 を、Mac OS X 10.4.11 環境でコンパイルしました。gcc
4.0.1(Apple
Computer, Inc build 5367)です。実行ファイル mosh
はできていますが、
./mosh -t
を実行すると、以下のエラー?がでました。良くわかって��
�ませんが一
応ご報告です。
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 11:27
What steps will reproduce the problem?
(import (rnrs))
(display #;#;1 2 3) (newline)
What is the expected output? What do you see instead?
Ikarus and Ypsilon display 3. Mosh raises the conditions below.
1. &lexical
2. &who: "read"
3. &message: "(): syntax error near [1 2 3)\n] at <string port>:0. "
4. &irritants: ()
What version of the product are you using? On what operating system?
mosh trunk rev. 934 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 6 Jan 2009 at 7:29
What steps will reproduce the problem?
1. <eof> appears with Ctrl-D
2.
3.
What is the expected output? What do you see instead?
exit REPL
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 20 May 2008 at 5:29
What steps will reproduce the problem?
What is the expected output? What do you see instead?
map, for-each, for-all, exists, fold-right, and fold-left take lists unequal in
length as its
arguments.
(map cons '(1) '(1 2)) => ((1 . 1))
(for-each + '(1) '(1 2)) => #f
(for-all = '(1) '(1 2)) => #t
(exists = '(1) '(1 2)) => #t
(fold-right list '() '(1) '(1 2)) => (1 1 ())
(fold-left list '() '(1) '(1 2)) => (() 1 1)
Their argument lists should all have the same length, so &assertion should be
raised if there are
no valid reason.
What version of the product are you using? On what operating system?
mosh trunk 881 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 26 Dec 2008 at 7:57
What steps will reproduce the problem?
(with-input-from-file "foo" (lambda (values 1 2))
=> 1
What is the expected output? What do you see instead?
They should return 1 and 2 (multiple values). They are not aware of multiple
values, must use let-
values instead of let1.
What version of the product are you using? On what operating system?
mosh-0.0.7 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 5 Dec 2008 at 3:52
Reported by yuumi33, Today (13 hours ago)
エラーメッセージ
g++ -DHAVE_CONFIG_H -I. -I ./gc-7.1alpha3/include -I ./onig-5.7.0
-fomit-frame-pointer -D MONA_SCHEME -D USE_BOEHM_GC -Wall -D
MONAR_LIB_PATH="\"/usr/local/share/monar\"" -MT libcompiler_a-compiler.o
-MD -MP -MF .deps/libcompiler_a-compiler.Tpo -c -o libcompiler_a-compiler.o
`test -f 'compiler.cpp' || echo './'`compiler.cpp
/usr/include/c++/4.0.0/bits/stl_tree.h: In member function
‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare,
_Alloc>::_M_create_node(const _Val&) [with _Key = const ucs4char*, _Val =
std::pair<const ucs4char* const, scheme::Object>, _KeyOfValue =
std::_Select1st<std::pair<const ucs4char* const, scheme::Object> >,
_Compare = scheme::ltstr, _Alloc = gc_allocator<std::pair<const ucs4char*,
scheme::Object> >]’:
/usr/include/c++/4.0.0/bits/stl_tree.h:789: instantiated from ‘typename
std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare,
_Alloc>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*,
const _Val&) [with _Key = const ucs4char*, _Val = std::pair<const ucs4char*
const, scheme::Object>, _KeyOfValue = std::_Select1st<std::pair<const
ucs4char* const, scheme::Object> >, _Compare = scheme::ltstr, _Alloc =
gc_allocator<std::pair<const ucs4char*, scheme::Object> >]’
/usr/include/c++/4.0.0/bits/stl_tree.h:903: instantiated from ‘typename
std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare,
_Alloc>::insert_unique(std::_Rb_tree_iterator<_Val>, const _Val&) [with
_Key = const ucs4char*, _Val = std::pair<const ucs4char* const,
scheme::Object>, _KeyOfValue = std::_Select1st<std::pair<const ucs4char*
const, scheme::Object> >, _Compare = scheme::ltstr, _Alloc =
gc_allocator<std::pair<const ucs4char*, scheme::Object> >]’
/usr/include/c++/4.0.0/bits/stl_map.h:384: instantiated from ‘typename
std::_Rb_tree<_Key, std::pair<const _Key, _Tp>,
std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, _Alloc>::iterator
std::map<_Key, _Tp, _Compare, _Alloc>::insert(typename std::_Rb_tree<_Key,
std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >,
_Compare, _Alloc>::iterator, const std::pair<const _Key, _Tp>&) [with _Key
= const ucs4char*, _Tp = scheme::Object, _Compare = scheme::ltstr, _Alloc =
gc_allocator<std::pair<const ucs4char*, scheme::Object> >]’
/usr/include/c++/4.0.0/bits/stl_map.h:339: instantiated from ‘_Tp&
std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key =
const ucs4char*, _Tp = scheme::Object, _Compare = scheme::ltstr, _Alloc =
gc_allocator<std::pair<const ucs4char*, scheme::Object> >]’
Symbol.h:78: instantiated from here
/usr/include/c++/4.0.0/bits/stl_tree.h:367: error: no matching function for
call to ‘gc_allocator<std::pair<const ucs4char*, scheme::Object>
>::construct(std::pair<const ucs4char* const, scheme::Object>*, const
std::pair<const ucs4char* const, scheme::Object>&)’
./gc-7.1alpha3/include/gc_allocator.h:138: note: candidates are: void
gc_allocator<GC_Tp>::construct(GC_Tp*, const GC_Tp&) [with GC_Tp =
std::pair<const ucs4char*, scheme::Object>]
make[2]: *** [libcompiler_a-compiler.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
環境:
Mac OS x 10.5.2
i686-apple-darwin9-g++-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 2:39
What steps will reproduce the problem?
(import (rnrs))
(define-record-type a
(sealed #t))
(define-record-type b
(parent a))
What is the expected output? What do you see instead?
On Ikarus,
Unhandled exception:
Condition components:
1. &assertion
2. &who: make-record-type-descriptor
3. &message: "cannot extend sealed parent"
4. &irritants: (#<record-type-descriptor a>)
Ypsilon also raises similar condition.
Mosh silently defines the record type b and exits.
What version of the product are you using? On what operating system?
Mosh rev. 1103 on MacOSX 10.4.11
Please provide any additional information below.
An expression (display b) raises a condition below.
Condition components:
1. &who: b
2. &message: "invalid expression"
3. &syntax:
form: b
subform: #f
Exception:
error in raise: returned from non-continuable exception
Stack trace:
1. throw: <subr>
2. (raise c): compiler-with-library.scm:3078
3. apply: <subr>
Original issue reported on code.google.com by [email protected]
on 30 Jan 2009 at 10:51
What steps will reproduce the problem?
Run this code.
(import (rnrs))
(define cont #f)
(define (f)
(call/cc
(lambda (break)
(call-with-port (open-string-input-port "abc")
(lambda (p)
(let loop ((c (read-char p)))
(cond ((eof-object? c)
(newline))
(else
(display c)
(call/cc
(lambda (k)
(set! cont k)
(break)))
(loop (read-char p))))))))))
(f)
(cont)
(cont)
(cont)
What is the expected output? What do you see instead?
"abc\n" should be displayed, but a bus error occurred.
R6RS says:
If proc does not return, port is not closed automatically, except perhaps when
it is possible to
prove that port will never again be used for an input or output operation.
Therefore, the port must not be closed when escaped from dynamic extent of
proc, as current
definition does:
(define (call-with-port p proc)
(dynamic-wind
(lambda () #t)
(lambda () (proc p))
(lambda () (close-port p))))
What version of the product are you using? On what operating system?
mosh-0.0.7 on MacOSX 10.4.11
Original issue reported on code.google.com by [email protected]
on 2 Dec 2008 at 7:14
プロファイラを無効にすると必要な関数も無効にされてい��
�ようです。
Original issue reported on code.google.com by [email protected]
on 19 Jul 2008 at 1:56
What steps will reproduce the problem?
mosh>(when #t)
#t
mosh>(when #f)
#f
mosh>(unless #t)
#f
mosh>(unless #f)
#t
What is the expected output? What do you see instead?
They have to have at least one expression as their body (R6RS Standard
Libraries: Chapter 5).
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 6:55
I understand that it is not a priority, but it helps while debugging (and
it is needed by a SRFI I am interested in). Even a basic version would do.
Original issue reported on code.google.com by [email protected]
on 6 Jan 2009 at 12:05
What steps will reproduce the problem?
mosh>(do ((i 0)) ((zero? i) (print 1) (print 2) (print 3)))
1
What is the expected output? What do you see instead?
It should print
1
2
3.
<expression> part of do is implicit begin (See R6RS Standard Libraries: Chapter
5).
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 7:17
What steps will reproduce the problem?
mosh>(case 1 ((2 1) 0))
#f
mosh>(case 2 ((2 1) 0))
0
What is the expected output? What do you see instead?
The first one also must return 0 (<datum>(s) other than the first is ignored?).
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 8:35
In the library (mosh ffi), the macro "c-function" is exported, but not the
corresponding "make-c-function". This action gains some small amount of
syntactic clarity by removing three single quotes and a list, but does so
at the expense of usability. Since "c-function" quotes its input, simple
use cases such as "(make-c-function libm (symbol->string "sin") 'double
'(double))" become impossible.
While this issue does not directly impact use of the library for loading
trivial functions, it makes life difficult for users who wish to implement
simple abstractions on top of it, or dynamically generate function names.
Specifically, it is incompatible with the FFI semantics of three major R6RS
implementations (Ikarus, Larceny, and MzScheme), and hinders the
development of portable abstraction layers.
This issue can be worked around simply by reimplementing "make-c-function"
where it is needed, but as it can be solved simply by adding the function
to the exports list, the more flexible and less redundant solution is
probably best.
Original issue reported on code.google.com by [email protected]
on 22 Mar 2009 at 12:14
What steps will reproduce the problem?
1. ./configure
2. make
What is the expected output? What do you see instead?
At the configuration step:
config.status: executing libtool commands
I get:
sed: can't read ./ltmain.sh: No such file or directory
and then other errors about missing "libtoolT". The configuration goes on,
and when I start make I get:
./libtool: line 463: CDPATH: command not found
and then an error about libtool 2.2.6 being too new (we already discussed
this).
What version of the product are you using? On what operating system?
mosh checkout 959 i686-pc-linux-gnu
Original issue reported on code.google.com by [email protected]
on 12 Jan 2009 at 8:19
What steps will reproduce the problem?
mosh>(let ((else #f)) (cond (else 0)))
0
What is the expected output? What do you see instead?
It must return unspecified values.
What version of the product are you using? On what operating system?
Mosh R6RS scheme interpreter, version 0.0.3
Original issue reported on code.google.com by [email protected]
on 24 May 2008 at 7:59
Reported by dico.leque.comicron, Today (94 minutes ago)
What steps will reproduce the problem?
1. ./configure
2. make
Error Messages:
*** Warning: This system can not link to static lib archive ./libgc.la.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
rm -fr .libs/libcord.dll.a
gcc -shared cord/.libs/cordbscs.o cord/.libs/cordprnt.o cord/.libs/cordtest
.o cord/.libs/cordxtra.o -o .libs/cygcord-1.dll -Wl,--enable-auto-image-ba
se -Xlinker --out-implib -Xlinker .libs/libcord.dll.a
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x25e): undefined reference to `_GC_
malloc'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x35a): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x3f8): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x4af): undefined reference to `_GC_
malloc'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x5e2): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x648): undefined reference to `_GC_
malloc'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x6eb): undefined reference to `_GC_
malloc'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x7bb): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordbscs.o:cordbscs.c:(.text+0x8cc): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordprnt.o:cordprnt.c:(.text+0x4da): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordprnt.o:cordprnt.c:(.text+0x655): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordtest.o:cordtest.c:(.text+0xd9f): undefined reference to `_GC_
add_roots'
cord/.libs/cordtest.o:cordtest.c:(.text+0xda4): undefined reference to `_GC_
gcollect'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0x4c): undefined reference to
`_GC_malloc_atomic'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0x674): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0x708): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0xcae): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0xf5a): undefined reference to `_GC_
malloc_atomic'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0xf76): undefined reference to `_GC_
call_with_alloc_lock'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0x1026): undefined reference to `_GC
_malloc'
cord/.libs/cordxtra.o:cordxtra.c:(.text+0x1072): undefined reference to `_GC
_register_finalizer'
Creating library file: .libs/libcord.dll.a
collect2: ld returned 1 exit status
make[3]: *** [libcord.la] Error 1
What version of the product are you using? On what operating system?
Windows XP Professional SP2
% uname -a
CYGWIN_NT-5.1 XXXXX 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
Original issue reported on code.google.com by [email protected]
on 14 May 2008 at 2:40
The following test for AND-LET* fails with mosh-930, but the same code
works fine with Ypsilon, Ikarus and Larceny. The last LET form should
return #f.
(import (rnrs))
(define-syntax and-let*
(lambda (stx)
(define (get-id c)
(syntax-case c () [(var expr) #'var] [_ #f]))
(syntax-case stx ()
[(_ (clause* ...) body* ...)
(for-all identifier? (filter values (map get-id #'(clause* ...))))
#'(and-let*-core #t (clause* ...) body* ...)])))
(define-syntax and-let*-core
(lambda (stx)
(syntax-case stx ()
[(kw _ ([var expr] clause* ...) body* ...)
#'(let ([var expr])
(if var
(kw var (clause* ...) body* ...)
#f))]
[(kw _ ([expr] clause* ...) body* ...)
#'(let ([t expr])
(if t
(kw t (clause* ...) body* ...)
#f))]
[(kw _ (id clause* ...) body* ...)
(or (identifier? #'id)
(syntax-violation #f "invalid clause" stx #'id))
#'(if id
(kw id (clause* ...) body* ...)
#f)]
[(kw last () body* ...)
(if (positive? (length #'(body* ...)))
#'(begin body* ...)
#'last)])))
(let ((x #f))
(and-let* (x)
(+ x 1)))
Original issue reported on code.google.com by [email protected]
on 6 Jan 2009 at 12:17
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.