Commit Graph

124 Commits

Author SHA1 Message Date
Jonas Maebe
36c6879581 + -Sx command line switch to turn on exception keywords in non-Delphi/ObjFPC
modes (mainly for MacPas, to replace nested gotos with exceptions)

git-svn-id: trunk@4984 -
2006-10-20 12:54:47 +00:00
florian
9a1b9071a5 * implemented kylix like local directive, fixes #7242
git-svn-id: trunk@4982 -
2006-10-19 20:26:14 +00:00
Jonas Maebe
eccbc78e04 + support for bitpacked arrays:
+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays

git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
florian
c81f34aeee + parsing of dispinterface properties
git-svn-id: trunk@3383 -
2006-04-30 14:29:16 +00:00
daniel
fbc08c229d + Add m_property mode switch to allow per mode recognition of
property.

git-svn-id: trunk@2570 -
2006-02-14 17:11:18 +00:00
Jonas Maebe
0ad06aff97 - "property" is again only a keyword in objfpc and delphi mode
(otherwise this breaks code which uses that name for a parameter
    or variabled) -- this disables the ability to use properties
    in objects until support is added elsewhere in the compiler,
    but change is needed since it breaks the compilation of the
    universal headers.

git-svn-id: trunk@2569 -
2006-02-14 16:40:52 +00:00
daniel
1318b95a06 * Enable recognition of property keyword in all modes now that
they are allowed for objects

git-svn-id: trunk@2149 -
2006-01-03 23:11:28 +00:00
Jonas Maebe
5ccbeea1d3 + support for "return x" as equivalent for "exit(x)" in macpas mode
git-svn-id: trunk@2042 -
2005-12-23 22:49:15 +00:00
peter
95879fe8a7 * basic support for generic classes
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
florian
abbc85bb78 + strict protected and strict private support
git-svn-id: trunk@512 -
2005-06-28 19:23:39 +00:00
florian
6bf3609bda + tokens for packages added
git-svn-id: trunk@90 -
2005-05-24 19:50:09 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
Jonas Maebe
bfa2301575 * const record parameters > 8 bytes are now passed by reference for non
cdecl/cppdecl procedures on Mac OS/Mac OS X to fix compatibility with
    GPC (slightly more efficient than Metrowerks behaviour below, but
    less efficient in most cases than our previous scheme)
  + "mwpascal" procedure directive to support the const record parameter
    behaviour of Metrowerks Pascal, which passes all const records by
    reference
2005-03-27 14:10:52 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
Károly Balogh
5908985365 * more SysV call support stuff for MorphOS 2005-01-06 02:13:03 +00:00
olle
94e74ca197 * sorted in correctly new tokens added by Karoly 2005-01-04 19:22:33 +00:00
Károly Balogh
088575dc32 + sysv style syscalls added for MorphOS 2005-01-04 17:40:33 +00:00
peter
705868e816 * remove saveregister calling convention 2004-10-24 20:01:08 +00:00
olle
98df0978e1 + adding operators "|" and "&" for macpas 2004-07-05 23:25:34 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
olle
758c940518 + added language constructs UNIV, C, ... for mode mac
* consolidated macro expression to conform to Pascal
  * macro true is defined as <> 0
2004-05-03 10:06:38 +00:00
florian
a7478ee97f + location support for arguments, currently PowerPC/MorphOS only 2004-04-18 15:22:24 +00:00
daniel
2835ed1b55 * Enable threadvars for all modes 2004-02-17 17:38:11 +00:00
florian
bbf7300a0c * Florian's culmutative nr. 1; contains:
- invalid calling conventions for a certain cpu are rejected
    - arm softfloat calling conventions
    - -Sp for cpu dependend code generation
    - several arm fixes
    - remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
peter
b9d09a4e5c * preparations for different default calling conventions
* various RA fixes
2003-09-07 22:09:34 +00:00
olle
4471dd1d26 + bugfix, put token UNIMPLEMENTED in right order 2003-09-04 21:58:16 +00:00
peter
6731abb0db * fixed some reported bugs 2003-08-10 17:25:23 +00:00
armin
8473dada93 * avoid problems with the ide in init/dome 2003-03-26 12:50:54 +00:00
carl
5c5db0e0a3 + unimplemented hint directive added
* hint directive parsing implemented
  * warning on these directives
2002-11-29 22:31:19 +00:00
florian
31da813d1d * exit is now a syssym instead of a keyword 2002-07-16 15:34:20 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
marco
7215d46735 * Make new/dispose system functions instead of keywords 2001-10-24 11:51:39 +00:00
peter
17d62feebe * $calling directive and -Cc commandline patch added
from Pavel Ozerski
2001-10-23 21:49:42 +00:00
Jonas Maebe
367f7a0362 + "compilerproc" directive support, which turns both the public and mangled
name to lowercase(declaration_name). This prevents a normal user from
    accessing the routine, but they can still be easily looked up within
    the compiler. This is used for helper procedures and should facilitate
    the writing of more processor independent code in the code generator
    itself (mostly written by Peter)
  + new "createintern" constructor for tcal nodes to create a call to
    helper exported using the "compilerproc" directive
  + support for high(dynamic_array) using the the above new things
  + definition of 'HASCOMPILERPROC' symbol (to be able to check in the
    compiler and rtl whether the "compilerproc" directive is supported)
