Custom Query (1630 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (52 - 54 of 1630)

Ticket Resolution Summary Owner Reporter
#1358 fixed (test-exit) returns 0 code for 'error in group outside of tests' Alex Shinn Caolan McMahon
Description

I'd expect the example below to exit with code 1, instead it exits with code 0:

(use test)

(test-group "A"
  (abort "error"))

(test-group "B"
  (test-assert #t))

(test-exit)
$ csi -s run.scm 

Warning: error in group outside of tests

Error: error
1 test completed in 0.0 seconds.
1 error (100%).
0 out of 1 (0%) tests passed.
-- done testing A ------------------------------------------------------------


-- testing B -----------------------------------------------------------------
#t ................................................................... [ PASS]
1 test completed in 0.0 seconds.
1 out of 1 (100%) test passed.
-- done testing B ------------------------------------------------------------

$ echo $?
0
#1273 invalid (use cairo) results in Error: (load) during expansion of (import ...) - unable to load compiled module Christian Kellermann
Description

Running master Version 4.10.1 (rev 21cab06) on openbsd-unix-gnu-x86-64 [ 64bit manyargs dload ptables ] I get:

#;1> (use cairo)
; loading /home/ckeen/chickens/master/lib/chicken/8/cairo.import.so ...

Error: (load) during expansion of (import ...) - unable to load compiled module - Cannot load specified object: "/home/ckeen/chickens/master/lib/chicken/8/cairo.import.so"

        Call history:

        <syntax>          (use cairo)
        <syntax>          (##core#require-extension (cairo) #t)
        <syntax>          (##core#begin (##core#begin (##core#begin (##sys#require (quote cairo))) (import cairo)) (##core#und...
        <syntax>          (##core#begin (##core#begin (##sys#require (quote cairo))) (import cairo))
        <syntax>          (##core#begin (##sys#require (quote cairo)))
        <syntax>          (##sys#require (quote cairo))
        <syntax>          (quote cairo)
        <syntax>          (##core#quote cairo)
        <syntax>          (import cairo)        <--

Note the double slash in the path. The file in question does exist and is an elf shared library.

I have bootstrapped said master from 4.10.1 dev-snapshot and I am confident that I didn't break anything during that build. Also cairo (and it's dependencies) are the only egg(s) installed. However other eggs seem to load fine.

#1463 worksforme (use foo) depends on rigid conventions that can and should be relaxed johnwcowan
Description

Currently, in order for (use foo) to work correctly, the foo module must be in a source file called foo.scm or its compiled form foo.so. This should be changed so that the source file can have any name. This allows extensions other than .scm to be used, and also allows more than one module in a file to be independently usable.

For example, some people prefer the extensions .ss or .sch for source code, and the extensions .sls and .sld have been used for files containing modules in other Schemes. This allows file pairs like foo.sld for the module declaration and foo.sch for the actual variable and syntax definitions. While Chicken's compiler will compile source with any extension, it preempts the extension .scm for the module itself. This makes it impossible for a Chicken module (required extension .scm) to coexist in the same SRFI repository with a Guile module (required extension also .scm) that includes the same implementation source file. I have posted to the guile-user mailing list asking for a similar relaxation in Guile.

Similarly, if the file foobar.scm contains definitions of the modules foo and bar, then neither (use foo) nor (use bar) will work, because they will try to load files named {foo,bar}.{scm,so}, which do not exist.

My proposal to solve this problem is to extend import libraries and ##sys#register-compiled-module to contain the name of the source file as a relative path. In this way, (use foo) can load foo.import.{scm,so}, which will inform it that the code for the foo module is to be found in foo.ss, or foobar.scm, or wherever it is. It is then trivial, given the source file name, to compute the shared object file name; just remove the extension and add ".so".

Note: See TracQuery for help on using queries.