From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Re: Troubles with Objcode and Storing JIT Pointers Date: Sun, 4 Jul 2010 13:43:07 -0400 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: dough.gmane.org 1278265397 767 80.91.229.12 (4 Jul 2010 17:43:17 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 4 Jul 2010 17:43:17 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Jul 04 19:43:16 2010 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OVTDo-0000wG-0M for guile-devel@m.gmane.org; Sun, 04 Jul 2010 19:43:16 +0200 Original-Received: from localhost ([127.0.0.1]:44591 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVTDn-000361-E7 for guile-devel@m.gmane.org; Sun, 04 Jul 2010 13:43:15 -0400 Original-Received: from [140.186.70.92] (port=50047 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVTDi-00035N-7C for guile-devel@gnu.org; Sun, 04 Jul 2010 13:43:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OVTDg-0001Hb-CS for guile-devel@gnu.org; Sun, 04 Jul 2010 13:43:10 -0400 Original-Received: from mail-iw0-f169.google.com ([209.85.214.169]:52297) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OVTDg-0001HR-8E for guile-devel@gnu.org; Sun, 04 Jul 2010 13:43:08 -0400 Original-Received: by iwn2 with SMTP id 2so4227321iwn.0 for ; Sun, 04 Jul 2010 10:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=vpHXYm70Udcw51EzZTfVgsAipFqvjmGWYvfove8QLFo=; b=kb5MhQJ9j0fqHR9QQRmYes4fnIyeoLmL8gtqDevK7J2E3slH99L9x6E8XyeV4Z4VnO plzrG/6hYAw+nl0OZXZlPwDdYOKFQ/7tP/9OAV6ytZrgg8X9OIbZWeNMTPoM7yRVfNQP MWIAwDKMTfahWJDPeWD81WwevCSx8ut5g97+g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=VkPJcdB7//YXeDRtLvxZ8KTm3insPqE8zUIAIv3/rtryk29tz/zuRFVSbQwMk/M7TC VAId2ZkpOovfAuzkrjoXflnvcxKosTZYLceTKurOLYbhW0dyTNCzt5l9eGTgXHI0P9kq 3sFs9wStmMgyUGOdREFRd3uBNHyzignDKSG60= Original-Received: by 10.231.168.201 with SMTP id v9mr1769883iby.116.1278265387331; Sun, 04 Jul 2010 10:43:07 -0700 (PDT) Original-Received: by 10.231.37.133 with HTTP; Sun, 4 Jul 2010 10:43:07 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: Tehv43GD4tVArRqNmwX_Si8cdQI X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:10611 Archived-At: Problems fixed - sorry for the confusion. I will send a new patch to guile-sources which corrects all of these issues. Noah On Sat, Jul 3, 2010 at 2:28 PM, Noah Lavine wrote: > Hello, > > I just sent two patches which start to implement this to > guile-sources@gnu.org. (The first patch is actually a small > documentation change, which I made only so I could rewrite it with > updated documentation in the second patch.) > > The patch works as you described - SCM objcodes become five-word > objects, and all of the references get updated. I also had to change > all of the files that include static objcodes, which is why there are > changes to continuations.c, control.c, foreign.c, gsubr.c, and smob.c. > > Unfortunately, I've hit a snag that I don't understand - if you try to > build it, you will see that control.c encounters an error in a > function that isn't changed by the patch. I am hoping that someone who > understands Guile's build system more than I do could look at that, > because I don't know what's happening. > > There is one other issue with the patch that needs discussion, which > is what to initialize the extra cells to. Currently they're > initialized to NULL, and a comment describes a possible convention for > storing JIT code with them, but I'm not convinced it's the best way. > In particular, using an SCM symbol like 'no-jitcode for empty pointers > would be more self-documenting, but I wasn't sure if it would work in > statically-generated objcodes. > > Thanks > Noah > > On Tue, Jun 22, 2010 at 3:03 PM, Andy Wingo wrote: >> On Tue 22 Jun 2010 00:23, Noah Lavine writes: >> >>> If I may ask, do you already have patches or a git branch that adds [a >>> native code slot to objcode]? If so, what are you doing about the >>> embedded objcode issue? (Changing the bytecode to leave room for it, >>> or hiding the slot in the C code?) >> >> I do not have a patch, no. Feel free to implement :) Having not >> implemented it, I do not know exactly what's needed, but I would not put >> it in what is the struct scm_objcode, rather in the SCM value that >> includes the objcode. >> >> I don't know if we can somehow fit this in a "double cell" or if we need >> to have a five-word object (see scm_words ()). >> >> Andy >> -- >> http://wingolog.org/ >> >