Age | Commit message (Collapse) | Author | Files | Lines |
|
* module/ice-9/boot-9.scm (duplicate-handlers): Use module-variable
instead of module-local-variable in the warn-override-core, first, and
last handlers. Fixes #47084 mostly, though relative to pre-3.0 there is
still a difference in that a module needs to explicitly declare which
bindings are intended as replacements -- a binding being a replacement
is a property of the module in 3.0, rather than the variable as was the
case before 3.0.
|
|
* module/Makefile.am (NOCOMP_SOURCES): Add ice-9/read.scm.
|
|
* module/language/cps/closure-conversion.scm (convert-one): Fix bug when
getting value of SCC whose free variables have been elided. Thanks to
abcdw for the report!
* test-suite/tests/compiler.test ("cse auxiliary definitions"): Remove
spurious newline.
("closure conversion"): New test.
|
|
* libguile/loader.h (SCM_OBJCODE_MINOR_VERSION): Bump.
* module/system/vm/assembler.scm (*bytecode-minor-version*): Bump.
|
|
* module/language/cps/contification.scm (compute-first-class-functions):
(compute-functions-called-by-label):
(compute-functions):
(compute-arities):
(compute-contification-candidates):
(compute-call-graph):
(compute-contification):
(apply-contification):
(contify): Given that the frontend will produce $callk now, allow it to
be contified if such callees are all called with the same continuation.
|
|
* module/language/tree-il/compile-cps.scm (module-call-stubs):
(module-call-label, convert, cps-convert/thunk): Arrange to call module
variables through out-of-line trampolines with unchecked arity. This
should speed up compile time in large files and reduce code size on hot
paths.
|
|
* module/language/cps/closure-conversion.scm: Use standard
compute-reachable-functions and intmap-select from utils to filter
reachable functions, allowing us to pick up callk. Adapt some uses to
expect callk for calls.
* module/language/cps/self-references.scm (resolve-self-references):
Subst the proc, if it's there.
* module/language/cps/split-rec.scm (compute-free-vars): Add a case for
callk.
|
|
* libguile/intrinsics.h:
* libguile/intrinsics.c (lookup_bound_public, lookup_bound_private): Two
new intrinsics.
(scm_bootstrap_intrinsics): Wire them up.
* libguile/jit.c (compile_call_scm_from_scmn_scmn):
(compile_call_scm_from_scmn_scmn_slow):
(COMPILE_X8_S24__N32__N32__C32): Add JIT support for new instruction
kind.
* libguile/vm-engine.c (call-scm<-scmn-scmn): New instruction, takes
arguments as non-immediate offsets, to avoid needless loads and register
pressure.
* module/language/cps/effects-analysis.scm: Add cases for new
primcalls.
* module/language/cps/compile-bytecode.scm (compile-function): Add new
primcalls.
* module/language/cps/reify-primitives.scm (cached-module-box): If the
variable is bound, call lookup-bound-public / lookup-bound-private as
appropriate instead of separately resolving the module, name, and doing
the bound check.
* module/language/tree-il/compile-bytecode.scm (emit-cached-module-box):
Use new instructions.
* module/system/vm/assembler.scm (define-scm<-scmn-scmn-intrinsic):
(lookup-bound-public, lookup-bound-private): Add assembler support.
|
|
* module/language/cps/reify-primitives.scm (cached-module-box): Include
public? in cache key, so we don't accidentally alias private and
exported names. Also include bound?, to avoid a window in which thread
A resolves and caches var V in preparation for setting it, but thread B
sees V for ref before it was initialized.
|
|
* module/language/cps/dce.scm (compute-known-allocations):
* module/language/cps/simplify.scm (eta-reduce): Allow the case-lambda
without clauses.
|
|
* module/language/cps/compile-bytecode.scm (compile-function): Fix
unfinished comments.
|
|
* module/language/cps/elide-arity-checks.scm: New file. Elides argument
count checks for known callers.
* am/bootstrap.am (SOURCES):
* module/Makefile.am (SOURCES): Add new file.
* module/language/cps/optimize.scm (optimize-first-order-cps):
* module/system/base/optimize.scm (available-optimizations): Add new
pass.
|
|
* module/language/cps.scm:
* module/language/cps/contification.scm:
* module/language/cps/cse.scm:
* module/language/cps/dce.scm:
* module/language/cps/simplify.scm:
* module/language/cps/slot-allocation.scm:
* module/language/cps/types.scm: Allow $kargs to follow $kfun. In that
case, the function must be well-known and callers are responsible for
calling with the appropriate arity.
* module/language/cps/compile-bytecode.scm: Emit "unchecked-arity" for
$kargs following $kfun.
* module/system/vm/assembler.scm: Adapt.
|
|
* module/language/elisp/runtime/function-slot.scm (language):
* module/language/elisp/runtime/value-slot.scm (language):
Non-declarative.
|
|
* module/language/tree-il/fix-letrec.scm (reorder-bindings):
(fix-letrec): Reorder definitions so that lambdas tend to stick
together, to avoid "complex" expressions interposing in lambda SCCs.
|
|
* module/ice-9/ftw.scm (abs?): Remove.
(nftw): Use 'absolute-file-name?' instead.
|
|
Thanks to Vasilij Schneidermann.
|
|
* module/goops.scm (compute-slots): Fix <redefinable-class> slot
transformation.
* test-suite/tests/goops.test ("slot options on redefinable classes"):
Add a test.
|
|
This mirrors Guix commit b168acae2a01fd84075cc134a6140594a978fde5.
* module/web/client.scm (tls-wrap)[unbuffered]: New procedure.
Pass the result of 'make-custom-binary-input/output-port' to
'unbuffered'.
|
|
This mirrors Guix commit 279d932b1ca7bfbb8657c41a84616dd0dfc6e0a8.
* module/web/client.scm (tls-wrap)[read!]: Read straight into BV
instead of calling 'get-bytevector-some' and 'unget-bytevector'.
|
|
When using automake and libtool to build DLLs on Cygwin, libtool
will rename libXXX to cygXXX. 'load-foreign-library' should
emulate libltdl behavior and search for DLLs using that convention.
* module/system/foreign-library.scm (lib->cyg): new helper function
(load-foreign-library): add rename-on-cygwin? option to rename
libraries using Cygwin semantics
* test-suite/tests/foreign.test: new test section 'lib->cyg'
* doc/ref/api-foreign.text: document new rename-on-cygwin? option
for load-foreign-library
|
|
* module/srfi/srfi-69.scm : fold over second hash table.
|
|
* module/ice-9/suspendable-ports.scm (get-bytevector-some!): Fix
incorrect arguments to bytevector-copy!
|
|
This reverts commit 0f983e3db0c43ad7c89f57ea84f792ede373ba0c.
After discussing with Mike we are going to punt the read-line changes
for now. Open the port in O_TEXT mode if you want to chomp the CR in
CFLF sequences.
|
|
* libguile/rdelim.c (scm_read_line): handle CRLF, LS and PS
* module/ice-9/suspendable-ports.scm (read-line): handle CRLF, LS, and PS
* module/web/http.scm (read-header-line): take advantage of CRLF in read-line
(read-header): don't need to test for \return
* test-suite/tests/rdelim.test: new tests for read-line CRLF, LS and PS
* doc/ref/api-io.texi: update doc for read-line
|
|
* module/ice-9/ftw.scm (visited?-proc): accept filename for string hash
(file-system-fold): use string hash if ino = 0
(ftw): use new visited?-proc
* test-suite/tests/ftw.test (visited?-proc valid inodes): add filenames to visited?-proc calls
(visited?-proc broken inodes): new tests
(%top-srcdir): canonicalize-path
|
|
* module/ice-9/ftw.scm (getuid-or-false, getgid-or-false): new macros
(stat-dir-readable?-proc): don't overwrite arguments
(ftw, nftw): use new macros
* test-suite/tests/ftw.test (test-EACCES): don't presume getuid exists
|
|
* doc/ref/posix.texi (File System): Update to document mkstemp only.
* libguile/filesys.c: Make a mkstemp that doesn't modify the input
template. Instead the caller has to get the file name from
port-filename.
(scm_mkstemp): Use the new mkstemp to implement mkstemp!. Can't
deprecate yet though as the replacement hasn't been there for long
enough.
* libguile/posix.c (scm_tempnam): Update to mention mkstemp instead.
* module/system/base/compile.scm (call-with-output-file/atomic): Use
mkstemp.
* test-suite/tests/posix.test:
* test-suite/tests/r6rs-files.test: Use mkstemp.
* NEWS: Update.
|
|
* module/rnrs/base.scm (vector-map vector-for-each): Rewrite to not be
slow.
* NEWS: Update.
|
|
* NEWS: Add doc link.
* doc/ref/api-macros.texi (Syntax Transformer Helpers): Document
syntax-sourcev.
* module/system/syntax.scm: Re-export syntax-sourcev.
|
|
* module/ice-9/read.scm (%read): Fix reading #!!#.
* test-suite/tests/reader.test ("reading"): Add some test cases.
|
|
This makes it match the other species of unknown hash object error
when reading number with radix.
* module/ice-9/read.scm (read-sharp): modified
|
|
* module/ice-9/read.scm (read-number-and-radix): modified
|
|
* module/ice-9/read.scm (read-r6rs-hex-escape, read-fixed-hex-escape):
modified
|
|
* module/ice-9/read.scm (%read): Adjust how subexpressions are read to
error on EOF. Improve the error message.
* test-suite/tests/reader.test ("#;"): Adapt expectation.
|
|
* module/ice-9/read.scm (%read): Fix bad argument order to unread-char.
|
|
* module/system/syntax.scm (print-syntax): Print source locations.
|
|
|
|
* module/ice-9/read.scm (%read): A fix to last night's fix, to make
srfi-105.test pass.
|
|
* module/ice-9/read.scm (%read): Fix a wee typo.
|
|
* module/ice-9/read.scm (%read): Fix parsing errors.
|
|
* module/ice-9/read.scm (%read): \U escape is 6 digits long.
|
|
* module/ice-9/read.scm (read-array): Return pair for dimension when len
is given; single number is lbnd for list->typed-array.
* test-suite/tests/arrays.test: More test cases for the reader.
|
|
Instead of defining a separate module, given that "read" calls are quite
all over the place, we're just going to replace the boot "read" binding
with read.scm. This way, we'll be able to remove support for reader
options in the boot reader, as it will only ever be used for a finite
set of files.
* NEWS: Update.
* module/Makefile.am (ice-9/boot-9.go): Depend on read.scm.
(SOURCES):
* am/bootstrap.am (SOURCES): Don't build a ice-9/read.go, as we include
it.
* module/ice-9/boot-9.scm (read-syntax): Define here, as "include" now
uses it.
(read-hash-procedures, read-hash-procedure, read-hash-extend): New
procedures. Will replace C variants.
(read, read-syntax): Include read.scm to define these.
* module/ice-9/psyntax-pp.scm (include): Regenerate.
* module/ice-9/psyntax.scm (include): Use read-syntax, so we get better
source information.
* module/ice-9/read.scm (let*-values): New local definition, to avoid
loading srfi-11.
(%read): Use list->typed-array instead of u8-list->bytevector.
* module/language/scheme/spec.scm: Remove (ice-9 read) import;
read-syntax is there in the boot environment
|
|
* module/ice-9/read.scm (%read): Tweak "unterminated block constant"
error to be more compatible with C reader.
|
|
* module/ice-9/read.scm (%read): Call the inner reader, not the outer
reader.
|
|
* module/ice-9/read.scm (%read): Fix invocation of hash procedure.
|
|
* module/ice-9/read.scm: We'll be loading this file early, so avoid
extraneous deps.
|
|
* module/ice-9/read.scm: As stated.
* test-suite/tests/arrays.test: Test a fixed case.
|
|
* module/ice-9/read.scm (%read): Fix typo.
|