Planned: A REQUIRE "<Filename>" statement, to insert other files into
  the source stream.
Possible: A way for LIST and WILD parses to coexist with ordinary file
  parses.  As it is now, there is only one file parse in progress, so
  that if you parse a list of files, you can't parse another simple file
  without wiping out the list.  This means, for instance, that an Append
  command could not be made in PCL.  How this could be done I have no
  idea.
Planned: Field-option BREAK <String-expression> for FIELD fields (and
  perhaps some others) to allow the user to set his own break character
  mask, and a similar option ALLOW to specify the characters not to
  break on.  These will modify the standard break mask for the field
  being parsed, so the user need only specify the characters he wishes
  to have different from the standard.
Possible: Add option to keywords to set the invisible bit in the keyword
  table, perhaps with syntax like WORDS(FIRST:1,SECOND:2:INVISIBLE,...).
  It is the syntax which needs recommendations.
Possible: If a file read by Declare contains a PCL-INIT procedure, this
  procedure will be executed when the Declare is complete.
Planned: Build a keyword table of PCL commands, so Undeclare Command ?
  can give a list, and so recognition works.  The same goes for the
  Information Variable command.
Planned: If Command-Trace is set, then have ^C out of PCL execution give
  a report like "% ^C out of command FOO: Line 5" for debugging PCL
  routines.  Also, have ^T type out a similar message.  Perhaps these
  should always happen, regardless of Command-Trace.
Possible: Declare Environment should use PMAP instead of BIN/SIN.
Planned: An option to COMMAND to allow a command to be runnable before
  Login (this will be necessary if SAVE/EXEC is defined as the way for
  sites to customize).
Possible: An Invisible option to COMMAND.
Possible: Change SET INTEGER-VARIABLE/STRING-VARIABLE to SET VARIABLE
  (named) name (to) { integer | quoted-string }
Possible: Reverse the arguments to Declare Synonym, thusly:
	Declare Synonym (existing command) directory (to be) di
Future: It should be possible, someday, to tell the Exec to run a PCL
  procedure when a particular key (or control-key) is struck, and also
  when a user-defined timer interrupt occurs.  It should be possible,
  for instance, for the user to build his own ^T routine this way, and
  his own idea of a mail-watch facility.  This idea requires a good deal
  of meditation and discussion.
Planned: An extended Take command, with which batch control files could
  be run in the Exec: "Take/Batch-compatible A.CTL" is the most likely
  syntax.  Perhaps it should also be possible to Set Default Take
  /Batch-compatible.
Bug: Programs sometimes get "Device or data error" when PCL disconnects
  from them.  This may be unavoidable, since the program is usually
  stopped in the monitor, with various monitor variables already set
  to the PCL control stream.
Future: Provide a mechanism to give defaults to arguments passed to
  procedures.  For instance, PROCEDURE SUB(INTEGER I (DEFAULT 3)) might
  be a way to say "if the caller calls with CALL SUB() then use the
  number 3."
Planned: If an execution error occurs in a Procedure, print out a trace
  of the callers of the procedure, e.g.,
    ?SUB Line 12, from MAIN line 32: Incorrect type
Future: There has been some desire for a way to manipulate references to
  variables, for instance a system procedure $NAME which, when passed
  the name of a variable (as a quoted string), would return the
  "address" of the variable, in a manner suitable for reference/deposit.
  This would be used to allow a procedure to reference the variables of
  its caller by name, without having them passed as parameters.  Thus,
  a procedure could be made which, when passed the string "FOO", would
  type out "FOO has an invalid value: 5" by referencing $NAME("FOO")
  to get the caller's value.  Also, some interest has been expressed in
  a routine $NAME which, when passed a variable, would return its name
  in printable format, thus $NAME(FOO) would return "BAR" if FOO were a
  procedure parameter which was bound to BAR in the caller's context.
Bug: If during the execution of a PCL routine the routine redeclares or
  undeclares itself, disaster occurs.  Redeclaration or removal of an
  "active" routine should work gracefully.
Bug: The code fragment
	LOOP:	PARSE (FILE:<Statement>; TEXT:<Statement>);
		PARSE (COMMA:GOTO LOOP; EOL);
  improperly parses FILE2.TXT in "FILE1.TXT,FILE2.TXT" as a Text field.
  This has been diagnosed as a monitor error, which will be fixed in TCO
  5.1166.  In general, ANY parse with a Text in it will parse according
  to the Text.
Future: A general macro facility.
Planned: More options to the date and time conversion services, to allow
  access to the many facilities provided by the JSYS's involved.
Planned: Add DEFAULT_FIELDS field option to File, to fill in all appropriate
  defaults at runtime from the string provided.
Possible: More fork-manipulating variables and services: $ForkName (name
  of current fork), $ForkNumber (number of current fork), $Kept (whether
  current fork is kept), $IsFork(name) (whether fork with given name
  exists), $MakeFork(name) (creates new fork).  It is uncertain whether
  these features are necessary, as the problems which they have been
  proposed to deal with are being dealt with in other ways.
Planned: Add UnquotedString field-type.  This will not happen until BREAK
  is implemented, since without it Text will work just as well.
Bug: In a Words field-option, the integer is limited to natural numbers.
Planned: A new syntax for defining keyword/switch tables, instead of
  WORDS.  Probably, it would be TABLE(<Name>:<statement>, ...).
