Giter Club home page Giter Club logo

sagittarius-scheme's People

Watchers

 avatar

sagittarius-scheme's Issues

vector-reverse! must not be called with literal vector

What steps will reproduce the problem?
(define a  #(1 2 3))
(define b  #(1 2 3))
(vector-reverse! a)
(print b)


What is the expected output? What do you see instead?
&assertion

#(3 2 1)

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 21 Sep 2012 at 1:14

read-delimited-list does not accept custom texutual port

What steps will reproduce the problem?
(define (make-custom-input-port in)
  (define (read! s start count)
    (get-string-n! in s start count))
  (define (close) (close-input-port in))
  (make-custom-textual-input-port "test" read! #f #f close))
(read-delimited-list
 #\) (make-custom-input-port (open-string-input-port "1)")))


What is the expected output? What do you see instead?
(1)

Got C level ASSERT failure.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 28 Aug 2012 at 2:07

more documentation on building out-of-tree for CMake non-experts

The README states that it is possible to build Sagittarius by running "cmake" 
from a directory that is not the top source; fine.  It would be better to show 
explicitly how to do this with some sample commands; example:

<readme>
It is possible to build Sagittarius in a directory that is not the top source 
directory of the distributed package (out-of-tree building); for example:

$ cd sagittarius-0.3.7
$ mkdir build
$ cd build
$ cmake ..
$ make
</readme>

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 6:13

Builtin charset

Since SRFI-14 is used in a lot of libraries, it is better to be implemented in 
C. Plus we can implement charset class in regular expression extension.

It does not have to be implemented all SRFI-14 feature in C, however it must 
have basic operations for charset. 

Original issue reported on code.google.com by [email protected] on 13 Nov 2011 at 1:43

Readtable won't be reset with #!r7rs or #!compatible

What steps will reproduce the problem?
#< (sagittarius regex) >
#!r7rs
#/regex/

What is the expected output? What do you see instead?
&lexical must be thrown

Returns pattern object.


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 3 Sep 2012 at 7:23

Append! can destructively append literal list

What steps will reproduce the problem?
1. run the script below
(define a '(a b c))
(define b '(a b c))
(append! a '(d e))

What is the expected output? What do you see instead?
&assertion

'(a b c d e) and b also got changed.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 14 Sep 2012 at 1:17

Supporting BSD style socket

Current socket APIs can not handle lower layer operation, such as non-blocking 
socket.

It is better to have BSD style APIs and select procedure to be able to write 
lower socket programmes.

Original issue reported on code.google.com by [email protected] on 22 Oct 2012 at 8:42

Using with-library macro inside of a library causes warning message

What steps will reproduce the problem?
;; foo.scm
(library (foo)
  (export make-html-element)
  (import (rnrs) (sagittarius control))
 (define make-html-element (with-library (test html-lite) make-html-element))
)

;; main.scm
(import (foo))

Run main.scm twise.

What is the expected output? What do you see instead?
It works fine but it causes breaking cache message below.

*warning* unknown tag appeared. tag: 3, file: 
${path-of-home}/.sagittarius/0.3.6/i686-pc-cygwin/${cache-file-name}_scm.cache, 
pos: 


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 5 Oct 2012 at 8:49

equal hashtable can not have bytevector its key.

What steps will reproduce the problem?
(define ht (make-hashtable equal-hash equal?))
(hashtable-set! ht #vu8(1 2) 'ok)
(hashtable-ref ht #vu8(1 2) #f)


What is the expected output? 
ok

What do you see instead?
#f

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 3 Jan 2012 at 2:55

SOBER-128 can not be initialised with pseudo-random procedure

What steps will reproduce the problem?
1. Run the following code
(import (math))

(define prng (pseudo-random SOBER-128))

What is the expected output? What do you see instead?
It raised &error


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 24 Aug 2012 at 7:54

call-next-method can not be used in syntax-case macro

What steps will reproduce the problem?
In syntax-case, call-next-method can not be called from define-method's body. 
It raises &assertion with message unbound variable call-next-method.

What is the expected output?
Must be able to call.

What do you see instead?
&assertion

Please use labels and text to provide additional information.

Original issue reported on code.google.com by [email protected] on 18 Apr 2012 at 7:35

segmentation fault with infix package

What steps will reproduce the problem?
1. Install Sagittarius changeset 1046:8e0cfee01e28.
2. Download the infix package from:

<http://github.com/marcomaggi/infix>

3. Run the following:

$ cd path/to/infix
$ make stest

What is the expected output? What do you see instead?
It should run the test suite just fine.  I segfaults:

$ make stest
sash -L/home/marco/src/devel/scheme/infix ./tests/test-infix.sps
make: *** [stest] Segmentation fault

What version of the product are you using? On what operating system?
The head of the default branch.  i686-pc-linux-gnu, GCC 4.6.2.

Please provide any additional information below.
Thanks for adding support for ".sls" libraries.


Original issue reported on code.google.com by [email protected] on 22 Oct 2012 at 5:44

Want glob procedure

Even though we have find-files procedure but it is better to have some builtin 
procedures to find files.

Rationale,

For developing, it's really inconvenient to pass all load paths with option 
'-L'. For example, socket, thread and time need to be loaded then the command 
will be like this;
   sash -Llib -Lsitelib -Lext/socket -Lext/thread -Lext/time

But if I could write it like this;
   sash -L'*' -L'ext/*'

It is much easier.

Original issue reported on code.google.com by [email protected] on 2 Nov 2012 at 12:31

missing documentation on writing libraries

The documentation does not explain how one writes libraries to be used by 
Sagittarius.  How do I name the files?  What is the default search path?  What 
is the default file extension?  Is it possible to put more LIBRARY forms in a 
single file?  You can look at [1] for an example of how to do it.

It has become customary for R6RS implementations, to allow the user to specify 
".sls" as library extension.  It appears that there is no way to do it under 
Sagittarius.  Without this I will not be able to attempt to port my code.

Also, an implementation should support an implementation-specific library file 
extension that is prioritised with respect to the others.

For example: Vicare Scheme searches for ".sls" and ".vicare.sls" files; when it 
finds both "lists.sls" and "lists.vicare.sls" it loads "lists.vicare.sls" 
because it is Vicare-specific.  Sagittarius could do the same with ".sls" and 
".sagittarius.sls" file extensions.

[1] <http://marcomaggi.github.com/docs/vicare.html/using-libraries.html>

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 6:08

Internal define-syntax is not expanded

What steps will reproduce the problem?
#!r6rs
(import (rnrs))
(define (test)
  (define-syntax define-inline
    (syntax-rules ()
      ((_ (?name ?arg ...) ?form0 ?form ...)
       (define-syntax ?name
     (syntax-rules ()
       ((_ ?arg ...)
        (begin ?form0 ?form ...)))))))
  (let ((a 1))
    (define-inline (ret-a) a)
    (ret-a))
  )

(display (test)) (newline)

What is the expected output? What do you see instead?
1

&assertion

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 22 Oct 2012 at 11:07

more installation instructions for CMake non-experts

Can you add the following to the README file?

<readme>
After a successful compilation (of both the binary targets and the 
documentation), it is possible to install Sagittarius to the default system 
location with the command:

$ make install

or to a temporary location with the command:

$ make install DESTDIR=/path/to/tmpdir

</readme>

Unless I am mistaken: it is not possible to run "make install" successfully if 
the documentation is not built with "make doc"; this is not explicitly 
mentioned in the README file.


Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 5:57

miscellaneous typos

Sorry, but despite the fact that I have only a superficial knowledge of 
English, I am a bit of a grammar nazi.

In "ext/ffi/CMakeLists.txt" you mean "Sagittarius uses bundled libffi", not 
"bandled"?

There are so many problems in the readme file that I have attached a revised 
version; not everything that needs to be fixed is fixed in this revision.

Original issue reported on code.google.com by [email protected] on 20 Oct 2012 at 11:23

Syntax-case does not work as it suppose to be

What steps will reproduce the problem?
(define-syntax let/scope
  (lambda(x)
    (syntax-case x ()
      ((k scope-name body ...)
       #'(let-syntax
             ((scope-name
               (lambda(x)
                 (syntax-case x ()
                   ((_ b (... ...))
                    #`(begin
                        #,@(datum->syntax #'k
                             (syntax->datum #'(b (... ...))))))))))
           body ...)))))

(let ((x 1))
  (let/scope d1
    (let ((x 2))
      (let/scope d2
        (let ((x 3))
          (list (d1 x) (d2 x) x)))))) ;; -> (1 1 2)

What is the expected output? What do you see instead?
(1 2 3)

Please use labels and text to provide additional information.
syntax-case does not work as it suppose to be.

Original issue reported on code.google.com by [email protected] on 13 Nov 2011 at 1:26

Builtin reader should not return non scheme object

The following code prints #<null>

(let ((x (get-dispatch-macro-character #\# #\!)))
  (print (x (open-string-input-port "!r6rs") #\! #f)))

However this is only for safe printing mechanism and should not be shown 
anywhere. If the builtin reader returned NULL then the procedure should return 
unspecified value.

Original issue reported on code.google.com by [email protected] on 27 Sep 2012 at 9:10

more documentation on following development from the repository's master tree

It would be kind to put in the README a brief guide on how to follow 
development by pulling changes from the repository into a local copy, for 
non-hg users.  Which one is the master branch?  Once the repository has been 
cloned, how does one pulls changes?  How does one list the log messages for the 
latest changes to see what's new?

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 6:24

apply more than max stack arguments causes SEGV

What steps will reproduce the problem?
1. Run this code
(import (srfi :42))
(apply values (list-ec (: x 15000) (* x x)))
(list-ec (: 100) (* x x))

What is the expected output? What do you see instead?
Ends normally, but got SEGV


Please use labels and text to provide additional information.
This is because APPLY instruction tries to push all arguments and does not 
check current stack position or if it causes overflow. As a result, it 
overwrite somewhere we don't want to.

Original issue reported on code.google.com by [email protected] on 20 Jun 2012 at 3:24

on Linux systems a library is installed under $prefix/bin

On Linux I see "libsagittarius.so" installed both under "$prefix/lib" and 
"$prefix/bin"; they appear to be two copies of the same file.  Is the copy 
under "bin" actually needed?  On Linux binary libraries should go only under 
"lib".

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 6:19

Build process does not find ffi.h from /usr/local

What steps will reproduce the problem?
1. install libffi to /usr/local
2. run build process

What is the expected output? What do you see instead?
ffi.h should be found

trying to use bundled libffi.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 20 Oct 2012 at 7:57

clock_gettime not found by CMake

The configuration infrastructure fails to find "clock_gettime()" on my 
GNU+Linux system; this is because such function is implemented by the "rt" 
library.  Just link with that library and the problem should go away.

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 11:49

Library prefix does not work properly

What steps will reproduce the problem?
(library (lib1) 
    (export v1 v2) 
    (import (rnrs))
  (define v1 1)
  (define v2 2))
(library (lib2)
    (export v1:v v2 v1:v2)
    (import (rnrs) (prefix (rename (lib1) (v1 v)) v1:))
  (define v2 2))
(import (rnrs) (lib2))
(display v1:v) (newline)
(display v1:v2) (newline)


What is the expected output? What do you see instead?
1
2

&assertion: unbound varialbe v1:v2

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 4 Sep 2012 at 3:02

(lambda ()) and (begin) return a closure

What steps will reproduce the problem?
compile (lambda ()) or (begin)

What is the expected output? What do you see instead?
The first form I need to think whether or not syntax error.
The second form must return unspecified value.


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 24 Jun 2012 at 12:08

ODBC raises an error when there is not update record

What steps will reproduce the problem?
Pre-condition:
  * ODBC must be supported
  * Using oracle XE
  * Table must there

Try to update non existing record with (dbi) library.

What is the expected output? What do you see instead?
Nothing happens.

&odbc-error without any message.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 2 Nov 2012 at 12:55

Pattern variable can not cross over own library

(library (problem)
    (export loop)
    (import (rnrs))
  (define-syntax loop
    (lambda (x)
      (syntax-case x ()
        [(k e ...)
         (with-syntax
             ([break (datum->syntax #'k 'break)])
           #'(call-with-current-continuation
              (lambda (break)
                (let f () e ... (f)))))])))
)

(let ((n 3) (ls '()))
  (loop
   (if (= n 0) (break ls))
   (set! ls (cons 'a ls))
   (set! n (- n 1)))) 

Memo:
Currently macro expansion replace pattern variable if expanded expression has 
it. However, once it defined in library, identifier object can have its library 
information then identifier=? can not return #t.




Original issue reported on code.google.com by [email protected] on 16 Mar 2012 at 4:10

extending search path through OS's environment variable

It would help, especially when preparing uniform makefile rules, to be able to 
extend Sagittarius' library search path through an OS environment variable with 
colon separated values, as in PATH; for example SAGITTARIUS_LIBRARY_PATH.


Original issue reported on code.google.com by [email protected] on 22 Oct 2012 at 6:00

get-bytevector-all does not work with client socket ports

Consider this program:

(import (sagittarius socket))
(let* ((s (make-client-socket "www.example.org" "80"))
       (p (socket-port s)))
  (put-bytevector p (string->utf8 "GET / HTTP/1.0\r\n\r\n"))
  (flush-output-port p)
  (get-bytevector-all p))

I expect get-bytevector-all to return a bytevector with the server's response, 
but instead it returns #<eof>.

Tested with version 0.3.7 on Debian GNU/Linux amd64 wheezy.

Original issue reported on code.google.com by [email protected] on 4 Nov 2012 at 4:30

Custom binary output port causes segmentation fault

What steps will reproduce the problem?
1. run this script
(import (rnrs))
(define (make-test-binary-port)
  (define (read! bv start count)
    (bytevector-copy! #vu8(1 2 3 4) 0 bv start count)
    count)
  (define (write! bv start count)
    (let loop ((i 0))
      (unless (= i count)
    (display (bytevector-u8-ref bv (+ start i)))
    (loop (+ i 1))))
    count)
  (make-custom-binary-input/output-port "test port" read! write! #f #f #f))

(let* ((bin (make-test-binary-port))
       (tin (transcoded-port bin (native-transcoder))))
  (display "test" tin))

What is the expected output?
116101115116

What do you see instead?
core dump

Please use labels and text to provide additional information.



Original issue reported on code.google.com by [email protected] on 12 May 2012 at 3:30

bytevector-s**-set! does not accept minus values

What steps will reproduce the problem?
(bytevector-s32-native-set! (make-bytevector 4) 0 -1)


What is the expected output? What do you see instead?
set -1 in bytevector properly.

&assertion was raised.


Please use labels and text to provide additional information.
The range check should not be there for fixnum value.

Original issue reported on code.google.com by [email protected] on 3 Jul 2012 at 5:27

Rename exporting does not export

What steps will reproduce the problem?
1. Creates a library with renaming export.
2. Imports the library.
3. Refers the variable, and it raises &assertion
Simplest code:
(library (test)
    (export (rename test a:test))
    (import (rnrs))
  (define test 'test)
)
(import (test))
a:test ;; -> &assertion

What is the expected output? What do you see instead?
Should return symbol 'test'

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 13 Nov 2011 at 1:27

syntax-case does not work properly.

What steps will reproduce the problem?
(define-syntax loop
  (lambda (x)
    (syntax-case x ()
      [(k e ...)
       (with-syntax
       ([break (datum->syntax #'k 'break)])
     #'(call-with-current-continuation
        (lambda (break)
          (let f () e ... (f)))))])))

(let ((n 3) (ls '()))
   (loop
    (if (= n 0) (break ls))
    (set! ls (cons 'a ls))
    (set! n (- n 1))))

What is the expected output? 
'(a a a)

What do you see instead?
&assertion

Please use labels and text to provide additional information.
on R6RS test suite it passes.

This is the issue which I always try to solve. Patten variable and template 
corresponding staff. Currently, macro expander try not to replace pattern 
variable if the target variable is a pattern variable. However it does not work 
properly.

Original issue reported on code.google.com by [email protected] on 4 Jan 2012 at 4:38

let-syntax can not refer the own macro

What steps will reproduce the problem?
(import (rnrs))

(let ((a (list 'a 'b 'c)))
  (let-syntax ((test (syntax-rules ()
            ((_ o)
             (begin
               (display o)
               (test)))
            ((_ o1 o2 ...)
             (begin
               (display o1)
               (test o2 ...)))
            ((_) (newline)))))
    (test a 'b 'c 'd)))
;; -> &assertion


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 23 Jan 2012 at 8:01

#'bar does not resolve rgith library information

What steps will reproduce the problem?

(library (foo)
  (export bar)
  (import (rnrs))

  (define (problem) (display 'ok) (newline))

  (define-syntax bar
    (lambda (x)
      (define (dummy)
    `(,(datum->syntax #'bar 'problem)))
      (syntax-case x ()
    ((k) (dummy)))))

  )

(import (rnrs) (foo))
(bar)

What is the expected output? What do you see instead?
ok

&assertion: unbound variable problem

Please use labels and text to provide additional information.
#'bar resolves identifier which does not have (foo) library in it but "user".

Original issue reported on code.google.com by [email protected] on 5 Sep 2012 at 5:54

SIGSEGV when reading a list

What steps will reproduce the problem?
read this list '(|.| a)

What is the expected output? What do you see instead?
read it properly but got SIGSEGV

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 18 Jan 2012 at 8:15

Need a way to get pointer's address

FFI doesn't support to get address of the pointer.
However in real world libraries sometimes require to pass address' of pointer, 
for example;

  int create_object(void **dst);

This type of procedure is everywhere.

So it is better to support to get pointer's address.

Original issue reported on code.google.com by [email protected] on 4 Nov 2012 at 10:49

more documentation and features for caching preprocessed sources

I see that Sagittarius does some form of caching of libraries; this is not 
explicitly mentioned in the documentation.  I would like to find there: a brief 
description of the caching feature (are cached libraries marked as outdated by 
comparing last modification times, or are there other criteria?); the name of 
the user directory under which the cache is created; mention of the command 
used purge the cache (is it enough to just remove files with operating system 
commands?).

Is it possible to just precompile libraries without running an program?  Is it 
fine to precompile libraries by importing them into a program like:

#!r6rs
(import (only (the-library-1))
  (only (the-library-2)))

and then running this "empty" program, with or without special command line 
switches?  (This is what Vicare Scheme does.)

Also, is it possible to have multiple cache directories, a system wide one and 
a user specific one?  Vicare Scheme does this to allow the following behaviour: 
at package installation time (under GNU+Linux) the libraries are precompiled 
under a cache directory "/var/cache/vicare-scheme", so they are available to 
all the users; then a user can select a directory under which to store 
user-specific the user specific cache.  At run time Vicare checks an ordered 
list of cache directories and loads the first precompiled library found.

Original issue reported on code.google.com by [email protected] on 21 Oct 2012 at 9:35

format return empty string when widh was indicated

What steps will reproduce the problem?
(format "~,,,,10:a" '(a b c d e f g))

What is the expected output? What do you see instead?
expect: "(a b c d e f g)"
result: ""

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 13 Jul 2012 at 7:02

Treemap interface and implementation

It is better to have treemap interface and implementation to implement builtin 
charset.
It should be as flexible as possible. So user can use both C implementation and 
Scheme implementation.

Original issue reported on code.google.com by [email protected] on 13 Nov 2011 at 1:40

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.