thoughts on targetting the web

2021-06-19 Thread Andy Wingo
Hi :) A brain-dump tonight. I was thinking about what it would mean for Guile to target the web. The goal would be for Guile to be a useful language for programming client-side interaction on web pages. Now, there are a number of takes for Schemes of various stripes to target JS. I haven't

heads-up: development branch is now "main"

2021-05-11 Thread Andy Wingo
Hi, Just a heads-up that the main Guile development branch is now named "main". If you have a recent git and a fairly conventional setup, it will be sufficient to switch your working copy by doing: git fetch origin git checkout main Then you can continue to "git pull" as usual. One note,

GNU Guile 3.0.7 released

2021-05-10 Thread Andy Wingo
We are humbled to announce GNU Guile release 3.0.7, the latest in the 3.0 stable release series. This is a fix-up release. Compared to Guile 3.0.6, Guile 3.0.7 fixes a number of bugs, many of which were introduced in the 3.0 series. Compared to the previous stable series (2.2.x), Guile 3.0 adds

GNU Guile 3.0.6 released

2021-04-28 Thread Andy Wingo
We are pleased to announce GNU Guile release 3.0.6, the latest in the 3.0 stable release series. Compared to the previous release in the 3.0 series, Guile 3.0.6 improves source-location information for compiled code, removes the dependency on libltdl, fixes some important bugs, adds an optional

Re: Preventing file descriptor leak to execl'd processes

2021-03-12 Thread Andy Wingo
On Sat 06 Mar 2021 17:55, Marius Bakke writes: > $ ls -l /proc/self/fd > lrwx-- 1 marius marius 64 Mar 6 17:41 0 -> /dev/pts/18 > lrwx-- 1 marius marius 64 Mar 6 17:41 1 -> /dev/pts/18 > lrwx-- 1 marius marius 64 Mar 6 17:41 2 -> /dev/pts/18 > lr-x-- 1 marius marius 64 Mar 6

Re: Some non-standard O_* flags are missing

2021-03-10 Thread Andy Wingo
Heya :) On Tue 09 Mar 2021 22:47, Maxime Devos writes: > On Tue, 2021-03-09 at 21:36 +0100, Andy Wingo wrote: >> Hi :) Sure, would be happy to accept a patch for these. > See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46220> > and messages above. I'll look at updatin

Re: Linking to libraries in the ELF?

2021-03-09 Thread Andy Wingo
On Fri 29 Jan 2021 17:20, Maxime Devos writes: > I've got this crazy idea a few days ago, about the FFI interface. > When a program written in C is compiled with some shared libraries, > these libraries are referred to in special [insert ELF terminology > here] of the binary. I wonder if it

Re: [PATCH 1/1] scm_set_source_properties_x: optimize if only name, line, and/or col

2021-03-09 Thread Andy Wingo
On Sun 17 Jan 2021 23:55, Bruce Korb writes: > [Can I] swap out this code for something better now? I've disliked > this code for years. > >> static SCM >> ag_scm_c_eval_string_from_file_line( >>     char const * pzExpr, char const * pzFile, int line) Since Guile 2.0.1 you can (use-modules

Re: Some non-standard O_* flags are missing

2021-03-09 Thread Andy Wingo
Hi :) Sure, would be happy to accept a patch for these. It's adding more definitions to the base environment, which is usually a negative, but we'll have to find some kind of module solution for all of these flags at some point. If you do send a patch, please update the manual and NEWS also.

Re: [PATCH] Support cross compilation

2021-03-09 Thread Andy Wingo
Hi :) Which library is this for? It doesn't appear to be guile itself. Andy On Sun 14 Feb 2021 10:16, Christopher Baines writes: > With these changes, I was able to cross-compile guile-lib to the GNU > Hurd, and use part of the library at least. > > * configure.ac: Set GUILE_TARGET when

GNU Guile 3.0.5 released

2021-01-07 Thread Andy Wingo
We are delighted to announce GNU Guile release 3.0.5, the latest in the 3.0 stable release series. Compared to the previous release in the 3.0 series, Guile 3.0.5 can compile chained "if" expressions into the equivalent of what a C compiler does with "switch". It also adds some new warning

Re: The size of ‘.go’ files

2020-06-24 Thread Andy Wingo
Hi :) On Tue 09 Jun 2020 18:09, Ludovic Courtès writes: > Andy Wingo skribis: > >> The guile.arities section starts with a sorted array of fixed-size >> headers, then is followed by a sequence of ULEB128 references to local >> variable names, including non-argum

