* Status on Elisp and special variable handling
@ 2009-10-06 20:05 Daniel Kraft
2009-10-06 22:05 ` Ken Raeburn
2009-10-07 21:26 ` Neil Jerram
0 siblings, 2 replies; 4+ messages in thread
From: Daniel Kraft @ 2009-10-06 20:05 UTC (permalink / raw)
To: Andy Wingo, Neil Jerram; +Cc: guile-devel
Hi all,
it's been some time since I last worked on guile/elisp, but I hope to
get back to it soon (gcc recently went to bug-fix only mode before the
next release and I wanted to implement some stuff before the dead-line
over the last weeks). Andy, what's your status on looking through my
elisp branch?
Apart from that, I think some items I could work on next are defalias
and foolocal variables. I have to admit that I still need to look-up
and think about the very details of those, but I think for both of that
we could add some other special variable values (like void currently is).
If any such value is hit when reading/setting a variable, we do the
needed stuff for handling aliases/foolocal variables instead of doing
the operation directly. While this should work, I fear that it hits
performance once again... But I do not see how we could implement
aliases and foolocal variables without checking on each variable access
if it is some special variable or not? Maybe there we could add VM
support if necessary.
Sorry for the probable confusion above, but maybe it is still somewhat
clear what I'm thinking about... Otherwise I hope to do some work there
soon and maybe this will make it clearer.
Good evening! Cheers,
Daniel
--
Done: Arc-Bar-Cav-Ran-Rog-Sam-Tou-Val-Wiz
To go: Hea-Kni-Mon-Pri
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Status on Elisp and special variable handling
2009-10-06 20:05 Status on Elisp and special variable handling Daniel Kraft
@ 2009-10-06 22:05 ` Ken Raeburn
2009-10-07 7:03 ` Daniel Kraft
2009-10-07 21:26 ` Neil Jerram
1 sibling, 1 reply; 4+ messages in thread
From: Ken Raeburn @ 2009-10-06 22:05 UTC (permalink / raw)
To: Daniel Kraft; +Cc: Andy Wingo, guile-devel, Neil Jerram
On Oct 6, 2009, at 16:05, Daniel Kraft wrote:
> If any such value is hit when reading/setting a variable, we do the
> needed stuff for handling aliases/foolocal variables instead of
> doing the operation directly. While this should work, I fear that
> it hits performance once again... But I do not see how we could
> implement aliases and foolocal variables without checking on each
> variable access if it is some special variable or not? Maybe there
> we could add VM support if necessary.
In the multithreaded case, I think the checks might need to be done
every time -- one thread could call make-variable-foo-local while
another thread is in between two accesses to the variable within a
function. And you also need to watch out for updating what was a non-
foo-local variable in one thread while another makes the variable foo-
local...
Ken
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Status on Elisp and special variable handling
2009-10-06 22:05 ` Ken Raeburn
@ 2009-10-07 7:03 ` Daniel Kraft
0 siblings, 0 replies; 4+ messages in thread
From: Daniel Kraft @ 2009-10-07 7:03 UTC (permalink / raw)
To: Ken Raeburn; +Cc: Andy Wingo, guile-devel, Neil Jerram
Ken Raeburn wrote:
> On Oct 6, 2009, at 16:05, Daniel Kraft wrote:
>> If any such value is hit when reading/setting a variable, we do the
>> needed stuff for handling aliases/foolocal variables instead of doing
>> the operation directly. While this should work, I fear that it hits
>> performance once again... But I do not see how we could implement
>> aliases and foolocal variables without checking on each variable
>> access if it is some special variable or not? Maybe there we could
>> add VM support if necessary.
>
> In the multithreaded case, I think the checks might need to be done
> every time -- one thread could call make-variable-foo-local while
> another thread is in between two accesses to the variable within a
> function. And you also need to watch out for updating what was a
> non-foo-local variable in one thread while another makes the variable
> foo-local...
I also fear that we probably need to examine each variable on each
access for being something "special" or not (like the current void
check). But with doing so it should be quite easy (and also robust) to
implement aliases and foolocals, I've already some ideas and will work
them out soon.
For now I will change the #:disable-viod-check option to
#:no-special-var which disables *all* such special checks on access for
sake of performance; but I'll also see how much this really affects
timings. As a further idea, I think we could implement such "special"
variables in the VM more or less easily (and without being too special
about elisp and aliases/foolocals) to get better performance of variable
access again, maybe I'll investigate that, also.
Yours,
Daniel
--
Done: Arc-Bar-Cav-Ran-Rog-Sam-Tou-Val-Wiz
To go: Hea-Kni-Mon-Pri
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Status on Elisp and special variable handling
2009-10-06 20:05 Status on Elisp and special variable handling Daniel Kraft
2009-10-06 22:05 ` Ken Raeburn
@ 2009-10-07 21:26 ` Neil Jerram
1 sibling, 0 replies; 4+ messages in thread
From: Neil Jerram @ 2009-10-07 21:26 UTC (permalink / raw)
To: Daniel Kraft; +Cc: Andy Wingo, guile-devel
Daniel Kraft <d@domob.eu> writes:
> Hi all,
Hi Daniel,
> Apart from that, I think some items I could work on next are defalias
> and foolocal variables. I have to admit that I still need to look-up
> and think about the very details of those, but I think for both of
> that we could add some other special variable values (like void
> currently is).
I'm afraid I've partly lost track of where we are with elisp...
Can you remind me, do you have specific goals in mind, such as being
able to run a particular elisp application or library?
I think if we had some goals like that, it would help us to see which
details were the most important ones to work on next, and to make
implementation detail choices.
(When I worked on elisp, I used to try (load "loadup.el") to see how far
it would get. I'm not sure that's a useful goal, but out of interest
have you tried that?)
Regards,
Neil
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-10-07 21:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-06 20:05 Status on Elisp and special variable handling Daniel Kraft
2009-10-06 22:05 ` Ken Raeburn
2009-10-07 7:03 ` Daniel Kraft
2009-10-07 21:26 ` Neil Jerram
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).