2001-08-01 15:07:29 +00:00
peter
c4b84ce276 * m68k updates from v10 merged 2001-07-30 20:59:27 +00:00
peter
f86ce17588 + hint directive parsing support 2001-06-03 21:57:35 +00:00
Jonas Maebe
57339cbf1c - commented out an unused field in tokenrec 2001-05-06 17:12:43 +00:00
florian
3c5793d8c6 * some Delphi incompatibilities fixed:
- out, dispose and new can be used as idenfiers now
     - const p = apointerype(nil); is supported now
  + support for const p = apointertype(pointer(1234)); added
2001-05-04 15:52:03 +00:00
florian
1008d7faa0 + support for type a = (a=1); in Delphi mode added
+ procedure p(); in Delphi mode supported
  + on isn't keyword anymore, it can be used as
    id etc. now
2001-03-22 22:35:42 +00:00
florian
b9796f6a7f * unused units removed from uses clause
* some changes for widestrings
2000-11-29 00:30:30 +00:00
florian
68c1a1e3e6 * System.TypeInfo fixed
+ System.Finalize implemented
  + some new keywords for interface support added
2000-11-09 17:46:54 +00:00
peter
e171f341a0 * moehrendorf oct 2000 rewrite 2000-10-14 10:14:45 +00:00
peter
a71e44ac49 * use defines.inc 2000-09-24 15:06:10 +00:00
michael
665c1f6410 + patched to 1.1.0 with former 1.09patch from peter 2000-07-13 12:08:24 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00
michael
e7aca136a1 + Initial import 2000-07-13 06:29:38 +00:00
peter
b71b416cd1 * support overload keyword 2000-06-18 18:12:40 +00:00
pierre
7b1219536c + support for NOT overloading
+ unsupported overloaded operators generate errors
2000-06-05 20:41:17 +00:00
florian
9376275364 * bug #873 fixed
* some cleanup in objectdec
2000-03-19 14:56:38 +00:00
carl
938b005d15 * bugfixes in tokens using TP conditional 2000-02-12 23:53:18 +00:00
peter
4a4a24b6e8 * log truncated 2000-02-09 13:22:42 +00:00
peter
e525797c51 * updated copyright to 2000 2000-01-07 01:14:18 +00:00
pierre
94f418dc11 + one field added for ttoken record for operator
linking the id to the corresponding operator token that
    can now now all be overloaded
  * overloaded operators are resetted to nil in InitSymtable
    (bug when trying to compile a uint that overloads operators twice)
1999-11-15 17:52:59 +00:00
florian
00b063c621 * fixed 1/s problem from mailing list 1999-09-21 20:53:21 +00:00
peter
1512794c0f * removed uses globals 1999-09-17 09:17:49 +00:00
peter
870895b72b * better error checking 1999-09-16 13:41:37 +00:00
peter
91962591f3 * tokendat compiles for tp
* tokens.dat supplied by default
1999-09-08 16:02:03 +00:00
pierre
29bdd631a1 * tokens.dat only used for TP, and also removed from
compiler dependencies
1999-09-03 08:37:34 +00:00
daniel
1777e0c901 * Could not compile with TP, some arrays moved to heap
* NOAG386BIN default for TP
  * AG386* files were not compatible with TP, fixed.
1999-09-02 18:47:41 +00:00
Jonas Maebe
ace7ff6983 * all tokens now start with an underscore
* PowerPC compiles!!
1999-08-04 13:02:40 +00:00
peter
ed8eb13d59 * moved bitmask constants to sets
* some other type/const renamings
1999-08-03 22:02:29 +00:00
florian
35f636dea1 + resourcestring implemented
+ start of longstring support
1999-07-22 09:37:28 +00:00
peter
02576a8279 * merged 1999-07-10 10:26:18 +00:00
florian
1bcd891310 * non working safecall directiv implemented, I don't know if we
need it
1999-05-24 08:55:29 +00:00
florian
d27b21891b * changes of Bruessel:
+ message handler can now take an explicit self
     * typinfo fixed: sometimes the type names weren't written
     * the type checking for pointer comparisations and subtraction
       and are now more strict (was also buggy)
     * small bug fix to link.pas to support compiling on another
       drive
     * probable bug in popt386 fixed: call/jmp => push/jmp
       transformation didn't count correctly the jmp references
     + threadvar support
     * warning if ln/sqrt gets an invalid constant argument
1999-04-28 06:01:54 +00:00
peter
ee82810a16 * more use of ttoken 1999-04-06 11:21:56 +00:00
peter
cf8fef1b47 * universal string names (ansistr instead of stransi) for val/str 1999-04-01 22:07:51 +00:00
florian
3c576cce7d + first implementation of message keyword 1999-02-22 20:13:32 +00:00
florian
d17abfd1ad + openstring id is now supported 1999-02-05 12:51:21 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +00:00