Re: GNU Guile 3.0.3 released

2020-06-24 Thread Andy Wingo
On Tue 23 Jun 2020 11:36, Chris Vine writes: > On Tue, 23 Jun 2020 10:05:51 +0200 > Ludovic Courtès wrote: >> Hi Chris, >> >> Chris Vine skribis: >> >> > On Sun, 21 Jun 2020 23:04:03 +0200 >> > Ludovic Courtès wrote: >> >> We are delighted to announce GNU Guile release 3.0.3, the third

Re: The size of ‘.go’ files

2020-06-08 Thread Andy Wingo
Hi :) A few points of information :) On Fri 05 Jun 2020 22:50, Ludovic Courtès writes: > [Sorting] the ELF sections of a .go file by size; for ‘python-xyz.go’, > I get this: > > $13 = ((".rtl-text" . 3417108) > (".guile.arities" . 1358536) > (".data" . 586912) > (".rodata" . 361599) >

Re: [PATCH] Avoid malloc/free/dynwind for POSIX subrs that take strings

2020-05-18 Thread Andy Wingo
On Sun 17 May 2020 23:46, Ludovic Courtès writes: > The libunistring functions can take a pre-allocated buffer, but they > always malloc a fresh one if needed. So the best we could do is have a > ‘scm_to_stringn’ variant that takes a buffer, but it’s not guaranteed > that it’ll actually be

Re: [PATCH] Add tree-il optimizations for equal? on char and number literals

2020-05-14 Thread Andy Wingo
On Wed 13 May 2020 23:16, Linus Björnstam writes: > On the latest master equal? was not reduced to eq? on chars in the repl > for things like ,opt (define (a b) (equal? b #\b)). This turned out to be that I had broken the REPL command. The optimizer was working fine though. Fixed now :)

Re: [PATCH] Add tree-il optimizations for equal? on char and number literals

2020-05-13 Thread Andy Wingo
Hi :) On Wed 13 May 2020 13:20, Linus Björnstam writes: > Hi there! > > Aleix and I noticed that equal? has a lot higher overhead than eqv? on > chars, which means using (ice-9 match) for chars was suboptimal. This > patch fixes that. I think we can be a little more simple here. Scheme

Re: [PATCH] Avoid malloc/free/dynwind for POSIX subrs that take strings

2020-05-05 Thread Andy Wingo
Hi :) On Wed 29 Apr 2020 22:22, Ludovic Courtès writes: > As discussed on IRC, the patch below arranges so that subrs that take > strings and pass them to syscall wrappers can avoid the > malloc/free/dynwind overhead. This gives a 10% speedup on a tight loop > that calls these subrs: Neat

Re: [PATCH, v2] Fix build on platforms where the stack grows upwards

2020-03-13 Thread Andy Wingo
On Tue 10 Mar 2020 23:58, John David Anglin writes: > On 2020-02-08 9:07 a.m., Ludovic Courtès wrote: >> John Paul Adrian Glaubitz skribis: >> >>> * libguile/continuations.c (scm_dynthrow): Fix missing mra >>>parameter to grow_stack for SCM_STACK_GROWS_UP. >> Applied, thanks! > I believe

a hack to do -- jitmaps

2020-02-26 Thread Andy Wingo
Hey :) I thought of a thing that I don't have time to implement right now: perf jitmap support in Guile. Basically, the "perf" Linux tool is a widely-available instruction-level and microarchitectural profiler. It's great: you run "perf record guile foo.scm", and then you run "perf report", and

Re: Segfault while building on 64-bit Cygwin

2020-02-17 Thread Andy Wingo
Aah, you all are amazing -- thank you!! Applied and merged. Cheers, Andy On Mon 17 Feb 2020 20:27, Charles Stanhope writes: > On 2/16/20, Charles Stanhope wrote: >> On 2/16/20, Mike Gran wrote: >>> >>> I can confirm that Charles's patch, plus another one line patch >>> to define

Re: Segfault while building on 64-bit Cygwin

2020-02-06 Thread Andy Wingo
On Mon 20 Jan 2020 18:22, Mike Gran writes: > On Mon, Jan 20, 2020 at 11:38:35AM -0500, John Cowan wrote: >> Yes, gladly, but I don't know how to get one in this context. Do I need to >> add some flags to the Makefile, and if so, where? (It's a twisty maze of >> passages, all different.) .

Re: CPU and GC cost of bignums

2020-02-06 Thread Andy Wingo
Hi :) Nice investigation! Perhaps slot-allocation should track live variables using something that's not bigints, but who knows. On Wed 05 Feb 2020 17:29, Ludovic Courtès writes: > /* The next three functions (custom_libgmp_*) are passed to > mp_set_memory_functions (in GMP) so that

Re: Removal of hppa support

2020-02-04 Thread Andy Wingo
Greets, On Tue 04 Feb 2020 12:02, John Paul Adrian Glaubitz writes: > On 1/27/20 4:46 PM, Andy Wingo wrote: >> William is correct. HPPA support is not gone from Guile; and indeed >> it's good to hear from you :) I wasn't sure there were any IA64 users >> remaining. >

Re: Removal of hppa support

2020-01-27 Thread Andy Wingo
Hi :) On Sun 26 Jan 2020 07:19, William ML Leslie writes: > On Sun, 26 Jan 2020, 4:46 pm William ML Leslie, > wrote: > On Sun, 26 Jan 2020, 8:20 am John Paul Adrian Glaubitz, > wrote: > > > I noticed that you recently purged hppa support from guile [1]. > > This change does not remove

GNU Guile 3.0.0 released

2020-01-16 Thread Andy Wingo
We are delighted to announce GNU Guile release 3.0.0, the first in the new 3.0 stable release series. Compared to the previous stable series (2.2.x), Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See the NEWS extract at the end of the mail for

Re: %module-public-interface

