type->sexp was not capable of converting the variable type to a
sexp. This caused problems if the module system wanted to tell the
user that the types of exported bindings did not match:
config> (define-structure foo (export (bar :syntax)) (open scheme) (begin (define bar 1)))
; no values returned
config> ,user
> ,open foo
Error: exception
wrong-type-argument
(checked-record-ref '(variable #{Type :value #f #f}) '#{Record-type 14 meta-type} 1)
I've now extended TYPE->SEXP by a check for the variable type and let
it produce a list with 'VARIABLE as first and the actual type as
second element. Likewise, I extended SEXP->TYPE to produce a variable
type if 'VARIABEL is the first element of a list.
This seems to work but a second look by someone who really understands
the type system would be appreciated.
(Merge from s48 rev 423)
determine the location of the scheme subdirectory. (Which resides in
$(srcdir), but not generally in the build directory.) This is bogus,
as $(PWD) is instantiated by make, not by the shell (to the build
directory), and thus will generate the build dir, not $(srcdir).
.. anyway, replace that by "`(cd $(srcdir) && echo $$PWD)`/scheme"
and things are fine.
(Patch by Mike Sperber)
Non-backward comptaible changes:
-o for specifying the object file is gone
-i does not terminate argument scanning
-s for specifying the size of the stack is now -stacksize
Note that this change doesn't represent any sort of design suggestion
or decision: It merely represents an attempt to codify the
dependencies between the parts of the code base. There's still lots
of work to be done to actually make user-accessible modules.
directly. This leads to multiple return values in some cases.
- new condition types
- raise conditions only in case of fatal errors
- rewrote odbc_sql_data_sources() and odbc_sql_drivers()
- removed hardcoded ODBC_RETVAL_BUFFER_INITIAL_SIZE, the return value
buffer size can now be read/set from Scheme.
- removed odbc_sql_bind_parameter_exec_out(), which is a poor
implementation of a SQLBindParameter() binding. TODO: make a
better one.
- use the p.c. SQL_SUCCEEDED()
- rewrote odbc_sql_get_data(): Resize return buffer value if necessary
- new modules: low-odbc (functions), low-odbc-constants (constants)
- major code cleanup