This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: Scheme Debugging in Eclipse...
- From: Jim White <jim at pagesmiths dot com>
- To: dominique dot boucher at nuecho dot com
- Cc: 'Per Bothner' <per at bothner dot com>, kawa at sources dot redhat dot com
- Date: Tue, 29 Mar 2005 13:32:44 -0800
- Subject: Re: Scheme Debugging in Eclipse...
- References: <200503251937.j2PJbavB018285@bergman.nuecho.ad>
Dominique Boucher wrote:
Following some private email discussions with Per, I was anxious to try
something. Here is the result so far:
...
I've been trying to get the SchemeScript plugin working and not having
success. What is your setup? Have you checked the changes into CVS?
I've tried Eclipse 3.0.1 and 3.1M5. The kawa.jar in schemeways' CVS
didn't work (problems loading conf/namespaces.scm). I tried updating
with Kawa CVS and have new problems.
Kawa CVS has changed the implementation of with_input_from_file and
replaced gnu.expr.Interpreter with gnu.expr.Language so I fixed that,
patch attached. But the problems in conf/namespaces.scm remains.
With Eclipse 3.1 the problems are the same, but they've added a Path
class in another package resulting in an ambiguity. Patch to fix that
attached, but then the same problem with conf/namespaces.scm so I've
returned to focus on 3.0 (3.1 has a copy&paste bug on OS X).
The console error log I get is this (I've tried fiddling a number of
other things but don't they haven't helped and this is the same with all
combinations):
bundleentry://3/conf/util.scm:33:19: warning - no accessible method
`replace'
in java.lang.String
bundleentry://3/conf/buffer.scm:75:3: no matching case while expanding
try-finally
bundleentry://3/conf/dialogs.scm:36:25: warning - no definitely applicable
method `<init>' in org.eclipse.swt.widgets.Shell
bundleentry://3/conf/namespaces.scm:15:1: unknown super-type
org.eclipse.jdt.core.search.IJavaSearchResultCollector
bundleentry://3/conf/namespaces.scm:15:1: duplicate superclass for
ClassExp:SimpleSearchCollector/793/
java.lang.RuntimeException: no such class: org.eclipse.jdt.core.IJavaElement
at gnu.bytecode.ObjectType.getReflectClass(ObjectType.java:74)
at gnu.bytecode.ClassType.getModifiers(ClassType.java:69)
at gnu.bytecode.ClassType.isInterface(ClassType.java:224)
at gnu.bytecode.ClassType.isSubclass(ClassType.java:869)
at gnu.bytecode.ClassType.compare(ClassType.java:898)
at gnu.mapping.MethodProc.isApplicable(MethodProc.java:29)
at gnu.expr.PrimProcedure.getMethodFor(PrimProcedure.java:663)
at gnu.expr.PrimProcedure.getMethodFor(PrimProcedure.java:567)
at gnu.expr.PrimProcedure.getMethodFor(PrimProcedure.java:535)
at gnu.expr.InlineCalls.walkApplyExp(InlineCalls.java:110)
at gnu.expr.ApplyExp.walk(ApplyExp.java:377)
at gnu.expr.ExpWalker.walk(ExpWalker.java:40)
at gnu.expr.SetExp.walkChildren(SetExp.java:299)
at gnu.expr.InlineCalls.walkSetExp(InlineCalls.java:191)
at gnu.expr.SetExp.walk(SetExp.java:294)
at gnu.expr.ExpWalker.walk(ExpWalker.java:40)
at gnu.expr.ExpWalker.walkExps(ExpWalker.java:134)
at gnu.expr.ApplyExp.walkChildren(ApplyExp.java:384)
at gnu.expr.ExpWalker.walkExpression(ExpWalker.java:16)
at gnu.expr.ExpWalker.walkApplyExp(ExpWalker.java:49)
at gnu.expr.InlineCalls.walkApplyExp(InlineCalls.java:55)
at gnu.expr.ApplyExp.walk(ApplyExp.java:377)
at gnu.expr.ExpWalker.walk(ExpWalker.java:40)
at gnu.expr.LambdaExp.walkChildrenOnly(LambdaExp.java:1448)
at gnu.expr.LambdaExp.walkChildren(LambdaExp.java:1436)
at gnu.expr.ExpWalker.walkExpression(ExpWalker.java:16)
at gnu.expr.ExpWalker.walkScopeExp(ExpWalker.java:59)
at gnu.expr.ExpWalker.walkLambdaExp(ExpWalker.java:63)
at gnu.expr.ClassExp.walkChildren(ClassExp.java:523)
at gnu.expr.ExpWalker.walkExpression(ExpWalker.java:16)
at gnu.expr.ExpWalker.walkScopeExp(ExpWalker.java:59)
at gnu.expr.ExpWalker.walkLambdaExp(ExpWalker.java:63)
at gnu.expr.ExpWalker.walkClassExp(ExpWalker.java:64)
at gnu.expr.InlineCalls.walkClassExp(InlineCalls.java:224)
at gnu.expr.ClassExp.walk(ClassExp.java:506)
at gnu.expr.ExpWalker.walk(ExpWalker.java:44)
at gnu.expr.SetExp.walkChildren(SetExp.java:299)
at gnu.expr.InlineCalls.walkSetExp(InlineCalls.java:191)
at gnu.expr.SetExp.walk(SetExp.java:294)
at gnu.expr.ExpWalker.walk(ExpWalker.java:40)
at gnu.expr.LambdaExp.walkChildrenOnly(LambdaExp.java:1448)
at gnu.expr.LambdaExp.walkChildren(LambdaExp.java:1436)
at gnu.expr.ExpWalker.walkExpression(ExpWalker.java:16)
at gnu.expr.ExpWalker.walkScopeExp(ExpWalker.java:59)
at gnu.expr.ExpWalker.walkLambdaExp(ExpWalker.java:63)
at gnu.expr.ExpWalker.walkModuleExp(ExpWalker.java:66)
at gnu.expr.ModuleExp.walk(ModuleExp.java:348)
at gnu.expr.ExpWalker.walk(ExpWalker.java:44)
at gnu.expr.InlineCalls.inlineCalls(InlineCalls.java:12)
at gnu.expr.Compilation.compile(Compilation.java:869)
at gnu.expr.ModuleExp.evalToClass(ModuleExp.java:78)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:175)
at kawa.Shell.run(Shell.java:231)
at kawa.standard.load.loadSource(load.java:156)
at kawa.standard.load.loadSource(load.java:126)
at kawa.standard.load.apply(load.java:226)
at kawa.standard.load.apply2(load.java:194)
at kawa.standard.load.apply1(load.java:184)
at gnu.mapping.Procedure.apply(Procedure.java:133)
at gnu.mapping.Procedure.apply(Procedure.java:115)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:244)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:235)
at kawa.Shell.run(Shell.java:231)
at kawa.standard.load.loadSource(load.java:156)
at kawa.standard.load.loadSource(load.java:126)
at kawa.standard.load.apply(load.java:226)
at kawa.standard.load.apply2(load.java:194)
at kawa.standard.load.apply1(load.java:184)
at
org.schemeway.plugins.schemescript.SchemeScriptPlugin.loadUserFile(SchemeScriptPlugin.java:85)
at
org.schemeway.plugins.schemescript.SchemeScriptPlugin.start(SchemeScriptPlugin.java:65)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:958)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:954)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:937)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:421)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:293)
at
org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:110)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:371)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:402)
at
org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:307)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:336)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1313)
at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:131)
at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:124)
at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:113)
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:196)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at
org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:193)
at org.eclipse.ui.internal.EditorManager$5.run(EditorManager.java:787)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616)
at org.eclipse.core.runtime.Platform.run(Platform.java:747)
at org.eclipse.ui.internal.EditorManager.createPart(EditorManager.java:785)
at
org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorManager.java:772)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:582)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:570)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2244)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2177)
at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage.java:2169)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2156)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2151)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2134)
at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:258)
at org.eclipse.ui.actions.OpenWithMenu.access$0(OpenWithMenu.java:251)
at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent(OpenWithMenu.java:166)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1196)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1220)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1205)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2871)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2541)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)
Jim White
Index: src/org/schemeway/plugins/schemescript/dictionary/UserDictionary.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/dictionary/UserDictionary.java,v
retrieving revision 1.10
diff -u -r1.10 UserDictionary.java
--- src/org/schemeway/plugins/schemescript/dictionary/UserDictionary.java 18 Feb 2005 19:17:35 -0000 1.10
+++ src/org/schemeway/plugins/schemescript/dictionary/UserDictionary.java 29 Mar 2005 21:19:09 -0000
@@ -81,7 +81,7 @@
}
private void loadFormProcessors(URL userFile) {
- Interpreter interp = Interpreter.getInterpreter();
+ Language interp = Language.getDefaultLanguage();
interp.defineFunction("define-form-processor", new FormProcessorDefiner(this));
try {
load.load.apply1(userFile.toString());
Index: src/org/schemeway/plugins/schemescript/interpreter/ExternalInterpreter.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/interpreter/ExternalInterpreter.java,v
retrieving revision 1.2
diff -u -r1.2 ExternalInterpreter.java
--- src/org/schemeway/plugins/schemescript/interpreter/ExternalInterpreter.java 31 Jan 2005 18:29:04 -0000 1.2
+++ src/org/schemeway/plugins/schemescript/interpreter/ExternalInterpreter.java 29 Mar 2005 21:19:09 -0000
@@ -6,6 +6,8 @@
package org.schemeway.plugins.schemescript.interpreter;
import gnu.lists.*;
+import gnu.mapping.InPort;
+import gnu.mapping.Procedure;
import gnu.math.*;
import java.io.*;
@@ -145,10 +147,27 @@
}
}
+ public Object with_input_from_file(final String fname, final Procedure proc) throws Throwable
+ {
+ final InPort port = InPort.openFile(fname);
+ final InPort save_port = InPort.inDefault();
+
+ Object result;
+ try {
+ InPort.setInDefault(port);
+ result = proc.apply0();
+ } finally {
+ InPort.setInDefault(save_port);
+ port.close();
+ }
+
+ return result;
+ }
+
private String getPID() {
try {
String filename = InterpreterPreferences.getWorkingDirectory().getPath() + "/" + getPIDFilename();
- Object value =(new with_input_from_file()).apply2(new FString(filename), new read());
+ Object value = with_input_from_file(filename, new read());
if (value instanceof IntNum) {
return ((IntNum)value).toString();
}
Index: src/org/schemeway/plugins/schemescript/interpreter/KawaProcess.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/interpreter/KawaProcess.java,v
retrieving revision 1.3
diff -u -r1.3 KawaProcess.java
--- src/org/schemeway/plugins/schemescript/interpreter/KawaProcess.java 15 Mar 2005 14:53:49 -0000 1.3
+++ src/org/schemeway/plugins/schemescript/interpreter/KawaProcess.java 29 Mar 2005 21:19:09 -0000
@@ -189,7 +189,7 @@
ctx.consumer = out;
}
try {
- int opts = gnu.expr.Interpreter.PARSE_IMMEDIATE;
+ int opts = gnu.expr.Language.PARSE_IMMEDIATE;
try {
Compilation comp = interp.parse(lexer, opts);
boolean sawError = messages.checkErrors(perr, 20);
Index: src/org/schemeway/plugins/schemescript/SchemeScriptImageRegistry.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/SchemeScriptImageRegistry.java,v
retrieving revision 1.1
diff -u -r1.1 SchemeScriptImageRegistry.java
--- src/org/schemeway/plugins/schemescript/SchemeScriptImageRegistry.java 1 Feb 2005 16:08:38 -0000 1.1
+++ src/org/schemeway/plugins/schemescript/SchemeScriptImageRegistry.java 29 Mar 2005 21:21:39 -0000
@@ -6,6 +6,7 @@
package org.schemeway.plugins.schemescript;
import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.resource.*;
import org.eclipse.swt.graphics.*;
Index: src/org/schemeway/plugins/schemescript/editor/SchemeEditor.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/editor/SchemeEditor.java,v
retrieving revision 1.17
diff -u -r1.17 SchemeEditor.java
--- src/org/schemeway/plugins/schemescript/editor/SchemeEditor.java 15 Mar 2005 14:51:42 -0000 1.17
+++ src/org/schemeway/plugins/schemescript/editor/SchemeEditor.java 29 Mar 2005 21:21:40 -0000
@@ -8,6 +8,7 @@
import java.net.*;
import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.action.*;
import org.eclipse.jface.preference.*;
import org.eclipse.jface.text.*;
Index: src/org/schemeway/plugins/schemescript/editor/SchemeOutlinePage.java
===================================================================
RCS file: /cvsroot/schemeway/SchemeScript/src/org/schemeway/plugins/schemescript/editor/SchemeOutlinePage.java,v
retrieving revision 1.3
diff -u -r1.3 SchemeOutlinePage.java
--- src/org/schemeway/plugins/schemescript/editor/SchemeOutlinePage.java 15 Mar 2005 14:49:29 -0000 1.3
+++ src/org/schemeway/plugins/schemescript/editor/SchemeOutlinePage.java 29 Mar 2005 21:21:40 -0000
@@ -9,6 +9,7 @@
import java.util.List;
import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.text.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.*;