From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 120811 invoked by alias); 18 Feb 2017 16:36:38 -0000 Mailing-List: contact kawa-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: kawa-owner@sourceware.org Received: (qmail 119879 invoked by uid 89); 18 Feb 2017 16:36:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.6 required=5.0 tests=BAYES_50,KAM_INFOUSMEBIZ autolearn=no version=3.3.2 spammy=H*M:info, Notice, H*r:sk:kawa@so, HX-OutGoing-Spam-Status:score X-HELO: elephant.birch.relay.mailchannels.net Received: from elephant.birch.relay.mailchannels.net (HELO elephant.birch.relay.mailchannels.net) (23.83.209.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 18 Feb 2017 16:36:27 +0000 X-Sender-Id: hostpapa|x-authuser|peter@peterlane.info Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 90C6222859 for ; Sat, 18 Feb 2017 16:36:25 +0000 (UTC) Received: from hp114.hostpapa.com (unknown [100.96.12.120]) by relay.mailchannels.net (Postfix) with ESMTPA id D0AC92275F for ; Sat, 18 Feb 2017 16:36:24 +0000 (UTC) X-Sender-Id: hostpapa|x-authuser|peter@peterlane.info Received: from hp114.hostpapa.com (hp114.hostpapa.com [172.20.104.49]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.7.19); Sat, 18 Feb 2017 16:36:25 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: hostpapa|x-authuser|peter@peterlane.info X-MailChannels-Auth-Id: hostpapa X-MC-Loop-Signature: 1487435785116:657754103 X-MC-Ingress-Time: 1487435785116 Received: from host86-161-43-49.range86-161.btcentralplus.com ([86.161.43.49]:37564 helo=[192.168.1.64]) by hp114.hostpapa.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from ) id 1cf7zh-001700-Ad for kawa@sourceware.org; Sat, 18 Feb 2017 16:36:22 +0000 To: kawa@sourceware.org From: Peter Lane Subject: environments and eval with user-defined library Message-ID: Date: Sat, 18 Feb 2017 16:36:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-OutGoing-Spam-Status: No, score=0.6 X-AuthUser: peter@peterlane.info X-IsSubscribed: yes X-SW-Source: 2017-q1/txt/msg00052.txt.bz2 I've been using eval and environment as follows: #|kawa:1|# (define env (environment '(srfi 1))) #|kawa:2|# (environment-bound? env 'iota) #t #|kawa:3|# (eval '(iota 10) env) (0 1 2 3 4 5 6 7 8 9) Although this works for builtin libraries (like srfi 1), this does not appear to work for my own libraries, e.g. below. Notice on line two, the symbol is bound in the environment, so (lib test) seems to be found and loaded into 'env'. But during 'eval' there is no lib.test class found. I'm running Kawa in r7rs mode, with the library in "./lib/test.sld": $ kawa --r7rs -Dkawa.import.path="./*.sld" Is this a limitation in the implementation? Or do I need to give kawa some more information? #|kawa:1|# (define env (environment '(lib test))) #|kawa:2|# (environment-bound? env 'test-me) #t #|kawa:3|# (eval '(test-me) env) Exception in thread "main" java.lang.ExceptionInInitializerError at atEvalLevel-1.run(stdin:3) at gnu.expr.ModuleExp.evalModule2(ModuleExp.java:293) at gnu.expr.ModuleExp.evalModule(ModuleExp.java:212) at kawa.lang.Eval.evalBody(Eval.java:100) at kawa.lang.Eval.evalForm$X(Eval.java:27) at kawa.lib.scheme.eval.eval$X(eval.scm:9) at atInteractiveLevel-3.run(stdin:3) at gnu.expr.ModuleExp.evalModule2(ModuleExp.java:293) at gnu.expr.ModuleExp.evalModule(ModuleExp.java:212) at kawa.Shell.run(Shell.java:283) at kawa.Shell.run(Shell.java:196) at kawa.Shell.run(Shell.java:183) at kawa.repl.processArgs(repl.java:714) at kawa.repl.main(repl.java:820) Caused by: java.lang.ClassNotFoundException: lib.test at gnu.mapping.WrappedException.rethrow(WrappedException.java:121) at gnu.expr.Compilation.setupLiterals(Compilation.java:2984) at lib.test.(test.sld) ... 14 more Caused by: java.lang.ClassNotFoundException: lib.test at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at gnu.bytecode.ArrayClassLoader.loadClass(ArrayClassLoader.java:132) at gnu.bytecode.ArrayClassLoader.loadClass(ArrayClassLoader.java:132) at gnu.expr.Compilation.setupLiterals(Compilation.java:2965) ... 15 more -- Peter Lane http://peterlane.info