Possible: An alternative way of specifying switches which are only yes/no
  selections.  The field-type SWITCHLIST(WORDS(DELETE:DeleteSw,NOCOLLATE:
  NoCollateSw,HEADER:HeaderSw,NOHEADER:-HeaderSw)) would, when executed,
  parse that list of switches over and over again until something which
  didn't match appeared, and, for each switch specified by the typist,
  would set the given variable (e.g., DeleteSw) to one; the "-HeaderSw"
  form would set the variable to zero.  This would allow several options 
  to be selected with ease.  (When boolean variables are implemented,
  they would be used instead.)
Possible: Boolean variables and constants.
Possible: Have the Exec commands which read and write global variables
  also work with system variables.
Planned: Have Information PCL use separate lines for integer procedures
  and string procedures.
Planned: A more advanced looping construct: FOR <Integer-identifier>=
  <Integer-expression> [STEP <Integer-expression>] UNTIL
  <Integer-expression> DO <Statement>.  Perhaps the FOR-list mode will
  also be implemented.
Possible: An option to Exit which would cause an exit to the top level of
  the Exec, instead of only exiting the command.
Planned: Better help for FileList parses after the first file.  At
  best, this would be the help message for the field after the file
  list, plus "or comma to enter another filespec."  However, the
  flexible way we use to do parsing means that PCL has no way to know
  what the next field to be parsed is.  Perhaps what FileList needs is
  a NextHelp option which provides the help for the next field.  That
  is, a FileList with NextHelp "protection to be set" would cause
        protection to be set
        or comma to enter next filespec
  to be typed out as the help message for files after the first.
Planned: A new variable to return the entire list parsed by FileList,
  separated by commas; it would be the same as if the user ran through
  the list and saved the $FileN of each file in a string variable.
Planned: A way to Invoke a program and to provide information to be
  placed in its rescan buffer: a RESCAN <String-expression> option.
Planned: $PromptEnabled to match $PromptReg.
Possible: An option to Command to indicate that the command uses Parse,
  although in a called procedure and not in the body of the command.
Possible: A way to make synonyms for ^E commands.
Bug: Undeclare of a preserved symbol works half way.
Bug: Undeclare of superceding definition should not confirm the redeclaration
  of the superceded object.
Bug: Undeclare All does not work in a preserved Exec.
Possible: A way to have Declare initialize global variables only if the
  definition is a new one.
Possible: An option to Declare to confirm only commands, not procedures.
Future: General string replacement, so that a synonym NETW="INFO DECNET"
  would work, as would a synonym like SETPRO="SET FILE PROTECTION".
Possible: String constants longer than 256 characters.
Possible: A way to pause within PCL and return control to the terminal,
  and then to resume PCL execution.
Possible: A way to, within PCL, locally turn on or off command trace;
  this should be nested.
Planned: Instead of the JFNS arguments to $FileInfo_S, provide something
  like FLD.
PLANNED: REDUCE THE NUMBER OF OPCODES TO 64 TO EXPAND THE LINE NUMBER FIELD.
  THIS WILL REQUIRE RECOMPILATION OF ENVIRONMENT FILES.
Bug: If a PCL does an ENABLE the prompt is not changed until the next
  command.
Possible: A NoWait option to DoCommand, which would, if the command ran
  a program, return control to PCL after the program was started without
  waiting for it to complete; the program would run in parallel with the
  Exec and would not be usable from PCL through Typein.  I can see no
  use for this, but it has been requested.
Possible: Embedded comments, perhaps delimited by curly brackets.
Possible: Labeled blocks, to ensure that an END matches a BEGIN.
Possible: Multiple values in Select-vals and Tagged-statements.
Possible: LITERALs.
Possible: Allowing the first argument to file-information services
  to be a string containing the name of a file, in addition to the
  present integer code.
Bug: Redundant parentheses give an error: LET I=(J)
Possible: PRETTY for PCL.
Possible: Options to $InputTAD to convert only a time or date.
Possible: A different way of specify substring extraction, such as
  STRING[3 TO 8] and STRING[1 FOR 10].
Future: A mechanism to make CCL call PCL routines to compile, load,
  etc., programs in languages not known to CCL.
Planned: Don't do SETSN for PCL commands until confirmation.
Planned: Inhibit interrupts in memory allocation.
Bug: DECLARE SYNONYM * SYSTAT should not be legal.
Possible: A random number generator service.
Bug: The Parse statement
         Parse File(Input,Default_Ext *)
  gets no error if you type in "FILE.EXT" for the file name, but it
  inserts a ".*" into the buffer.  If the line is then reparsed, the name
  "FILE.EXT.*" is illegal.  This is a monitor bug.
Possible: A system variable containing the connected directory name
  without the device name.
Possible: A system variable containing the device name of the connected
  directory.
Future: A way to have PCL routines call the parsing routines of standard
  Exec commands, so users don't have to rewrite all the code for, say,
  an alternate Directory command.
Bug: If a synonym is declared, and an Undeclare All done, and then the
  synonym redeclared, you sometimes get "definition replaced."
Bug: If you define synonym A to command B, and delete command B, synonym
  A should go away.
Possible: More than one expression per case in Select.
Possible: Allow command names to start with digits.