You are looking at historical revision 42895 of this page. It may differ significantly from its current revision.

dynamic-import

Documentation

A dynamic import facility for CHICKEN Scheme.

Usage

(import dynamic-import)

Note strongly suggest warnings be disabled before using dynamic-import: (enable-warnings #f).

"Warning: imported identifier doesn't exist in module ..." can occur due to missing exported identifiers during module search. Also, warnings from dynamic-import flow thru a different channel.

dynamic-import

[syntax] (dynamic-import MODs IDs [DEF])

Defines the identifiers IDs, imported from the first available module in MODs, using the default specification DEF when all modules are unproductive.

MOD ; (or symbol (list symbol fixnum) (list-of (or symbol number)))
ID ; (symbol)
MODs ; (or MOD (list-of MOD)) ; single, or multiple, module specifications
IDs ; (or ID (list-of ID)) ; single, or multiple, identifiers
DEF
(default * ...) ; default is the result of (list * ...)
DEF
procedure ; default is the result of (DEF IDs)

dynamic-import-warning

[parameter] (dynamic-import-warning [WARN]) -> procedure

: WARN ; (#!rest -> void) ; warning procedure; default warning : WARN ; #t ; default : WARN ; #f ; void

Examples

(import dynamic-import)

;see note above
(enable-warnings #f)

;tcp-listen ... from tcp6 else (chicken tcp)
(dynamic-import (tcp6 (chicken tcp))
  (tcp-listen tcp-listener-fileno tcp-listener-port
   tcp-accept tcp-accept-ready? tcp-close
   tcp-abandon-port tcp-buffer-size tcp-connect
   tcp-read-timeout tcp-write-timeout))

;ssl-connect* from openssl else stub
(dynamic-import openssl ssl-connect* (default (lambda _ (values #f #f))))

Bugs & Limitations

Notes

Requirements

test test-utils srfi-1

Author

Kon Lovett

Repository

This egg is hosted on the CHICKEN Subversion repository:

https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/dynamic-import

If you want to check out the source code repository of this egg and you are not familiar with Subversion, see this page.

Version history

1.0.1
Only test dependencies.
1.0.0
Swap module & import arguments, support extended module-name syntax, remove dynamic-importer export.
0.1.0
Removed tabulated-list-of}. Public Domain.
0.0.3
Drop warning-on; see error-utils warning-on.
0.0.2
Restrict import list, add warning-on.
0.0.1
Initial Release.

License

This code is in the public domain.