2020-01-15 Thread Andy Wingo
On Wed 15 Jan 2020 07:50, dsm...@roadrunner.com writes: > I'm porting some old code to 3.0 and I've come across this: > > (define-module (bobotpp bot)) > > (set-module-uses! %module-public-interface > > (list (module-ref (resolve-module '(guile-user) #f) > >

Re: GNU Guile 2.9.9 Released [beta]

2020-01-15 Thread Andy Wingo
On Tue 14 Jan 2020 22:48, Stefan Israelsson Tampe writes: > Strange that I did not dee this error before in the 2.x series > ever. Isn't it so that for procedures define in a (let () ...) the > case you are mentioning happened before but I was on the impression > that no inlining was done for

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 21:13, Stefan Israelsson Tampe writes: > Okey, here is another case that fails with the patch that prevents identity > misses for toplevels e.g we need similar fixes for anonymous functions. > > (define-module (b) > #:export (q)) > > (define h (make-hash-table)) > (define

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 17:03, Mikael Djurfeldt writes: > Hmm... it seems like both Stefan and you have interpreted my post > exactly the opposite way compared to how it was meant. :) Hah! My apologies :) > What I wanted to say is that I probably prefer you to *reverse* the > recent patch because

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 15:47, Stefan Israelsson Tampe writes: > Yes, your patch is indicating when you should use the same identity > e.g. all uses of procedures in a higher order position such as an > argument or a return value. But I looked at your patch, which looks > good but I saw that for

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 13:18, Mikael Djurfeldt writes: > I probably don't have a clue about what you are talking about (or at > least hope so), but this---the "eq change"---sounds scary to me. > > One of the *strengths* of Scheme is that procedures are first class > citizens. As wonderfully

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Mon 13 Jan 2020 22:32, Stefan Israelsson Tampe writes: > In current guile (eq? f f) = #f for a procedure f. Try: Note that procedure equality is explicitly unspecified by R6RS. Guile's declarative modules optimization took advantage of this to eta-expand references to declaratively-bound

Re: GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread Andy Wingo
On Mon 13 Jan 2020 09:39, Andy Wingo writes: > Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a number > of bugs. Obviously this was meant to be 2.9.9 versus 2.9.8 :) > Changes since alpha 2.9.8 (since 2.9.7): Here too :)

GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.9. This is the ninfth and probably final pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all

Re: GNU Guile 2.9.8 Released [beta]

2020-01-11 Thread Andy Wingo
On Wed 08 Jan 2020 15:22, Nala Ginrut writes: > In unknown file: >4 (primitive-load-path "artanis/server/server-context" #<…>) > In ice-9/eval.scm: >626:19 3 (_ #) > 155:9 2 (_ #) > In ice-9/boot-9.scm: > 1153:19 1 (_ _ _ _ _ _ _) > 1655:16 0 (raise-exception _

Re: GNU Guile 2.9.8 Released [beta]

2020-01-11 Thread Andy Wingo
On Thu 09 Jan 2020 22:14, Stefan Israelsson Tampe writes: > In language/cps/closure-conversion.scm: > 749:15 5 (_ 2705 _) > 771:22 4 (lp # …) > 771:22 3 (lp # …) > 771:22 2 (lp # …) > 610:11 1 (allocate-closure _ _ _ _ _ 1) Nice bug! I wish I had a test case :) Can you

Re: Better HTTPS support in (web client)

2020-01-10 Thread Andy Wingo
On Fri 10 Jan 2020 15:49, Ludovic Courtès writes: > Hello Guilers! > > I’ve pushed a ‘wip-https-client’ branch that contains improvements for > HTTPS support in (web client) that I’d like to be part of Guile 3: > > https://git.savannah.gnu.org/cgit/guile.git/log/?h=wip-https-client Looks

Re: GNU Guile 2.9.5 Released [beta]

2020-01-07 Thread Andy Wingo
On Tue 07 Jan 2020 00:14, Chris Vine writes: > I wonder if it would surprise the programmer to have the cond > conditionals evaluated in a different dynamic environment from the one > in which the cond consequential is evaluated where there is a > conditional which is true. I entirely agree

Re: SHA256 performance with Guile 2.2 vs. Guile 3.0

2020-01-07 Thread Andy Wingo
On Tue 07 Jan 2020 12:08, Ludovic Courtès writes: > Andy Wingo skribis: > >> Concretely I would add a little part of the compiler to the Tree-IL >> phase to serialize a bytecode for the "small" definitions in the module, >> for declarative modules, both

Re: GNU Guile 2.9.8 Released [beta]

2020-01-07 Thread Andy Wingo
On Tue 07 Jan 2020 21:00, Stefan Israelsson Tampe writes: > Bump! > > Great, but loading an extension like: > > (catch #t > (lambda () > (throw #t) > (load-extension "libguile-persist" "persist_init") (pk 1)) > (lambda x > (let ((file >(%search-load-path

Re: support for mips32r6

2020-01-06 Thread Andy Wingo
On Fri 30 Aug 2019 10:09, Bruno Haible writes: > A libffcall bug report [1] made me aware of an incompatible change in > the MIPS ISAs. Namely, for jumping to an address given in a register, > starting with mips32r6, the existing 'jr' instruction does not work > any more: it produces an 'illegal

Re: landed r7rs support

2020-01-06 Thread Andy Wingo
On Fri 22 Nov 2019 17:00, Nala Ginrut writes: > On Tue, Nov 19, 2019, 03:34 Amirouche Boubekki > wrote; > > link: > https://www.gnu.org/software/guile/manual/guile.html#Extending-the-Compiler > > In that section, maybe add a note about a web assembly backend? > > +1 > In the past decade,

Re: GNU Guile 2.9.5 Released [beta]

2020-01-06 Thread Andy Wingo
On Mon 06 Jan 2020 00:26, Chris Vine writes: > I have a 'try' macro which adopts the approach that if an exception > arises, the macro unwinds from the dynamic environment of the code > where the exception arose to the dynamic environment of the call to > 'try', evaluates the cond clauses in

Re: SHA256 performance with Guile 2.2 vs. Guile 3.0

2020-01-06 Thread Andy Wingo
On Mon 06 Jan 2020 10:47, Ludovic Courtès writes: > Andy Wingo skribis: > >> With cross-module inlining of "small" definitions, I think we would >> solve a lot of this kind of problem. I think we could add this during >> 3.0 and for this reason I would he

Re: GNU Guile 2.9.5 Released [beta]

2020-01-05 Thread Andy Wingo
On Sun 01 Dec 2019 21:41, Chris Vine writes: > Is this rewrite, and the new with-exception-handler procedure, an > opportunity to think about standardization of guile's implementation of > the R6RS/R7RS 'guard' form, or at least think about what is wanted for > 'guard'? > > The formal semantics

Re: [PATCH] Add string-replace-substring to (ice-9 string-fun)

2020-01-05 Thread Andy Wingo
On Fri 20 Dec 2019 18:32, lloda writes: > This patch adds string-replace-substring that wingo posted to the > mailing list to (ice-9 strings). This is a commonly used function and a > good implementation isn't trivial, so I think it deserves inclusion. I didn't know that this module existed :)

Re: [PATCH] Add srfi-171 to guile

2020-01-05 Thread Andy Wingo
Hi :) Since this is a final SRFI I think there's no problem getting it in. Some formatting notes follow; since it's your first Guile patch I'm a bit verbose :) Probably this will miss 3.0.0 but make 3.0.1, FWIW. On Sun 22 Dec 2019 15:55, Linus Björnstam writes: > From

Re: GNU Guile 2.9.8 Released [beta]

2020-01-05 Thread Andy Wingo
On Fri 03 Jan 2020 06:34, Nala Ginrut writes: > When I was trying to compile Artanis, the configure threw an error: > > checking for Guile version >= 3.0... configure: error: Guile 3.0 required, > but 2.9.8 found > > > Here's what I put

Re: Re-exporting a replaced binding

2020-01-05 Thread Andy Wingo
On Fri 03 Jan 2020 19:30, Ludovic Courtès writes: > I’m not sure if this is an intended consequence of > cf08dbdc189f0005cab6f2ec7b23ed9d150ec43d, so I thought I’d share this > example of a practical effect: > > ludo@ribbon /tmp [env]$ cat x.scm > (define-module (x) > #:use-module (srfi

Re: SHA256 performance with Guile 2.2 vs. Guile 3.0

2020-01-05 Thread Andy Wingo
On Sat 04 Jan 2020 01:40, Ludovic Courtès writes: > Ludovic Courtès skribis: > >> ludo@ribbon ~/src/guix$ ./pre-inst-env guix environment --pure --ad-hoc >> guile-next guile3.0-hashing -- guile ~/tmp/sha256.scm >> >> ;;; (hash "b33576331465a60b003573541bf3b1c205936a16c407bc69f8419a527bf5c988")

GNU Guile 2.9.8 Released [beta]

2020-01-02 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.8. This is the eighth and possibly final pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all

Re: Removing the locale warning?

2019-12-16 Thread Andy Wingo
On Sat 14 Dec 2019 16:44, Ludovic Courtès writes: > What about getting rid of the locale warning? > > More generally, I'm in favor of reducing run-time warnings to a bare > minimum, because application users often don’t care about them (plus > they’re not i18n’d), and because application

draft 3.0 release schedule

2019-12-11 Thread Andy Wingo
Hi, I've been trying to put out releases on an every-other-Friday schedule. Due to holidays I will probably bump this next one (2.9.7) up to this Friday. Current plan would then be to do 2.9.8 on 3 January 2020, and then if all goes well 3.0.0 on 17 January 2020. Cheers, Andy

test message; please ignore

2019-12-06 Thread Andy Wingo
Please ignore this test message. Thanks :)

GNU Guile 2.9.6 Released [beta]

2019-12-06 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.6. This is the sixth pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See

Re: [PATCH 1/2] srfi-34: Replace the 'raise' core binding.

2019-11-29 Thread Andy Wingo
On Tue 26 Nov 2019 14:09, Ludovic Courtès writes: > AFAICS there are two blockers: > > 1. We cannot replace & re-export at the same time. Following discussion on IRC, this is fixed now, with #:re-export-and-replace. Would be nice if #:re-export could know whether a binding is local or

Re: For a cheaper ‘bytevector->pointer’

2019-11-26 Thread Andy Wingo
Hi :) On Mon 25 Nov 2019 23:03, Ludovic Courtès writes: > Andy Wingo skribis: > >> Honestly I would prefer not to do this. If I understand correctly, the >> problem is in FFI calls -- you have a bytevector and you want to pass it >> as a pointer. In that case

Re: [PATCH 1/2] srfi-34: Replace the 'raise' core binding.

2019-11-26 Thread Andy Wingo
On Mon 25 Nov 2019 17:45, Ludovic Courtès writes: > In Guile 2.x, (srfi srfi-34) would already replace 'raise'. Replacing > avoids a run-time warning about the core binding being overridden. > > * module/srfi/srfi-34.scm (raise): New variable. > Mark it as #:replace instead of #:re-export. >

Re: [PATCH 2/2] srfi-35: Replace ''.

2019-11-26 Thread Andy Wingo
On Mon 25 Nov 2019 17:45, Ludovic Courtès writes: > This ensures core binding '' is silently replaced by the SRFI-35 > variant. Again LGTM but it would be nicest to really re-export the binding instead of making a new definition :) Andy

