From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19610 invoked from network); 24 Feb 2000 09:08:01 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 24 Feb 2000 09:08:01 -0000 Received: (qmail 2794 invoked by alias); 24 Feb 2000 09:07:57 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9859 Received: (qmail 2786 invoked from network); 24 Feb 2000 09:07:56 -0000 Date: Thu, 24 Feb 2000 10:07:55 +0100 (MET) Message-Id: <200002240907.KAA32439@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Andrej Borsenkow"'s message of Thu, 24 Feb 2000 10:47:46 +0300 Subject: RE: PATCH: parser (was: Re: PATCH: Improved _mailboxes) Andrej Borsenkow wrote: > > Here is the first of the two. As I said, this mainly makes the parser > > create wordcode directly, no more extra compilation phase. > > Sounds really interesting ... Two questions. > > Is the code position-independent? Yes, I took care of that to make copying easier and allow other things (memory compaction?). > Is now code-compiler separated from code-interpreter? There is now nothing I would really call a compiler anymore. > The main reason for these questions - is it possible to precompile Zsh > function, store it and then execute directly? This may be intersted in many > cases - primary use is completion. Precompile completion functions; put > byte-code in single file; mmap this file. I do not know about speed increase > (if any) - but it should dramatically reduce RAM footprint on multiuser > systems. Currently every shell compiles every function on it's own and it > goes in private memory - and that is real RAM (O.K., it is real swap on some > systems :-) mmap'ing precompiled byte-code would mean, that just a single > copy exists. That would indeed be possible. The wordcode is position- and machine- independent. > It may be useful to generalize it to allow byte-code be the contents of > variable. Then Zsh could simply execute the content of > > mapfile[/path/to/precompiled/file] ... may be, not as directly - with > something like imaginal zcompiler module > > zcodeload file All this also makes me think about a way to allow multiple zsh's to share other memory bits (like the command table and so on). How portable is anonymous shared mmap or shared mmap on /dev/null? Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de