We are living in a changing world and this class mirrors some of the outside world in a friendly environment condusive to learning in a rapidly changing environment. As you woke up this morning, Doug Orleans has installed a new version of Demeter/Java which is described below. It is already installed on the CCS Ultra Sparcs. Note that you have to change your class path. Demeter/Java will appear broken to you unless you replace classes by demjava.jar as specified below. To learn more about JAR (Java Archive), see: http://java.sun.com/products/jdk/1.1/docs/guide/jar/index.html For the PC users, you need to download the new version and install it on your system. This should be a painless process. Best regards, -- Karl Lieberherr From dougo@ccs.neu.edu Thu Oct 9 16:40:17 1997 Date: Thu, 9 Oct 1997 16:40:11 -0400 (EDT) From: Doug Orleans To: dem@ccs.neu.edu Subject: new version of demjava installed: 0.6.4 The latest version of demjava has been installed in /proj/demsys/demjava, or you can download it as ftp://ftp.ccs.neu.edu/pub/research/demeter/DemeterJava/demjava-0.6.4.jar This is a Java archive file, which can be extracted with "jar xvf" (jar is part of Sun's JDK), "unzip", "pkunzip", or WinZip. Note that Unix users will need to chmod a+x on the shell scripts in the bin/ directory, because jar doesn't preserve the x bit. You'll need to put the file demjava.jar into your CLASSPATH environment variable; if you have a ~/.software file, put this in it: CLASSPATH=/proj/demsys/demjava/demjava.jar This replaces the old setting, which was /proj/demsys/demjava/classes. Your PATH should remain the same. Unfortunately I didn't fix the bugs with around methods and multiple-visitor traversals; this will require a serious redesign of the traversal code generation. Hopefully it will be in the next release. Here's the relevant section of the CHANGES file: * Since 0.6.3: ** demjava.bat -- DOS batch file The file demjava.bat in the bin directory is a DOS batch file for running demjava, javacc, and javac. It assumes you have everything on your %CLASSPATH% already. ** classes put into demjava.jar file The demeter classes are packaged into a single demjava.jar file. Add this file to your CLASSPATH instead of the classes directory. ** package names changed All the package names were changed: demeter is now EDU.neu.ccs.demeter demeter.tools.demjava is now EDU.neu.ccs.demeter.tools.demjava demeter.tools.demjava.tg is now EDU.neu.ccs.demeter.common.tg ** -parser command-line option The -parser command-line option causes demjava to invoke the parser generator (currently COM.sun.labs.javacc) on the grammar file. ** -compile command-line option The -compile command-line option causes demjava to invoke the Java compiler (currently sun.tools.javac) on the generated .java files, with options "-g -deprecation -d -classpath :" where is set by the -classdir option (see below) and is the current value of the Java class path. ** -classdir command-line option The -classdir command-line option sets the output directory for the -compile option (see above). It defaults to "gen" (the same as -outputdir). ** -aspect command-line option The -aspect command-line option generates core aspect files to the output directory with the ".asp" extension. These are intended to be read by an aspect weaver and converted into plain Java code. ** DisplayVisitor and TraceVisitor now use PrintWriters Constructors are now available for DisplayVisitor and TraceVisitor that take a PrintWriter. The old PrintStream constructors still work too, and an empty constructor still uses System.out. ** EqualVisitor and CopyVisitor use return methods EqualVisitor and CopyVisitor return their values (boolean and Object, respectively) with visitor return methods, so that, e.g., they can be used in adaptive methods. The old accessor functions get_is_equal() and get_copy() still work too. ** bug fix: around methods for multi-edge traversals Traversals with multiple edges pass a BitSet called "nodes" along as part of the arguments. Around methods weren't properly including this argument. They do now. ** bug fix: multiple visitors in an adaptive method Using multiple visitors in an adaptive method (e.g. foo() = t(V1, V2)) caused a compile error, because both arguments to the traversal method were "v0". This no longer happens (it names them "v0", "v1", etc.) ** bug fix: parsing a class that extends a non-parsed class The parser rule for a class that is parsed that extends a non-parsed class contained a bogus call to _common(). It no longer does this. Let me know if you find any bugs. --Doug