Commit Graph

2571 Commits

Author SHA1 Message Date
svenbarth
6871e9ca72 More tests:
* for inherited (complicated search logic there...)
* generics
* sizeof (*sigh*)

git-svn-id: branches/svenbarth/classhelpers@17069 -
2011-03-03 21:06:00 +00:00
sergei
54bc8efa0b * Fixed reference counting of open array parameters passed by value. RTTI of the array itself is useless in this case, as it does not provide correct element count. Now using dedicated helpers which take RTTI of array element and the element count. Resolves #18859.
git-svn-id: trunk@17068 -
2011-03-03 18:38:46 +00:00
Jonas Maebe
e78f195422 + new test that should fail to compile, but doesn't yet
git-svn-id: trunk@17034 -
2011-02-27 18:03:04 +00:00
Legolas
08fdb5af54 + Added sd card handling to libogc
git-svn-id: trunk@17002 -
2011-02-25 21:36:57 +00:00
Legolas
645744bf51 + Added libogc binding and examples for Wii
git-svn-id: trunk@16989 -
2011-02-23 21:59:42 +00:00
Jonas Maebe
a11709658c - removed outdated versions (superceded by the ones under
utils/uikit-skel/src)

git-svn-id: trunk@16986 -
2011-02-23 12:34:35 +00:00
Jonas Maebe
9d033909df * forgot to commit (part of r16923)
git-svn-id: trunk@16977 -
2011-02-22 17:49:12 +00:00
joost
547a1b289c * Do not use a buildunit, but build the units directly. To avoid that
logic on which units to use has to be changed on two places

git-svn-id: trunk@16960 -
2011-02-21 09:33:17 +00:00
svenbarth
44d27a9d1d Rebase to revision 16946
git-svn-id: branches/svenbarth/classhelpers@16950 -
2011-02-20 17:28:51 +00:00
svenbarth
2462b5c84a * verified some tests with Delphi XE
* added another bunch of tests (54-59)

git-svn-id: branches/svenbarth/classhelpers@16949 -
2011-02-20 17:12:42 +00:00
Jonas Maebe
b3ee4ea4eb + support for parsing docsets to add documentation to the parsed headers
* re-enabled support for ignoring certain methods, but removed all ignored
    methods because all of them are handled correctly with the current version
  - disabled adding the script version and time stamp to the generated headers,
    so not all headers change every time they are re-parsed
  + support for optional/required sections in protocols
  + documentation from Ryan

git-svn-id: trunk@16923 -
2011-02-16 18:46:26 +00:00
Legolas
a9188c3aa6 * Updated to libnds 1.5.0 (added dynamic texture allocation)
* Updated Paletted Cube example to use new dynamic textures 
 * Regenerated makefiles
 + Added filesystem example 

git-svn-id: trunk@16920 -
2011-02-15 21:56:10 +00:00
Jonas Maebe
c87a7c3d3b + forgot to commit (part of r16908)
git-svn-id: trunk@16909 -
2011-02-12 12:38:16 +00:00
Jonas Maebe
d6e7023038 * automatically comment out methods that take blocks as parameters or return
them
  * handle inline protocol definitions in parameter lists (replace id<protocol>
    with protocol, and class<protocol[,protocol,..]> with class), and made
    some fixes to this support for fields (many "id" fields/parameters are
    now protocols)
  * fix from Phil Hess for parsing some read-only properties
  * also translate ..._BUT_DEPRECATED macros (without any "_IN_VERSION..."
    coming after it) into "deprecated" modifiers
  * several fixes for handling deprecation macros (in several cases, half the
    macro was mangled into the name of the symbol itself)
  * default now to parsing the iOS 4.2 SDK headers, and fixed passing an
    alternate SDK on the command line to make-ios-headers.sh
  * updated Cocoa headers as parsed by the new parser, and with the headers
    from Mac OS X 10.6.5/Safari 5.0.2 (contains some WebKit updates)

git-svn-id: trunk@16908 -
2011-02-11 21:26:24 +00:00
Jonas Maebe
9e3a0282ce + NSLog() declaration
git-svn-id: trunk@16907 -
2011-02-11 20:53:12 +00:00
Jonas Maebe
8143a009fd * moved to correct location so it's used by the conversion script
git-svn-id: trunk@16903 -
2011-02-09 21:07:29 +00:00
Jonas Maebe
a199344bf4 * don't check for duplicate symbols when adding a class helper symbol, see
added comments why (solves duplicate symbol error when adding a category
    for an objcclass in the interface and then another one in the
    implementation of a unit, problem reported by Ryan Joseph on the
    mac-pascal list)

git-svn-id: trunk@16902 -
2011-02-09 20:17:34 +00:00
svenbarth
d12b198c7f Rebase to revision 16888
git-svn-id: branches/svenbarth/classhelpers@16891 -
2011-02-07 20:30:48 +00:00
svenbarth
9b6fbd330c tchlp37.pp: properties seem to be disliked by Delphi 2007 (when accessing them), so test using a function
tchlp50.pp+: added some more tests that yet need to be verified in Delphi

git-svn-id: branches/svenbarth/classhelpers@16890 -
2011-02-07 19:00:13 +00:00
Legolas
527dd56b28 + Initial Wii support
git-svn-id: trunk@16888 -
2011-02-07 16:56:45 +00:00
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
svenbarth
07eebff55c Rebase to revision 16827
adjusted nflw.pas to compile again

