unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* 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).