todo9112.txt
来自「开放源码的编译器open watcom 1.6.0版的源代码」· 文本 代码 · 共 284 行
TXT
284 行
Schedule: C++ 91/12
========
- assumes everything goes as estimated; no slack in estimates
March 1, 1992 -- finish coding
March 15,1992 -- finish Beta documentation
April 1, 1992 -- start Beta test for first shipment type
April 15, 1992 -- finish documentation
July 1, 1992 -- first customer ship (16-bit) -- decide on this order now
July 15, 1992 -- first customer ship (32-bit)
Aug 1, 1992 -- first customer ship (O/S 2)
Left to do: compiler implementation
==========
(1) long double
-----------
- awaiting codegen support
- should work with minor effort (3 line change!)
(2) linker support
--------------
- a - not sure state left by Jim Randall
- b - what does C++ compiler need to do to get the effect?
(3) CodeGen Support
---------------
- a - optimization of pointer deltas is not done (Brian says its coming)
DONE- b - lvalue support for assignment (did it in C++)
- c - need to upgrade to newest C library
- new entry sequence
- d - initialization of class statics
(4) Pragma support
--------------
- a - need support for language linkages
- b - make warnings levels different or as errors
- c - extended information during compilation
- d - need support for class generation
- public, extern, local
- virtual base threshhold (?)
(5) Message Support
---------------
- need to track (file,line,column) in parse tree
- need extra message information
- need to react to pragma requesting extra information
(6) Data
----
- need to do data generation
(7) Expressions
-----------
- a - creation and destruction of temporaries
- b - virtual class access and pointer conversion
- c - complete new, delete
DONE- d - lvalue assignment
- e - additional support for ==, != (member pointers)
- f - conversion of class objects
- g - hook in overloading for function return, assignment, function arg.s
- h - support ->*, .*
- i - support :>
DONE- j - lvalue form of ?:
(8) Function Support
----------------
DONE- a - work through CTOR, DTOR invocation
- b - compile CTOR, DTOR routines
DONE- c - definition of member fns (should only require parsing support)
- d - pure virtual
- e - "this" pointer can be const or volatile (see pg.177 of ARM)
(9)Operational Support
-------------------
- a - review options and upgrade
- b - implement profile file for options
(10)Error Handling
--------------
(11)Templates
---------
(12)Asm Support
-----------
- Fred has it in C; we can likely get it easily
(13)Declarations
------------
DONE- a - constructor declarations (2 days)
DONE- b - function definitions (1 week)
DONE- c - inline function definitions (2 days)
- d - virtual functions (???)
- e - virtual bases (???)
- f - friend declarations (1 week)
- g - abstract classes (???)
DONE- h - default function args (1 week)
DONE- i - dummy arguments (1 day)
(14)OverLoading
-----------
- a - u-d conversion searching
- b - distinct function checking
- c - f(&g..) overloading
DONE- d - NULL pointer support
DONE- e - need to fill out the special functions in Chapter 13
(15)Debugging
---------
- should be just code-generation work
(16)C header Files
--------------
- need to be edited to add extern "C" { }
Dependencies on others
======================
- 1 - long double: code generation required
- 3(a) - optimization of ptr-delta's: code generator
- 3(b) - lvalue assignment: code generator
Time Estimates
==============
item time who job
- 1 - 2 min.s - JW - long double: 2 minutes
- 2(b) - 1 day - JW - code generate to drop unused routines
* 3(b) - 1 day - JW - lvalue assignment
- 3(c) - 1 day - JW - new entry-point sequence for new C library
- 3(d) - 2 days - JW - initialization of class statics
- 4(a) - 1 week - - #pragma support for languages
- 4(b) - 2 days - - #pragma support for warning levels
- 4(c) - 1 week - - extended information listed during compilation
- 4(d) - 1 day - - #pragma support for class generation
- 5 - 1 week - GB - message support for (file,line,column)
- 6 - 2 weeks - GB - data generation
- 7(a) - 1 week - JW - class temporaries
- 7(b) - 3 days - JW - virtual class access and pointer conversion
- 7(c) - 1 day - JW - complete new, delete
* 7(d) - - -- - covered in 3(b)
- 7(e) - - -- - covered in 7(h)
- 7(f) - 2 days - JW - conversion of class objects (with Greg's support)
- 7(h) - 3 days - JW - support for ->*, .*
* 7(j) - 1 day - JW - support for lvalue ?:
* 8(a) - 2 days - JW - invoke CTOR, DTOR for blocks
- 8(b) - 1 week - JW - CTOR, DTOR routine compilation
- 8(c) - - JW - covered in 13(b)
- 8(d) - 1 day - AS - pure virtual (just an additional check)
- 8(e) - 1 day - JW - further check "this"
- 9(a) - 2 days - - review and fix up command-line options
- 9(b) - 2 days - - profile file for options
- 10 - 3 days - JW - error handling
- 11 - 1 week - AS - templates
- 13(a)- 2 days - AS - constructor declarations
- 13(b)- 1 week - AS - function definitions
- 13(c)- 2 days - AS - inline function definitions
- 13(d)- (???) - AS - virtual functions
- 13(e)- (???) - AS - virtual bases
- 13(f)- 1 week - AS - friend declarations
- 13(g)- (???) - AS - abstract classes
- 13(h)- 1 week - - default function arg.s
- 14(a)- 1 week - GB - u-d conversion searching
- 14(b)- 1 day - GB - distinct function checking
- 14(c)- 2 days - GB - f(&g..) overloading
- 14(d)- 2 days - GB - NULL pointer support
- 14(e)- 3 days - JW - need to fill out the special functions in Chapter 13
- 15 - 1 week - - add debugging support
- 16 - 1 day - - edit C header files
days weeks
---- -----
JW - 18 2 = 28 man-days (6 man-weeks)
AS - 4 3 = 24 man-days (5 man-weeks)
GB - 5 4 = 25 man-days (5 man-weeks)
- 8 4 = 28 man-days (6 man-weeks)
--------------
(22 man-weeks)
Uncertainties
=============
- 2(a) - state of linker support
- 7(i) - support for >:
- 12 - ASM support
- time for 13(d), 13(e), 13(g)
Dependencies:
============
13(b)----------8(e)
13(a)---+------8(b)
|
+------8(a)------10
|
13(e)---+
\
\
\
+------7(b)
|
+------7(c)
|
+------7(h)
3c-------------3d
6--------------15
13c-----+------11
|
4d------+
Schedule: JW
============
completed:
---------
- 3(b) - 1 day - JW - lvalue assignment
- 7(j) - 1 day - JW - support for lvalue ?:
- 8(a) - 2 days - JW - invoke CTOR, DTOR for blocks
not scheduled yet
-----------------
- 1 - 2 min.s - JW - long double: 2 minutes
- 2(b) - 1 day - JW - code generate to drop unused routines
- 3(c) - 1 day - JW - new entry-point sequence for new C library
- 3(d) - 2 days - JW - initialization of class statics
- 7(a) - 1 week - JW - class temporaries
- 7(b) - 3 days - JW - virtual class access and pointer conversion
- 7(c) - 1 day - JW - complete new, delete
- 7(f) - 2 days - JW - conversion of class objects (with Greg's support)
- 7(h) - 3 days - JW - support for ->*, .*
- 8(b) - 1 week - JW - CTOR, DTOR routine compilation
- 8(e) - 1 day - JW - further check "this"
- 10 - 3 days - JW - error handling
Schedule: AS
============
not scheduled yet
-----------------
- 6 - 1 week - AS - data generation
- 8(d) - 1 day - AS - pure virtual (just an additional check)
- 11 - 1 week - AS - templates
- 13(a)- 2 days - AS - constructor declarations
- 13(b)- 1 week - AS - function definitions
- 13(c)- 2 days - AS - inline function definitions
- 13(d)- (???) - AS - virtual functions
- 13(e)- (???) - AS - virtual bases
- 13(f)- 1 week - AS - friend declarations
- 13(g)- (???) - AS - abstract classes
Schedule: GB
============
not scheduled yet
-----------------
- 5 - 1 week - GB - message support for (file,line,column)
- 6 - 2 weeks - GB - data generation
- 14(a)- 1 week - GB - u-d conversion searching
- 14(b)- 1 day - GB - distinct function checking
- 14(c)- 2 days - GB - f(&g..) overloading
- 14(d)- 2 days - GB - NULL pointer support
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?