git-svn-id: branches/svenbarth/classhelpers@16831 -
2011-01-28 22:15:34 +00:00
svenbarth
b74e0e9b4e Added another bunch of tests. Partly they still need to be verified in Delphi.
git-svn-id: branches/svenbarth/classhelpers@16830 -
2011-01-28 21:09:33 +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
svenbarth
a9b64c80ad Rebase to revision 16728
git-svn-id: branches/svenbarth/classhelpers@16732 -
2011-01-07 23:06:09 +00:00
svenbarth
9b05909944 I don't know why, but the tests 3-34 weren't commited the first time although I selected all of them
git-svn-id: branches/svenbarth/classhelpers@16731 -
2011-01-07 22:02:01 +00:00
svenbarth
18ed600cbe Added 36 tests (tchlp*.pp) and some units (uchlp*).
git-svn-id: branches/svenbarth/classhelpers@16730 -
2011-01-07 21:56:35 +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
paul
d97cf8ed9d compiler: implement IN operator which was known by compiler but was not supported. + test
git-svn-id: trunk@16622 -
2010-12-24 02:25:22 +00:00
Jonas Maebe
d10f46ec59 * skip instructions containing a reference with a segment prefix (fixes
mantis #18113)

git-svn-id: trunk@16619 -
2010-12-23 15:24:29 +00:00
paul
8c0c614d5a compiler: allow <> operator overload. search for "<>" operator first for "<>" expressions and if not found then use "=" operator + test
git-svn-id: trunk@16603 -
2010-12-21 04:44:37 +00:00
sergei
331a72c8d6 * ncnv.pas, insert_varargstypeconv(): Do not cast a string literal to AnsiString if it has been already casted to Wide/UnicodeString, resolves #18266.
git-svn-id: trunk@16593 -
2010-12-19 15:08:42 +00:00
paul
54b5172286 compiler: fix compiler crash (bug #0018222)
- don't use source pointeddef for copied tpointerdef,tclassrefdef if pointteddef is a forward def because in this case when forward def will be resolved copied def will point to garbage
  - put copied def into list of defs awaiting resolve if it was copied from forward def
  + test

git-svn-id: trunk@16575 -
2010-12-17 07:50:47 +00:00
paul
d1026bb052 compiler: reintegrate branch http://svn.freepascal.org/svn/fpc/branches/paul/extended_records
------------------------------------------------------------------------
r16513 compiler: add support for visibility blocks in records and type, const declarations:
  - add parse_record_members function to parse record blocks based on parse_object_members code
  - disable published section in records
  - rename in_class argument in some functions to in_structure because the same code can work for records now which are not classes
------------------------------------------------------------------------
r16514 compiler: check visibility of record members, allow access to record consts and types:
  - add searchsym_in_record function
  - change is_visible_for_object to accept tabstractrecorddef instead of tobjectdef arguments because records also have visibility sections now
  - change arguments in do_member_read, do_proc_call to tabstractrecorddef from tobjectdef to accept records
  - rename classh arguments to structh and change their type to tabstractrecorddef to show that they can accept records now too
  - move RttiName from tobjectdef to tabstractrecorddef
------------------------------------------------------------------------
r16515 compiler: add current_structdef: tabstractrecorddef and point current_objectdef to it
------------------------------------------------------------------------
r16516 compiler: allow access other record symbols than fields, first extended records tests
------------------------------------------------------------------------
r16519 compiler: 
  - move objname, objrealname fields from tobjectdef to tabstractrecorddef, 
  - load and save them from/to ppu file, 
  - use tabstarctrecorddef in some more places where previously code worked for tobjectdef
  - change push_nested_hierarchy, pop_nested_hierarchy to handle records too
------------------------------------------------------------------------
r16526 compiler: implement record methods and class methods:
  - rename tprocdef._class to tprocdef.struct and change the type from tobjectdef to tabstractrecorddef because methods can belong not to classes only now but to records too
  - replace in many places use of current_objectdef to current_structdef with typcast where is needed
  - add an argument to comp_expr, expr, factor, sub_expr to notify that we are searching type only symbol to solve the problem with records,objects,classes which contains fields with the same name as previosly declared type (like:
  HWND = type Handle;
  rec = record 
    hWnd: HWND;
  end;)
  - disable check in factor_read_id which was made for object that only static fields can be accessed as TObjectType.FieldName outside the object because it makes SizeOf(TObjectType.FieldName) imposible and since the same method was extended to handle records it also breaks a52 package compilation
  - rename tcallcandidates.collect_overloads_in_class to tcallcandidates.collect_overloads_in_struct and addapt the code to handle overloads in records too
  - fix searchsym_type to search also in object ancestors if we found an object symtable
  - add pd_record, pd_notrecord flags to mark procedure modifies which can or can't be used with records. Disallow the next modifiers for records: abstract, dynamic, export, external, far, far16, final, forward, internconst, internproc, interrupt, message, near, override, public, reintroduce, virtual, weakexternal,
Allow the next modifiers for records: static
------------------------------------------------------------------------
r16530 compiler: fix compilation problems caused by tprocdef._class -> tprocdef.struct rename which was found by make fullcycle
------------------------------------------------------------------------
r16531 compiler: redo searchsym_type:
  - remove complex condition which was used previosly to decide whether objectsymtable or recordsymtable requires a search for type or not - they require a search because contains types (although not all object types)
  - don't search only for typesym but for other symbols too - for example UnitSym.TypeSym or ConstSym..ConstSym are also valid types. Skip the next symtypes during the search because they can't be used in type declaration: fieldvarsym, paravarsym, propertysym, procsym, labelsym
------------------------------------------------------------------------
r16541 compiler: move objectoptions to tabstractrecorddef because it will be needed for records too
------------------------------------------------------------------------
r16542 compiler: remove unneeded checks and typecasting caused by move of objectoptions into tabstractrecorddef
------------------------------------------------------------------------
r16543 compiler: move constructor, destructor parsers to interface section to allow future use by records + change current_objectdef to current_structdef for the same reason, make constructor return type = record for records
r16544 compiler: start parsing of record constructors and destructors:
  - disallow record destructor
  - raise internal error for constructor because it is not yet implemented
  - handle class constructors and destructors for records
  - move find_procdef_bytype to tabstractpointerdef
------------------------------------------------------------------------
r16545 compiler: fix static fields creation and access for records
+ extend test to check class constructor/destructor for records and static fields access
------------------------------------------------------------------------
r16546 tests: add a test which checks that records destructors are not allowed
------------------------------------------------------------------------
r16547 compiler: rename aclass->astruct in read_property_dec because records will have properties too
------------------------------------------------------------------------
r16548 compiler: implement properties in records:
  - rename property_dec from pdecobj to struct_property_dec because pdecl also has property_dec and move it to interface to use by records + allow properties for records
  - use struct_property_dec in record parser
  - change structh type from objectdef to abstractrecorddef in read_property_dec to use by records
  - disallow stored and default modifiers for records because records are not used for streaming
  - fix misuse of search_sym_in_class for records in few places
------------------------------------------------------------------------
r16550 compiler: disallow regular class methods in records and allow only static class methods. delphi do so and it is logical because records have no inheritance. + tests
------------------------------------------------------------------------
r16560 compiler: a trial to implement record constructor
  - map self to constructor result
  - don't push vmt for records

At the moment generated assembler has errors although node tree is correct
------------------------------------------------------------------------
r16561 compiler: 
  - add mode switch extendedrecords to allow/disallow extended records syntax, add this mode switch to delphi mode by default
  - disable/enable extended records parsing based on extendedreocrds mode switch
------------------------------------------------------------------------
r16562 compiler: fix record constructor return type when parsing procedure declaration
------------------------------------------------------------------------
r16568 compiler: partly revert r16560 and disable (at least temporary) constructors in records
------------------------------------------------------------------------
r16569 test: add records Self test
------------------------------------------------------------------------
r16570 compiler: generate debug info for record methods:
  - extended write_symtable_procdefs to handle record definitions
  - fix stabs info generator to use prefixed symbol names for record methods, also handle records static symbols the same way as for object types
  - fix dwarf info record generation: add visibility info and write methods, also prefix record members the same way as object members

git-svn-id: trunk@16574 -
2010-12-17 02:19:09 +00:00
pierre
818c88dbbf * Fix cprefix problems for tconstref4 test and add cppdecl modifier
git-svn-id: trunk@16572 -
2010-12-16 16:02:24 +00:00
Jonas Maebe
5691228fb9 * moved daemon example from fcl-base to fcl-extra, because daemonapp is
also in fcl-extra + added to makefile (mantis #18198)

git-svn-id: trunk@16563 -
2010-12-14 15:29:23 +00:00
florian
3eec5d1b12 + added Makefile
git-svn-id: trunk@16554 -
2010-12-11 20:39:37 +00:00
florian
382dc3e413 o update by Sven Barth to the NativeNT RTL:
* Many more RTL units are enabled now, like SysUtils, Classes, Math, FGL, etc and Text-, File- and ConsoleIO features are enabled now as well (Threading and Processes are enabled, too, but their implementations are only stubs!). ConsoleIO isn't tested though, because the processes that are started by SMSS have their Standard Handles set to 0.

git-svn-id: trunk@16553 -
2010-12-11 20:39:05 +00:00
paul
582ab2dd32 compiler: disallow regular class methods in records and allow only static class methods. delphi do so and it is logical because records have no inheritance. + tests
git-svn-id: branches/paul/extended_records@16550 -
2010-12-11 10:21:09 +00:00
paul
4c7e2679df tests: add a test which checks that records destructors are not allowed
git-svn-id: branches/paul/extended_records@16546 -
2010-12-11 07:58:14 +00:00
Jonas Maebe
deece746a3 + support for the freeglut extensions (patch by Michalis Kamburelis,
mantis #18108)

git-svn-id: trunk@16535 -
2010-12-10 15:29:19 +00:00
Jonas Maebe
9410f7d5d3 - obsolete, removed (handled by regular script)
git-svn-id: trunk@16532 -
2010-12-10 10:13:55 +00:00
sergei
5bf51c991c * VarUtils, fixed missing support for interfaces
- NoInterfaces() not used anymore, removed
+ Basic test for VariantArray of IInterface

git-svn-id: trunk@16527 -
2010-12-09 16:38:55 +00:00
Jonas Maebe
3a089cea10 * give an error when trying to let an objcclass conform to a
forward-declared objcprotocol (mantis #17341)

git-svn-id: trunk@16523 -
2010-12-08 22:17:24 +00:00
Jonas Maebe
a880603816 * updated version of the conversion script, used to generate the previously
committed cocoa unit conversions, and which can also be used to translate
    the iOS SDK 3.2 headers
  + scripts (make-cocoa-headers.sh, make-ios-headers.sh) to (re)build the
    Cocoa/iOS headers, along with skeleton directories that contain the
    necessary helper files and a few required patches
  + frameworks.xml used by the conversion script
  * updated build instructions

git-svn-id: trunk@16522 -
2010-12-08 21:12:27 +00:00
Jonas Maebe
c132727caf * updated to Mac OS X 10.6 SDK
* generated with version 2.1.2 of the conversion script, with many
    improvements (script and instructions to regenerate headers will
    be committed separately)
   o QuartzCore framework translation
   o categories are no longer merged into classes, but separate
   o corrected several C->Pascal type definitions
   o handle pointer types for parameters, return types and property types 
   o handle struct/class fields that are arrays or pointers
   o handle pointers to id
   o handle external functions that return "void *" (they were parsed as
     procedures)
   o handle anonymous classes (@class NSAnonType, such as CIImage) using
     the "NSAnonType = objcclass; external;" syntax
   o corrected handling of opaque structs
   o fixed parsing of function pointer types
   o instance-bitfields that do not appear in a struct are now recognised
   o bitpacked structs are now translated into bitpacked records (but only
     if they only contain bitpacked fields)
   o C macros indicating deprecation are now translated into "deprecated"
     modifiers for methods/variables/functions/properties
   o no longer ignore deprecated categories, because some categories are
     deprecated in Mac OS X 10.5/10.6, and we want to support writing code
     for older systems too
   o several fixes to property and enum parsing

git-svn-id: trunk@16521 -
2010-12-08 11:27:05 +00:00
paul
d7c8d9e620 compiler: allow access other record symbols than fields, first extended records tests
git-svn-id: branches/paul/extended_records@16516 -
2010-12-07 09:53:57 +00:00
marco
b1f1c026f8 * enabled cnetdb for Linux, added a demo
git-svn-id: trunk@16503 -
2010-12-04 17:18:05 +00:00
florian
34dc727f0b + test for last commit
git-svn-id: trunk@16497 -
2010-12-02 17:32:48 +00:00
paul
8b209be7e9 compiler: put static variables into unit level and not into parent class/object/record (fixes bug #0018131)
git-svn-id: trunk@16494 -
2010-12-02 05:56:13 +00:00
paul
ab4a5c74c1 compiler: allow TFoo.TBar types for object methods (bug #0018123)
git-svn-id: trunk@16493 -
2010-12-02 03:53:02 +00:00
paul
2155dadf5e compiler: push to the stack not only nested hierarchy but also class hierarchy for each nested entry both in method declaration and for method body, also push child hierarchy while parsing object members because in other case parent types are invisible for descendants (fixes mantis #0018124, mantis #0018127 and more) + extended test
git-svn-id: trunk@16491 -
2010-12-02 03:04:23 +00:00
paul
668cd1f3c0 compiler: change check for current in try_consume_unitsym - don't use current_unit in check because specialize code does not replace this variable (fixes bug #0015591)
git-svn-id: trunk@16489 -
2010-12-01 08:18:51 +00:00
paul
ba75daa50d compiler: change find_module_from_symtable to support not only unit symtables but also other symtables with valid moduleid (fixes bug #0016090)
git-svn-id: trunk@16487 -
2010-12-01 04:33:47 +00:00
paul
433f18e60c compiler: resolve only current typeblock forward declarations when the type block is finished (fixes bug #0018086)
git-svn-id: trunk@16480 -
2010-11-30 00:02:06 +00:00
florian
d99081fa47 + additional test
git-svn-id: trunk@16478 -
2010-11-29 21:18:59 +00:00
florian
f570934b45 * patch by Aleksa Todorovic to fix generic interfaces, resolves #16100
git-svn-id: trunk@16477 -
2010-11-29 21:13:09 +00:00
Jonas Maebe
5cbe12c622 * don't overwrite the target value of interlockedcompareexchange*() if the
value is different from the comparand (patch by "FVI", mantis #18082)
  * sign extend the loaded value of interlockedcompareexchange() on PowerPC64,
    because the function arguments are longints

git-svn-id: trunk@16475 -
2010-11-29 12:53:10 +00:00
florian
7d1627e9ca * patch by Aleksa Todorovic to handle access to types inside generics correctly
when they are used as class variables, resolves #18096

git-svn-id: trunk@16474 -
2010-11-29 09:37:09 +00:00
paul
0d57d38d7c compiler: fix visibility of inherited protected members (mantis #0018087) and strict private/protected members (mantis #0018085) to nested classes
git-svn-id: trunk@16473 -
2010-11-29 04:08:00 +00:00
florian
97ac6ab928 + test for #17184
git-svn-id: trunk@16470 -
2010-11-28 20:23:45 +00:00
florian
f15141a6f3 - removes 2.2.x bootstrapping stuff
git-svn-id: trunk@16465 -
2010-11-28 17:29:15 +00:00
florian
e4ecee317e * finer grained convert levels for strings, prefers widestring<->unicodestring over other conversions, resolves #18075
git-svn-id: trunk@16460 -
2010-11-28 10:05:09 +00:00
sergei
7dd93b1282 * Variant types: renamed varunicodestring to varustring and changed its value to $102 (for Delphi compatibility), introduced varUStrArg=$73, added some description comments.
* ncal.pas, translate_disp_call:
  * pass UnicodeString as varUStrArg
  * do not typecast ordinal consts to Integer, so typecasts in source (if any) are preserved.
+ test for correct passing of Dispatch method arguments, concludes work on Mantis #17904.

git-svn-id: trunk@16456 -
2010-11-27 16:17:43 +00:00
Jonas Maebe
edfb31c020 * when looking for overloaded conversion (assignment) operators, only ignore
those for variants. All defined operators are guaranteed to be valid by
    the code that checks them when they are defined (mantis #17846)

git-svn-id: trunk@16449 -
2010-11-26 15:37:31 +00:00
Jonas Maebe
11399b9b13 + test from mantis #16365, already works
git-svn-id: trunk@16447 -
2010-11-26 14:38:15 +00:00
paul
8aef216f21 compiler: allow nested objects to refence owner class in method arguments (issue #0017986)
git-svn-id: trunk@16440 -
2010-11-26 07:55:55 +00:00
paul
0c23029d8f compiler: add all nested classes to the symtable stack while parsing method header (issue #0017952)
git-svn-id: trunk@16439 -
2010-11-26 07:30:20 +00:00
florian
ef0899425b * adds assign methods to the fgl classes based on a patch by Aleksa Todorovic, resolves #10479
git-svn-id: trunk@16429 -
2010-11-25 14:12:13 +00:00
florian
d30952b408 * patch by Aleksa Todorovic which adds the ability to reference current generic class. Each reference to current generic class is "translated" to appropriate specialization of that generic class. There are two tests as part of the patch to test that it works. The patch, also, rejects declaring generic inside another generic. 0010479 is easy to implement with this patch applied, resolves #11777
git-svn-id: trunk@16423 -
2010-11-24 21:57:41 +00:00
pierre
709d36a1d0 + Add signals unit for win64
git-svn-id: trunk@16410 -
2010-11-23 23:57:10 +00:00
Jonas Maebe
749991ec02 + support extra parameter for initialize() that indicates how many elements
should be initialised, similar to how this was already allowed for
    finalize() (mantis #17998)

git-svn-id: trunk@16407 -
2010-11-23 15:14:40 +00:00
Jonas Maebe
44178f41b6 * don't overwrite register variables when evaluating <=/>= expressions with
smallsets (left is overwritten by an "and", so it cannot be const; mantis
    #18013)

git-svn-id: trunk@16400 -
2010-11-22 12:58:08 +00:00
Jonas Maebe
a5473c33cc * part of r16347, forgot to commit
git-svn-id: trunk@16367 -
2010-11-18 22:41:42 +00:00
paul
a8deeaa168 compiler: fix search of outer class type inside inner type declarations (bug #0017945)
git-svn-id: trunk@16352 -
2010-11-17 05:51:54 +00:00
paul
d99b4ae7c1 compiler: set moduleid for record symtables and descendants (fixes bug #0017950)
git-svn-id: trunk@16351 -
2010-11-17 02:40:41 +00:00
Jonas Maebe
c14574bb56 * don't change the fpu control word in the initialisation code of dynamic
libraries (mantis #16263, #16801)

git-svn-id: trunk@16347 -
2010-11-14 16:00:25 +00:00
Jonas Maebe
d36f8ac542 * fixed potential buffer overflow error when creating the fullprocname for
display purposes if there was a parameter with a default value > 255 chars
  * replace #0, #10 and #13 in the fullprocname with '.' so they do not cause
    line breaks or early string termination when writing them to the
    assembler file (mantis #17928)

git-svn-id: trunk@16344 -
2010-11-14 12:18:48 +00:00
Jonas Maebe
085e5fc65a + forgotten to add/commit in r16332
git-svn-id: trunk@16334 -
2010-11-13 13:04:37 +00:00
Jonas Maebe
de51c4734c * fixed searching for the 8-character variant of already compiled
unit files (patch by Aleksa Todorovic, mantis #17907)

git-svn-id: trunk@16329 -
2010-11-12 12:10:41 +00:00
pierre
a11ec43ca5 * add missing go32v2 GCC compiled objects
git-svn-id: trunk@16327 -
2010-11-11 22:48:56 +00:00
joost
8cc449b955 * Added Makefile.fpc which uses fpmake
git-svn-id: trunk@16325 -
2010-11-11 10:33:47 +00:00
sergei
a360f4c955 + Added a basic test for TCustomVariantType creation functionality.
git-svn-id: trunk@16322 -
2010-11-10 16:21:19 +00:00
Jonas Maebe
dd88644237 * record the vmt_offset as the actual offset of the vmt field, so that
it correctly reflects the alignment of the object symtable (mantis
    #16034)

git-svn-id: trunk@16321 -
2010-11-10 15:58:47 +00:00
Jonas Maebe
d45ba6c966 * only ordinals and enums can be bitpacked -> don't give an error when
e.g. passing a 3-byte record in a bitpacked array as var-parameter
    (mantis #17862)

git-svn-id: trunk@16317 -
2010-11-08 21:23:55 +00:00
Jonas Maebe
d1264eeb3a * fixed optimized division of signed values by constant power of 2 if the
constant is > high(longint), because then it must be loaded into a register
    first since such values cannot be encoded directly in non-mov x86-64
    instructions (mantis #17836)

git-svn-id: trunk@16305 -
2010-11-05 15:32:07 +00:00
paul
f5751d81db compiler: reset section type to regular fields section after the "public", "protected", ... and other section visibility keywords
git-svn-id: trunk@16302 -
2010-11-04 15:12:17 +00:00
sergei
87b8b02463 * Updated DBus headers to version 1.2.16
* Added 'cdecl' to all callback function type definitions.

git-svn-id: trunk@16300 -
2010-11-03 14:08:51 +00:00
sergei
b002c36e8b + Test for #17591
git-svn-id: trunk@16294 -
2010-11-02 07:36:55 +00:00
sergei
d8eccf008d + Test for Mantis #17560
git-svn-id: trunk@16291 -
2010-11-01 22:38:15 +00:00
florian
8ca3c8301b * don't convert second argument of inc/dec to sinttype when inc/dec are compiled with r+ or q+, fixes code generation for inc(<int64>,<int64>); on 32 bit targets
git-svn-id: trunk@16289 -
2010-11-01 21:30:14 +00:00
florian
747b93b7ec + cpu unit for x86-64 containing a CAS128 implementation
git-svn-id: trunk@16284 -
2010-11-01 08:20:31 +00:00
Legolas
42ffd3bc50 * Updated nds to devkitARM r32 and libnds 1.4.8
* Fixed nds rtl for ARGV and Exit to menu protocol 

git-svn-id: trunk@16273 -
2010-10-31 15:22:49 +00:00
florian
0a625c856d + don't allow non local gotos across procedures containing exception frames
git-svn-id: trunk@16268 -
2010-10-30 20:22:23 +00:00
Jonas Maebe
3aea9b134a * make sure that all references used in the inline int->real conversion code
are properly PICified (mantis #17714)

git-svn-id: trunk@16255 -
2010-10-29 16:57:54 +00:00
Jonas Maebe
9ab050316e * all accesses that cannot be handled natively by the code generator have
to be handled as a bitpacked access, not just those whose size mod 8 <> 0
    (bug reported by Willibald Krenn on fpc-devel, and mantis #17715)

git-svn-id: trunk@16227 -
2010-10-26 17:17:28 +00:00
sergei
4579226771 + New unit dtdmodel.pp containing DTD-related classes.
* TXMLNodeType, TNodeData and TAttrDataType moved to xmlutils.pp, so they can be shared between dom, xmlread and dtdmodel.
* TContentParticle class moved from xmlread.pp to dtdmodel.pp.
* dom.pp and xmlread.pp switched to DOM-independent representation of DTD element declarations and attribute defaults.

git-svn-id: trunk@16221 -
2010-10-25 15:26:29 +00:00
Jonas Maebe
14b95b3b9b * always force range checking for the upper and lower bounds of for-loops if
they are constants (instead of only on 32 bit systems), and always use the
    actual upper/lower bound of the loop variable instead of hardcoding the
    bounds of longint (mantis #17646)

git-svn-id: trunk@16213 -
2010-10-24 14:55:48 +00:00
Károly Balogh
56913ebf91 + added headers for MorphOS' PowerSDL
git-svn-id: trunk@16204 -
2010-10-23 12:34:47 +00:00
Károly Balogh
1811234b72 + some work to complete SDL package support for MorphOS. more to come.
git-svn-id: trunk@16200 -
2010-10-23 01:54:47 +00:00
sekelsenmat
b0b708f308 help headers for wince from bug #17574
git-svn-id: trunk@16195 -
2010-10-21 15:37:16 +00:00
Jonas Maebe
5e84c557fa * don't internalerror when a property is hidden by a method in a child class
(mantis #17675)

git-svn-id: trunk@16191 -
2010-10-20 14:12:58 +00:00
Jonas Maebe
dd8fd7cd4a * fixed loading the vmt of TP-style objects when it's not at offset zero
(for virtual procvars of object, mantis #17521)

git-svn-id: trunk@16190 -
2010-10-20 12:00:15 +00:00
michael
843ce22187 * Avoid nameclash and fix compilation
git-svn-id: trunk@16189 -
2010-10-19 19:51:59 +00:00
joost
07bf44517c * Merged XPCom branch into trunk, added support for constref and changed
the IInterface implementation to be XPCom-compatible
--- Merging r15997 through r16179 into '.':
U    rtl/inc/variants.pp
U    rtl/inc/objpash.inc
U    rtl/inc/objpas.inc
U    rtl/objpas/classes/persist.inc
U    rtl/objpas/classes/compon.inc
U    rtl/objpas/classes/classesh.inc
A    tests/test/tconstref1.pp
A    tests/test/tconstref2.pp
A    tests/test/tconstref3.pp
U    tests/test/tinterface4.pp
A    tests/test/tconstref4.pp
U    tests/webtbs/tw10897.pp
U    tests/webtbs/tw4086.pp
U    tests/webtbs/tw15363.pp
U    tests/webtbs/tw2177.pp
U    tests/webtbs/tw16592.pp
U    tests/tbs/tb0546.pp
U    compiler/sparc/cpupara.pas
U    compiler/i386/cpupara.pas
U    compiler/pdecsub.pas
U    compiler/symdef.pas
U    compiler/powerpc/cpupara.pas
U    compiler/avr/cpupara.pas
U    compiler/browcol.pas
U    compiler/defcmp.pas
U    compiler/powerpc64/cpupara.pas
U    compiler/ncgrtti.pas
U    compiler/x86_64/cpupara.pas
U    compiler/opttail.pas
U    compiler/htypechk.pas
U    compiler/tokens.pas
U    compiler/objcutil.pas
U    compiler/ncal.pas
U    compiler/symtable.pas
U    compiler/symsym.pas
U    compiler/m68k/cpupara.pas
U    compiler/regvars.pas
U    compiler/arm/cpupara.pas
U    compiler/symconst.pas
U    compiler/mips/cpupara.pas
U    compiler/paramgr.pas
U    compiler/psub.pas
U    compiler/pdecvar.pas
U    compiler/dbgstabs.pas
U    compiler/options.pas
U    packages/fcl-fpcunit/src/testutils.pp

git-svn-id: trunk@16180 -
2010-10-17 20:58:22 +00:00
florian
5dae691c96 * implementation of bit scan intrinsics by Richard Vida, resolves #17592
git-svn-id: trunk@16174 -
2010-10-16 15:03:30 +00:00
michael
1c6defe7be * Added example and tests for format
git-svn-id: trunk@16147 -
2010-10-12 20:45:49 +00:00
nickysn
e97106b8cc * updated ptc c_api
git-svn-id: trunk@16143 -
2010-10-12 14:38:27 +00:00
nickysn
1aabf1c96c - deleted x11dgadisplay*.inc as the code has been moved to x11dga1display*.inc and they're no longer used
git-svn-id: trunk@16142 -
2010-10-12 14:31:26 +00:00
Jonas Maebe
a178ff5172 * fixed evaluation of length('') (the type of an empty string is a chararray
instead of string) (mantis #17604)

git-svn-id: trunk@16128 -
2010-10-11 15:00:20 +00:00
joost
799b0368ac * place the function result parameter last for safecall routines on
all platforms that support a safecall calling convention

git-svn-id: trunk@16114 -
2010-10-08 22:38:30 +00:00
Jonas Maebe
db8a67747d * give an error when trying to use (bit)sizeof on a type that is not yet
resolved by the compiler (mantis #14354)

git-svn-id: trunk@16112 -
2010-10-08 17:42:53 +00:00
Jonas Maebe
92997a0249 * store/load tloopnode.loopflags to/from ppu files so that for/repeat/while
loops are correctly inlined (mantis #17493)

git-svn-id: trunk@16106 -
2010-10-08 13:01:25 +00:00
Jonas Maebe
94d976bc87 * when simplifying ordinal expressions during inlining, keep the resultdef
that was set during the typecheck pass because typeconversion nodes
    may have been optimised away previously and sometimes the resultdef is
    important (e.g. for the value of callparanodes) (mantis #17458)

git-svn-id: trunk@16101 -
2010-10-07 15:08:52 +00:00
sergei
1f215ecc86 + Test for System.Delete() with Size argument equal to MaxInt, Mantis #17514
git-svn-id: trunk@16093 -
2010-10-06 17:33:29 +00:00
pierre
45b526eff9 * New bug test
git-svn-id: trunk@16090 -
2010-10-06 16:37:14 +00:00
Jonas Maebe
13399280dc * don't write rtti for static fields so we don't try to initialise/finalise
them (mantis #17546)
  * fixed the various field rtti methods so that they only operate on fields
    and skip the rest (at the end they always typecast the sym to a
    tfieldvarsym, so this could result in wrong memory accesses)

git-svn-id: trunk@16086 -
2010-10-05 14:56:48 +00:00
michael
86ff7c57e4 * Renamed to be more in line with other readme files
git-svn-id: trunk@16083 -
2010-10-05 12:10:03 +00:00
michael
8952ae07b8 * Moved description of fptemplate to fcl-base
git-svn-id: trunk@16081 -
2010-10-05 12:06:33 +00:00
Jonas Maebe
bd0567563c * don't crash in {$x-} mode if a call cannot be resolved due to an error
in the expression (mantis #17455)

git-svn-id: trunk@16061 -
2010-09-29 12:11:22 +00:00
marco
bb7d254843 * renamed nb30 header to lowercase and added makefiles.
git-svn-id: trunk@16041 -
2010-09-25 12:57:33 +00:00
marco
08abc28141 * first draft of nb30.
git-svn-id: trunk@16040 -
2010-09-25 12:48:11 +00:00
Jonas Maebe
1633341906 * treat methods added via an objccategory to an objcclass in exactly the
same way as regular methods as far as overriding is concerned ("override"
    is now allowed, and even required, to override them in a descendent class;
    and similarly, "reintroduce" must be used if a category wants to replace
    a method in a child class if that method was  added by another category in
    a parent class)
  * print the name of owning objcclass/category of the original method in case
    override/reintroduce is missing for objc methods, since this is no longer
    always the parent class

git-svn-id: trunk@16035 -
2010-09-22 21:26:58 +00:00
nickysn
7bbb0817d3 * updated ptcgraph and added ptccrt
git-svn-id: trunk@16019 -
2010-09-19 22:44:57 +00:00
nickysn
b1ffb01b42 * updated ptc
git-svn-id: trunk@16018 -
2010-09-19 22:10:28 +00:00
nickysn
fc8d088308 * updated hermes to latest version from trunk
git-svn-id: trunk@16017 -
2010-09-19 20:38:50 +00:00
Jonas Maebe
1c9fed7ae3 * resolve anonymous external objcclass definitions to the real type also when
a) defining a child class
     b) checking for type conversion compatibility

git-svn-id: trunk@16013 -
2010-09-19 16:05:32 +00:00
Jonas Maebe
d628276c98 r329 | jonas | 2010-09-19 17:17:21 +0200 (Sun, 19 Sep 2010) | 3 lines
+ translation of IOSurface.framework and some IOKit and mach headers
    it depends on (for new Cocoa headers)

git-svn-id: trunk@16011 -
2010-09-19 15:18:03 +00:00
nickysn
22954b48ad + new graph unit test DrawTest for PutPixel, GetPixel, HLine, VLine and write modes
git-svn-id: trunk@16003 -
2010-09-18 12:53:49 +00:00
Jonas Maebe
ef4f0639c0 + added GPCStrings to implicitunits so it gets cleaned/installed
* merged:

r328 | jonas | 2010-09-17 15:16:21 +0200 (Fri, 17 Sep 2010) | 3 lines
Changed paths:
   M /trunk/MPPInterfaces/SecTrust.pas

  - {$align power}
  + translation credit

...
r327 | jonas | 2010-09-17 15:09:54 +0200 (Fri, 17 Sep 2010) | 2 lines
Changed paths:
   M /trunk/MPPInterfaces/cssmapple.pas

  - removed superfluous MW/GPC macro definitions from the implemenation

...
r326 | jonas | 2010-09-17 00:14:28 +0200 (Fri, 17 Sep 2010) | 6 lines
Changed paths:
   M /trunk/MPPInterfaces/MacTypes.pas
   A /trunk/MPPInterfaces/SecTrust.pas
   A /trunk/MPPInterfaces/certextensions.pas
   A /trunk/MPPInterfaces/cssmapple.pas
   A /trunk/MPPInterfaces/cssmconfig.pas
   A /trunk/MPPInterfaces/cssmerr.pas
   A /trunk/MPPInterfaces/cssmkrapi.pas
   A /trunk/MPPInterfaces/cssmtype.pas
   A /trunk/MPPInterfaces/x509defs.pas
   M /trunk/Scripts/Convert.pl

  + a bunch of Security.Framework headers, required by new Cocoa header
    translations
  + added a number of NULL-macros appearing in those headers to convert.pl
  + added UInt32_fix type to MacTypes because one of those headers contains
    a field with the name "Uint32" whose type is also UInt32.

...
r325 | jonas | 2010-09-17 00:10:14 +0200 (Fri, 17 Sep 2010) | 2 lines
Changed paths:
   M /trunk/MPPInterfaces/ColorSyncDeprecated.pas

  * added (hopefully correct) setting for packrecords C for GPC
...
r324 | jonas | 2010-09-17 00:05:41 +0200 (Fri, 17 Sep 2010) | 2 lines
Changed paths:
   M /trunk/MPPInterfaces/CFStringTokenizer.pas

  * fixed compilation with GPC

...
r323 | jonas | 2010-09-09 20:31:47 +0200 (Thu, 09 Sep 2010) | 2 lines
Changed paths:
   A /trunk/MPPInterfaces/CFStringTokenizer.pas

  + translation of CoreFoundation/CFStringTokenizer.h

git-svn-id: trunk@16002 -
2010-09-17 20:21:25 +00:00
Jonas Maebe
242016312f * immediately fail when trying to allocate a memory block whose size falls
in the range high(ptruint)-$fffe .. high(ptruint), because all large
    allocations are rounded up to the next multiple of 64kb, which is 0 in
    that case (mantis #17430)

git-svn-id: trunk@16001 -
2010-09-17 14:05:06 +00:00
florian
b147f5b716 * don't do tail recursion optimization on method calls having an explicit self pointer, resolves #17402
git-svn-id: trunk@15997 -
2010-09-16 20:45:46 +00:00
Jonas Maebe
07e47171d2 * don't perform temp substitution of an entire array when assigning only the
first array element (related to mantis #13948 and #17413)

git-svn-id: trunk@15992 -
2010-09-15 15:03:32 +00:00
Jonas Maebe
ac8add7cf9 * don't perform temp substitution for variables whose address has been taken
or that are accessible outside the current block (mantis #17413)

git-svn-id: trunk@15990 -
2010-09-15 12:06:21 +00:00
michael
cd196c5622 * Test for negcurrformat values 11-15 from Zeljan Rikalo
git-svn-id: trunk@15983 -
2010-09-14 11:25:04 +00:00
michael
3d148c48ea * Attempt at MySQL 5.1 connection
git-svn-id: trunk@15980 -
2010-09-14 10:10:31 +00:00
michael
a2b0292cdb * Some minimal documentation
git-svn-id: trunk@15978 -
2010-09-13 21:40:17 +00:00
Jonas Maebe
c43fda1fe1 * enabled maybe_call_procvar() also for macpas mode (calls procvars that
don't have any parameters in most expressions, rather than using them
    as the procvar itself) -> replaced procvar<>nil with assigned(procvar)
    in test/tmacprocvar.pp to keep it compiling (otherwise it now called
    the procvar); necessary in combination with the next fix to compile
    webtbs/tw17379a.pp
  * automatically disambiguate the use of the function name when used as a
    parameter in macpas mode (if the formal parameter type is a procvar
    type then interpret it as the current function definition, otherwise
    as the current function result) (mantis #17379)

git-svn-id: trunk@15971 -
2010-09-12 16:03:00 +00:00
Jonas Maebe
7f42c3253e r323 | jonas | 2010-09-09 20:31:47 +0200 (Thu, 09 Sep 2010) | 2 lines
+ translation of CoreFoundation/CFStringTokenizer.h

git-svn-id: trunk@15960 -
2010-09-09 18:42:14 +00:00
florian
f13eff22b0 + added generic stellaris support as provided by #17365
git-svn-id: trunk@15957 -
2010-09-09 09:02:14 +00:00
paul
8bd5cef18b tests: add new for-in test from Michael Van Canneyt
git-svn-id: trunk@15954 -
2010-09-09 08:40:31 +00:00
Jonas Maebe
22b4860dd7 * getregisterinline() can be used to replace multiple size variants
of the same register (or of a register and its aliases) -> make
    sure that all relevant constraints are applied to it as well
    (mantis #16980)

git-svn-id: trunk@15952 -
2010-09-08 21:13:02 +00:00
Jonas Maebe
a311607ca6 * do not convert the second argument of inc/dec(ptrtype,value) into a
pointer, because that will force "value" to become unsigned, which
    result in errors in case of negative 64bit constants in case they
    are multiplied by the size of the pointed type in ncginl (the
    tconstexprint type operators have to handle positive and
    negative numbers differently) (mantis #17342)

git-svn-id: trunk@15951 -
2010-09-08 15:33:43 +00:00
michael
166ba412c9 * Test for formatfloat negative zero
git-svn-id: trunk@15946 -
2010-09-06 11:13:46 +00:00
pierre
973c23e12c * Fix for win64 GNU AS bug
git-svn-id: trunk@15939 -
2010-09-02 23:41:02 +00:00
sekelsenmat
18c8a1f9c0 Adds a lazarus project for fpvwritetest
git-svn-id: trunk@15931 -
2010-09-01 09:01:08 +00:00
Jonas Maebe
80086184d3 * mark values typecasted to regular array types and indexed as non-regable,
so that they aren't forced into a temporary location when passed to a
    var parameter later on (mantis #17283)

git-svn-id: trunk@15918 -
2010-08-29 17:19:58 +00:00
sekelsenmat
ef35ef0b0d Patches from Drigus, adds new wince units. bug #17096 and bug #17097
git-svn-id: trunk@15912 -
2010-08-27 14:31:13 +00:00
florian
ac51f535ae * support of data > 2 GB on x86_64-linux with PIC by picifing the startup code, resolves #17236
* fixed some small issues in the startup files

git-svn-id: trunk@15907 -
2010-08-25 19:43:29 +00:00
Jonas Maebe
821d0c5d26 * use fact that a method belongs to an objectsymtable to determine that
it is a method (_class is also set for nested procedures of methods),
    resolves problem reported in
    http://lists.freepascal.org/lists/fpc-pascal/2010-August/026259.html

git-svn-id: trunk@15898 -
2010-08-24 20:30:18 +00:00
Jonas Maebe
5ca1bd2a32 * if the unit of a procedure call is explicitly specified, limit the search
for (overloaded) procsyms to that unit (mantis #17220)

git-svn-id: trunk@15887 -
2010-08-23 20:51:40 +00:00
sekelsenmat
274856e2f5 Adds support for texts in the core of fpvectorial and adds a new example application for generating a set of documents from code
git-svn-id: trunk@15884 -
2010-08-23 15:26:54 +00:00
florian
3a07adf27e * reduce redundant temporary interfaces variables, resolves #14092
git-svn-id: trunk@15880 -
2010-08-23 11:56:17 +00:00