(mantis #14841)
-> this also makes it impossible now to use constructs such as
inc(qword_var,-1) with range checking enabled, because that would require
a conversion to 128 bit for proper evaluation
git-svn-id: trunk@14260 -
* changed last parameter of PMSessionValidatePrintSettings from a
"var boolean" back into a booleanptr as it was before (you can pass
kPMDontWantBoolean if you are not interested in the result)
...
r315 | gorazd | 2009-11-18 18:07:57 +0100 (Wed, 18 Nov 2009) | 1 line
Added interfaces to QuickLook framework
...
r314 | gorazd | 2009-11-18 18:07:29 +0100 (Wed, 18 Nov 2009) | 1 line
Added interfaces to QuickLook framework
git-svn-id: trunk@14237 -
also return regular objcclass methods before, because these are also
registered under class helper procsyms for future id.anymethod support
* give an error when calling an inherited method from an objccategory
method, if that is not declared in the parent of the extended class
(since calling inherited in an objccategory method is the same as
calling inherited in a method of the extended class; if a method is
replaced, calling inherited will *not* call the original method
from the original class)
git-svn-id: trunk@14213 -
o all headers updated to Mac OS X 10.6
o 64 bit support (commented out unsupported routines under 64 bit, fixed
types)
o iPhoneOS support to the extent that this is available in the standard
Mac OS X 10.6 headers (these are not covered under the iPhone SDK
derivative works limitation)
o a few new frameworks translated: CoreType, CoreVideo, AudioUnits
o a number of changes can cause compatibility problems with existing
programs, listed below
* many cases where signed parameters were turned into unsigned parameters
and vice versa, too many to list (due to differences between the classic
Pascal headers and the new C headers)
* ATSFontFindFromContainer: ioArray var -> ptr because array
* ATSFontGetFileSpecification: oFile FSSpec -> ATSFSSpec (was translation
error?)
* CFNetworkCopyProxiesForAutoConfigurationScript: got extra CFErrorRef para
* CMGetDeviceFactoryProfiles: defaultProfID var -> ptr, because can be nil
* CMIterateColorDevices: seed and count var -> ptr, because can be nil
* CMIterateDeviceProfiles: seed and count var -> ptr, because can be nil
* CMSetDeviceProfiles: profileScope and deviceProfiles const -> ptr, because
can be nil
* ConvertFromUnicodeToScriptCodeRun: oScriptCodeRuns var -> ptr because
array
* ConvertFromUnicodeToTextRun: oEncodingRuns var -> ptr because array
* CreateUnicodeToTextRunInfo: iUnicodeMappings var -> ptr because array
* DCMCreateFieldInfoRecord: findMethods var -> ptr because array
* DCMGetFieldFindMethods: findMethods var -> ptr because array
* GetIconRefFromFileInfo: outlabel var -> ptr because can be nil
* HIImageViewCreate: last parameter ControlRef -> HIViewRef
* HIViewNewTrackingArea: outRef var -> ptr because can be nil in 10.5+
* LAGetEnvironmentList: environmentList var -> ptr because array
* LAListAvailableDictionaries: dictionaryList and opened var -> ptr because
array
* LSGetApplicationForURL: outAppRef and outAppURL var -> ptr because can be
nil
* LocaleOperationGetLocales: localeVariantList var -> ptr because can be nil
* MPWaitOnQueue: param1-3 value -> var because "void **" in C
* QTVRSetBackBufferImagingProc: areasOfInterest var -> ptr because array
* QueryUnicodeMappings: oReturnedMappings var -> ptr because array
* TECConvertTextToMultipleEncodings: outEncodingsBuffer var -> ptr because
array
* TECFlushMultipleEncodings: outEncodingsBuffer var -> ptr because array
* TECSniffTextEncoding: numErrsArray and numFeaturesArray var -> ptr because
array
* FSCreateResFile: catalogInfo const -> ptr because can be nil
git-svn-id: trunk@14089 -
- don't allow operator enumerator with non object/class/interface result type
- add some test from Alexander S. Klenin
(issue #0014990)
git-svn-id: trunk@14043 -
rtl: add enumerators to the basic classes
tests: add enumerators test which compiles and work both by fpc and dcc
compiler:
+ start for-in loop implementation: implement for-in loop for types (enumerations and ranges), strings, arrays and sets. todo: perform type checking, optimize array and string loops - use temp for expression, implement for-in loop for classes
test:
+ add a simple test for the 'for-in' loop
compiler: fix string for-in loop. now it uses a temp variable to store string expression result
complier: fix for-in array loop. use a temp variable for the loop expression only if loop is not an open array loop
complier: continue enumerator implementation:
+ add operator enumerator which give an ability to add enumerator for an existent type (for example to override builtin string enumerator)
+ add class enumerator support via delphi compatible GetEnumerator method + enumerator class/object template (function MoveNext: Boolean; property Current)
+ tests
compiler: fix for-in loop for arrays. delphi does not copy arrays to a temp variable and it is possible to change array during loop. + test
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: enumerator directive support:
+ allow to mark methods and properties by 'enumerator MoveNext' and 'enumerator Current' modifiers. Parser checks return types and duplicates.
+ prefer *marked* by enumerator directive methods and properties than GetEnumerator and Current builtin symbols
+ increase ppu version
+ test
rtl: add IEnumerator and IEnumerable interfaces declarations
tests: for-in loop tests:
+ add small comment at the top of test program
compiler: allow 'enumerator MoveNext' for the interface function declaration + test
compiler: move all for-in loop helpers to the nflw unit
compiler: don't allow the compiler to choose the non-valid enumerator operator for the for-in loop
git-svn-id: trunk@14008 -
+ changes in compiler, utils, packages to resolve identifier conflicts with the new TObject methods (like changing of UnitName arguments to AUnitName, adding Classes. before the toString, etc). (issue #0014931)
git-svn-id: trunk@14005 -
-- Zusammenführen von r13887 in ».«:
A tests/test/tfinal1.pp
U compiler/msgtxt.inc
U compiler/msgidx.inc
U compiler/pdecsub.pas
U compiler/tokens.pas
U compiler/symconst.pas
U compiler/msg/errore.msg
U compiler/utils/ppudump.pp
-- Zusammenführen von r13890 in ».«:
G compiler/msgtxt.inc
G compiler/msgidx.inc
U compiler/nobj.pas
G compiler/msg/errore.msg
-- Zusammenführen von r13891 in ».«:
A tests/test/tfinal2.pp
git-svn-id: trunk@13938 -
from any ordinal constant, and give a warning for this one allowed
conversion like Kylix does (mantis #14713)
* this required calling simplify from typecheckpass in ttypeconvnode for
cord_to_pointer, because this simplification prevents the type checking
from happening (but the typecheck itself also does that simplification)
git-svn-id: trunk@13919 -
-- Zusammenführen von r13884 in ».«:
U compiler/msgtxt.inc
U compiler/msgidx.inc
U compiler/pdecsub.pas
U compiler/pdecobj.pas
U compiler/tokens.pas
U compiler/ppu.pas
U compiler/symconst.pas
U compiler/msg/errore.msg
U compiler/utils/ppudump.pp
-- Zusammenführen von r13885 in ».«:
A tests/test/tsealed1.pp
A tests/test/tabstract1.pp
A tests/test/tsealed2.pp
-- Zusammenführen von r13893 in ».«:
A tests/test/tsealed3.pp
A tests/test/tsealed4.pp
git-svn-id: trunk@13908 -
o add accessibility info for fields and methods (public/protected/private)
o write method type info for methods not implemented in the current module
(for tf_dwarf_only_local_labels systems)
git-svn-id: trunk@13833 -
(fixes displaying value shortstring parameters on SPARC, as reported on
fpc-devel mailing list on 20091005 by Mark Morgan Lloyd)
git-svn-id: trunk@13813 -
-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in ».«:
U rtl/arm/setjump.inc
A rtl/arm/thumb2.inc
U rtl/arm/divide.inc
A rtl/embedded/arm/stm32f103.pp
U rtl/inc/system.inc
U compiler/alpha/cgcpu.pas
U compiler/sparc/cgcpu.pas
U compiler/i386/cgcpu.pas
U compiler/ncgld.pas
U compiler/powerpc/cgcpu.pas
U compiler/avr/cgcpu.pas
U compiler/aggas.pas
U compiler/powerpc64/cgcpu.pas
U compiler/x86_64/cgcpu.pas
U compiler/cgobj.pas
U compiler/psystem.pas
U compiler/aasmtai.pas
U compiler/m68k/cgcpu.pas
U compiler/ncgutil.pas
U compiler/rautils.pas
U compiler/arm/raarmgas.pas
U compiler/arm/armatts.inc
U compiler/arm/cgcpu.pas
U compiler/arm/armins.dat
U compiler/arm/rgcpu.pas
U compiler/arm/cpubase.pas
U compiler/arm/agarmgas.pas
U compiler/arm/cpuinfo.pas
U compiler/arm/armop.inc
U compiler/arm/narmadd.pas
U compiler/arm/aoptcpu.pas
U compiler/arm/armatt.inc
U compiler/arm/aasmcpu.pas
U compiler/systems/t_embed.pas
U compiler/psub.pas
U compiler/options.pas
git-svn-id: trunk@13801 -
the same as for exporting functions/procedures and variables: add the name
of the class to the "exports" section of the library. By default, classes
are only visible inside a shared library.
git-svn-id: branches/objc@13765 -
* the objc unit links against the Foundation instead of against the Cocoa
framework, and inludes an interface to either the fragile or non-fragile
obj-c run time depending on the target platform
+ support for the non-fragile Objective-C runtime/ABI, as used on Mac OS X
for ARM (iPhone) 64 bit (PowerPC/64, x86_64) -- all these targets now
are now also supported for the objectivec1 modeswitch
+ support for private_extern symbol bindings, required for the above
* mark objcclasses that are declared in the implementation section of a
unit as "hidden" (not sure what the effect is, since the Objective-C
runtime does not seem to do anything with this flag)
* enabled all obj-c tests for the newly supported platforms
git-svn-id: branches/objc@13763 -
U ide/fpusrscr.pas
U rtl/unix/video.pp
U rtl/i386/i386.inc
U rtl/win/wininc/defines.inc
U rtl/win/systhrd.inc
U rtl/linux/m68k/dllprt0.as
U rtl/linux/i386/syscall.inc
U rtl/linux/i386/dllprt0.as
U rtl/linux/i386/si_c.inc
U rtl/linux/i386/si_prc.inc
U rtl/linux/i386/si_c21.inc
U rtl/linux/i386/si_g.inc
U rtl/linux/i386/si_c21g.inc
U rtl/linux/i386/si_uc.inc
U rtl/linux/i386/si_dll.inc
U rtl/linux/x86_64/dllprt0.as
A tests/test/packages/hash/sha1test.pp
U tests/webtbs/tw12038.pp
U compiler/cclasses.pas
U compiler/symdef.pas
U compiler/ncon.pas
U compiler/ncgrtti.pas
U compiler/cgbase.pas
U compiler/pstatmnt.pas
U compiler/systems/t_linux.pas
U compiler/pass_1.pas
U compiler/x86/cgx86.pas
U compiler/x86/agx86att.pas
U compiler/x86/aasmcpu.pas
U compiler/aasmbase.pas
A packages/fcl-xml/tests/extras.pp
A packages/fcl-xml/tests/extras2.pp
--- Merging r13696 through r13760 into 'packages/fcl-xml/tests/README_DOM.txt':
U packages/fcl-xml/tests/README_DOM.txt
--- Merging r13696 through r13760 into '.':
U packages/fcl-xml/tests/domunit.pp
U packages/fcl-xml/src/xpath.pp
U packages/Makefile
U packages/gmp/src/gmp.pas
U packages/gmp/readme
U packages/fcl-db/src/base/db.pas
U packages/fcl-db/src/base/database.inc
U packages/sqlite/src/sqlite3.inc
U packages/fcl-web/src/custweb.pp
U packages/hash/fpmake.pp
U packages/hash/Makefile.fpc
A packages/hash/src/sha1.pp
U packages/hash/Makefile
U packages/hash/examples/Makefile.fpc
A packages/hash/examples/sha1test.pp
U packages/hash/examples/Makefile
U packages/Makefile.fpc
U packages/fcl-base/src/ascii85.pp
U packages/fcl-base/src/custapp.pp
U packages/chm/src/chmwriter.pas
U packages/chm/src/paslzx.pas
U packages/chm/src/chmreader.pas
--- Merging r13761 into '.':
U compiler/powerpc/agppcvasm.pas
U compiler/ppcgen/agppcgas.pas
git-svn-id: branches/objc@13762 -
* Pass by reference arguments are translated as pointers instead of var
* Variable length arguments are parsed with the varargs keyword instead of array of const
+ Added IVarSize.pas which prints the size of ivar's in all AppKit/Foundation classes.
+ There are now "null" defined macros for IBOutlet and IBAction like in Cocoa. Use these instead of comments and they may become useful in the future for InterfaceBuilder support.
+ Foundation.pas is included which can be used for command line tools without AppKit.
git-svn-id: branches/objc@13754 -
+ Added TDOMTestBase.LoadStringData method, allows loading documents from string.
* Don't return empty string from GetResourceURI when file doesn't exist. Thus we can see the problematic filename in the test output.
+ Added extras.pp, contains a few tests not present in w3.org test suite.
+ Added extras2.pp, contains some tests ported by hand because no automatic conversion possible yet. It addresses namespace fixup during serialization and canonical-form issues.
README_DOM.txt: updated to reflect the added units.
git-svn-id: trunk@13729 -
result parameter (cosmetic, since those parameter were not actually used)
* fixed calling obj-c methods where the result is returned via a hidden
parameter: since the hidden result remains hidden in the newly constructed
objc_msgSendStret*() variant, it is inserted again by the new callnode
-> remove the one inserted by the original callnode
git-svn-id: branches/objc@13692 -
* don't allow "type x = type y" for objcclass/objcprotocol for now
(would require generating new rtti for the new name)
git-svn-id: branches/objc@13641 -
after merge of r13618 from trunk
* also allow "varargs" for objclass/objcprotocol methods
* set the cdecl calling convention for objcclass/objcprotocol methods in
handle_calling_convention() rather than in a separate routine in
pdecobj (and do the same for cppclass methods)
* check that array of const parameters and varargs are only used with
external objc-methods (can only be done after the class is parsed,
because earlier on it's not known yet whether or not it is external)
git-svn-id: branches/objc@13624 -
we support writing more digits than are defined (due to Delphi-
compatibility) and
a) correcting the precision of undefined digits makes no sense
b) as a result, this precision correction made some numbers that can be
represented exactly in single precision inexact
-- fixes mantis #14230
* no longer perform precision correction while determining the whole part
of numbers (usually did nothing anyway, and the rest is caught by the
final rounding)
git-svn-id: trunk@13574 -
explicitly using -Ooasmcse for now. It will probably be completely
removed before the next major release after 2.4.0 (fixes mantis
#14363)
git-svn-id: trunk@13545 -
r240 | jonas | 2009-01-08 12:37:39 +0100 (Thu, 08 Jan 2009) | 3 lines
Changed paths:
M /metaPascal/trunc/MPPInterfaces/Endian.pas
* fixed Endian64_Swap_Pascal (at least for FPC on 32 bit platforms:
"<32 bit int> shl 32" is not evaluated as a 64 bit expression there)
...
r239 | gale | 2008-07-09 17:01:16 +0200 (Wed, 09 Jul 2008) | 2 lines
Changed paths:
A /metaPascal/trunc/MPPInterfaces/DriverServices.pas
Initial translation of DriverServices.h from MacOSX10.5.sdk.
...
r238 | gale | 2008-06-25 02:41:55 +0200 (Wed, 25 Jun 2008) | 4 lines
Changed paths:
M /metaPascal/trunc/MPPInterfaces/CFStream.pas
Updated CFStream.pas to correspond with the MacOSX10.5.sdk respective
header. In particular, added declarations for routines
CFStreamCreateBoundPair, CFReadStreamCopyError, and CFWriteStreamCopyError.
...
r237 | gale | 2008-06-25 01:21:18 +0200 (Wed, 25 Jun 2008) | 10 lines
Changed paths:
A /metaPascal/trunc/MPPInterfaces/CFHTTPAuthentication.pas
M /metaPascal/trunc/MPPInterfaces/CFHTTPMessage.pas
M /metaPascal/trunc/MPPInterfaces/CFHTTPStream.pas
A /metaPascal/trunc/MPPInterfaces/CFNetDiagnostics.pas
M /metaPascal/trunc/MPPInterfaces/CFNetServices.pas
A /metaPascal/trunc/MPPInterfaces/CFNetworkErrorss.pas
A /metaPascal/trunc/MPPInterfaces/CFProxySupport.pas
M /metaPascal/trunc/MPPInterfaces/CFSocketStream.pas
Updated interfaces to correspond with CFNetwork.framework Headers from
MacOSX10.5.sdk. Update includes:
1. Initial translations of CFHTTPAuthentication.h, CFNetDiagnostics.h,
CFNetworkErrorss.h, and CFProxySupport.h.
2. MacOSX10.4 and MacOSX10.5 introduced new declarations and comment
updates from CFHTTPMessage.h, CFHTTPStream.h, CFNetServices.h, and
CFSocketStream.h.
...
r236 | gale | 2008-06-24 23:59:39 +0200 (Tue, 24 Jun 2008) | 2 lines
Changed paths:
A /metaPascal/trunc/MPPInterfaces/CFError.pas
Initial translation of CFError.h from MacOSX10.5.sdk.
...
r235 | gale | 2008-06-23 03:36:55 +0200 (Mon, 23 Jun 2008) | 2 lines
Changed paths:
A /metaPascal/trunc/MPPInterfaces/TextInputSources.pas
Initial translation of TextInputSources.h from MacOSX10.5.sdk.
git-svn-id: trunk@13518 -
associated with an Objective-C protocol. Code generator part will
always generate an internalerror currently, because it cannot yet
be implemented (needs support for generating RTTI for Objective-C
classes)
git-svn-id: branches/objc@13461 -
* ucs-4 -> variant type cast (variant -> ucs-4 is not possible due to overloading contraints of fpc and how ucs-4 is implemented)
* some newlines fixed
git-svn-id: trunk@13451 -
depend on that (and correct a number of cases where this was wrong)
* set the correct subreg type for xmm x86_64 parameter registers
(resolved mantis #14067)
git-svn-id: trunk@13410 -
starting with a previous 2.3.1 or compiler built from the objc branch
+ added basic objcprotocol support (only for external protocols
currently)
o use in type declaration: "type xp = objcprotocol ... end;"
o when defining a root class that implements it:
"type yc = objcclass(xp) ... end" (note: no support yet
for something like "objcclass(id,xp)" or so)
o when defining a non-root class that implements a protocol:
"type zc = objcclass(nsobject,xp) ... end"
o includes support for "required" and "optional" sections
o no support yet for the objcprotocol(<protocol>) expression
that enables getting a class instance representing the
protocol (e.g., for use with "conformsToProtocol:")
o message names have to specified in protocol declarations,
but if an objcclass implements a protocol, the message names do
not have to be repeated (but if they are, they have to match;
the same goes when overriding inherited methods)
+ allow specifying the external name of Objective-C classes and
protocols, since classes and protocols can have the same name
(and you cannot use the same Pascal identifier in such caseq)
+ added NSObject protocol, and make the NSObject class use it
+ added missing NSObject class methods that have the same name
as instance methods (added "class" name prefix to avoid clashes)
* fixed several cases where the compiler did not treat Objective-C
classes/protocols the same as Object Pascal classes/interfaces
(a.o., forward declarations, alignment, regvars, several type
conversions, ...)
* allow "override" directive in objcclass declarations, and print
a hint if it's forgotten in an external declaration (because it
doesn't really matter there, and may make automated header
conversion harder than necessary) and an error if will be used in
a non-external declaration (because it is not possible to start
a new vmt entry-tree in Objective-C, you can only override parent
methods)
* reject objcclasses/protocols as parameters to typeof()
* don't try to test VMT validity of objcclasses/protocols
git-svn-id: branches/objc@13375 -
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk
........
........
r13157 | marco | 2009-05-17 14:22:41 +0200 (Sun, 17 May 2009) | 2 lines
* mingw textmode IDE debugging support. First working version (for me), atexit handler for mingw and cygwin stuff under ifndef USE_MINGW_GDB
........
r13158 | marco | 2009-05-17 14:43:57 +0200 (Sun, 17 May 2009) | 1 line
* Fix for gdb66/mingw (general?) program reset issue. Instructs GDB to turn confirmation off. Mantis 0011968
........
r13159 | yury | 2009-05-17 14:43:58 +0200 (Sun, 17 May 2009) | 1 line
* Replaced some ifdef x86_64 by ifdef cpu64bitaddr, since it is more correct.
........
r13160 | yury | 2009-05-17 14:47:26 +0200 (Sun, 17 May 2009) | 1 line
* Set default image base for win64 dlls to $110000000.
........
........
........
r13163 | jonas | 2009-05-17 16:33:20 +0200 (Sun, 17 May 2009) | 3 lines
* support {$i *.ext} to include source files with the same base name, but
with a different extension than the current source file (mantis #13696)
........
r13164 | jonas | 2009-05-17 16:42:17 +0200 (Sun, 17 May 2009) | 2 lines
* copyright in comments updated (from mantis #13048)
........
r13165 | jonas | 2009-05-17 16:50:44 +0200 (Sun, 17 May 2009) | 2 lines
* small fixes from Karl-Michael Schindler (mantis #13048)
........
r13166 | marco | 2009-05-17 17:37:27 +0200 (Sun, 17 May 2009) | 3 lines
* gtk_cell_renderer_combo_new returns gtkcellrenderer not -combo (mantis 13689),
probably to support some kind of procedural polymorphism.
........
r13167 | jonas | 2009-05-17 18:01:13 +0200 (Sun, 17 May 2009) | 4 lines
* when loading the functions for a particular OpenGL function, also
automatically load those for lower versions (patch by "satan", mantis
#13687)
........
r13168 | marco | 2009-05-17 19:09:26 +0200 (Sun, 17 May 2009) | 3 lines
* reversed destruction order of TFPObjectList as per Mantis 13715.
Note that it is _NOT_ good coding to rely on such things
........
........
........
........
r13172 | sergei | 2009-05-18 00:56:51 +0200 (Mon, 18 May 2009) | 9 lines
DOM test suite enhancements:
* Do not convert tests which request implementation attribute 'signed'='true'.
Such tests aren't applicable to our unsigned DOM, they only cause compiler warnings
and noise in the test report.
+ Support for default properties (obj.item(x) -> obj[x]).
+ Support black-listing of testcases. Some of them (in HTML testsuite) are easier to
rewrite by hand than to convert.
+ Support adding certain units to 'uses' clause (e.g. HTML suite must use dom_html).
........
........
........
r13175 | sergei | 2009-05-18 22:33:43 +0200 (Mon, 18 May 2009) | 1 line
dom.pp: Ignore node read-only property when its owning document is being destroyed (enables destroying nodes in arbitrary order).
........
r13176 | sergei | 2009-05-19 00:03:37 +0200 (Tue, 19 May 2009) | 2 lines
* Moved TDOMAttrDef class from xmlread.pp to dom.pp (in order to implement default attribute handling at DOM level).
* Using regular CloneNode() method to create copies of TDOMAttrDef.
........
........
........
........
r13180 | sergei | 2009-05-21 01:08:24 +0200 (Thu, 21 May 2009) | 13 lines
Final strike for #13605:
src/dom.pp:
* GetElementsByTagName[NS] results now get cached in a hashtable. Repeated calls to
GetElementsByTagName with same arguments return the same instance of NodeList. All NodeLists
created during document lifetime are destroyed with the document.
src/xmlutils.pp:
* THashTable.Lookup(), changed SetString to SetLength+Move because SetString truncates on #0
+ added THashTable.RemoveData() method
tests/api.xml:
- No longer need to 'garbage collect' the NodeLists.
........
r13181 | jonas | 2009-05-21 11:57:45 +0200 (Thu, 21 May 2009) | 4 lines
- unconditionally enabled {$ifdef PARAOUTFILE}-code (that define was
decomissioned quite a while ago, but this file was forgotten in
that process)
........
r13182 | marco | 2009-05-21 13:26:54 +0200 (Thu, 21 May 2009) | 2 lines
* win64 compatibility fix from Vincent. TLibHandle is now equal to system.thandle
........
r13183 | marco | 2009-05-21 16:11:16 +0200 (Thu, 21 May 2009) | 1 line
* some minor vista/w7 related updates to message numbers
........
r13184 | sergei | 2009-05-21 22:45:16 +0200 (Thu, 21 May 2009) | 1 line
dom.pp: Added node memory management code (pure addition, no functionality changes this time).
........
r13185 | sergei | 2009-05-22 01:07:32 +0200 (Fri, 22 May 2009) | 10 lines
dom.pp: Customized memory management, fixes 17 test cases and all memory leaks in testsuite:
* Every node created by Document.CreateXXX method is now guaranteed to be destroyed with the
document, whether it is part of the tree or not. Therefore, DOM methods which remove nodes
from the tree (namely, TDOMNode.RemoveChild, TDOMNode.ReplaceChild,
TDOMElement.SetAttributeNode and TDOMElement.SetAttributeNodeNS) no longer need to destroy
their return value and are now conformant to the specs.
* Nodes are allocated in arrays of instances (emulates 'placement new operator' in C++ terms).
Allocation and freeing are as fast as possible (just assigns a couple of pointers).
* Behaviour of nodes that are created by direct call to constructor is unchanged.
........
r13186 | jonas | 2009-05-23 12:10:56 +0200 (Sat, 23 May 2009) | 2 lines
+ Darwin-specific fcntl constants
........
........
r13188 | marco | 2009-05-23 17:40:13 +0200 (Sat, 23 May 2009) | 1 line
* thread creation failure for win<x>. Mantis 13798
........
r13189 | joost | 2009-05-24 13:17:59 +0200 (Sun, 24 May 2009) | 1 line
* Modified patch from taka_jp to set the connection-dataset for mysql, bug #13588.
........
r13190 | joost | 2009-05-24 13:20:45 +0200 (Sun, 24 May 2009) | 1 line
* Fixed resource-leak on exceptions during creating/dropping databases, patch from taka_jp, bug #13587
........
r13191 | jonas | 2009-05-24 13:48:49 +0200 (Sun, 24 May 2009) | 5 lines
* changed the parameters of gotoxy() and the return values of wherex/wherey
from byte into tcrtcoord=1..255, since all crt unit coordinates are
1-based (not for Window() procedure, see comments in crth.inc;
mantis #13788)
........
r13192 | jonas | 2009-05-24 14:25:33 +0200 (Sun, 24 May 2009) | 2 lines
* again made less complex in case of PIC, otherwise it fails
........
r13193 | jonas | 2009-05-24 14:26:38 +0200 (Sun, 24 May 2009) | 2 lines
* make sure example also works without an application bundle
........
r13194 | jonas | 2009-05-25 20:34:04 +0200 (Mon, 25 May 2009) | 2 lines
* fixed evaluating "nil +/- int_const" expressions (mantis #13815)
........
r13195 | jonas | 2009-05-25 21:41:14 +0200 (Mon, 25 May 2009) | 4 lines
* fixed missing reference counting in case a refcounted type was implicitly
type casted to a non-refcounted type, e.g. dynarray to pointer in Delphi
mode (mantis #13820)
........
r13196 | sergei | 2009-05-25 22:28:40 +0200 (Mon, 25 May 2009) | 8 lines
dom.pp: No more failures on level 1 testsuite... at last.
+ Implemented handling of default attributes:
* creating an element also creates and attaches the default attributes;
* removing an attribute restores it with default value, if there's one.
+ Attribute nodes remove themselves from the owner element upon destruction, making it possible
to Free attributes manually.
* TDOMNamedNodeMap.SetNamedItem does not reset attribute OwnerElement if the argument node is already
contained in the map (and whole operation is therefore is a no-op).
........
r13197 | marco | 2009-05-26 14:24:58 +0200 (Tue, 26 May 2009) | 5 lines
* uxtheme moved from Lazarus.
* Disabled (ifdeffed) lock around init/finalization because of circular
reference between fcl-base and winunits-base. If needed it can be
recoded directly using system specific (windows.pas) routines.
........
r13198 | jonas | 2009-05-26 18:22:41 +0200 (Tue, 26 May 2009) | 2 lines
* make references PIC-safe before pushing them as parameter (mantis #13829)
........
r13199 | marco | 2009-05-26 18:54:49 +0200 (Tue, 26 May 2009) | 2 lines
* tmschema as include file added at Paul's request
........
r13200 | sergei | 2009-05-27 00:14:21 +0200 (Wed, 27 May 2009) | 6 lines
+ Implementation of TDOMDocument.CreateAttributeNS and CreateElementsNS
+ Initial part of TDOMElement.SetAttributeNS
+ TDOMImplementation.CreateDocumentType checks validity of QualifiedName
* Use 'managed' memory allocation in TDOMEntity.CloneNode and TDOMNotation.CloneNode to avoid leaks
* TDOMDocument.RemoveID now using THashTable.RemoveData(), simplifies things
........
r13201 | marco | 2009-05-27 09:29:04 +0200 (Wed, 27 May 2009) | 2 lines
* Marquee patch from Paul + some Vista PBM_ constants.
........
r13202 | marco | 2009-05-27 10:46:27 +0200 (Wed, 27 May 2009) | 2 lines
* first half of vista updates.
........
r13203 | marco | 2009-05-27 18:26:32 +0200 (Wed, 27 May 2009) | 2 lines
* vista items till WC_STATICA, roughly at 80% now.
........
r13204 | jonas | 2009-05-27 19:26:50 +0200 (Wed, 27 May 2009) | 2 lines
* various optimizations by Dave Richards (mantis #12440)
........
r13205 | jonas | 2009-05-27 19:50:55 +0200 (Wed, 27 May 2009) | 3 lines
* forbid "nil +/- ordinal" expressions (Delphi-compatible, and the
expression is meaningless since nil is not a valid address)
........
r13206 | marco | 2009-05-27 22:08:56 +0200 (Wed, 27 May 2009) | 2 lines
* more Vista fixes, and implemented some macro's that somehow were not implemented.
........
r13207 | hajny | 2009-05-27 23:18:35 +0200 (Wed, 27 May 2009) | 1 line
* extension of r13191 to OS/2, EMX and potential other platforms using crt.inc based implementation of unit crt
........
r13208 | florian | 2009-05-29 00:28:58 +0200 (Fri, 29 May 2009) | 1 line
* patch to fix fillpoly, by borsa77
........
r13209 | michael | 2009-05-29 09:24:02 +0200 (Fri, 29 May 2009) | 1 line
* Change so that when FindFirst initially returns nonzero, FindClose is no longer needed (Windows compatible)
........
r13210 | michael | 2009-05-29 09:27:41 +0200 (Fri, 29 May 2009) | 1 line
* Change so that when FindFirst initially returns nonzero, FindClose is no longer needed (Windows compatible)
........
r13211 | michael | 2009-05-29 09:30:46 +0200 (Fri, 29 May 2009) | 1 line
* Fix from Ken Wright for broken FPC changes
........
r13212 | jonas | 2009-05-30 13:29:54 +0200 (Sat, 30 May 2009) | 2 lines
* fixed/cleaned up tests for "nil + 1"
........
r13213 | michael | 2009-05-30 14:07:16 +0200 (Sat, 30 May 2009) | 1 line
* Some TCustomVariant methods implemented
........
r13214 | sergei | 2009-05-31 10:18:06 +0200 (Sun, 31 May 2009) | 3 lines
+ Processing of prefixed attributes and prefix bindings. This completes namespace support at
the XML reader side.
........
r13215 | sergei | 2009-05-31 11:14:37 +0200 (Sun, 31 May 2009) | 1 line
* Added .txt extension to README_DOM (this one was missed while fixing Mantis #12358)
........
r13216 | sergei | 2009-05-31 12:38:28 +0200 (Sun, 31 May 2009) | 1 line
Bringing readme's up to date
........
r13217 | Legolas | 2009-05-31 14:15:24 +0200 (Sun, 31 May 2009) | 4 lines
* updated nds/gba linker scripts and reverted some changes for 2.2.4a release
- Removed unused/outdated stuff from libndsfpc
+ Added new examples for libndsfpc
+ Added working (I hope so...) makefile.fpc for all libndsfpc/libgbafpc examples
........
git-svn-id: branches/objc@13348 -
can create ambiguities for the parser in case the field names also exist
as modifiers (TP- and Delphi-compatible, mantis #13971) + tests
* fixed tests that broke because of this change
git-svn-id: trunk@13334 -
parameters (mantis #13956)
* when reporting an error about too few specified parameters to a call,
return the column of the call itself rather than after the last parameter
(because this ends up after the end of an indexed property in case of
properties, which is confusing)
git-svn-id: trunk@13326 -
case the getter is a function, the result is that first the getter is
called, and subsequently the temp holding the function result is
overwritten (thus not changing anything). This is Delphi-compatible,
and fixes tests/tbf/tb0214*
git-svn-id: trunk@13320 -
starts with './' (mantis #14020)
* also mark files whose name starts with '.' that are found in subdirectories
as faHidden (not reported, but was due to a similar error)
- removed some unused variables related to the Find* functionality
git-svn-id: trunk@13307 -
TDebugInfoDwarf, so DWARFv2 and DWARFv3 generators can share protected
methods.
* fixed the debug info for sets whose language-level lower bound is not
equal to the actual set base used when storing the data (e.g., a "set
of 1..5" is actually stored as a "set of 0..7" or "set of 0..31")
(mantis #13984)
+ interactive test for the above
git-svn-id: trunk@13302 -
another, it's not enough that the temp sizes are the same, because
the assignment may only apply to part of them. In such cases,
perform a regular copy (mantis #13948)
git-svn-id: trunk@13255 -
vmt entries of virtual methods that can never be called with references
to FPC_ABSTRACTERROR. Some virtual methods are always considered to be
reachable: published methods, and methods used as getter/setter for a
published property.
git-svn-id: trunk@13238 -
- Removed unused/outdated stuff from libndsfpc
+ Added new examples for libndsfpc
+ Added working (I hope so...) makefile.fpc for all libndsfpc/libgbafpc examples
git-svn-id: trunk@13217 -
* Disabled (ifdeffed) lock around init/finalization because of circular
reference between fcl-base and winunits-base. If needed it can be
recoded directly using system specific (windows.pas) routines.
git-svn-id: trunk@13197 -
designated parent to NSObject, because you can have multiple root classes
(e.g., NSProxy is also an Objective-C root class in Cocoa). Instead,
give a hint when an Objective-C class is declared without any parent
(because it can very well be a mistake, given that Pascal classes all
do automatically inherit form TObject).
git-svn-id: branches/objc@13177 -
o support for declaring external Objective-C classes (see
rtl/inc/objcbase.pas), including derived classes
o support for converting methods of objcclasses into selectors
(see tests/test/tobjc1.pp)
o support for loading from/storing to fields of objcclasses
o support for calling Objective-C methods using regular
Object Pascal syntax (see tests/test/tobjc1.pp)
o some things that are known to be not yet working:
o automatic conversion from ID to objcclasses and back
o declaring and implementing new objcclasses/methods in Pascal code
o debug information (objcclasses are currently plain pointers
as far as the debugger knows)
git-svn-id: branches/objc@13162 -
sized integer (succeed for Delphi, fail for objfpc)
* fixed compiler so it only allows typecasting a class/interface to a
differently sized integer in Delphi mode
git-svn-id: trunk@13152 -
whose size depends on whether the run time environment is 32 or
64 bit (mantis #13647)
+ added flock64 type for 32 bit systems (usable with special 64 bit
fcntl operations)
git-svn-id: trunk@13119 -
that cause various problems, added "overload" directive so it gets
overloaded next to the routines in the "math" unit) (based on patch
by Alexander S. Klenin, mantis #13619)
- removed "inline" from that function because all the reference increasing/
decreasing in its body mainly cause code bloat and little if any speed
increase
git-svn-id: trunk@13084 -
unit's initialization code in case we're in a library
+ implemented InquireSignal(), AbandonSignalHandler(), HookSignal() and
UnhookSignal() in the sysutils unit
* for Kylix compatibility, these routines support operating on
SIGINT and SIGQUIT as well, although they are not hooked by default
by FPC. The run time errors/exception codes for these signals are
resp. 217 and 233 (same as in Kylix; I changed ENoWideStringSupport
to 234).
* changed the BSD syscall version of fpsigaction to use pointer
rather than "var" arguments (compatible with other targets, and
required to be able to pass nil arguments inside the system unit)
-> together fixes mantis #12704
git-svn-id: trunk@13077 -
not contain wildcards + test
* don't return true from FindGetFileInfo if the file name is ok, but the
search attributes don't match (resulted in returning multiple times the
name of the previous entry that did fulfill all requirements)
git-svn-id: trunk@13074 -
mode (mantis #11859)
* cleaned up some superfluous "eq=te_incompatible" checks (probably from
copy/pasting conditions from elsewhere)
git-svn-id: trunk@13050 -
initialization code of units/programs, because they are already
zero and initializing them explicitly is Delphi-incompatible
(mantis #13345)
git-svn-id: trunk@13042 -
of a bitpacked record in assembler code
* convert the offsets of byte-aligned fields of bitpacked records from bits
to bytes (mantis #13563)
git-svn-id: trunk@13027 -
physical registers
* free the physical return registers at the caller side for 64 bit
systems
* make sure that we do not double-free registers in case a return
value is not used (mantis #13536)
git-svn-id: trunk@13023 -
+ added TXPathBinaryNode as a common ancestor for binary operations;
+ TXPathBooleanOpNode now handles only 'and' and 'or' operators,
the purpose is to not evaluate the second argument if the result can
be determined by the first argument;
* Comparison operations moved to TXPathCompareNode and fixed
to support INFs and NANs correctly;
* Fixed TranslateWideString() that was not deleting characters;
* Fixed 'substring-after' function so its result is empty when argument
string does not contain the pattern;
* Fixed 'round' funcion so it complies to the specs;
* Completed implementation of 'substring' function (but surrogate pairs
are not handled yet);
* Mask exInvalidOp and exZeroDivide FPU exceptions while evaluating
expressions, this ensures correct calculations with respect to INFs
and NANs.
+ Added testsuite for xpath
git-svn-id: trunk@12961 -
* fixed errors in Inc*() routines regarding skipping the black
home in the data-time continuum around 0, and the same for the
*Between() functions
+ tests, test...
git-svn-id: trunk@12958 -
when they are not used in the unit where they are defined (since they
may be used elsewhere, discovered while analyzing mantis #13345)
git-svn-id: trunk@12954 -
inlining, because that results in alignment settings of "0"
(voidtype.savesize = 0 -> size2align(0) = 0), which is interpreted
by the code generators as unaligned (and is actually even invalid
nowadays). This caused errors on NDS when writing to memory mapped
I/O devices (mantis #13343)
git-svn-id: trunk@12916 -
support for 4-character UTF-8 codepoints (mantis #11791)
* fixed UnicodeToUtf8() based on patch by A. J. Miller (mantis
#13075)
git-svn-id: trunk@12902 -
elements of the array (like Kylix, mantis #12038) + test
* add pfReference and pfArray TParamFlags for open array parameters
like Kylix
git-svn-id: trunk@12888 -
Needs a fix in gdb when referencing a location relative to a
global variable (an array element other than the first, a field
other than the first) on Mac OS X and when using external debug
info on Linux/Windows.
git-svn-id: trunk@12877 -
the use of Objective-C 1.0 constructs. Because it is a mode switch, it
can be used cumulatively with every syntax mode. Note that a {$mode xxx}
statement resets all mode switches as well, so you cannot use the
-Mobjectivec1 variant if you have such a statement in a unit. This
modeswitch is currently only enabled for Darwin/PowerPC and Darwin/i386,
as the backend support is not yet implemented for other platforms.
+ implemented selector() statement that can be used to create an Objective-C
selector for the message with the specified *constant* name (in the future,
it will also work for Objective-C method identifiers)
+ added SEL type to the system unit (the selector() statement returns it)
+ added all Objective-C segments to the assembler writers
+ (currently mostly dummy) objc1 unit that is automatically included if the
{$modeswitch objectivec1} statement is used
+ some tests for the selector() statement
git-svn-id: trunk@12870 -
that descendent classes can override the NodeName properly
* Fixed an AV when GetNodeName is called and there is no NodeName set
* Removed the THtmlCustomElement.NodeName property and override the GetNodeName
method instead. The hashtable of TDOMNode_NS is not used because
THtmlCustomElement uses a faster lookupsystem for tag/node-names
* Added a basic test for the htmlwriter unit
git-svn-id: trunk@12732 -
alignment for each memory reference (mantis #12137, and
test/packages/fcl-registry/tregistry1.pp on sparc). This also
enables better code generation for packed records in many cases.
o several changes were made to the compiler to minimise the chances
of accidentally forgetting to set the alignment of memory references
in the future:
- reference_reset*() now has an extra alignment parameter
- location_reset() can now only be used for non LOC_(C)REFERENCE,
use location_reset_ref() for those (split the tloc enum so the
compiler can catch errors using range checking)
git-svn-id: trunk@12719 -
of properties (mantis #10492). Not really clean (and Delphi supports
full expressions, e.g. also "(const1=const2)"), but cannot do better
without rewriting the complete symlist parsing to use parse trees instead
of parser tokens as input
git-svn-id: trunk@12696 -
+ add posix thread support
* improve signal handling
* synchronize haiku's baseunix unit with the unix one (maybe it will be possible to remove Haiku's one in a future patch, but i keep it for now)
+ add support for standard sockets
* fix some functions import to use the right libraries under Haiku
* fix packages compilation
git-svn-id: trunk@12636 -
a conversion to a shortstring type (so an operator := that returns a
string[255] can be used to assign this type to a string[80]) (mantis
#12109)
* do not allow overloading := with a string[x<>255] as result type,
because we want one such overload to satisfy all conversions (see
previous point)
git-svn-id: trunk@12590 -
* Changed the design of input decoders so they process data by chunks
instead of char-by-char. It is much faster, and allows supporting
external pluggable decoders.
+ Interface for external decoders.
* ResolvePredefined() is rewritten so it doesn't call CompareMem five
times do determine a single char.
* ParseCharRef renamed to ParseRef, because it parses entity refs as
well.
* Added guard conditions to prevent integer overflows in ParseRef.
* ContextPush(TXMLCharSource) merged into Initialize().
xmliconv.pas is a new unit, containing an libiconv-based decoder. It depends on existing iconvenc package, and
thus supports all platforms that are supported by iconvenc.
xmliconv_windows.pas is the variation that allows to use libiconv functionality on Windows (It would require
the iconv.dll to be distributed with the application, but since I haven't succeeded yet in writing a native
Windows decoder, this is better than nothing).
git-svn-id: trunk@12582 -
convert it into a widechar at compile time using the current source file's
code page (and in case it was to a non-widestring, then convert it at run
time into the current run time ansi code page) (mantis #12993)
Previously, the characters were either stuffed into the string without
conversion (widestring), or passed to the run time "ansi-character to
stringtype" routine (other string types; which was also wrong, since
that routine expects the character to be in ansi-encoding, which is
not necessarily the same as whatever the source file encoding was)
git-svn-id: trunk@12580 -
* First attempt to implement a sort of generic "gate" for adding different file access methods
* Optimized heap and stack handling
git-svn-id: trunk@12562 -
a test program specific to the platform, as there is no glu/glut for
embedded systems)
- disabled X11-based packages for darwin/arm
git-svn-id: trunk@12486 -
because it is faster and more system conform on Amigaish systems (like MorphOS, AmigaOS4 and more) than GNU AS.
btw, these are the same reasons why FPC/MOS use VLink instead of GNU LD...
+ simple programs compile with it, compiler doesn't work yet. (i'm in touch with VASM maintainer to address some issues)
+ TODO: add a command line switch to turn it on from command line.
git-svn-id: trunk@12479 -
multi-platform version of patch in r12461, which caused the i386 version
of fpc_pchar_length to return 0 in all cases, which used tabs, and did
not include a test case)
git-svn-id: trunk@12464 -
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/branches/wpo
........
r11878 | jonas | 2008-10-11 02:25:18 +0200 (Sat, 11 Oct 2008) | 19 lines
+ initial implementation of whole-program optimisation framework
+ implementation of whole-program devirtualisation
o use:
a) generate whole-program optimisation information (no need
to completely compile the program and all of its units
with -OW/-FW, only the main program is sufficient)
fpc -OWdevirtcalls -FWmyprog.wpo myprog
b) use it to optimise the program
fpc -B -Owdevirtcalls -Fwmyprog.wpo myprog
(the -B is not required, but only sources recompiled during
the second pass will actually be optimised -- if you want,
you can even rebuild the rtl devirtualised for a particular
program; and these options can obviously also be used
together with regular optimisation switches)
o warning:
- there are no checks yet to ensure that you do not use
units optimised for a particular program with another
program (or with a changed version of the same program)
........
r11881 | jonas | 2008-10-11 19:35:52 +0200 (Sat, 11 Oct 2008) | 13 lines
* extracted code to detect constructed class/object types from
tcallnode.gen_vmt_tree into its own method to avoid clutter
* detect x.classtype.create constructs (with classtype = the
system.tobject.classtype method), and treat them as if a
"class of x" has been instantiated rather than a
"class of tobject". this required storing the instantiated
classrefs in their own array though, because at such a
point we don't have a "class of x" tdef available (so
now "x", and all other defs instantiated via a classref,
are now stored as tobjectdefs in a separate array)
+ support for devirtualising class methods (including
constructors)
........
r11882 | jonas | 2008-10-11 20:44:02 +0200 (Sat, 11 Oct 2008) | 7 lines
+ -Owoptvmts whole program optimisation which replaces vmt entries
with method names of child classes in case the current class'
method can never be called (e.g., because this class is never
instantiated). As a result, such methods can then be removed
by dead code removal/smart linking (not much effect for either
the compiler, lazarus or a trivial lazarus app though).
........
r11889 | jonas | 2008-10-12 14:29:54 +0200 (Sun, 12 Oct 2008) | 2 lines
* some comment fixes
........
r11891 | jonas | 2008-10-12 18:49:13 +0200 (Sun, 12 Oct 2008) | 4 lines
* fixed twpofilereader.getnextnoncommentline() when reusing a previously
read line
* fixed skipping of unnecessary wpo feedback file sections
........
r11892 | jonas | 2008-10-12 23:42:43 +0200 (Sun, 12 Oct 2008) | 31 lines
+ symbol liveness wpo information extracted from smartlinked programs
(-OW/-Owsymbolliveness)
+ use symbol liveness information to improve devirtualisation (don't
consider classes created in code that has been dead code stripped).
This requires at least two passes of using wpo (first uses dead code
info to locate classes that are constructed only in dead code,
second pass uses this info to potentially further devirtualise).
I.e.:
1) generate initial liveness and devirtualisation feedback
fpc -FWtt.wpo -OWall tt.pp -Xs- -CX -XX
2) use previously generated feedback, and regenerate new feedback
based on this (i.e., disregard classes created in dead code)
fpc -FWtt-1.wpo -OWall -Fwtt.wo -Owall tt.pp -Xs- -CX -XX
3) use the newly generated feedback (in theory, it is possible
that even more opportunities pop up afterwards; you can
continue until the program does not get smaller anymore)
fpc -Fwtt-1.wpo -Owall tt.pp -CX -XX
* changed all message() to cgmessage() calls so the set codegenerror
* changed static fsectionhandlers field to a regular field called
fwpocomponents
* changed registration of wpocomponents: no longer happens in the
initialization section of their unit, but in the InitWpo routine
(which has been moved from the woinfo to the wpo unit). This way
you can register different classes based on the target/parameters.
+ added static method to twpocomponentbase for checking whether
the command line parameters don't conflict with the requested
optimisations (e.g. generating liveness info requires that
smartlinking is turned on)
+ added static method to twpocomponentbase to request the
section name
........
r11893 | jonas | 2008-10-12 23:53:57 +0200 (Sun, 12 Oct 2008) | 3 lines
* fixed comment error (twpodeadcodeinfo keeps a list of live,
not dead symbols)
........
r11895 | jonas | 2008-10-13 00:13:59 +0200 (Mon, 13 Oct 2008) | 2 lines
+ documented -OW<x>, -Ow<x>, -FW<x> and -Fw<x> wpo parameters
........
r11899 | jonas | 2008-10-14 22:14:56 +0200 (Tue, 14 Oct 2008) | 2 lines
* replaced hardcoded string with objdumpsearchstr constant
........
r11900 | jonas | 2008-10-14 22:15:25 +0200 (Tue, 14 Oct 2008) | 2 lines
* reset wpofeedbackinput and wpofeedbackoutput in wpodone
........
r11901 | jonas | 2008-10-14 22:16:07 +0200 (Tue, 14 Oct 2008) | 2 lines
* various additional comments and comment fixes
........
r11902 | jonas | 2008-10-15 18:09:42 +0200 (Wed, 15 Oct 2008) | 5 lines
* store vmt procdefs in the ppu files so we don't have to use a hack to
regenerate them for whole-program optimisation
* fixed crash when performing devirtualisation optimisation on programs
that do not construct any classes/objects with optimisable vmts
........
r11935 | jonas | 2008-10-19 12:24:26 +0200 (Sun, 19 Oct 2008) | 4 lines
* set the vmt entries of non-class virtual methods of not instantiated
objects/classes to FPC_ABSTRACTERROR so the code they refer to can
be thrown away if it is not referred to in any other way either
........
r11938 | jonas | 2008-10-19 20:55:02 +0200 (Sun, 19 Oct 2008) | 7 lines
* record all classrefdefs/objdefs for which a loadvmtaddrnode is generated,
and instead of marking all classes that derive from instantiated
classrefdefs as instantiated, only mark those classes from the above
collection that derive from instantiated classrefdefs as
instantiated (since to instantiate a class, you have to load its vmt
somehow -- this may be broken by using assembler code though)
........
r12212 | jonas | 2008-11-23 12:26:34 +0100 (Sun, 23 Nov 2008) | 3 lines
* fixed to work with the new vmtentries that are always available and
removed previously added code to save/load vmtentries to ppu files
........
r12304 | jonas | 2008-12-05 22:23:30 +0100 (Fri, 05 Dec 2008) | 4 lines
* check whether the correct wpo feedback file is used in the current
compilation when using units that were compiled using wpo information
during a previous compilation run
........
r12308 | jonas | 2008-12-06 18:03:39 +0100 (Sat, 06 Dec 2008) | 2 lines
* abort compilation if an error occurred during wpo initialisation
........
r12309 | jonas | 2008-12-06 18:04:28 +0100 (Sat, 06 Dec 2008) | 3 lines
* give an error message instead of crashing with an io exception if the
compiler is unable to create the wpo feedback file specified using -FW
........
r12310 | jonas | 2008-12-06 18:12:43 +0100 (Sat, 06 Dec 2008) | 3 lines
* don't let the used wpo feedback file influence the interface crc (there's
a separate check for such changes)
........
r12316 | jonas | 2008-12-08 19:08:25 +0100 (Mon, 08 Dec 2008) | 3 lines
* document the format of the sections of the wpo feedback file inside the
feedback file itself
........
r12330 | jonas | 2008-12-10 22:26:47 +0100 (Wed, 10 Dec 2008) | 2 lines
* use sysutils instead of dos to avoid command line length limits
........
r12331 | jonas | 2008-12-10 22:31:11 +0100 (Wed, 10 Dec 2008) | 3 lines
+ support for testing whole program optimisation tests (multiple
compilations using successively generated feedback files)
........
r12332 | jonas | 2008-12-10 22:31:40 +0100 (Wed, 10 Dec 2008) | 2 lines
+ whole program optimisation tests
........
r12334 | jonas | 2008-12-10 22:38:07 +0100 (Wed, 10 Dec 2008) | 2 lines
- removed unused local variable
........
r12339 | jonas | 2008-12-11 18:06:36 +0100 (Thu, 11 Dec 2008) | 2 lines
+ comments for newly added fields to tobjectdef for devirtualisation
........
r12340 | jonas | 2008-12-11 18:10:01 +0100 (Thu, 11 Dec 2008) | 2 lines
* increase ppu version (was no longer different from trunk due to merging)
........
git-svn-id: trunk@12341 -
(mantis #12685 and also the error message noted in mantis #12576,
although in case of the latter it's only a symptom of another bug)
git-svn-id: trunk@12199 -
procedure too complex
* use separate includes so they can be regenerated
with simple unix commands that are listed in fpmake.pp
git-svn-id: trunk@12162 -
before optimising function result assignment, because at this point the
hidden self parameter is not yet inserted (mantis #12597)
* changed ttypeconvnode.actualtargetnode to use the same logic as what
is used to determine whether something can be assigned to the result
of a type conversion (so the above check also works if the methodpointer
contains a typecast to a different object type)
git-svn-id: trunk@12038 -
* store a node's verbosity in the node so that e.g. disabling warnings
also disables warnings for this node in pass_1
(the above together fix mantis #12076)
* save/restore verbosity with {$push}/{$pop} (mantis #12075)
* if warnings/notes/hints are turned off, also do not count encountered
ones for the totals (otherwise -Sew cannot be used properly in
combination with {$warnings off}, because disabled warnings will still
trigger a compiler error) -- this required adding -vw/-vn/-vh to all
tests using -Sew/-Sen/-Seh
- removed some superfluous state saving/restoring from firstpass()
git-svn-id: trunk@12025 -
the syntax is exactly the same as for "external", except for
the keyword. It is currently only active for Darwin targets.
It should also work at least for Linux targets, but only with
the GNU assembler (which is why it is not activated there)
+ test for this functionality
git-svn-id: trunk@12009 -
+ -vm<x>,<y> parameter to mask messages <x> and <y>
(both based on a patch submitted by Petr Kristan)
* alphabetically ordered -v<x> option processing code so it's easier
to see which characters are still free (not many anymore)
+ some tests for the -vm functionality
git-svn-id: trunk@11888 -