Re: multiple values: value1 treated extra even when not in register
Daniel Jour <[email protected]>
| Newsgroups | gmane.lisp.clisp.devel |
|---|---|
| Message-ID | <CACZHyTMVf7kgxtaJiURhFqut1i2Gh1jL7jcrWmJ+A2DX5CcqSg@mail.gmail.com> |
> it might be that the define was not removed by mistake.
> you can try to figure it out using 'hg blame' and searching through ChangeLog.
It's changeset 93dee6a014b2 from January 2008: You gave global variables (like
the multiple value space) thread local storage, and changed:
# Synonyms:
#if !defined(value1_register)
- #ifndef MULTITHREAD
#define value1 mv_space[0]
- #else
- /* The first value mv_space[0] is moved to the beginning of struct
- clisp_thread_t: */
- #define value1 (current_thread()->_value1)
- #define VALUE1_EXTRA # and thus has to be treated extra every time...
- #endif
+ #define VALUE1_EXTRA /* and thus has to be treated extra every time... */
#else
Before that change value1 lived in a dedicated thread structure if
multithreading was enabled (and there was no register for it). Thus it had
to be treated extra. Now it's just part of a (thread local) global variable,
which is addressable and thus does not need to be treated any different.
Though that extra treatment does not lead to unwanted behavior, it's just doing
more work.
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel