summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-06-24Update NEWS.v3.0.4Ludovic Courtès1-0/+9
* NEWS: Update.
2020-06-24GNU Guile 3.0.4 (SONAME fix).Ludovic Courtès1-5/+6
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment. (LIBGUILE_INTERFACE_CURRENT): Increment. (LIBGUILE_INTERFACE_REVISION): Reset. (LIBGUILE_INTERFACE_AGE): Increment. This accounts for commit, which adds a new symbol to the ABI.
2020-06-24Revert "GNU Guile 3.0.3."Ludovic Courtès1-4/+4
This change suggested an ABI incompatibility that's not there for normal builds: https://lists.gnu.org/archive/html/guile-user/2020-06/msg00059.html Reported by Chris Vine. This reverts commit 5d052c87bd8f0fd894e67f0bebd4fa6f6160d83c.
2020-06-21GNU Guile 3.0.3.v3.0.3Ludovic Courtès1-4/+4
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment. (LIBGUILE_INTERFACE_CURRENT): Increment. (LIBGUILE_INTERFACE_REVISION, LIBGUILE_INTERFACE_AGE): Reset. This accounts for commit b517a91ba4aaccf920a81eb8bf71ca090a9b457c and similar, which remove C functions in '--disable-deprecated' builds.
2020-06-21Update NEWS.Ludovic Courtès1-0/+7
* NEWS: Update.
2020-06-21Update NEWS.Ludovic Courtès1-0/+4
* NEWS: Update.
2020-06-21Merge upstream 'lightening'Ludovic Courtès3-5/+27
* libguile/lightening: Merge from https://gitlab.com/wingo/lightening, commit 24ef197b1269f8371b1f4a412caa6d2b99d66839.
2020-06-20Add 'movi' test.Dale P. Smith1-0/+22
This is a followup to 1bb909a44d2303f88bb05125fc6742e97f80cd1d. It reproduces the bug that 1bb909a44d2303f88bb05125fc6742e97f80cd1d fixes on ARMv7. * tests/movi.c: New file. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-06-20tests: Remove 'glibc' from the 'guix environment' command line.Ludovic Courtès1-3/+3
* tests/Makefile (CC_IA32, CC_AARCH64, CC_ARMv7): Remove 'glibc' from the 'guix environment' command line since it's redundant with 'gcc-toolchain'.
2020-06-20tests: Make 'TARGETS' overridable.Ludovic Courtès1-1/+1
This allows users to run "make TARGETS=armv7", for instance. * tests/Makefile (TARGETS): Make it overridable.
2020-06-20Fix ARMv7 THUMB encoding for immediates.Andrew Gierth1-1/+1
* lightening/arm-cpu.c (encode_thumb_immediate): Fix return value in third case. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-19popen: Correct 'pipeline' docstring.Ludovic Courtès1-3/+3
* module/ice-9/popen.scm (pipeline): Change docstring for correct Texinfo syntax and to use commas instead of em dashes, as in the manual.
2020-06-19popen: 'open-process' returns unbuffered ports.Ludovic Courtès2-5/+43
* module/ice-9/popen.scm (open-process)[unbuffered, fdes-pair]: New procedures. Use them. Return unbuffered ports. * test-suite/tests/popen.test ("open-pipe*"): New test prefix.
2020-06-19Merge upstream 'lightening'Andy Wingo1-0/+2
* libguile/lightening: Merge from https://gitlab.com/wingo/lightening.
2020-06-19Fix unused variable warning for no-literal-pool targetsAndy Wingo1-0/+2
* lightening/lightening.c (jit_patch_there): Conditionally define flags.
2020-06-19Merge upstream 'lightening'Andy Wingo2-5/+12
* libguile/lightening: Merge from https://gitlab.com/wingo/lightening.
2020-06-19Merge branch 'fix-literal-pool-reset' into 'master'Andy Wingo1-2/+2
Fix zeroing of literal pool entries See merge request wingo/lightening!5
2020-06-19Fix zeroing of literal pool entriesAndy Wingo1-2/+2
* lightening/lightening.c (reset_literal_pool): Zero before setting size to 0. Thanks to Dale Smith for pointing this out!
2020-06-19Merge branch 'fix-rotate-by-zero' into 'master'Andy Wingo1-3/+10
Fix undefined behavior in ARMv7 assembler See merge request wingo/lightening!4
2020-06-19Fix undefined behavior in ARMv7 assemblerAndy Wingo1-3/+10
* lightening/arm-cpu.c (rotate_left): Fix the case of rotating by zero, which produced undefined behavior. Many thanks to Andrew Gierth (andrew at tao11 riddles org uk) for the debugging and the fix.
2020-06-19Tree-IL-to-CPS compiler delays calls to 'target-most-positive-fixnum'.Ludovic Courtès2-35/+29
Fixes a bug whereby, for example, "guild compile --target=i686-linux-gnu" running on x86_64 would generate invalid code for 'bytevector-u32-native-set!' because 'target-most-positive-fixnum' was called from the top-level when (language tree-il compile-cps) was loaded. Consequently, the .go files under prebuilt/ would be invalid, leading to build failures on 32-bit platforms. This issue became apparent with cb8cabe85f535542ac4fcb165d89722500e42653. * module/language/tree-il/compile-cps.scm (bytevector-ref-converter)[tag]: Turn into a lambda so that 'target-most-positive-fixnum' is called in the right context. (bytevector-set-converter)[integer-unboxer]: Likewise.
2020-06-18web: Accept URI host names consisting only of hex digits.Ludovic Courtès3-3/+13
Fixes <https://bugs.gnu.org/40582>. Reported by Julien Lepiller <julien@lepiller.eu>. Previously, a host part consisting of hex digits would be mistaken as an IPv6 address and rejected by 'valid-host?'. * module/web/uri.scm (ipv6-regexp): Add colon. * test-suite/tests/web-uri.test ("string->uri")["xyz://abc/x/y/z"]: New test. * NEWS: Update.
2020-06-18doc: Mention (ice-9 time) module path.Arun Isaac1-0/+3
* doc/ref/scheme-using.texi (Profile Commands): Mention (ice-9 time) module path. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-18doc: Document default delimiter of string-join.Arun Isaac2-8/+10
* doc/ref/api-data.texi (String Constructors): Document default delimiter of the string-join function. * libguile/srfi-13.c (scm_string_join): Adjust docstring accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-18doc: Improve content-range HTTP header documentation.Arun Isaac1-5/+5
* doc/ref/web.texi (HTTP Headers): Improve punctuation in content-range HTTP header documentation. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-18doc: Fix minor typo in the HTTP headers documentation.Arun Isaac1-1/+1
* doc/ref/web.texi (HTTP Headers): Fix minor typo. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-18texinfo: Add basic support for @w{...}.Ludovic Courtès3-4/+8
* module/texinfo.scm (texi-command-specs): Add 'w'. (space-significant?): Add it. * module/texinfo/html.scm (tag-replacements): Add 'w'. * test-suite/tests/texinfo.test ("test-texinfo->stexinfo"): Add test.
2020-06-18doc: Add missing canonicalize-path documentation.Ricardo G. Herdt1-0/+15
The documentation is copied over from libguile/filesys.c. I just added "(absolute)" to the text to help users finding it, since this term is more common in other languages. * doc/ref/posix.texi (File System): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-06-18read: Use "invalid" rather than "illegal".Jan (janneke) Nieuwenhuizen3-20/+20
* libguile/read.c (scm_read_string_like_syntax): All characters are permitted by law; some aren't valid in certain contexts. * test-suite/tests/reader.test: Replace occurrences of "illegal" by "invalid". * test-suite/tests/strings.test: Likewise. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-06-17srfi-1: Rewrite 'assoc' in Scheme.Ludovic Courtès3-32/+17
* libguile/srfi-1.c (scm_srfi1_assoc): Remove. * libguile/srfi-1.h (scm_srfi1_assoc): Likewise. * module/srfi/srfi-1.scm (assoc): New procedure.
2020-06-17srfi-1: Rewrite 'find-tail' in Scheme.Ludovic Courtès3-19/+11
* libguile/srfi-1.c (scm_srfi1_find_tail): Remove. * libguile/srfi-1.h (scm_srfi1_find_tail): Likewise. * module/srfi/srfi-1.scm (find-tail): New procedure.
2020-06-17srfi-1: Rewrite 'find' in Scheme.Ludovic Courtès4-29/+16
This halves the wall-clock time of: guile -c '(use-modules (srfi srfi-1)) (define lst (make-list 100000000 1)) (find zero? lst)' and yields an 18% speedup on: guile -c '(use-modules (srfi srfi-1)) (define lst (make-list 100000000 1)) (find (lambda (x) (= 2 x)) lst)' * libguile/srfi-1.c (scm_srfi1_find): Remove. * libguile/srfi-1.h (scm_srfi1_find): Likewise. * module/srfi/srfi-1.scm (find): New procedure. * doc/ref/srfi-modules.texi (SRFI-1 Searching): Adjust docstring.
2020-06-15Update NEWS.Ludovic Courtès1-0/+20
* NEWS: Update.
2020-06-15doc: Remove copy/pasted sentence.Ludovic Courtès1-1/+1
* doc/ref/api-io.texi (I/O Extensions): Remove sentence pasted from 'read' when explaining 'write' method.
2020-06-12Update lighteningAndy Wingo6-50/+106
* libguile/lightening: Merge gitlab.com/wingo/lightening/ from 3260f7deebf4148f7c268e9a56cdab7a221e3da5.
2020-06-12Make CSE more robustAndy Wingo1-2/+6
* module/language/cps/cse.scm (eliminate-common-subexpressions-in-fun): I think it's possible to get an orphan loop, with predecessors after successors in the original RPO. Handle that here.
2020-06-11Merge branch 'arm-fix' into 'master'Andy Wingo6-49/+105
Fix armv7 with the ARM instruction set Closes #12 See merge request wingo/lightening!3
2020-06-04tests: Avoid dependency on util-linux for 'rev'.Ludovic Courtès1-5/+7
* test-suite/tests/popen.test ("open-process", "pipeline"): Use 'tr' instead of 'rev' to avoid an extra dependency on util-linux.
2020-06-04Statprof reports primitive namesAndy Wingo1-9/+1
* module/statprof.scm (program-debug-info-printable): Remove unused function. (addr->printable): If the addr is a primitive, extract its name.
2020-06-01Change -O1 compiler to use baseline and also resolve primitivesAndy Wingo3-17/+4
* bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Change to just -O1. * module/language/tree-il/spec.scm (choose-compiler): Use CPS for -O2 and higher. * module/system/base/optimize.scm (available-optimizations): CPS for -O2 and higher, but -Oresolve-primitives now at -O1 also.
2020-05-31Fix bug where private bindings would never be sealedAndy Wingo1-1/+1
* module/language/tree-il/optimize.scm (make-optimizer): Fix plumbing of -Oseal-private-bindings / -O3.
2020-05-29Fix typo causing performance problems!!!Andy Wingo1-1/+1
* module/language/cps/cse.scm (eliminate-common-subexpressions-in-fun): Amazingly this typo causes Guile to be 10% slower or so. Fixed!
2020-05-29CSE forward-propagates changes to CFGAndy Wingo1-1/+23
* module/language/cps/cse.scm (propagate-analysis): New helper. (eliminate-common-subexpressions-in-fun): Recompute avail and bool set in response to simplifications in predecessor CFG. Allows much better compilation of pattern-matching idioms!
2020-05-29CSE forwards branch predecessors where the branch foldsAndy Wingo1-57/+148
* module/language/cps/cse.scm (forward-cont, forward-branch) (compute-avail-and-bool-edge): New helpers. (add-equivalent-expression!): Allow idempotent adds; can happen now when revisiting a cont after changes to its predecessors. (fold-branch): New helper. (eliminate-common-subexpressions-in-fun): Allow for reductions to branch predecessors. In that case, revisit the branch, as the CFG will have changed.
2020-05-29CSE refactorAndy Wingo1-48/+68
* module/language/cps/cse.scm (eliminate-common-subexpressions-in-fun): Separate the paths for handling expressions and branches.
2020-05-29Use intmaps in CSE equivalent expression tableAndy Wingo1-33/+43
* module/language/cps/cse.scm (make-equivalent-expression-table) (intmap-select, add-equivalent-expression!) (lookup-equivalent-expressions): New helpers. (eliminate-common-subexpressions-in-fun): Adapt.
2020-05-29Eager graph pruning in CSEAndy Wingo1-90/+197
* module/language/cps/cse.scm (elide-predecessor, prune-branch) (prune-successors, term-successors): New helpers. (eliminate-common-subexpressions-in-fun): When we modify the CFG, update the analysis. Also, thread the substs map through CSE so that closures in high-level CPS can take advantage of eliminated variables. (fold-renumbered-functions): Take multiple seeds. (eliminate-common-subexpressions): Thread var substs map through CSE.
2020-05-29Add indentation rule for let/ecAndy Wingo1-0/+1
* .dir-locals.el: Add rule.
2020-05-29Macro fix to CPS build-termAndy Wingo1-1/+1
* module/language/cps.scm (build-term): Match on $branch and $throw as literals.
2020-05-29Thread flow analysis through CSE passAndy Wingo1-194/+209
* module/language/cps/cse.scm (<analysis>): New data type, grouping available expression analysis, predecessor map, etc. (eliminate-common-subexpressions-in-fun): Instead of having a static analysis, thread it through the CSE pass so that we can update the CFG as we go.