Patrick C. Beard's

JShell Project To Do List

last updated 28 February 2000


Here's a list of small projects I haven't found time to work on yet. If you'd like to volunteer to help out with one of these, or to suggest others, feel free to drop me a line.

  1. search for pattern tool (aka grep) that permits recursive directory traversal and regular expressions. Results could be printed, or perhaps an interactive mode could be provided to show all the files that have lines that match. (included in JShell 2000)
  2. commando tool - gives interactive dialog to drive any tool interactively. If you have seen the Macintosh Programmer's Workshop (MPW) you'll know what I mean by this. Requires some kind of generic format for describing the parameters of a tool (how about XML for this?).
  3. make utility - define a new XML vocabulary for program maintenance, and implement tools that automate the build process. To see my ideas on how this might look, take a look at my Program Maintenance Language (PML) design sketch. (See ANT for a working implementation that JShell will be incorporating in future releases.)
  4. native tool integration: be able to invoke perl, MPW tools, etc. with full I/O redirection, etc. easy to implement on Windows, harder on the Mac, but probably worth the effort. A perl implementation already exists in the form of a Java accessible shared library. (included in JShell 2000)
  5. scripting support: JavaScript? more complete tcsh/bash emulation. The goal so far has been to create a powerful environment, but to be fairly shell language agnostic. I'd like to see other shells created. A JavaScript shell would be cool. (included in JShell 2000)
  6. shell/console integration: where does a history mechanism belong? in the shell, or in the console? The current telnetd input stream provides ^P/^N access to recent command lines, and it's all very line-oriented. Should a raw character-by-character input mode be supported? An interface could be defined that lets the shell control input and history regardless of the input mechanism used. Filename completion would be nice. (included in JShell 2000)
  7. better java command: This command loads classes found in the current directory into a custom class loader, allowing interactive use of javac and .class files. However, it loads any other classes from the system class path, and doesn't allow those classes to be unloaded. The java command should have a way to specify that particular classes or perhaps packages should be loaded into a private class loader (such as sun.tools.*) so that these classes can be unloaded when the java command is unloaded. (included in JShell 2000)
  8. AppleEvent support: doscript AppleEvent would run some commands and return the textual results in the reply.
  9. full UNICODE quoted strings in the shell. Right now there's a bug in the antlr generated grammar that doesn't let all the option characters be typed in, such as • (option-8) or ƒ (option-f). A lexical hack is probably possible, but I haven't figured it out yet.

To contact me,  send mail to beard@netscape.com.