Files
harbour-core/harbour/TODO
Przemyslaw Czerpak 22b6c06fce 2006-09-04 19:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/TODO
    + added simpler example for memory leak in macro compiler:
         ? type("user input")

  * harbour/source/macro/macro.y
    * replaced TABs with SPACEs

  * harbour/source/vm/classes.c
    * added some TRACE() messages
    + added support for executing functions with <symItem>:EXEC()
      registered dynamically after creating <symItem>

  * harbour/source/vm/hvm.c
    * minor modification
2006-09-04 17:45:53 +00:00

275 lines
6.9 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 preprocessor directives from CL5.3:
REINDEX: missing [NOOPTIMIZE]
SEEK: missing [LAST]
SET DESCENDING OFF
SET DESCENDING ON
SET SCOPE TO
SET SCOPETOP TO
SET SCOPEBOTTOM TO
SET VIDEOMODE TO
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: Przemek
Detail...: Fix setting private base for code blocks created by macro
compiler. Maybe it should be bound with making CLEAR MEMORY
safe.
Status...: Open.
***
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...: When compiling PRG with a very long line (12300 characters)
gives the following CodeGuard warning:
,- ( changlog 2006-08-23 23:12 UTC+0200 Przemyslaw Czerpak )
| Access overrun: Attempt to access 1 byte(s) at NNN+12288,
| that is at offset 0+12288 in block NNN which is only 12288
| bytes long. Call Tree:
| source\pp\PPCORE.C#3899
| source\pp\PPCOMP.C#147
| source\\compiler\\harbour.l#1792
| obj\\b32\\harbourl.c#4546
| obj\\b32\\harbourl.c#4380
| obj\b32\harboury.c#3667
`-
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:
,- ( changlog 2006-08-23 23:12 UTC+0200 Przemyslaw Czerpak )
| Resource leak: The memory block was never freed
| The memory block [size: 10 bytes] was allocated with malloc
| Call Tree:
| source\vm\FM.C#233
| source\common\HBSTR.C#122
| source\\macro\\macro.l#321
| obj\b32\macroy.c#1790
| obj\b32\macroy.c#3799
| source\vm\MACRO.C#153
`-
This is simpler example of the same problem:
--tt2b.prg--
proc test
? type("user input")
return
Status...: Open.
=======================================================================