02-317 Public Review Comment # 1 To: J3 From: Craig Dedo Date: November 11, 2002 Subject: Public Review Comment # 1 by Todd Plessel Public Review Comment #1 From: Todd Plessel plessel.todd@epa.gov Sent: Wednesday, October 9, 2002 9:35 PM To: Donovan, Deborah Subject: Comments on draft Fortran 2000 Spec. ftp://ftp.j3-fortran.org/j3/doc/standing/2002/02-007r3/007.txt.gz Some suggestions: > 24 3.3.1 Free source form > 25 In free source form there are no restrictions on where a statement (or portion of a statement) may > 26 appear within a line. A line may contain zero characters. If a line consists entirely of characters of > 27 default kind (4.4.4), it may contain at most 132 characters. If a line contains any character that is not ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #1. Maximum line length should be changed to something much larger (4096 or more - like Standard C) to accommodate macro expansion (a form of code- generation). #2. The Standard should address the Standard Preprocessor and make it 100% compatible with the Standard C Preprocessor, including: token glue operator '##', __FILE__, __LINE__, __FUNCTION__. (These are needed to implement Design By Contract assertion macros.) #3. Add direct support (language syntax) for Design By Contract: o class invariants o routine preconditions o routine postconditions o check assertion o loop invariants o loop variants o debug statement optionally checkable (depending on compilation flags) at runtime. #4. Add support for program arguments (like C main( int argc, char* argv[] )) and an integer return value for program (to facilitate interoperability with other programs/processes). #5. Make the process name, (contained in argv[0] in C), available via a Standard Library function, e.g., FUNCTION PROCESS_NAME CHARACTER(*) PROCESS_NAME (This will facilitate the construction of useful failure messages within reusable libraries. Perhaps with thread id too...) #6. Provide Standard Library routines for registering callback subroutines/functions: atstart, atstop to facilitate initialization and finalization of external References 02-007r3, Fortran 2000 Committee Draft [End of J3 / 02-317]