Compiler / Runtime status - as November, 2008

We are getting closer to the completion of the Runtime now we are half way in the Functions and very advanced in the commands front.

Category Our implementation VFP9 % completion
Functions 302 425 71%
Commands 105 159 66%

And the Full Independent TableLayer 64 bits capable, that supports more than 1000 fields and Big tables (bigger than 4 GB) is debuting. The debuting version of the TableLayer supports only Free tables, if the table is in a database the TableLayer ignores any Database information as long names and use only the info available in the table. This is just for now, the next month it will support Database functionality as longnames.

Now we list all the commands (including not implemented) together with its implementation status to let you check what are the commands remaining to be implemented:

 

Command Implemented Comment
! .T.  
* .T.  
= .T.  
? .T. Basic syntax implemented including several expressions at the same time.
?? .T.  
??? .F.  
ACTIVATE .F.  
ADD .T. Implemented for 
ADD OBJECT AS <ClassName>
ALTER .F.  
APPEND .T.  
ASSERT .T.  
AVERAGE .T. Added clause :
IN eWorkArea
BEGIN .F.  
BLANK .T. Implemented only as a Clause of other commands
BROWSE .F.  
CALCULATE .T.  
CANCEL .F.  
CASE .T.  
CATCH .T.  
CD .T.  
CHANGE .F.  
CHDIR .T.  
CLEAR .T. Implemented for CLEAR EVENTS
CLOSE .T. Implemented for CLOSE DATABASES
COMPILE .T.  
CONTINUE .T.  
COPY .T. Iimplemented for:
COPY FILE ...
COPY PROCEDURES

COUNT .T. Has a new clause:
 IN eWorkarea
CREATE .T. TABLE | DBF Implemented for the FROM ARRAY syntax
DATABASE implemented clause
DEACTIVATE .F.  
DEBUG .T.  
DEBUGOUT .T.  
DECLARE .T.  
DEFINE .T. Syntax implemented for Interfaces, Classes, Structures and enums:

DEFINE CLASS myClass AS System::Object

PROCEDURE MethodA

Procedure MethodB as long
TPARAMETERS cValue as String

ENDDEFINE

DEFINE INTERFACE aInteface
PROCEDURE MethodA

Procedure MethodB as long
TPARAMETERS cValue as String

ENDDEFINE

DEFINE ENUM MyEnum
nValue1
nValue2
ENDDEFINE

DEFINE STRUCTURE MyStruct
PROCEDURE MethodA

Procedure MethodB as long
TPARAMETERS cValue as String

ENDEFINE
DELETE .T. Implemented for
DELETE ** records **
DELETE FILE
DELETE CONNECTION
DELETE TRIGGER
DELETE VIEW
DIMENSION .T.  
DIR .F.  
DIRECTORY .F.  
DISPLAY .F.  
DO .T.  
DOCK .F.  
DOEVENTS .F.  
DROP .F.  
EDIT .F.  
EJECT .F.  
ELIF .T.  
ELSE .T.  
END .T.  
ENDCASE .T.  
ENDDEFINE .T. Syntax extended see DEFINE
ENDDO .T.  
ENDFOR .T.  
ENDFUNC .T.  
ENDIF .T.  
ENDPRINTJOB .F.  
ENDPROC .T.  
ENDSCAN .T.  
ENDTEXT .F.  
ENDTRY .T.  
ENDWITH .F.  
ERASE .T. Clause RECYCLE NOT IMPLEMENTED YET
ERROR .T.  
EXIT .T.  
EXPORT .F.  
EXTERNAL .T. This is just to enable more programs to compile under .NET
FINALLY .T.  
FIND .T. Implemented as a call to SEEK
FLUSH .T.  
FOR .T.  
FREE .T. FREE TABLE – syntax
FUNCTION .T.  
GATHER .T.  
GETEXPR .F.  
GO .T.  
GOTO .T.  
HELP .F.  
HIDDEN .T. Actually implemented as a private member
HIDE .F.  
IF .T.  
IFDEF .T.  
IFNDEF .T.  
IMPLEMENTS .T.  
IMPORT .F.  
INCLUDE .T.  
INDEX .T. Implementado para CDX index files
INSERT .T.  
KEYBOARD .T.  
LABEL .F.  
LIST .F.  
LOCAL .T.  
LOCATE .T.  
LOOP .T.  
LPARAMETERS .T.  
MD .T.  
MKDIR .T.  
MODIFY .F.  
MOVE .F.  
NEXT .T.  
NODEFAULT .T.  
NOTE .F.  
ON .F.  
OPEN .T. OPEN DATABASE – implemented
OTHERWISE .T.  
PACK .T. PACK for tables
PACK DATABASE
PARAMETERS .T.  
POP .F.  
PRINTJOB .F.  
PRIVATE .T.  
PROCEDURE .T.  
PROTECTED .T.  
PUBLIC .T.  
PUSH .F.  
QUIT .F.  
RD .T.  
READ .T. Implemented for READ EVENTS
RECALL .T.  
REINDEX .T. Needs exclusive access
RELEASE .F.  
REMOVE .T. REMOVE TABLE – implemented
RENAME .T.  
REPLACE .T.  
REPORT .F.  
RESTORE .F.  
RESUME .F.  
RETRY .F.  
RETURN .T.  
RMDIR .T.  
ROLLBACK .F.  
RUN .F.  
SAVE .F.  
SCAN .T. In the table layer for 64 bits, the WHILE clause is accepted but ignored this will be reenabled in the next revision.
SCATTER .T. NAME clause only works for VFPObjects
SCROLL .F. Won't be in 1.0
SEEK .T.  
SELECT .T.  
SET .F.  
SHOW .F.  
SIZE .F.  
SKIP .T.  
SORT .F.  
STORE .T.  
SUM .T. Has a new clause :
IN eWorkArea

