1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/doc/ref
Michael Gran 7b41294049 Improve DLL search strategy for load-foreign-library
The new non-libltdl foreign library loading algorithm from 3.0.6
fails to cover common cases regarding how libtool names and installs
DLL files.  Notably, it fails to recognize when libtool has added the
major version number into the filename itself, such as libfoo-1.dll
Also, it does not search in binary directories and the PATH for DLL
files, where libtool is likely to install DLLs.

This adds the option to search for dlls with major version numbers
in the filename, and modifies the search strategy for DLL-using
OSs to check bindir and PATH.

For MSYS, libraries are installed with the 'msys-' prefix. So this
modifies load-foreign-library to handle that prefix as well.
It changes the #:rename-on-cygwin? option to #:host-type-rename? to
better reflect that is works on both Cygwin and MSYS.

Partially based on a patch by Hannes Müller.

* NEWS: updated
* doc/ref/api-foreign.texi: document updates to load-foreign-library
  and system-dll-path
* module/system/foreign-library.scm (is-integer-string?): new utility function
  (dll-name-match?): new utility function
  (find-best-dll-from-matches): new utility function
  (dll-exists-with-version): new function that implements new dll search logic
  (file-exists-with-extension): add flag argument to allow new dll search
  (file-exists-in-path-with-extension): add flag argument to all new dll search
  (system-dll-path): new parameter
  (lib->msys): new helper function
  (load-foreign-library): add new optarg flag #:allow-dll-version-suffix?
    Pass new flag to library search functions.
    Implement new search strategy for #:search-system-paths? on DLL systems'
    replace #:rename-on-cygwin? with #:host-type-rename?
        Use that option to rename both MSYS and Cygwin libraries.
  (guile-system-extensions-path): prefer bindir to libdir on DLL systems
* test-suite/tests/foreign.test ("dll-name-match?"): new test category
  ("find-best-dll-from-matches"): new test category
  ("lib->msys"): new unit tests
