WebScripter: Meta-Ja Desiderata

These items describe potential enhancements to Meta-Ja that I believe are worthwhile in principle. The existence of items on this list does not imply that I promise to ever implement any of them -- not even if you have paid a commercial Meta-Ja licensee fee (because maintaining Meta-Ja is not part of my regular job - the licensing fees are not nearly enough to cover my time).

(This WebScripter report instance was generated 2002-06-24T14:11:47-07:00 from WebScripter report definition http://www.isi.edu/webscripter/metajatodo.wsrd on FREEDOM/128.9.128.47 by frank with Java Runtime Environment 1.4.0 under Windows 2000.)

(simplistic small-footprint version, fancy huge-footprint version, version that color-codes content origins)

IdToDo ItemPriorityDescriptionEntered
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-04-13T14:54
support hashing of non-String types
2
Especially integers, and object memory pointers.
2001-04-13
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-21T09:10
document the ^ and . type modifiers
2
I emailed that info out but it is not in the Meta-Ja reference manual.
2001-03-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-21T09:05
flush mj1.x and each individual package
5
Right now Meta-Ja seems to hang forever, then prints its whole first line at once.
2001-03-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-21T09:09
multipleMatchesPossible should imply notHashed
1
Meta-Ja list support automatic implementation of hashing on a single key for unique lists, but not for non-unique lists. Saying both "hashed" and "multipleMatchesPossible" results in writing out invalid code.
2001-03-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-21T09:08
Show a + in front of XML imports
4
Otherwise, the printout of included packages can be misleading, for example I thought there were circular imports in David's trm strcuture to the SNAP code, but they turned out to be just xmlimports.
2001-03-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-21T09:07
convert VariableNameTreatment warnings to errors
5
Right now, saying e.g. !JFrame rather than ^JFrame will issue a warning but keep Meta-Ja going. Should become an error that stops MJ in a few weeks once everyone has gotten used to the new style.
2001-03-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-16T09:06
listinterface<X>
4
List constructs for API-only directories. Currently, you either get the choice of using untyped Iterator as the list construct in API directories, or to use concrete list<X> constructs (and hence make the directory not all-interface anymore). The new listinterface construct will be a better solution: in the API package: interface X {} listinterface<X> {} in the implementation package: object Y implements X {} list<Y> implements Xs {} The generated list functions for listinterface<X> will have the expanded type name in the function names for all functions that return non-void, such as "ApiX popApiXs()". This is ugly but necessary because Java does not permit overloading by return type.
2001-03-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-16T09:05
-customConstructors flag
3
With that flag, MJ writes commented-out constructor code and writes code for e.g. copying and XML as usual. Thus, users can provide their own constructors for cacheing, database iitialization, etc., and they can look at the commented-out ones in the .java file for inspiration.
2001-03-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-16T08:41
require ! in front of every unknown identifier
1
It seems some still slip through without it (especially in "extends" clauses?). This is awful because if you refer to class Yyy of prefix XX as "XxYyy" (rather than as either "Yyy" or "!XxYyy") hand-written Java code will still work but Meta-Ja will not e.g. recognize that the class is XML-capable -- and finding this bug is difficult and time-consuming.
2001-03-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-16T09:03
enforce consistent import order
5
The idea is that if the inclusion order in any later .mjPackage file differs from the one in an earlier .mjPackage file MJ complains and stops. This will make users more aware of the concept of a defined compilation order; obviously this would necessitate me going through a lot of existing code to straighten out the existing compilation orders but it would still be worthwhile.
2001-03-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-03-16T09:02
check for duplicate imports
4
Jinbo produced a weird bug where Meta-Ja failed to infer that a class was XML-capable because its .mjPackage was included twice and not next to each other.
2001-03-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-02-27T14:35
separate shorter XML identifiers
4
Use an -xmlname tag to provide XML names - that way they can use descriptive names in memory and short names in the file format. For example: object ComplexTask -xmlname CT {Resource:Capability -xmlname c;}
2001-02-27
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-02-27T14:41
warn on xmlimport of non-existing packages
3
Apparently that is silently ignored at the moment.
2001-02-27
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-02-27T14:46
immutable and mutable iterator APIs
4
Those wold be generated by something like "abstract list<Item> {}" and "abstract list<Item> -immutable {}". They can then be used in interface-only API definition packages where we now use untyped Iterators.
2001-02-27
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#frank@isi.edu@2000-01-01#todoitem-2001-02-27T14:43
warn about missing exclamation mark
3
For example, "object PilotTrainingManual extends RmSupSimpleCapabilityDimensionSet" did not warn about the missing exclamation mark in front of RmSup.
2001-02-27
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu@2000-01-01#todoitem-2001-02-21T13:31
better --help messages
3
Print the comment text for the attributes. Would also be nice to print the possibilities for an enumeration, and have some mapping to texinfo for automatic import into documentation.
2001-02-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-02-21T11:54
DTD support
1
Finish the command-line reform effort and DTD support option.
2001-02-21
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-02-12T12:10
Expose generated enumeration constants
4
That way, one can refer to sXxx rather than having to call createXxx(), saving the function call overhead. The original reason not to allow that was because there used to be a set() function -- so a hapless user could call ThreeValuedTruth.sTrue.set(ThreeValuedTruth.sFalse) -- changing the meaning of the constants! Enumerations are now "immutable" so the latter is no longer a concern.
2001-02-12
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-31T11:56
Tolerate XML comments
4
Meta-Ja should ignore comments like <!-- ... --> without printing warning lines about them.
2001-01-31
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-31T11:54
Tolerate XML version line
4
Meta-Ja should be able to ignore the <?xml version="1.0" encoding="UTF-8"?> tag, and indeed all <? ... ?> processing instructions.
2001-01-31
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-31T12:02
Interpret lack of XML tags as empty list
5
At the moment, if your object X has a list-valued non-optional attribute L then XML instances must carry the tag, such as: <X><N>my name</N><L></L></X> It should be legal to omit the empty L tags, like this: <X><N>my name</N></X> which would result into the exact same in-memory instance. Note that the treatment is then different for optional and required list-valued variables: missing optional ones will be initialized to NULL but missing required ones to the empty list.
2001-01-31
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-31T11:55
Tolerate XML singular tags
4
If tools other than Meta-Ja itself produce XML, they reduce tags such as <l></l> to the singular tag <l/>. Meta-Ja should be able to handle those - it ignores them with a warning message right now.
2001-01-31
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-30T12:17
Provide enumeration values in --help
1
Meta-Ja command-line support already provides a list of possible command-line arguments when you say "--help" in a command-line, but it does not list the values of enumerations. It should -- or otherwise you have to hunt down the .mjPackage file to find out what they are! (This came up in conjunction with David's re-organization of SNAP .bat files where it would also be nice to have the enumeration values shown in a comment line).
2001-01-30
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-30T12:15
Honor -pointer when printing
1
Pedro writes: What is the effect of -pointer on an object definition? One thing that it should do is to cause the print method of the containing object to not call print recursively on the pointer (but just print the pointer itself). It seems to me that one common use of -pointer is to include back pointers in data structures, for examples parents in a tree. In that case the print behavior would be very handy.
2001-01-30
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-18T10:51
Address pitfall of having to say -copy for abstract classes
3
Not defining it for an abstract class and then being confused when working with the classes later is an eternal pitfall.
2001-01-18
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-16T12:03
Document the pointer/key feature idea
5
Most of the time a Java class "owns" data members in the sense that they can be deallocated if it itself is deallocated, but sometimes it just "points" to external data that will persist. The idea is that by marking data mebmers pointed to with "-pointer" the written-out XML will only write outs the "key" of that data member (such as a unique name) - not the entire data structure as is the case now.
2001-01-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-16T12:10
Flag fur turning off the "Deleting and Re-Writing" messages
2
I'm getting annoyed by them because they make you scroll down in the Emacs compilation buffer if you "M-x compile" in any but the most trivial directories..
2001-01-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-16T12:11
Clean up BasicList set functions
3
The functions for set union, intersection, and subtraction should be static - right now they are member functions on a list that is supposed to be freshly initialized. (This design goes five years back when the functions were written in C++ using templates.)
2001-01-16
http://www.isi.edu/webscripter/mrftodoaddenda.d.daml#mailto:frank@isi.edu#todoitem-2001-01-16T12:20
Private auto-written constructors
3
David writes: I suggest a flag that instructs Meta-Ja to make all the constructors on an object private. This forces the use of a factory method by outsiders.
2001-01-16
http://www.isi.edu/webscripter/todo.gen.d.daml#mailto:frank@isi.edu#todoitem-141
 
4
All data members are written out as protected but there is a case for making them private so not even classes in the same package or subclasses can get to them.
2000-11-28
http://www.isi.edu/webscripter/todo.gen.d.daml#mailto:frank@isi.edu#todoitem-1
 
3
You should be able to say "import x.y.z;" without _requiring_ double quotes around the "x.y.z". A semicolon _should_ be required to be more in line with Java conventions in the mjPackage syntax, and to exploit Emacs' JDE-mode automatic indentation.
2000-09-18

This page is automatically generated and maintained based on a Webscripter report that fetches and fuses decentralized DAML data.