Re: For a cheaper ‘bytevector->pointer’

2019-11-25 Thread Andy Wingo
On Sun 24 Nov 2019 11:52, Ludovic Courtès writes: > A few days ago David was explaining on #guile how ‘bytevector->pointer’ > was generating too much garbage for his use case. An idea we came up > with was to embed the pointer object in the bytevector. > > The patch below does that but it leads

Re: Mutating public bindings of a declarative module

2019-11-25 Thread Andy Wingo
Hi :) On Sun 24 Nov 2019 18:54, Ludovic Courtès writes: > It seems that if you ‘set!’ a public variable of a declarative module, > the change is visible to all the module users, but it’s not necessarily > visible to procedures within that module, presumably because they use an > inlined or

GNU Guile 2.9.5 Released [beta]

2019-11-22 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.5. This is the fifth pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See

Re: guile 3 update, halloween edition

2019-11-17 Thread Andy Wingo
Hi :) On Sat 16 Nov 2019 16:26, Ludovic Courtès writes: > Andy Wingo skribis: > >> On Fri 15 Nov 2019 10:03, Ludovic Courtès writes: >> >>> I guess we could add a specific ‘’ exception or similar, >>> which would allow us to improve error reporting

landed r7rs support

2019-11-17 Thread Andy Wingo
Hey all :) Just a little heads-up that I just landed R7RS support. Thanks to Göran Weinholt for akku-scm (https://gitlab.com/akkuscm/akku-r7rs/) and OKUMURA Yuki for yuni (https://github.com/okuoku/yuni), off of which some of these files were based. (These projects are public domain / CC0).

Re: guile 3 update, halloween edition

2019-11-15 Thread Andy Wingo
Hey thanks for the review :) On Fri 15 Nov 2019 10:03, Ludovic Courtès writes: > 0. Do I get it right that ‘throw’ and ‘catch’ are not “deprecated” in > the sense of (ice-9 deprecated) and are instead simply not the > “preferred” exception mechanism? Correct. I think we could envision

