From dougo@ccs.neu.edu Sun Nov 15 16:00:33 1998 Received: from vega.ccs.neu.edu (dougo@vega.ccs.neu.edu [129.10.116.206]) by amber.ccs.neu.edu (8.9.1a/8.9.1) with ESMTP id PAA24582; Sun, 15 Nov 1998 15:57:30 -0500 (EST) Received: (from dougo@localhost) by vega.ccs.neu.edu (8.9.1a/8.9.1) id PAA08630; Sun, 15 Nov 1998 15:57:29 -0500 (EST) From: Doug Orleans Date: Sun, 15 Nov 1998 15:57:28 -0500 (EST) To: dem-src@ccs.neu.edu, bdelav@ccs.neu.edu, ichenp@ccs.neu.edu Subject: new TG API checked into CVS X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <13903.15155.231682.998778@vega.ccs.neu.edu> X-Face: (4D-osoq?}7M3\EgvbWKo Name "=" Name. The names can be class names or partnames. For example: Foo { traversal t(V) { { A -> B bypassing -> *,x,* B -> C } with { A = Foo, B = Bar, C = Baz, x = garply }; } } The name map need be neither one-to-one nor onto: A { traversal t(V) { { A -> B B -> C C -> X } with { C = A }; } } This strategy describes the path set consisting of expansions of "A,B,A,X". In the process of rewriting things, a long-standing bug relating to multi-edge strategies ending in "to *" has been fixed. See the regression test suite-line-strategy/j-pos-vs-neg/ for an example. (Thanks to Josh for writing that test a long time ago...) Finally, a small change will hopefully help demjava's memory consumption: when the generate phase completes, the static var "prog" (which holds the entire program) is released so that it can be garbage collected before the weaver starts running. Otherwise running generate and weave on studio takes more than 32m of heap... There are a few more things I want to put in before releasing 0.7.3. However, I've copied the current set of classes to /proj/asl/dougo/demjava-111598.jar; you can use it (on Unix) by setting the environment variable DEMJAVA_CLASSES to that file. Let me know if you run into any problems. --Doug From dougo@ccs.neu.edu Sun Nov 15 16:05:07 1998 Received: from vega.ccs.neu.edu (dougo@vega.ccs.neu.edu [129.10.116.206]) by amber.ccs.neu.edu (8.9.1a/8.9.1) with ESMTP id QAA24912; Sun, 15 Nov 1998 16:05:05 -0500 (EST) Received: (from dougo@localhost) by vega.ccs.neu.edu (8.9.1a/8.9.1) id QAA08634; Sun, 15 Nov 1998 16:05:04 -0500 (EST) From: Doug Orleans Date: Sun, 15 Nov 1998 16:05:03 -0500 (EST) To: Karl Lieberherr Cc: generic@ccs.neu.edu Subject: Re: API for AP library In-Reply-To: <199811151822.NAA25447@stockberg.ccs.neu.edu> References: <199811151822.NAA25447@stockberg.ccs.neu.edu> X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <13903.16453.372714.752050@vega.ccs.neu.edu> X-Face: (4D-osoq?}7M3\EgvbWKo The API below looks good to me. Regarding the returned information, > we would like to get back whether the class graph and strategy graph > are compatible. You probably know this from the forward sweep? Currently in demjava I only check for the existence of some path, by checking !tg.vertices().isEmpty(). Probably a better way would be to check that all vertices in the strategy graph also exist in the computed traversal graph. Also, one major thing that is missing in the interface is a way to get information about which copies of the nodes and edges are in the traversal graph; currently you can only get the CG subgraph, not the actual path set. (Actually, you can-- the generate module needs it-- but it's not documented.) I'm still thinking about what the best API for this is; will this be needed for the bean projects? --Doug