Node:Planned - Misc, Next:Planned - Utilities, Previous:Planned - OOP, Up:Planned Features

#### Planned features: Misc

- qualified identifiers <34508F33.4F685BD1@keele.ac.uk> (also `program_name.identifier`?) (problem module.id vs. record.field); also for operators; `gpc` for built-in identifiers; duplicate identifiers in different units (fjf260[ab].pas); don't capitalize variable names in error messages and file name queries (store the casing of the first occurrence of an identifier) -> remove `{$no-debug-info}`; `name` for units/modules; qualified import (mod10.pas)
- inline functions in GPI files
- unit inheritance (of a complete interface with one statement or selectively) <Pine.HPP.3.96.971105161603.28577A-100000@tea.geophysik.tu-freiberg.de>, <199711061008.LAA25341@agnes.dida.physik.uni-essen.de> ??; virtual procedures ???
- read Booleans and enum types from files, write enum types to files; `--[no-]read-range-checking` (also for subtypes of Char, Boolean and enum types!)
- options to warn about everything that could cause portability problems
- libraries (static/shared; DLL) <Pine.HPP.3.96.971110183550.7996B-100000@tea.geophysik.tu-freiberg.de>
- smart linking (split `foo.s`, as `foo*.s`, ar `foo*.o` or split `foo.o`)
- range <Pine.LNX.4.21.0012091605570.8168-100000@rusty.russwhit.com>, overflow (right operand of mod <=0 is an error), nil pointer, string length, variant, object VMT (pointer, negative size field), etc. checking <199911040915.KAA11168@humulus.daimi.au.dk>; also for array slice access (miklos1.pas); check that strings converted to CStrings don't contain #0 characters; initialize strings (length field), pointers, ordinal values and reals(?) with invalid values if checking is on
- overloading of unary operators (`+`, `-`, `not`)
- intel assembler syntax; BP BASM ???
- function overloading (in units and static methods?? - with different parameters, override or overload?); linker name?? (perhaps: first occurrence of a procedure with normal name (=> all non-overloaded procedures get normal names)?); cf. Delphi methods without `override`
- `?:` (`x := if c then bar else baz`)
- `for var: type = foo to bar do` ???
- error/exception handling (Java,Delphi?) <01BD7A3A.6B187A20.prucha@helicon.co.at> (tc20000623)
- RTS checking (libgpc_g), switch?
- simplify math functions <199708091006.MAA26576@agnes.dida.physik.uni-essen.de>
- variable number of arguments <32F9CFE7.5CB@lmemw.ericsson.se> ?? ???
- multithreading support ?? ???
- `--wirth-pascal` :-)
- PXSC standard ... (`pxsc.zip`, `contrib/peter/pxsc`) (??)
- Object Oriented Extensions (Technical Report) (??)
- generic types (cf. OOE section C.1) (gentypes.pas) ???
- default parameters (cf. OOE section C.4; Delphi 4?) (iniparm[12].pas) <E183vio-000IyH-00@f12.mail.ru>
- Pascal++ standard ... (??) ???
- compile time assertions ???
- Ignore{Value,Result}/Discard for arbitrary types (type-cast to `Void`?)
- Delphi features: CompToCurrency, CurrencyToComp, Slice, TypeInfo ???, dynamic arrays (tc19991012)
- output column numbers in error messages ??
- consider assembler blocks volatile by default ??? (fh19980829.4)
- debug info: `with` statements