2025-03-22 07:05:31 -07:00
..
.gitignore add www-commit rule in doc/ref 2010-12-17 16:41:58 +01:00
api-binding.texi Document multiple-value returns in forms taking a let-expression body 2023-01-25 12:52:29 +01:00
api-control.texi Fix typo in dynamic wind documentation. 2024-10-20 21:22:22 +02:00
api-coverage.texi doc: Fix typo in 'coverage-data->lcov' example. 2022-10-01 16:00:05 +02:00
api-data.texi Replace "either" with "either array" in make-shared-array docs 2025-03-20 13:37:04 -05:00
api-debug.texi doc: Document the peek and pk procedures. 2024-10-26 19:44:41 +02:00
api-deprecated.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-evaluation.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-foreign-objects.texi make-foreign-object-type: add #:super to provide superclasses 2024-05-17 12:53:39 -05:00
api-foreign.texi Improve DLL search strategy for load-foreign-library 2025-03-22 07:05:31 -07:00
api-i18n.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-init.texi Fix explicitely' typos, should be explicitly' 2009-05-20 18:51:03 +01:00
api-io.texi New line or field iteration procedures in (ice-9 rdelim) 2024-12-19 22:36:38 +01:00
api-lalr.texi doc: Update LALR URL. 2018-08-07 11:33:06 +02:00
api-languages.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-macros.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-memory.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-modules.texi doc: Fix implication of omitting optional arguments. 2024-10-26 19:44:40 +02:00
api-options.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-overview.texi Manual typo fix 2010-12-23 12:17:26 +00:00
api-peg.texi PEG: Add support for not-in-range and [^...] 2024-12-09 18:15:01 +01:00
api-procedures.texi Add link to foreign functions from gsubr doc 2024-06-20 14:39:41 +02:00
api-regex.texi Doc: clarification on regexes and encodings 2023-01-17 07:20:10 +01:00
api-scheduling.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-scm.texi
api-smobs.texi Remove SMOB tutorial; update manual. 2014-04-28 17:45:07 +02:00
api-snarf.texi
api-undocumented.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
api-utility.texi Add clarification about the less predicate passed to merge and sort 2024-12-09 23:46:20 +01:00
api.txt
ChangeLog-2008 Rename ChangeLog' files to ChangeLog-2008'. 2008-09-12 21:49:58 +02:00
ChangeLog-goops-2008 Move GOOPS documentation into the main manual 2009-08-03 23:29:45 +01:00
ChangeLog-guile-doc-ref
compiler.texi doc: Fix typo under "CPS Soup". 2022-10-01 16:00:05 +02:00
curried.texi Document (ice-9 curried definitions) 2012-09-06 22:15:40 +01:00
data-rep.texi Spelling fixes 2018-10-21 14:54:38 +02:00
effective-version.texi.in Add an effective version variable for the manual 2009-08-04 12:08:02 +01:00
expect.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
fdl.texi Upgrade manual to GFDLv1.3+. 2010-06-01 00:02:35 +02:00
goops-tutorial.texi Merge tutorial' and reference' treatments of the same basic GOOPS 2010-12-06 22:28:39 +00:00
goops.texi Updated GOOPS sections of reference 2024-11-28 21:54:30 +01:00
guile-invoke.texi Redirect diagnostice output messages (e.g., auto-compiling code) to a newly defined current-info-port, and add a command line argument -I' to set the current-info-port to a void-port. * libguile/ports.c: add cur_infoport_fluid, scm_current_info_port, scm_set_current_info_port; define default current-info-port to stderr * libguile/load.c(compiled_is_fresh,load_thunk_from_path, do_try_auto_compile,scm_sys_warn_auto_compilation_enabled, scm_primitive_load_path): direct output messages to current_info_port; was current_warning_port * libguile/init.c(scm_init_standard_ports): set default current_info_port * module/ice-9/ports.scm: define current-info-port and set-current-info-port * module/ice-9/command-line.scm(*usage*,compile-shell-switches): add argument -I' to silence diagnostics (or current-info-port to void-port) * doc/ref/guile-invoke.texi: add description for `-I' command argument 2024-10-12 13:16:25 +02:00
guile.texi doc: Document SRFI-64. 2024-12-22 22:46:11 +01:00
hierarchy.dot doc/ref/hierarchy.png: conform to hierarchy.txt and manual 2013-01-15 19:17:55 +01:00
hierarchy.eps doc/ref/hierarchy.png: conform to hierarchy.txt and manual 2013-01-15 19:17:55 +01:00
hierarchy.pdf doc/ref/hierarchy.png: conform to hierarchy.txt and manual 2013-01-15 19:17:55 +01:00
hierarchy.png doc/ref/hierarchy.png: conform to hierarchy.txt and manual 2013-01-15 19:17:55 +01:00
hierarchy.txt Move GOOPS documentation into the main manual 2009-08-03 23:29:45 +01:00
history.texi doc: Lee Thomas suggested the name change. 2022-12-10 18:23:52 +01:00
indices.texi Procedure/macro index includes Autoconf macros 2011-02-13 22:28:25 +00:00
intro.texi doc: Remove reference to “benevolent dictators”. 2024-01-24 11:12:06 +01:00
libguile-autoconf.texi manual: reorganize autoconf, pkg-config info 2011-10-12 17:12:29 +02:00
libguile-concepts.texi Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
libguile-extensions.texi @value{EFFECTIVE-VERSION} instead of 2.0 in some places in the manual 2011-02-20 13:16:37 +01:00
libguile-foreign-objects.texi doc: Fix typo. 2018-08-07 12:09:33 +02:00
libguile-linking.texi doc: embedding example more readable. 2014-01-17 22:22:02 +01:00
libguile-parallel.texi Replace libltdl with raw dlopen, dlsym 2021-02-03 23:02:21 +01:00
libguile-program.texi Review REFFIXME 2021-12-13 08:11:29 +01:00
libguile-snarf.texi Prefer foreign objects over smobs in manual 2014-04-28 18:00:05 +02:00
Makefile.am doc: Remove all remaining references to GDS. 2025-02-28 22:12:03 +01:00
match.texi doc: Fix argument list in match-lambda docs 2019-06-24 15:24:33 +02:00
misc-modules.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
mod-getopt-long.texi doc: fix documented keyword argument default to match code default 2022-12-21 08:29:42 +01:00
mop.text Move GOOPS documentation into the main manual 2009-08-03 23:29:45 +01:00
new-docstrings.texi Automatic manual updates following libguile docstring changes 2009-12-27 23:24:09 +00:00
posix.texi Note setlocale raises a system-error when locale doesn't exist 2025-03-02 14:33:30 -06:00
preface.texi doc: Use gender-neutral language in Preface 2020-01-20 10:23:33 +01:00
r6rs.texi Implement R6RS custom textual ports 2023-06-08 10:21:02 +02:00
r7rs.texi Document R7RS functions related to bytevectors 2023-01-17 16:07:48 +01:00
repl-modules.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
scheme-ideas.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
scheme-indices.texi
scheme-intro.texi Add R7RS documentation and --r7rs command-line option 2019-11-17 15:30:59 +01:00
scheme-reading.texi fix urls in docs 2011-11-16 23:21:59 +01:00
scheme-scripts.texi Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
scheme-using.texi doc: Mention (ice-9 time) module path. 2020-06-18 00:30:30 +02:00
scheme.dia replace ascii figures with scalable ps/pdf versions. 2009-12-17 23:17:59 +00:00
scheme.eps replace ascii figures with scalable ps/pdf versions. 2009-12-17 23:17:59 +00:00
scheme.pdf replace ascii figures with scalable ps/pdf versions. 2009-12-17 23:17:59 +00:00
scheme.txt replace ascii figures with scalable ps/pdf versions. 2009-12-17 23:17:59 +00:00
scsh.texi update scsh doc 2010-08-17 08:48:49 -07:00
slib.texi docs: fix typos in manual, and a couple in code comments. 2011-02-09 22:28:49 +00:00
srfi-modules.texi srfi-19: Fix ~V converter in date->string. 2025-02-28 10:28:06 +01:00
statprof.texi Check for working profiling and virtual itimers 2017-03-06 23:06:12 -08:00
sxml-match.texi doc: Replace square brackets with round brackets. 2020-03-25 22:50:26 +01:00
sxml.texi Fix typos in comments. 2025-02-28 09:58:29 +01:00
texinfo.texi Fix typos in comments. 2025-02-28 09:58:29 +01:00
tools.texi Prefer foreign objects over smobs in manual 2014-04-28 18:00:05 +02:00
tour.texi Replace libltdl with raw dlopen, dlsym 2021-02-03 23:02:21 +01:00
vm.texi Better compilation of calls to raise-exception 2023-08-28 12:11:19 +02:00
web.texi Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00