Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 259922

Summary: provide additional features of scm (dev-scheme/scm)
Product: Gentoo Linux Reporter: Vadim Kuznetsov (RETIRED) <vadimk>
Component: New packagesAssignee: Scheme Project <scheme>
Status: CONFIRMED ---    
Severity: enhancement    
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
URL: http://people.csail.mit.edu/jaffer/buildscm.html
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: patch that adds use flags for almost every scm feature

Description Vadim Kuznetsov (RETIRED) gentoo-dev 2009-02-22 17:08:36 UTC
It would be nice to have feature rich gentoo-way enabled scm ebuild.

Reproducible: Always

Steps to Reproduce:
Comment 1 Tony Vroon (RETIRED) gentoo-dev 2009-02-22 18:59:39 UTC
It is not clear to me what package this bug is filed for. Please add more specific information to your bug, consider rewriting the subject the line and then reopen your report so it can be considered by the bug wranglers again.
Comment 2 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-02-22 20:23:54 UTC
*** Bug 259935 has been marked as a duplicate of this bug. ***
Comment 3 Vadim Kuznetsov (RETIRED) gentoo-dev 2009-02-22 20:38:51 UTC
Current scm ebuild builds scm with two features: macro and inexact.

The defined scm features are:

array
    Alias for ARRAYS 
array-for-each
    array-map! and array-for-each (arrays must also be featured). 
arrays
    Use if you want arrays, uniform-arrays and uniform-vectors. 
bignums
    Large precision integers. 
byte
    Treating strings as byte-vectors. 
byte-number
    Byte/number conversions 
careful-interrupt-masking
    Define this for extra checking of interrupt masking and some simple checks for proper use of malloc and free. This is for debugging C code in `sys.c', `eval.c', `repl.c' and makes the interpreter several times slower than usual. 
cautious
    Normally, the number of arguments arguments to interpreted closures (from LAMBDA) are checked if the function part of a form is not a symbol or only the first time the form is executed if the function part is a symbol. defining `reckless' disables any checking. If you want to have SCM always check the number of arguments to interpreted closures define feature `cautious'. 
cheap-continuations
    If you only need straight stack continuations, executables compile with this feature will run faster and use less storage than not having it. Machines with unusual stacks need this. Also, if you incorporate new C code into scm which uses VMS system services or library routines (which need to unwind the stack in an ordrly manner) you may need to use this feature. 
compiled-closure
    Use if you want to use compiled closures. 
curses
    For the curses screen management package. 
debug
    Turns on the features `cautious' and `careful-interrupt-masking'; uses -g flags for debugging SCM source code. 
differ
    Sequence comparison 
dont-memoize-locals
    SCM normally converts references to local variables to ILOCs, which make programs run faster. If SCM is badly broken, try using this option to disable the MEMOIZE_LOCALS feature. 
dump
    Convert a running scheme program into an executable file. 
dynamic-linking
    Be able to load compiled files while running. 
edit-line
    interface to the editline or GNU readline library. 
engineering-notation
    Use if you want floats to display in engineering notation (exponents always multiples of 3) instead of scientific notation. 
generalized-c-arguments
    make_gsubr for arbitrary (< 11) arguments to C functions. 
i/o-extensions
    Commonly available I/O extensions: exec, line I/O, file positioning, file delete and rename, and directory functions. 
inexact
    Use if you want floating point numbers. 
lit
    Lightweight -- no features 
macro
    C level support for hygienic and referentially transparent macros (syntax-rules macros). 
mysql
    Client connections to the mysql databases. 
no-heap-shrink
    Use if you want segments of unused heap to not be freed up after garbage collection. This may increase time in GC for *very* large working sets. 
none
    No features 
posix
    Posix functions available on all Unix-like systems. fork and process functions, user and group IDs, file permissions, and link. 
reckless
    If your scheme code runs without any errors you can disable almost all error checking by compiling all files with `reckless'. 
record
    The Record package provides a facility for user to define their own record data types. See SLIB for documentation. 
regex
    String regular expression matching. 
rev2-procedures
    These procedures were specified in the Revised^2 Report on Scheme but not in R4RS. 
sicp
    Use if you want to run code from: Harold Abelson and Gerald Jay Sussman with Julie Sussman. Structure and Interpretation of Computer Programs. The MIT Press, Cambridge, Massachusetts, USA, 1985. Differences from R5RS are:

        * (eq? '() '#f)
        * (define a 25) returns the symbol a.
        * (set! a 36) returns 36. 

single-precision-only
    Use if you want all inexact real numbers to be single precision. This only has an effect if SINGLES is also defined (which is the default). This does not affect complex numbers. 
socket
    BSD socket interface. Socket addr functions require inexacts or bignums for 32-bit precision. 
tick-interrupts
    Use if you want the ticks and ticks-interrupt functions. 
turtlegr
    Turtle graphics calls for both Borland-C and X11 from sjm@ee.tut.fi. 
unix
    Those unix features which have not made it into the Posix specs: nice, acct, lstat, readlink, symlink, mknod and sync. 
wb
    WB database with relational wrapper. 
windows
    Microsoft Windows executable. 
x
    Alias for Xlib feature. 
xlib
    Interface to Xlib graphics routines. 
Comment 4 Tomás Touceda (RETIRED) gentoo-dev 2009-09-15 03:25:46 UTC
Created attachment 204159 [details, diff]
patch that adds use flags for almost every scm feature

This patch lets you build scm-5.5.5-r1 with any feature you want. There were some features that gave me some errors. As commented in the ebuild:

# Some features give errors, here's a detailed list:
# mysql              --> ERROR: database.c not found
# dynamic-linking    --> It hasn't been implemented 
# caution            --> Causes errors
# edit-line          --> Dependency problem with ltermcap
# reckless           --> repl.c and eval.c doesn't build with this feature
# wb                 --> It gives these errors:
#                                      gcc: db.o: No such file or directory
#                                      gcc: wbsys.o: No such file or directory
#                                      gcc: stats.o: No such file or directory
#                                      gcc: segs.o: No such file or directory
#                                      gcc: scan.o: No such file or directory
#                                      gcc: prev.o: No such file or directory
#                                      gcc: handle.o: No such file or directory
#                                      gcc: ents.o: No such file or directory
#                                      gcc: del.o: No such file or directory
#                                      gcc: blkio.o: No such file or directory
#                                      gcc: blink.o: No such file or directory

I've tested building every feature, but as usual it's better if someone else gives it a try.