Re: guile 3 update, halloween edition

2019-11-03 Thread Andy Wingo
On Sat 02 Nov 2019 06:20, Mark H Weaver writes: > Andy Wingo writes: > >> So, now the pending task is to somehow get a condition/exception >> hierarchy into Guile core. I will try to mostly push things off to side >> modules but it won't always be possible. There will

Re: guile 3 update, halloween edition

2019-10-31 Thread Andy Wingo
Greets :) On Thu 31 Oct 2019 01:01, Chris Vine writes: > "Condition" is a strange word for describing structured error objects, > I agree. However, I think it would be quite confusing to describe > error objects as exceptions. "Error object" or "error condition object" > seems a reasonable

Re: guile 3 update, halloween edition

2019-10-31 Thread Andy Wingo
Hey :) On Thu 31 Oct 2019 15:17, Mikael Djurfeldt writes: > How does the record subtyping relate to GOOPS? I do realize that there > are issues related to keeping bootstrapping lean, but shouldn't record > types and classes share mechanisms? They share the struct layer. Records are simple:

guile 3 update, halloween edition

2019-10-30 Thread Andy Wingo
Hey folks! I wanted to send out an update on Guile 3. Do take a look at https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS to see where we've come; basically the JIT is done, and we're ready to release soonish. However! Here begins a long chain of yak-shaving: I wanted good benchmarks.

conflicts in the gnu project now affect guile

2019-10-16 Thread Andy Wingo
Hello all, In the last few weeks, a conversation among GNU maintainers that has been simmering for years burst into public. For a while it resubmerged into private GNU lists, but now it has resurfaced to affect the Guile project. Just for background information, I wrote about my thoughts here:

Maintainership changes: many thanks to Mark!

2019-09-11 Thread Andy Wingo
Hi all, After many years working on Guile and more than 5 years in a maintainer role, Mark Weaver has decided to step down. Taking over from him and remaining as Guile co-maintainers are Ludovic Courtès and Andy Wingo. On behalf of myself and Ludovic and no doubt all Guile users and developers

GNU Guile 2.9.4 Released [beta]

2019-08-25 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.4. This is the fourth pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See

GNU Guile 2.9.3 Released [beta]

2019-08-03 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.3. This is the third pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See

GNU Guile 2.9.2 Released [beta]

2019-05-23 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.2. This is the second pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See

