From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id FAA26684; Fri, 13 Aug 2004 05:54:47 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id FAA27211 for ; Fri, 13 Aug 2004 05:54:46 +0200 (MET DST) Received: from kurims.kurims.kyoto-u.ac.jp (kurims.kurims.kyoto-u.ac.jp [130.54.16.1]) by nez-perce.inria.fr (8.12.10/8.12.10) with ESMTP id i7D3shmL025736 for ; Fri, 13 Aug 2004 05:54:45 +0200 Received: from localhost (tet.kurims.kyoto-u.ac.jp [130.54.16.184]) by kurims.kurims.kyoto-u.ac.jp (8.9.3p2-20030924/3.7W) with ESMTP id MAA28419; Fri, 13 Aug 2004 12:54:35 +0900 (JST) Date: Fri, 13 Aug 2004 12:53:29 +0900 (JST) Message-Id: <20040813.125329.74721093.garrigue@kurims.kyoto-u.ac.jp> To: Christoph.Bauer@lms-gmbh.de Cc: caml-list@inria.fr Subject: Re: AW: [Caml-list] The tag bit From: Jacques Garrigue In-Reply-To: References: X-Mailer: Mew version 4.0.64 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 411C3B83.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 jacques:01 bauer:01 bauer:01 jacques:01 garbage:01 garbage:01 approaches:01 lisp:01 garrigue:01 garrigue:01 collector:02 collector:02 pointer:03 suppose:03 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk From: "Bauer, Christoph" > But who needs the tag bit? Only the garbage collector. Maybe it's > an advantage to see 32 tag bits as a whole, e.g. the question > "does the block contains any pointer" can be calculated bit-parallel. > Anyway the garbage collector could works on blocks and needs > just one additional memory access per block. But who works in your program? The garbage collector! Do some profiling, and you will be surprised at how much time is used collecting garbage in a perfectly sane program. No surprise here: in symbolic programming, you are generating garbage all the time. In the old lisp days, people talked of the mutator (your program) and the collector, emphasizing that they are almost equal. And you wouldn't give 1 bit for your brother, doing all the dirty work? :-) More seriously, it may be that your idea of blocks could be made to work, but it's not going to be easy. For instance, what do you do when manipulating data between registers? Looks like it would mean updating some special register every time you do a move operation. This could generate heaps of code. GC is such an old field that I suppose all weird approaches have already been studied in the litterature. Jacques Garrigue ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners