Files
harbour-core/harbour/TODO
Przemyslaw Czerpak b560fd5a77 2006-11-14 13:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/TODO
    * removed to resolved problems from TODO/TOFIX list

  * harbour/include/hbexprb.c
    * indenting and tab to spaces conversion

  * harbour/source/compiler/ppcomp.c
    ! fixed typo which cased that dump buffer was not ended
      with \0 character
2006-11-14 12:51:34 +00:00

289 lines
7.2 KiB
Plaintext

/*
* $Id$
*/
=======================================================================
Harbour Project To-Do list
=======================================================================
Tasks for v.1 beta:
-------------------
Assign to: Jean-Francois Lefebvre (JFL)
Detail...: The following need to be added to the OO system:
Class Method, Multiple Constructor, Class init Support.
Status...: Open.
***
Assign to: <nobody>
Detail...: 'SAVE TO' statement doesn't work like Clipper.
Status...: Is it still true?
***
Assign to: <nobody>
Detail...: Is memofile support complete?
Status...: Is it still true?
***
Assign to: Ryszard, Przemek
Detail...: Debugger with basic interface written in C - it's enough to
borrow Phil's work from xHarbour.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add missing Clipper virtual memory functions.
Status...: Open.
***
Assign to: <nobody>
Detail...: TBrowse() implementation still has bugs.
Status...: Open.
=======================================================================
Tasks for v.1 release:
----------------------
Assign to: <nobody>
Detail...: Rewrite filesys.c to use native platform specific file I/O
with unlimited number of file handles, while maintaining
compatibility with the CA-Cl*pper legacy handle numbering
system. This either involves adding a linked list for the
translation table, or we should state that only handles 0-4
are number compatible.
Status...: Open.
***
Assign to: Ryszard
Detail...: Optimize out the need for the PUSHNIL opcode before each
function call.
Status...: Open.
=======================================================================
Tasks for after v.1 release:
----------------------------
Assign to: <nobody>
Detail...: Dynamic multi-language compiler/runtime support.
Status...: Open.
***
Assign to: <nobody>
Detail...: UNICODE support.
Status...: Open.
***
Assign to: <nobody>
Detail...: Multithreading support.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add support for INET sockets.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add support for virtual file handles and registering some
meta handles so it will be possible to make:
h := fopen( "gzip:/tmp/myarchive.gz", FO_WRITE )
fwrite( h, cData )
fclose( h )
or:
h := fopen( "tcp:some.host:port", FO_WRITE )
...
or:
h := fopen( "|lpr -PLaserJet", FO_WRITE )
...
or:
h := fopen( "gunzip /tmp/myarchive.gz|", FO_READ )
...
etc.
Status...: Open.
***
Assign to: Przemek
Detail...: Define multi platform platform API for GTs which can mix
graphics objects with standard text output. Now it's
possible in GTXWC, GTWVT and GTALLEG. This I will discuss
yet also with xHarbour developers.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add GTNET driver which will allow to run Harbour application
remotely. GTNET will be used on server side and on client
side any native GT driver.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add support for remotely controlled GUI objects so we will
be able to create GUI programs with GTNET.
Status...: Open.
***
Assign to: <nobody>
Detail...: Add NETRDD - meta RDD which will allow transport layer
between client application and server application with any
other chosen RDD driver. Idea similar to GTNET but for RDD
drivers - it's sth like ADS does.
Status...: Open.
***
Assign to: Przemek
Detail...: Extended HB_IT_POINTER. In practice we can give them the
same functionality as for objects and use them for fast
creation objects at C level. We can also add HB_VALTYPE()
function which will return the extended type name, f.e.
"WINDOW", "FONT", "SOCKET" or anything what 3-rd party
programmers may want to use. It will greatly simplify
writing some libraries.
Status...: Open.
=======================================================================
Harbour Project To-Fix list
=======================================================================
Assign to: Ryszard
Detail...: SQLRDD.
Status...: Working on it.
***
Assign to: Ryszard
Detail...: Hash.
Status...: Working on it.
***
Assign to: Ryszard
Detail...: Real strong typing in the compiler.
Status...: Open.
***
Assign to: Przemek
Detail...: Clean RDD code to be safe for return from RT errors
Status...: Open.
***
Assign to: <nobody>
Detail...: An error in the evaluated macro cause memory leak.
--tt2.prg--
func test
local x := "user input" // this is junk
local y
errorblock({|e|break(e)})
begin sequence
y := &x
end
return nil
-----------
bld_b32 tt2 /w/a/n
tt2
the program runs, and on exit it gives following CodeGuard
warning:
,-
| Resource leak: The memory block was never freed
| The memory block [size: 10 bytes] was allocated with malloc
| NOTE: Ask me if you need the exact call tree. [Chen]
`-
This is simpler example of the same problem:
--tt2b.prg--
proc test
? type("user input")
return
Status...: Open.
***
Assign to: <nobody>
Detail...: The Borland CodeGuard warn about Access overrun in some
of the console IO functions, it appears to be a fault in
the way CG works when passing a static char * to a BYTE *
function. Once the console IO functions would be optimozed,
please take a look at this too.
--tt21.prg--
proc main()
SET PRINTER TO devtest
SET DEVICE TO PRINTER
DepPos( 1, 1 )
return
------------
Status...: Open.
***
Assign to: <nobody>
Detail...: Access in freed memory compiling a macro array item.
--tt23.prg--
proc Main()
LOCAL GetList := {}
PRIVATE cMacro := "cEarly", cEarly := {"Early"}
@ 12,10 GET &cMacro[1]
READ
RETURN
------------
When compiling, Harbour gives the following CodeGuard warning:
,-
| Access in freed memory: Attempt to access 2 byte(s) at NNNNNNNN+32
| The memory block [size: 40 bytes] was allocated with malloc
| NOTE: Ask me if you need the exact call tree. [Chen]
`-
Status...: Open.
***
Assign to: <nobody>
Detail...: Resource leak while compiling the following:
--tt25.prg--
FUNCTION ()x
------------
When compiling, Harbour gives the following CodeGuard warning:
,-
| Resource leak: The memory block was never freed
| The memory block [size: 40 bytes] was allocated with malloc
| NOTE: Ask me if you need the exact call tree. [Chen]
`-
Status...: Open.
***
=======================================================================