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 | Yes | The 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 | Yes | Included for Backward compatibility |
| CMONTH | Yes | |
| CNTBAR | No | |
| CNTPAD | No | |
| COL | Yes | Implemented 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 | Yes | The 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 | No | Won't be implemented in 1.0 |
| DDEADVISE | No | Won't be implemented in 1.0 |
| DDEENABLED | No | Won't be implemented in 1.0 |
| DDEEXECUTE | No | Won't be implemented in 1.0 |
| DDEINITIATE | No | Won't be implemented in 1.0 |
| DDELASTERROR | No | Won't be implemented in 1.0 |
| DDEPOKE | No | Won't be implemented in 1.0 |
| DDEREQUEST | No | Won't be implemented in 1.0 |
| DDESETOPTION | No | Won't be implemented in 1.0 |
| DDESETSERVICE | No | Won't be implemented in 1.0 |
| DDESETTOPIC | No | Won't be implemented in 1.0 |
| DDETERMINATE | No | Won'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 | Yes | The lRootOnly parameter is not supported. |
| GETENV | Yes | |
| GETFILE | Yes | The 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 | Yes | Implemented as an intrinsic function |
| ID | Yes | |
| IDXCOLLATE | No | |
| IIF | Yes | Implemented as an intrinsic function |
| IMESTATUS | Yes | Implemented 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 | Yes | Actually always returns .T. as there is not support for delayed memo fetching |
| ISMOUSE | Yes | |
| ISNULL | Yes | |
| ISPEN | Yes | Partially implemented
Return .T. if Pen Extensions are available |
| ISREADONLY | Yes | |
| ISRLOCKED | Yes | |
| ISTRANSACTABLE | Yes | Returns .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 | No | Always 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 | Yes | Now 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 | Yes | Returns .F. as transaction are not enabled yet. Transactions will be implemented soon. |
| MAX | Yes | |
| MCOL | Yes | |
| MDOWN | No | Now 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 | Yes | Now 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 | Yes | Implemented |
| OBJTOCLIENT | No | |
| OBJVAR | Yes | Implemented |
| OCCURS | Yes | |
| OLDVAL | Yes | |
| ON | No | |
| ORDER | Yes | |
| OS | No | Supports 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 | No | Always 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 | No | Backward 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 | |