SUSPEND .T. Implemented as System::Diagnostics::Debugger::Break()
TEXT .F.  
THROW .T.  
TOTAL .T. Has a new clause :
IN eWorkArea

TRY .T.  
TYPE .F.  
UNDEFINE .T.  
UNLOCK .T.  
UPDATE .F.  
USE .T.  
VALIDATE .T.  
WAIT .T. Does not suportst the NOCLEAR BEHAVIOR.  Allways use a Window to display the message even if you don't include WINDOW.  
TODO: Fix the implementation.
WITH .F.  
ZAP .T.  
ZOOM .F.  
\ .F.  
\\ .F.  
 

And the following functions is the full list of VFP Functions:

Function Implemented Comment
ACLASS Yes
ACOPY Yes
ACOS Yes
ADATABASES Yes
ADBOBJECTS Yes
ADDBS Yes
ADDPROPERTY No
ADEL Yes
ADIR Yes
ADLLS No
ADOCKSTATE No
AELEMENT Yes
AERROR No
AEVENTS No
AFIELDS Yes
AFONT No
AGETCLASS No
AGETFILEVERSION Yes
AINS Yes
AINSTANCE No
ALANGUAGE No
ALEN Yes
ALIAS Yes
ALINES Yes
ALLTRIM Yes
AMEMBERS No
AMOUSEOBJ No
ANETRESOURCES Yes
APRINTERS Yes
APROCINFO No
ASC Yes
ASCAN Yes
ASELOBJ No
ASESSIONS Yes
ASIN Yes
ASORT Yes
ASQLHANDLES Yes
ASTACKINFO Yes
ASUBSCRIPT Yes
AT Yes
ATAGINFO Yes
ATAN Yes
ATC Yes
ATCC Yes
ATCLINE Yes
ATLINE Yes
ATN2 Yes
AT_C Yes
AUSED Yes
AVCXCLASSES No
BAR No
BARCOUNT No
BARPROMPT No
BETWEEN Yes
BINDEVENT Yes
BINTOC YesThe S (sign) parameter is not supported
BITAND Yes
BITCLEAR Yes
BITLSHIFT Yes
BITNOT Yes
BITOR Yes
BITRSHIFT Yes
BITSET Yes
BITTEST Yes
BITXOR Yes
BOF Yes
CANDIDATE No
CAPSLOCK Yes
CAST No
CDOW Yes
CDX Yes
CEILING Yes
CHR Yes
CHRSAW No
CHRTRAN Yes
CHRTRANC Yes
CLEARRESULTSET YesIncluded for Backward compatibility
CMONTH Yes
CNTBAR No
CNTPAD No
COL YesImplemented as _SCREEN.CurrentX
COMARRAY No
COMCLASSINFO No
COMPOBJ Yes
COMPROP No
COMRETURNERROR No
COS Yes
CPCONVERT Yes
CPCURRENT Yes
CPDBF Yes
CREATEBINARY Yes
CREATEOBJECT Yes
CREATEOBJECTEX No
CREATEOFFLINE No
CTOBIN YesThe S (sign) parameter is not supported
CTOD Yes
CTOT Yes
CURDIR Yes
CURSORGETPROP Yes
CURSORSETPROP Yes
CURSORTOXML No
CURVAL Yes
DATE Yes
DATETIME Yes
DAY Yes
DBC Yes
DBF Yes
DBGETPROP Yes
DBSETPROP Yes
DBUSED Yes
DDEABORTTRANS NoWon't be implemented in 1.0
DDEADVISE NoWon't be implemented in 1.0
DDEENABLED NoWon't be implemented in 1.0
DDEEXECUTE NoWon't be implemented in 1.0
DDEINITIATE NoWon't be implemented in 1.0
DDELASTERROR NoWon't be implemented in 1.0
DDEPOKE NoWon't be implemented in 1.0
DDEREQUEST NoWon't be implemented in 1.0
DDESETOPTION NoWon't be implemented in 1.0
DDESETSERVICE NoWon't be implemented in 1.0
DDESETTOPIC NoWon't be implemented in 1.0
DDETERMINATE NoWon't be implemented in 1.0
DEFAULTEXT Yes
DELETED Yes
DESCENDING Yes
DIFFERENCE Yes
DIRECTORY Yes
DISKSPACE Yes
DISPLAYPATH Yes
DMY Yes
DODEFAULT Yes
DOW Yes
DRIVETYPE Yes
DROPOFFLINE No
DTOC Yes
DTOR Yes
DTOS Yes
DTOT Yes
EDITSOURCE No
EMPTY Yes
EOF Yes
ERROR Yes
EVALUATE Yes
EVENTHANDLER No
EVL Yes
EXECSCRIPT Yes
EXP Yes
FCHSIZE Yes
FCLOSE Yes
FCOUNT Yes
FCREATE Yes
FDATE Yes
FEOF Yes
FERROR No
FFLUSH Yes
FGETS Yes
FIELDS Yes
FILE Yes
FILETOSTR Yes
FILTER Yes
FKLABEL Yes
FKMAX Yes
FLOCK Yes
FLOOR Yes
FONTMETRIC Yes
FOPEN Yes
FOR Yes
FORCEEXT Yes
FORCEPATH Yes
FOUND Yes
FPUTS Yes
FREAD Yes
FSEEK Yes
FSIZE Yes
FTIME Yes
FULLPATH Yes
FV Yes
FWRITE Yes
GETAUTOINCVALUE No
GETBAR No
GETCOLOR Yes
GETCP No
GETCURSORADAPTER Yes
GETDIR YesThe lRootOnly parameter is not supported.
GETENV Yes
GETFILE YesThe cOpenButtonCaption and nButtonType are not supported yet. You can pass them as parameters but are ignored
GETFLDSTATE No
GETFONT Yes
GETINTERFACE No
GETNEXTMODIFIED Yes
GETOBJECT No
GETPAD No
GETPEM Yes
GETPICT Yes
GETPRINTER Yes
GETRESULTSET Yes
GETWORDCOUNT Yes
GETWORDNUM Yes
GOMONTH Yes
HEADER Yes
HOME Yes
HOUR Yes
ICASE YesImplemented as an intrinsic function
ID Yes
IDXCOLLATE No
IIF YesImplemented as an intrinsic function
IMESTATUS YesImplemented as a property IMEMODE of _SCREEN. Available only for Japanese locale.
INDBC Yes
INDEXSEEK Yes
INKEY Yes
INLIST Yes
INPUTBOX No
INSMODE Yes
INT Yes
ISALPHA Yes
ISBLANK Yes
ISCOLOR Yes
ISDIGIT Yes
ISEXCLUSIVE Yes
ISFLOCKED Yes
ISLEADBYTE Yes
ISLOWER Yes
ISMEMOFETCHED YesActually always returns .T. as there is not support for delayed memo fetching
ISMOUSE Yes
ISNULL Yes
ISPEN YesPartially implemented Return .T. if Pen Extensions are available
ISREADONLY Yes
ISRLOCKED Yes
ISTRANSACTABLE YesReturns .F. as transaction are not enabled yet. Transactions will be implemented soon.
ISUPPER Yes
JUSTDRIVE Yes
JUSTEXT Yes
JUSTFNAME Yes
JUSTPATH Yes
JUSTSTEM Yes
KEY Yes
KEYMATCH Yes
LASTKEY Yes
LEFT Yes
LEFTC Yes
LEN Yes
LENC Yes
LIKE Yes
LIKEC Yes
LINENO NoAlways return the line number of the file where the code resides, not relative to the procedure. Needs to have been compiled with debug info.
LOADPICTURE YesNow the syntax is LOADPICTURE LPARAMETERS tcFile[, tnFlags] When tnFlags = 0 or Omitted it fails because COM Objects are not supported yet When tnFlags = 1 It Returns a System:Drawing:Image
LOCFILE No
LOCK Yes
LOG Yes
LOG10 Yes
LOOKUP No
LOWER Yes
LTRIM Yes
LUPDATE Yes
MAKETRANSACTABLE YesReturns .F. as transaction are not enabled yet. Transactions will be implemented soon.
MAX Yes
MCOL Yes
MDOWN NoNow supports the tnFlags 1 - Check if the left button is pressed as previous 2 - Check if the right button is pressed 4 - Check if the middle button is pressed
MDX Yes
MDY Yes
MEMLINES Yes
MEMORY YesNow supports the following arguments tnValue as integer 0 - (Default) Works as VFP9 version returning 640 1 - Return available physical memory 2 - Return available virtual memory 3 - Return total physical memory 4 - Return total virtual memory
MENU No
MESSAGEBOX Yes
MESSAGE Yes
MIN Yes
MINUTE Yes
MLINE Yes
MOD Yes
MONTH Yes
MRKBAR No
MRKPAD No
MROW Yes
MTON Yes
MWINDOW No
NDX No
NEWOBJECT Yes
NORMALIZE No
NTOM Yes
NUMLOCK Yes
NVL Yes
OBJNUM YesImplemented
OBJTOCLIENT No
OBJVAR YesImplemented
OCCURS Yes
OLDVAL Yes
ON No
ORDER Yes
OS NoSupports most of the VFP values, from 1 to 8, except nValue = 9 AND nValue = 10
PAD No
PADC Yes
PADL Yes
PADPROMPT No
PADR Yes
PARAMETERS Yes
PAYMENT Yes
PCOL No
PCOUNT Yes
PEMSTATUS Yes
PI Yes
POPUPS No
PRIMARY No
PRINTSTATUS NoAlways returns .T.
PRMBAR No
PRMPAD No
PROGRAM No
PROMPT No
PROPER Yes
PROW No
PRTINFO No
PUTFILE Yes
PV Yes
QUARTER Yes
RAISEEVENT No
RAND Yes
RAT Yes
RATC Yes
RATLINE Yes
RECCOUNT Yes
RECNO Yes
RECSIZE Yes
REFRESH No
RELATION No
REMOVEPROPERTY No
REPLICATE Yes
REQUERY No
RGB Yes
RGBSCHEME NoBackward compatibility not implemented in 1.0
RIGHT Yes
RIGHTC No
RLOCK Yes
ROUND Yes
ROW Yes
RTOD Yes
RTRIM Yes
SAVEPICTURE No
SCOLS No
SEC Yes
SECONDS Yes
SEEK Yes
SELECT Yes
SET Yes
SETFLDSTATE No
SETRESULTSET Yes
SIGN Yes
SIN Yes
SKPBAR No
SKPPAD No
SOUNDEX Yes
SPACE Yes
SQLCANCEL Yes
SQLCOLUMNS Yes
SQLCOMMIT Yes
SQLCONNECT Yes
SQLDISCONNECT Yes
SQLEXEC Yes
SQLGETPROP Yes
SQLIDLEDISCONNECT No
SQLMORERESULTS No
SQLPREPARE Yes
SQLROLLBACK Yes
SQLSETPROP Yes
SQLSTRINGCONNECT Yes
SQLTABLES Yes
SQRT Yes
SROWS No
STR Yes
STRCONV No
STREXTRACT Yes
STRTOFILE Yes
STRTRAN Yes
STUFF Yes
STUFFC No
SUBSTR Yes
SUBSTRC No
SYS Yes
SYSMETRIC No
TABLEREVERT Yes
TABLEUPDATE Yes
TAG Yes
TAGCOUNT Yes
TAGNO No
TAN Yes
TARGET Yes
TEXTMERGE No
TIME Yes
TRANSFORM Yes
TRIM Yes
TTOC Yes
TTOD Yes
TXNLEVEL No
TXTWIDTH No
TYPEAHEAD Yes
UNBINDEVENTS No
UNIQUE No
UPPER Yes
USED Yes
VAL Yes
VARTYPE Yes
VERSION No
WBORDER No
WCHILD No
WCOLS No
WDOCKABLE No
WEEK Yes
WEXIST No
WFONT No
WLAST No
WLCOL No
WLROW No
WMAXIMUM No
WMINIMUM No
WONTOP No
WOUTPUT No
WPARENT No
WREAD No
WROWS No
WTITLE No
WVISIBLE No
XMLTOCURSOR No
XMLUPDATEGRAM No
YEAR Yes