From: Lars Brinkhoff <lars@nocrew.org>
Cc: emacs-devel@gnu.org
Subject: Re: User-reserved element in byte code vectors
Date: 03 May 2004 08:08:30 +0200 [thread overview]
Message-ID: <853c6i82ld.fsf@junk.nocrew.org> (raw)
In-Reply-To: <m17jvu5z9g.fsf-monnier+emacs@gnu.org>
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> > > I thought you already had it implemented.
> > I'm using another way which I sketched in a message a few days ago.
> OK, so I understood it right. My argument is that my way is better
> than your current way.
Yes, I agree.
> Constructing a closure in your scheme involves creating the wrapper
> which boils down to constructing one new byte-compiled-object as
> well as one new "constants" vector which holds the static
> environment, the real byte-compiled code and maybe one or two more
> constants. I.e. one byte-compiled-object and one vector.
Yes, and maybe some consing of the &rest argument to the wrapper?
> I.e. the downside of my approach (constructing one byte-compiled-
> object plus one constants vector) doesn't seem nearly as bad when
> seen in this light. Admittedly my constants vector will generally
> be larger so your closure-construction is still usually more
> efficient, but only profiling can tell if the difference is
> significant.
Right. For reference, my wrapper function looks like this:
#[(&rest args) "<8 bytes>" [env args <environment> apply <function>] 3]
> I'm also interested in both, but we can't say "answer 1 to question
> 1 sucks because answer 2 to question 2 is better".
Sorry, I didn't mean to imply that anything sucks.
> To get back to the original question, I now don't see how you can
> usefully put the static environment in slot 7 without making changes
> to the C code, so there's no point deciding it's reserved for use by
> elisp packages.
Not as an environment slot for current Emacs Lisp code, no.
> As for the rest of the meta-data you might want to put in byte-
> compiled-objects, maybe we should dedicate one of the slots (maybe
> the 7th or 8th) for an alist where people can put whatever they
> want.
That would be nice.
--
Lars Brinkhoff, Services for Unix, Linux, GCC, HTTP
Brinkhoff Consulting http://www.brinkhoff.se/
next prev parent reply other threads:[~2004-05-03 6:08 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1BH4Nx-000730-Dq@fencepost.gnu.org>
[not found] ` <85k7036eqr.fsf@junk.nocrew.org>
[not found] ` <E1BI6nw-0005F4-Hl@fencepost.gnu.org>
[not found] ` <85smepfzqo.fsf@junk.nocrew.org>
[not found] ` <E1BIm46-0001Ha-5A@fencepost.gnu.org>
2004-04-28 10:43 ` User-reserved element in byte code vectors (was: Emacs Common Lisp) Lars Brinkhoff
2004-04-28 13:48 ` Stefan Monnier
2004-04-28 15:08 ` User-reserved element in byte code vectors Lars Brinkhoff
2004-04-28 15:38 ` Stefan Monnier
2004-04-28 16:51 ` Lars Brinkhoff
2004-04-28 17:12 ` Stefan Monnier
2004-05-02 7:59 ` Lars Brinkhoff
2004-05-02 9:43 ` Miles Bader
2004-05-02 16:02 ` Lars Brinkhoff
2004-05-03 14:03 ` Richard Stallman
2004-05-03 19:57 ` Miles Bader
2004-05-05 5:23 ` Lars Brinkhoff
2004-05-05 20:21 ` Richard Stallman
2004-05-06 3:55 ` Miles Bader
2004-05-06 4:56 ` Miles Bader
2004-05-06 11:48 ` Richard Stallman
2004-05-14 17:53 ` Miles Bader
2004-05-14 18:27 ` Stefan Monnier
2004-05-14 19:50 ` Lars Brinkhoff
2004-05-14 22:03 ` Miles Bader
2004-05-14 22:14 ` Stefan Monnier
2004-05-15 18:34 ` Richard Stallman
2004-05-15 23:10 ` Miles Bader
2004-05-17 11:04 ` Richard Stallman
2004-05-17 11:28 ` Lars Brinkhoff
2004-05-17 16:30 ` Stefan Monnier
2004-05-17 22:06 ` Miles Bader
2004-05-17 22:33 ` David Kastrup
2004-05-18 1:29 ` Miles Bader
2004-05-18 13:17 ` Stefan Monnier
2004-05-18 23:45 ` Miles Bader
2004-05-19 6:28 ` David Kastrup
2004-05-19 6:37 ` Miles Bader
2004-05-19 19:00 ` Richard Stallman
2004-05-19 22:32 ` Function vectors: +funvec-20030520-0-c.patch Miles Bader
2004-05-19 7:34 ` User-reserved element in byte code vectors Kim F. Storm
2004-05-19 13:45 ` Richard Stallman
2004-05-19 14:28 ` Miles Bader
2004-05-19 15:19 ` Stefan Monnier
2004-05-20 0:31 ` Miles Bader
2004-05-20 13:17 ` Richard Stallman
2004-05-21 1:28 ` Miles Bader
2004-05-22 7:31 ` Richard Stallman
2004-05-22 9:37 ` Miles Bader
2004-05-18 14:53 ` Richard Stallman
2004-05-18 17:34 ` Miles Bader
2004-05-18 14:53 ` Richard Stallman
2004-05-16 23:53 ` Stefan Monnier
[not found] ` <E1BP3ym-0007oy-F7@fencepost.gnu.org>
[not found] ` <20040515231754.GB20052@fencepost>
2004-05-16 4:02 ` Function vectors: +funvec-20030516-0-c.patch Miles Bader
2004-05-16 12:28 ` Function vectors: +funvec-20030516-1-c.patch Miles Bader
2004-05-16 23:58 ` Function vectors: +funvec-20030516-0-c.patch Stefan Monnier
2004-05-17 0:03 ` Miles Bader
2004-05-17 0:14 ` Stefan Monnier
2004-05-17 0:30 ` Miles Bader
2004-05-17 16:09 ` Stefan Monnier
2004-05-17 22:21 ` Miles Bader
2004-05-18 13:30 ` Stefan Monnier
2004-05-17 11:04 ` Richard Stallman
2004-05-17 11:04 ` Richard Stallman
2004-05-17 22:54 ` Miles Bader
2004-05-18 14:54 ` Richard Stallman
2004-05-18 6:04 ` Function vectors: +funvec-20030518-0-c.patch Miles Bader
2004-05-06 6:17 ` User-reserved element in byte code vectors Lars Brinkhoff
2004-05-06 14:24 ` Stefan Monnier
2004-05-06 20:39 ` Miles Bader
2004-05-02 16:37 ` Stefan Monnier
2004-05-02 18:59 ` Lars Brinkhoff
2004-05-02 19:21 ` Stefan Monnier
2004-05-02 19:27 ` Lars Brinkhoff
2004-05-02 19:54 ` Stefan Monnier
2004-05-02 20:28 ` Lars Brinkhoff
2004-05-02 21:07 ` Stefan Monnier
2004-05-03 6:08 ` Lars Brinkhoff [this message]
2004-05-02 19:52 ` Richard Stallman
2004-04-28 15:38 ` User-reserved element in byte code vectors (was: Emacs Common Lisp) Miles Bader
2004-05-01 5:30 ` Lars Brinkhoff
2004-05-01 23:58 ` Miles Bader
2004-05-01 7:01 ` get-internal-run-time Lars Brinkhoff
2004-05-01 18:53 ` get-internal-run-time Lars Brinkhoff
2004-05-02 14:44 ` get-internal-run-time Eli Zaretskii
2004-05-02 15:45 ` get-internal-run-time Lars Brinkhoff
2004-05-02 18:41 ` get-internal-run-time Lars Brinkhoff
2004-05-03 0:10 ` get-internal-run-time Kevin Ryde
2004-05-03 5:38 ` get-internal-run-time Lars Brinkhoff
2004-05-03 14:03 ` get-internal-run-time Richard Stallman
2004-10-28 16:30 ` get-internal-run-time Lars Brinkhoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=853c6i82ld.fsf@junk.nocrew.org \
--to=lars@nocrew.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).