Commit Graph

2396 Commits

Author SHA1 Message Date
armin
bb09124f58 fix compilation for netware target
git-svn-id: trunk@16887 -
2011-02-06 18:14:38 +00:00
joost
7ed2bae024 * Set svn-properties
git-svn-id: trunk@16883 -
2011-02-06 14:10:39 +00:00
Legolas
c3698c84be * Updated libndsfpc to 1.4.10:
+ Added support for Tetris paddle, Guitar Hero grip and easy piano controller
  + Added sdmmc support for reading DSi internal SD card
  + i2c communication functions for DSi
  + Added some time handling related examples 
  * Improved timing functions
  * Some small bug fixes and improvements, both in library and examples
  - Removed unused SVN macros from header and license infos to save space :)

git-svn-id: trunk@16879 -
2011-02-05 14:20:49 +00:00
Jonas Maebe
7cb1c8b586 * improvement of r16001 so that allocations even closer to high(ptruint)
also fail correctly rather than overflowing to 0 bytes (mantis #18690)

git-svn-id: trunk@16877 -
2011-02-04 18:58:21 +00:00
florian
e7fa076b70 * handle variables without explicit size prefix better in inline assembler, resolves #18009
git-svn-id: trunk@16859 -
2011-01-30 21:57:30 +00:00
florian
f5bde338ff - remove unused and non functional kalyptus port
git-svn-id: trunk@16852 -
2011-01-30 17:14:33 +00:00
florian
e99c4d1950 + support str(<boolean>,...), boolean is an enumeration type
* don't run pass_1 on str or val calls in generic method/procedure definitions, resolves #18420

git-svn-id: trunk@16849 -
2011-01-30 14:27:09 +00:00
paul
e77a9051c8 compiler: treat record/class fields types as bt_var_type block in delphi mode - as result they don't create a forward declaration for ^Type. Leave it as is for other modes because in other case it break the compilation of RTL and packages (fixes issue #0018620)
git-svn-id: trunk@16832 -
2011-01-29 07:32:10 +00:00
nickysn
c96b89adce * GAS no longer required to build hermes on i386
git-svn-id: trunk@16827 -
2011-01-28 20:06:00 +00:00
paul
0f35da07f1 compiler: call gen_intf_wrappers not only for unit symtables but also for syntables of records and object types because they can contain nested classes (bug #0018610)
git-svn-id: trunk@16818 -
2011-01-26 13:50:36 +00:00
paul
a39733a0a2 compiler: extend enumerator support for records:
- search GetEnumerator method in records too (while searching a enumerator for structure)
  - allow enumerator operator return type to be a record
  - copy/adapt enumerator helpers from tobjectdef to tabstractrecorddef
  + test

git-svn-id: trunk@16807 -
2011-01-24 04:13:28 +00:00
paul
9499692eeb compiler: allow Assignment and Explicit operators for undefined defs (issue #0018567)
git-svn-id: trunk@16805 -
2011-01-24 03:06:27 +00:00
paul
11e4440475 test: add delphi generic test which checks that both generic and regular type declarations with the same identifier are allowed in a unit
git-svn-id: trunk@16797 -
2011-01-21 03:39:21 +00:00
paul
731291aee0 compiler: change Addr function to return untyped pointer by Blaise Thorn (issue #0018512), change/add tests
git-svn-id: trunk@16777 -
2011-01-18 15:23:58 +00:00
marco
608498c64c * committed the fpc/ hierarchy parts of the patch in mants 18271:
Adding clocale to Solaris.

git-svn-id: trunk@16771 -
2011-01-16 10:37:02 +00:00
sekelsenmat
d260e8b2ee Adds a DXF reader and fixes an error in the Canvas output
git-svn-id: trunk@16765 -
2011-01-14 14:45:03 +00:00
sekelsenmat
dcfcce2dfc opps, there was already a viewer. The converter can view
git-svn-id: trunk@16764 -
2011-01-14 13:03:46 +00:00
sekelsenmat
65e29e3984 Starts implementing a fpvectorial viewer
git-svn-id: trunk@16763 -
2011-01-14 12:54:17 +00:00
paul
0c9b40acb7 compiler: record operators
- allow operator also if return type match the structure type (before at least one parameter had to match)
  - search both operands symbol tables for a suitable assignment operator
  - test
based on patch of Blaise Thorn (issue #0018490)

git-svn-id: trunk@16762 -
2011-01-14 02:25:48 +00:00
ivost
1a66fb6f9b * splitted xmlxsd.pas into xmlxsd.pas and xmlxsdparser.pas
* now it's possible to use the xsd type parser without using libxml2

git-svn-id: trunk@16751 -
2011-01-11 23:09:00 +00:00
Jonas Maebe
bbf0e35a51 + Support for ARM CPS/CPSIE/CPSID instructions and mode flag bitfield
operand (patch by Jeppe Johansen, mantis #18334)

git-svn-id: trunk@16750 -
2011-01-11 16:02:51 +00:00
Jonas Maebe
d76ddcabe6 * don't give an internalerror when trying to explicitly apply an invalid
typecast to an array-of-const (mantis #18267)

git-svn-id: trunk@16749 -
2011-01-11 15:47:56 +00:00
paul
8f7ada0db0 compiler: use anonymous inherited in all cases where the next token <> _ID (bug #0018443)
git-svn-id: trunk@16741 -
2011-01-09 05:08:04 +00:00
sergei
c0f6084c2e * SysUtils.Format: Fixed behavior in case when format specifier contains both index and '*' for width/precision.
+ test

git-svn-id: trunk@16740 -
2011-01-08 20:08:16 +00:00
paul
f5965a9ce4 compiler: specialize record methods the same way as currently done for object and class methods + test
git-svn-id: trunk@16726 -
2011-01-07 16:57:21 +00:00
paul
2599cc63bd compiler: implement generic procedural types
- store type parameter in parasymtable, push it to the symtablestack before parsing arguments and return type
  - move procedure/function declaration parsing to procvar_dec subroutine
  - don't skip parasymtable while searching types because they store type parameters now
  - add TParaSymTable.ReadOnly field to prevent adding defs into symtable. Add defs to the parent symtable in this case (we are adding this symtable to stack to read type parameters only, add defs should go to parent in this case as it was before)

git-svn-id: trunk@16719 -
2011-01-06 11:53:51 +00:00
michael
6898dcee66 * Example for streaming
git-svn-id: trunk@16713 -
2011-01-05 22:54:45 +00:00
michael
8390a18298 * Support for RTTI streaming
git-svn-id: trunk@16712 -
2011-01-05 22:49:00 +00:00
michael
853a1eb31c * Added support for project file
git-svn-id: trunk@16711 -
2011-01-05 22:19:53 +00:00
paul
0d6b62d293 compiler: allow generic inline specialization for delphi mode (like TFoo<Integer>.Create)
git-svn-id: trunk@16709 -
2011-01-05 18:12:44 +00:00
paul
bd64575add compiler: require generic name with type parameters for the method class prefix (like TGenericClass<T>.MethodName instead of TGenericClass.MethodName) in delphi mode
git-svn-id: trunk@16707 -
2011-01-05 04:35:56 +00:00
paul
fa41b6ffe3 compiler: allow generic classes to derive from generic classes and generic interfaces
- change id_type to single_type in readImplementedInterfacesAndProtocols to allow use of interface specializations inside class parent block
  - change single_type boolean arguments to set, add stoParseClassParent option to that set
  - move parse_generic variable assignment from parse_object_members to outer routine to setup it before parsing class parents
  - return paticular generic in generate_specialization instead of undefineddef to pass class/interface checks inside parent class block
  - add test for delphi mode
  - modify tw11431 to be syntatically correct

git-svn-id: trunk@16706 -
2011-01-04 18:20:40 +00:00
paul
4cfcc7ae7b compiler: implement delphi generic syntax for delphi mode
git-svn-id: trunk@16705 -
2011-01-04 11:06:29 +00:00
marco
ab744932b2 * errnostr by Jasper Lievens.
git-svn-id: trunk@16703 -
2011-01-04 09:14:03 +00:00
Tomas Hajny
0449c62dff + proper Makefile for rmwait added
git-svn-id: trunk@16697 -
2011-01-03 22:24:41 +00:00
paul
7c33505916 compiler: don't create enum defs for specializations declarations. Enums are stored in the unit symtables and generic declarations already add them there. Therefore specializations should search for enum defs declared by generics and use them instead of own.
git-svn-id: trunk@16686 -
2011-01-02 17:41:51 +00:00
Jonas Maebe
3ca3276400 * changed syntax of external objcclasses (see wiki/FPC_PasCocoa). Another
change is that it is now also allowed to specify an external name for
    formal external class definitions, but if they are later mixed with
    regular class definitions the external names have to match.
   o because the "external" status of methods is now set while parsing the
     class rather than afterwards, some procdir compatibility checks had to
     be inlined because they only have to be performed for 
  * also adapted the syntax for external cppclasses in the same way
  * fixed return type of NSObject.retainCount and NSObject.hash
    (NSUInteger instead of cint)
  * moved "patches" directory from cocoaint/src to cocoaint/utils/cocoa-skel
    so they are used by the conversion script when re-parsing the headers
  * updated Objective-C header parser script to
   o use the new external class syntax
   o not write inheritance information for root classes (NSObject, NSProxy)
   o use internal translation tables for some conflicting method names that
    are named specially in objcbase.pp
   and updated parsed headers
  * fixed rtl/inc/objcbase.pp and tests to conform to the new external class
    syntax

git-svn-id: trunk@16684 -
2011-01-02 14:50:46 +00:00
paul
79813da090 compiler: don't allow record case with parameterized members
git-svn-id: trunk@16682 -
2011-01-02 14:01:09 +00:00
paul
55a0fefb1f compiler: implement generic array type:
- add tarraysymtable to store generic type symbols
  - process generic and specialize declarations similar to generic records and classes
  - fix insert_generic_parameter_types to use def passed in argument instead of current_structdef because generic array type can't be assigned to the current_structdef variable
  - increase ppu version because of arraydef changes
  - tests

git-svn-id: trunk@16681 -
2011-01-02 13:16:17 +00:00
paul
3ceee496d6 tests: fail test tw9509: disable type section in generic interfaces
git-svn-id: trunk@16680 -
2011-01-02 10:51:51 +00:00
paul
52667b6822 compiler: implement generics for records based on generic objects implementation + 1 test
git-svn-id: trunk@16670 -
2010-12-31 03:43:16 +00:00
Jonas Maebe
482a244f30 * version 2.13 of the parser, by Ryan Joseph: mainly restructuring and
cleanup

git-svn-id: trunk@16666 -
2010-12-30 23:28:02 +00:00
paul
86d3e41442 compiler: replace MODESWTICH POINTERARITHMETICS with $POINTERMATH directive, disable pointer arithmetic in delphi mode by default (compatible with delphi), enable pointer arithmetic in fpc/objfpc modes as they had it enabled by default before, add has_pointer_math field to tpointerdef to allow pointer arithmetic with such pointer even if pointer math mode is off (delphi compatible) + tests
git-svn-id: trunk@16651 -
2010-12-29 03:24:28 +00:00
paul
04ac114c77 tests: move tb0070.pp to tbs and change expected behavior to success because delphi and fpc both allows this constructions now
git-svn-id: trunk@16647 -
2010-12-27 05:51:59 +00:00
paul
210e78e4fa compiler: allow objects and records to have members which point to themself. only don't permit this to regular fields.
- remove testcurobject hack and perform a check only for regular fields
  - move is_holded_by to interface and rename it to is_owned_by
  - don't check static symbols in _needs_init_final because they always point to symbols registered on unit level
  - don't check object type in id_type, read_named_type when we are looking for type of structure member - the only check will be performed for record/object fields now
  + tests

git-svn-id: trunk@16646 -
2010-12-27 05:47:25 +00:00
paul
51a9d3280c compiler: require at least one argument of class operator to be of type of structure where this operator is declared
git-svn-id: trunk@16644 -
2010-12-27 02:33:17 +00:00
paul
c0c7e40b65 compiler: allow Inc, Dec, Explicit operators for other fpc modes
git-svn-id: trunk@16637 -
2010-12-25 11:31:07 +00:00
sergei
8cbef5627e Fixed rtti/finalization of objects that have ancestors and fields of managed types:
* Link rtti to ancestor by writing rtti of ancestor as a field of type tkObject and offset zero. This is a cheat from formal point of view (as it replaces inheritance with aggregation), but is fine for the intended purpose of representing memory layout. Now RTL can handle entire instance of descendant object, and such objects can be statically allocated without leaks.
* Bypass finalization in inherited object destructors, as the instance is now entirely finalized in outermost destructor.
+ test

git-svn-id: trunk@16632 -
2010-12-24 14:46:29 +00:00
paul
3c6fde4acc compiler: rename parser_e_constructors_always_objects message to parser_e_only_methods_allowed and extended the meaning it has, don't allow class constructors to be declared outside the class/record + test
git-svn-id: trunk@16626 -
2010-12-24 06:41:41 +00:00
paul
b811f1be15 compiler: implement delphi style class operators:
- add delphi operator tokens into token enum
  - move optoken search from parse_proc_dec to parse_proc_head and add delphi operator name search
  - map delphi operators to existent fpc operators and skip some delphi operators for now
  - implement store operators in record symtable and search in it

git-svn-id: trunk@16624 -
2010-12-24 05:43:36 +00:00