mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 04:40:29 +02:00
This removes a limitation on the number of port types, simplifies the API, and removes a central point of coordination. * libguile/ports-internal.h (struct scm_t_port_type): Rename from scm_t_ptob_descriptor, now that it's private. Add GOOPS class fields. (struct scm_t_port): Rename from struct scm_port, especially considering that deprecated.h redefines scm_port using the preprocessor :(. * libguile/ports.h: Add definitions of SCM_PORT and SCM_PORT_TYPE, though the scm_t_port and scm_t_port_type types are incomplete. (SCM_TC2PTOBNUM, SCM_PTOBNUM, SCM_PTOBNAME): Remove, as there are no more typecodes for port types. (scm_c_num_port_types, scm_c_port_type_ref, scm_c_port_type_add_x): Remove. (scm_make_port_type): Return a scm_t_port_type*. All methods adapted to take a scm_t_port_type* instead of a ptobnum. (scm_c_make_port_with_encoding, scm_c_make_port): Take a port type pointer instead of a tag. (scm_new_port_table_entry): Remove; not useful. * libguile/ports.c: Remove things related to the port kind table. Adapt uses of SCM_PORT_DESCRIPTOR / scm_t_ptob_descriptor to use SCM_PORT_TYPE and scm_t_port_type. * libguile/deprecated.c: * libguile/deprecated.h: * libguile/filesys.c: * libguile/fports.c: * libguile/fports.h: * libguile/print.c: * libguile/r6rs-ports.c: * libguile/strports.c: * libguile/strports.h: * libguile/tags.h: * libguile/vports.c: * test-suite/standalone/test-scm-c-read.c: Adapt to change. * libguile/goops.c (scm_class_of, make_port_classes) (scm_make_port_classes, create_port_classes): Adapt to store the classes in the ptob. |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile.am | ||
README | ||
test-asmobs | ||
test-asmobs-lib.c | ||
test-bad-identifiers | ||
test-command-line-encoding | ||
test-command-line-encoding2 | ||
test-conversion.c | ||
test-extensions | ||
test-extensions-lib.c | ||
test-fast-slot-ref.in | ||
test-ffi | ||
test-ffi-lib.c | ||
test-foreign-object-c.c | ||
test-foreign-object-scm | ||
test-guild-compile | ||
test-guile-snarf | ||
test-import-order | ||
test-import-order-a.scm | ||
test-import-order-b.scm | ||
test-import-order-c.scm | ||
test-import-order-d.scm | ||
test-language | ||
test-language.el | ||
test-language.js | ||
test-list.c | ||
test-loose-ends.c | ||
test-mb-regexp | ||
test-num2integral.c | ||
test-out-of-memory | ||
test-pthread-create-secondary.c | ||
test-pthread-create.c | ||
test-require-extension | ||
test-round.c | ||
test-scm-c-bind-keyword-arguments.c | ||
test-scm-c-read.c | ||
test-scm-spawn-thread.c | ||
test-scm-take-locale-symbol.c | ||
test-scm-take-u8vector.c | ||
test-scm-to-latin1-string.c | ||
test-scm-values.c | ||
test-scm-with-guile.c | ||
test-smob-mark.c | ||
test-srfi-4.c | ||
test-stack-overflow | ||
test-system-cmds | ||
test-unwind.c | ||
test-use-srfi.in | ||
test-with-guile-module.c |
-*-text-*- These tests use the standard automake TESTS mechanism. Tests should be listed in TESTS in Makefile.am, and should exit with 0 on success, non-zero on failure, and 77 if the result should be ignored. See the automake info pages for more information. If you want to use a scheme script, prefix it as follows: #!/bin/sh exec guile -s "$0" "$@" !# Makefile.am will arrange for all tests (scripts or executables) to be run under uninstalled-env so that the PATH, LD_LIBRARY_PATH, and GUILE_LOAD_PATH will be augmented appropriately. The Makefile.am has an example of creating a shared library to be used from a test scheme script as well. You can also create standalone executables that include your own code, are linked against libguile, and that run a given test script (or scripts). One way to do this is to create the binary, make sure it calls scm_shell (argc, argv) as its final action, and put this bit at the top of your test script: #!./my-test-binary -s !#