one on iPhoneOS, the OS refuses to execute the new binary; you have to
remove the old one first -- but it's easier to make sure that there are
no two tests with the same name)
git-svn-id: trunk@14331 -
+ RTL support:
o VFP exceptions are disabled by default on Darwin,
because they cause kernel panics on iPhoneOS 2.2.1 at least
o all denormals are truncated to 0 on Darwin, because disabling
that also causes kernel panics on iPhoneOS 2.2.1 (probably
because otherwise denormals can also cause exceptions)
* set softfloat rounding mode correctly for non-wince/darwin/vfp
targets
+ compiler support: only half the number of single precision
registers is available due to limitations of the register
allocator
+ added a number of comments about why the stackframe on ARM is
set up the way it is by the compiler
+ added regtype and subregtype info to regsets, because they're
also used for VFP registers (+ support in assembler reader)
+ various generic support routines for dealing with floating point
values located in integer registers that have to be transferred to
mm registers (needed for VFP)
* renamed use_sse() to use_vectorfpu() and also use it for
ARM/vfp support
o only superficially tested for Linux (compiler compiled with -Cpvfpv6
-Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least
the fpu exception handler still needs to be implemented), Darwin has
been tested more thoroughly
+ added ARMv6 cpu type and made it default for Darwin/ARM
+ ARMv6+ implementations of atomic operations using ldrex/strex
* don't use r9 on Darwin/ARM, as it's reserved under certain
circumstances (don't know yet which ones)
* changed C-test object files for ARM/Darwin to ARMv6 versions
* check in assembler reader that regsets are not empty, because
instructions with a regset operand have undefined behaviour in that
case
* fixed resultdef of tarmtypeconvnode.first_int_to_real in case of
int64->single type conversion
* fixed constant pool locations in case 64 bit constants are generated,
and/or when vfp instructions with limited reach are present
WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all
code with -Cparmv6 (or higher), or you will get crashes. The reason is
that storing/restoring multiple VFP registers must happen using
different instructions on pre/post-ARMv6.
git-svn-id: trunk@14317 -
(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 -