emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [elpa] externals/org 26ef5e3e5b: org-src: Use `sh-mode' for all the


From: Mattias Engdegård
Subject: Re: [elpa] externals/org 26ef5e3e5b: org-src: Use `sh-mode' for all the shells it can handle
Date: Tue, 18 Apr 2023 11:50:57 +0200

17 apr. 2023 kl. 22.08 skrev Stefan Monnier <monnier@iro.umontreal.ca>:

>> I wouldn't mind adding `list*` at all. (It would eventually compile to list 
>> + nconc, of course.)
> 
> I was thinking of adding it as a C-implemented function.
> It might still lose to list+nconc unless we also give it a bytecode, tho.

I think it would, but it's easy enough to find out, and we can change our minds 
later. I would go for a Lisp implementation, with special attention in codegen.

One thing that matters is what normal form to use during compilation, to make 
transforms manageable. I'm leaning towards representing `list*` as chained 
`cons` calls, since the other way around (represent `cons` as `list*`) would be 
more work for little benefit.

On the other hand it's good to avoid bad complexity and stack overflows for 
long list* calls (or long backquote lists). Philip, you wrote earlier:

> I have had issues in the past with ,@ expanding to code that would have
> exceeded the maximal evaluation depth, until I split it up and manually
> used `append' that has the advantage of being implemented in C.

Could you give us a representative example of the code that you had to split 
up? Did the max-eval-lisp-depth limit hit interpretation or compilation?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]