Re: guile-2.9.1 impressions

2019-05-23 Thread Andy Wingo
Hi! On Thu 06 Dec 2018 06:21, Linas Vepstas writes: > After sending the email below, I scanned the guile-devel archives, > and I see Thomas Morley talking about Lilypond performance. > The example program he offers up caught my eye: nested deep > in a loop is this: > > (eval-string "'(a b c)")

GNU Guile 2.9.1 Released [beta]

2018-10-10 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.1. This is the first pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), Guile 2.9.1 adds support for just-in-time native code generation, speeding up all Guile programs. See the NEWS

Re: guile 3 update, september edition

2018-09-18 Thread Andy Wingo
Greets :) On Mon 17 Sep 2018 11:35, l...@gnu.org (Ludovic Courtès) writes: >> The threshold at which Guile will automatically JIT-compile is set from >> the GUILE_JIT_THRESHOLD environment variable. By default it is 5. >> If you set it to -1, you disable the JIT. If you set it to 0, *all*

guile 3 update, september edition

2018-09-17 Thread Andy Wingo
Hi! This is an update on progress towards Guile 3. In our last update, we saw the first bits of generated code: https://lists.gnu.org/archive/html/guile-devel/2018-08/msg5.html Since then, the JIT is now feature-complete. It can JIT-compile *all* code in Guile, including delimited

Re: FOSDEM 2019

2018-08-22 Thread Andy Wingo
On Tue 21 Aug 2018 19:57, Ricardo Wurmus writes: > If we base our application on this proposal I think we should make these > changes: > > - mention the work on adding JIT Yes definitely! This will be Guile 3, so we can call it "Just-in-time code generation for Scheme: Speed for free in Guile

Guile 3 update, August edition

2018-08-20 Thread Andy Wingo
Hi! Last dispatch was here: https://lists.gnu.org/archive/html/guile-devel/2018-07/msg00037.html To recap, I merged in GNU lightning and added an extra machine-code return address to frames, but hadn't actually written the JIT yet. Since July, I made it so that all Guile bytecode function

guile 3 update, july edition

2018-07-21 Thread Andy Wingo
Hi :) Just a brief update with Guile 3. Last one was here: https://lists.gnu.org/archive/html/guile-devel/2018-06/msg00026.html There is a now a "lightning" branch that has GNU lightning merged in and built statically into Guile. It causes about 1 MB of overhead in the -Og libguile-3.0.so,

Re: guile 3 update, june 2018 edition

2018-07-05 Thread Andy Wingo
Hi :) On Mon 02 Jul 2018 11:28, l...@gnu.org (Ludovic Courtès) writes: > Andy Wingo skribis: > >> My current plan is that the frame overhead will still be two slots: the >> saved previous FP, and the saved return address. Right now the return >> address is a

guile 3 update, june 2018 edition

2018-06-29 Thread Andy Wingo
Hi, Just wanted to give an update on Guile 3 developments. Last note was here: https://lists.gnu.org/archive/html/guile-devel/2018-04/msg4.html The news is that the VM has been completely converted over to call out to the Guile runtime through an "intrinsics" vtable. For some

Re: c99 support

2018-06-29 Thread Andy Wingo
On Sat 23 Jun 2018 22:12, Andy Wingo writes: > Is there anyone who compiles Guile with a compiler that does not support > C99? If so, please give platform and compiler. > > I think my questions are limited to, in decreasing order of importance: > > * Is there any sys

Re: c99 support

2018-06-23 Thread Andy Wingo
On Sat 23 Jun 2018 21:23, Eli Zaretskii writes: >> From: Andy Wingo >> Date: Sat, 23 Jun 2018 21:11:29 +0200 >> Cc: guile-devel@gnu.org >> >> Is there anyone who compiles Guile with a compiler that does not support >> C99? If so, please give platform and

c99 support

2018-06-23 Thread Andy Wingo
Hi, Is there anyone who compiles Guile with a compiler that does not support C99? If so, please give platform and compiler. Thanks, Andy

Re: tracepoints/breakpoints and native compilation

2018-05-15 Thread Andy Wingo
On Tue 15 May 2018 05:08, Mark H Weaver writes: > I think we should consider deprecating these legacy debug hooks, and > instead to support debugging features similar to GDB, using the same > implementation methods that GDB uses. > > Alternatively, I wonder if it would be

Guile 3 update -- more instruction explosion, intrinsics

2018-04-13 Thread Andy Wingo
Hello all :) This mail is an update on Guile 3 progress. Some previous updates were here: https://lists.gnu.org/archive/html/guile-devel/2018-01/msg9.html https://lists.gnu.org/archive/html/guile-devel/2018-01/msg3.html I took a break for a while and picked up this work again a

guile 3 update: instruction explosion for bytevectors

2018-01-17 Thread Andy Wingo
Greets, FYI I wrote up a new update on the road to Guile 3; as I seem to be getting closer, it's in blog form: https://wingolog.org/archives/2018/01/17/instruction-explosion-in-guile Cheers, A

Re: guile 3 update: instruction explosion for pairs, vectors

2018-01-16 Thread Andy Wingo
On Tue 09 Jan 2018 15:30, Mikael Djurfeldt writes: > Maybe this is all completely obvious to you, but I want to remind, > again, about the plans and ideas I had for GOOPS before I had to leave > it at its rather prototypical and unfinished state: > > As you recall, generic

guile 3 update: instruction explosion for pairs, vectors

2018-01-08 Thread Andy Wingo
Hey all! This is an update along the road to Guile 3. Check https://lists.gnu.org/archive/html/guile-devel/2017-11/msg00016.html for the previous entry. Since 25 November there have been around 100 commits or so. Firstly I merged in patches from stable-2.0, including patches corresponding to

GNU Guile 2.2.3 released.

2017-12-01 Thread Andy Wingo
We are delighted to announce GNU Guile release 2.2.3, the third bug-fix release in the 2.2 stable release series. Besides the usual pile of bug fixes, this release has two notable improvements that we hope you will enjoy. The first is that the compiler is faster, especially on large Scheme

guile 3 update: more number unboxing improvements

2017-11-29 Thread Andy Wingo
Hi, In the last update (https://lists.gnu.org/archive/html/guile-devel/2017-11/msg00010.html) I talked a lot about fixnums. This last couple weeks' work is along the same lines. Firstly I added support for specialized instructions that compare (in the < or = sense) s64 and u64 values against

guile 3 update: better reasoning about fixnums

2017-11-13 Thread Andy Wingo
Hi, An update on Guile 3 hackings over the past couple weeks. Firstly I made a change to the CPS language. Before, "primcalls" -- invocations of primitives known to the compiler, some of which ultimately compile to instructions/bytecode -- took all arguments as CPS values. This was even the

Re: Weak tables harmful to GC?

2017-10-31 Thread Andy Wingo
in weaks.c in > 2.0.) Good idea; fixed. Andy >From 098c4171ef53791d97b5c675218f302efc7bcf26 Mon Sep 17 00:00:00 2001 From: Andy Wingo <wi...@pobox.com> Date: Tue, 31 Oct 2017 09:10:55 +0100 Subject: [PATCH 2/3] Refactor weak table to use bitmaps for weak entries --- libguile/weak-table.

Re: Weak tables harmful to GC?

2017-10-30 Thread Andy Wingo
rom 6ec4642516eaabf7a63644463a7836eb3efbcd60 Mon Sep 17 00:00:00 2001 From: Andy Wingo <wi...@pobox.com> Date: Mon, 30 Oct 2017 18:19:37 +0100 Subject: [PATCH] Weak tables are now bucket-and-chain tables This change should make weak tables work better with libgc, as the weak components that need mark functions are sm

Re: Compiler memory consumption

2017-10-30 Thread Andy Wingo
On Wed 25 Oct 2017 19:42, l...@gnu.org (Ludovic Courtès) writes: > In short, compiling the top-level thunk is what’s killing us, because > the space and time complexity is proportional to the number of labels > therein. > > Also, our 16K line python.scm file translates into 428K labels, which >

guile 3 update: lowered conditionals

2017-10-30 Thread Andy Wingo
Hi, An update on the Guile 3 effort. Since last week I attacked the conditional instructions, replacing e.g. "br-if-< A B OFFSET" with a sequence of "

Re: guile 3 update

2017-10-30 Thread Andy Wingo
Hi :) On Sun 22 Oct 2017 15:22, Christopher Allan Webber writes: > - Could native code compilation also be a step towards WASM, assuming >they lend us their GC? Regarding this question: yes! Specifically with the "GC" proposal (which in reality is much more:

  1   2   3   4   5   6   7   8   9   10   >