From MAILER-DAEMON Wed Aug 29 14:18:40 2012 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1T6mqe-0002jm-1e for mharc-geiser-users@gnu.org; Wed, 29 Aug 2012 14:18:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6mlt-0007lt-C8 for geiser-users@nongnu.org; Wed, 29 Aug 2012 14:13:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T6mls-0002LY-2A for geiser-users@nongnu.org; Wed, 29 Aug 2012 14:13:45 -0400 Received: from sneakygcr.net ([71.19.146.234]:53346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6mlr-0002LJ-TB for geiser-users@nongnu.org; Wed, 29 Aug 2012 14:13:43 -0400 Received: from localhost (mail.securics.com [128.198.58.14]) by sneakygcr.net (Postfix) with ESMTPSA id 61E624043C for ; Wed, 29 Aug 2012 18:12:47 +0000 (UTC) From: Michael Wilber To: geiser-users@nongnu.org References: User-Agent: Notmuch/0.14 (http://notmuchmail.org) Emacs/24.1.1 (i686-pc-linux-gnu) Date: Wed, 29 Aug 2012 12:13:49 -0600 Message-ID: <87a9xdtvky.fsf@uccs.edu> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 71.19.146.234 X-Mailman-Approved-At: Wed, 29 Aug 2012 14:18:38 -0400 Subject: [Geiser-users] Racket-git breaks requiring racket/slideshow X-BeenThere: geiser-users@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2012 18:13:46 -0000 Hey, geiser users! So in racket from git and latest geiser from git, when I require slideshow/pict from geiser (or indirectly by enter!-ing a file that requires slideshow/pict), it fails: Welcome to Racket v5.3.0.14. racket@> (require slideshow/pict) define-values: assignment disallowed; cannot re-define a constant constant: invoke-unit/core in module: "/home/michael/racket/collects/racket/unit.rkt" errortrace...: /home/michael/.emacs.d/vendor/geiser/scheme/racket/geiser/enter.rkt:146:10: (eval code) racket@> This also happens to geiser 0.1.4 which makes me think it's unrelated to the recent REPL image changes. It looks like Racket commit 403aaac is what broke things (checking this out and installing racket fails, checking out HEAD^ and trying again lets me import slideshow/pict without issues). This doesn't happen with v5.3. Also, commenting out all the parameterizations for current-load/use-compiled from scheme/racket/geiser/enter.rkt also makes (require slideshow/pict) work correctly. A general question: Why does geiser use its own current-load/use-compiled handler instead of using Racket's enter! functionality? There must be some reason to have that, but it's hard to tell since the two copies of enter.rkt have diverged so much. From MAILER-DAEMON Thu Aug 30 20:53:01 2012 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1T7FTp-0000D7-6P for mharc-geiser-users@gnu.org; Thu, 30 Aug 2012 20:53:01 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33155) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T7FTm-0000C6-Jo for geiser-users@nongnu.org; Thu, 30 Aug 2012 20:52:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T7FTl-0006JU-Ip for geiser-users@nongnu.org; Thu, 30 Aug 2012 20:52:58 -0400 Received: from mail-wi0-f175.google.com ([209.85.212.175]:48357) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T7FTl-0006JE-CW for geiser-users@nongnu.org; Thu, 30 Aug 2012 20:52:57 -0400 Received: by wibhm2 with SMTP id hm2so730841wib.10 for ; Thu, 30 Aug 2012 17:52:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent :x-attribution:x-url:date:message-id:mime-version:content-type; bh=2dSOhIqiUh+6pxlj5VVHX7B6Zp25EHtNNbxj0fuet7c=; b=QyzRcus2Ub207Pt0kGg77eMX1ocm7VSWJReZzTrkA/YW+YXYrFvOZq1Uo4m6iQ4fSb e2A7nXUaPg/2/P0V2sMs6XPmCddxpwn9py5f2SLpT0vcWiGxYfT3TRN02ptA/KWyhP5R qKggbxX+i5MqZUPxsVbhTD45nw7peOTjzW55TZH2adu0dhGdYM5uFhyBOpajpMRStfxE zFROMXX786bQ/JkJSHVpnqkrV5esVemRWVg7Jq0NbSoGVwsY52jLlkpMA2dbzydRntnY rQdSr6yufDfz0N9Uxn8miHreNjR4zSFZK1mzu81b8xX96HqLlyhFN2H4B9e4MNdh1G3Z XgZg== Received: by 10.180.99.196 with SMTP id es4mr653626wib.18.1346374375714; Thu, 30 Aug 2012 17:52:55 -0700 (PDT) Received: from rivendell (164.Red-83-32-68.dynamicIP.rima-tde.net. [83.32.68.164]) by mx.google.com with ESMTPS id q4sm3551676wix.9.2012.08.30.17.52.54 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 30 Aug 2012 17:52:54 -0700 (PDT) Sender: "Jose A. Ortega" Received: from localhost ([127.0.0.1] helo=rivendell) by rivendell with esmtp (Exim 4.80) (envelope-from ) id 1T7FTh-0001Bm-NM; Fri, 31 Aug 2012 02:52:53 +0200 From: "Jose A. Ortega Ruiz" To: Michael Wilber In-Reply-To: <87a9xdtvky.fsf@uccs.edu> (Michael Wilber's message of "Wed, 29 Aug 2012 12:13:49 -0600") References: <87a9xdtvky.fsf@uccs.edu> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) X-Attribution: jao X-URL: Date: Fri, 31 Aug 2012 02:52:53 +0200 Message-ID: <87a9xblw62.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.212.175 Cc: geiser-users@nongnu.org Subject: Re: [Geiser-users] Racket-git breaks requiring racket/slideshow X-BeenThere: geiser-users@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Aug 2012 00:52:59 -0000 Hi Michael, On Wed, Aug 29 2012, Michael Wilber wrote: > Hey, geiser users! > > So in racket from git and latest geiser from git, when I require > slideshow/pict from geiser (or indirectly by enter!-ing a file that > requires slideshow/pict), it fails: > > Welcome to Racket v5.3.0.14. > racket@> (require slideshow/pict) > define-values: assignment disallowed; > cannot re-define a constant > constant: invoke-unit/core > in module: "/home/michael/racket/collects/racket/unit.rkt" > errortrace...: > /home/michael/.emacs.d/vendor/geiser/scheme/racket/geiser/enter.rkt:146:10: (eval code) > racket@> > > This also happens to geiser 0.1.4 which makes me think it's unrelated to > the recent REPL image changes. Yes, i'm pretty sure it's totally unrelated. > It looks like Racket commit 403aaac is what broke things (checking this > out and installing racket fails, checking out HEAD^ and trying again > lets me import slideshow/pict without issues). This doesn't happen with > v5.3. > > Also, commenting out all the parameterizations for > current-load/use-compiled from scheme/racket/geiser/enter.rkt also makes > (require slideshow/pict) work correctly. Do you mean the calls to parameterize on lines 91 and 111? (specially, that one needs removign the first is a bit surprising), or am i misunderstanding? > A general question: Why does geiser use its own > current-load/use-compiled handler instead of using Racket's enter! > functionality? There must be some reason to have that, but it's hard > to tell since the two copies of enter.rkt have diverged so much. I wanted to avoid loading modules unless explicitly requested by the user. With the default current-load/use-compiled, if you ask for the namespace of a module that is not loaded, that will cause the module (and all its dependencies) to be loaded... That would mean that when one opens a new racket file with autodoc enabled (or try a completion, or whatever), the module would get automatically loaded without the user's consent. I didn't find a way of asking Racket for a module's namespace without causing it to be loaded automatically. Providing my own current-load/use-compiled in conjunction with the inhibit-eval parameter you see there solved that problem. Perhaps we could just call racket's current-load/use-compiled in my own version, after using inhibit-eval... i also wanted access to the cache of loaded modules that enter! maintains without duplicating it (that had to do somehow with find-module!, which provides another functionality i wanted: locating a module without having to load it), but probably maintaining an independent geiser cache is perfectly okay. Another thing i accomplished with all this was hiding Racket's enter! from the user, so that Geiser can know at all times what's the current namespace without having to poll Racket. But, againt, hat could probably be also implemented by making Geiser's enter! call Racket's, shadowing it as needed. I'll try to take a closer look, unless you beat me at it! ;-) Cheers, jao -- Love: a temporary insanity, curable by marriage. -Ambrose Bierce, author and editor (1842-1914) From MAILER-DAEMON Fri Aug 31 23:00:51 2012 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1T7dx5-0003NX-PX for mharc-geiser-users@gnu.org; Fri, 31 Aug 2012 23:00:51 -0400 Received: from eggs.gnu.org ([208.118.235.92]:40182) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T7dx3-0003MX-DW for geiser-users@nongnu.org; Fri, 31 Aug 2012 23:00:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T7dx2-0006XV-DD for geiser-users@nongnu.org; Fri, 31 Aug 2012 23:00:49 -0400 Received: from mail-wg0-f41.google.com ([74.125.82.41]:33327) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T7dx2-0006XM-6Y for geiser-users@nongnu.org; Fri, 31 Aug 2012 23:00:48 -0400 Received: by wgbds1 with SMTP id ds1so1137028wgb.4 for ; Fri, 31 Aug 2012 20:00:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent :x-attribution:x-url:date:message-id:mime-version:content-type :content-transfer-encoding; bh=KKKI5L2Pe+hT0y8UEeNHwbyNu8hJfNtnFM2veyWlWMA=; b=r1rIZcTpV+Tu2na/fLiotOduUO9HPyS3CDCfWaA2OpeDZwNvbpj0h7P8SlBg9LueP2 Jr0FXKd6nKZWyHdwhkaKCumT2UrPRFFICMqXt6TkzlZ3oGe6xnlk0ZGhGsJIeyVMT2V9 iUKIGC3gzv16chTz5NLF0sk0ctYqes37yrHeSmUFETvpVvidDAF3eFjOFrOH/wyp0kZS n5WJnAMB3ylVObBubBMXWaqV5uM2BorP2kjqPtHm17HnNJJG2cwBN4iLt443nao/QZ4+ M9NaMWHLuGPWHmpk6vUDX27l6xkry9buYWcj5LeLhj9Dp4Yzz5+wvKu+4c/PDbCLJOJA bmvA== Received: by 10.180.96.199 with SMTP id du7mr8514238wib.21.1346468446810; Fri, 31 Aug 2012 20:00:46 -0700 (PDT) Received: from rivendell (164.Red-83-32-68.dynamicIP.rima-tde.net. [83.32.68.164]) by mx.google.com with ESMTPS id b7sm6352398wiz.9.2012.08.31.20.00.45 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 31 Aug 2012 20:00:45 -0700 (PDT) Sender: "Jose A. Ortega" Received: from localhost ([127.0.0.1] helo=rivendell) by rivendell with esmtp (Exim 4.80) (envelope-from ) id 1T7dwy-0006N7-Jd; Sat, 01 Sep 2012 05:00:44 +0200 From: "Jose A. Ortega Ruiz" To: Michael Wilber In-Reply-To: <87a9xdtvky.fsf@uccs.edu> (Michael Wilber's message of "Wed, 29 Aug 2012 12:13:49 -0600") References: <87a9xdtvky.fsf@uccs.edu> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) X-Attribution: jao X-URL: Date: Sat, 01 Sep 2012 05:00:44 +0200 Message-ID: <874nnijvkz.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 74.125.82.41 Cc: geiser-users@nongnu.org Subject: Re: [Geiser-users] Racket-git breaks requiring racket/slideshow X-BeenThere: geiser-users@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Sep 2012 03:00:50 -0000 Hi again, On Wed, Aug 29 2012, Michael Wilber wrote: > Hey, geiser users! > > So in racket from git and latest geiser from git, when I require > slideshow/pict from geiser (or indirectly by enter!-ing a file that > requires slideshow/pict), it fails: > > Welcome to Racket v5.3.0.14. > racket@> (require slideshow/pict) > define-values: assignment disallowed; > cannot re-define a constant > constant: invoke-unit/core > in module: "/home/michael/racket/collects/racket/unit.rkt" > errortrace...: > /home/michael/.emacs.d/vendor/geiser/scheme/racket/geiser/enter.rkt:14= 6:10: (eval code) > racket@> I've been playing a bit with this. The bad news is that i hadn't realized that Racket's current-load/use-compiled is not exported and i cannot call it directly (that explains why my own version). The not so bad news is that the problem is actually in Racket, not in Geiser. If i try Racket's enter! in a vanilla racket session i get: $ ./racket=20 Welcome to Racket v5.3.0.21. > (enter! slideshow/pict) define-values: assignment disallowed; cannot re-define a constant constant: invoke-unit/core in module: "/home/jao/src/racket/collects/racket/unit.rkt" >=20 So it's also a problem with current-load/use-compiled (as to why in Geiser a require uses also the latter, it's because Geiser needs to keep track of all modules as they're loaded, and i didn't find any hook to get notified of those events...). Cheers, jao --=20 For every complex problem there is an answer that is clear, simple, and wrong. =E2=80=94Henry Mencken