Commit Graph

1992 Commits

Author SHA1 Message Date
Legolas
ec841a86f5 * Updated to devkitARM r27 and libnds 1.4.0
git-svn-id: trunk@14344 -
2009-12-06 19:37:58 +00:00
florian
9e59c6dec7 * more mipsel code
git-svn-id: trunk@14340 -
2009-12-06 12:12:15 +00:00
Jonas Maebe
fa42b022d2 * made test names unique (if you overwrite an existing binary with another
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 -
2009-12-04 21:06:33 +00:00
Jonas Maebe
280f27b45c * store/restore trttinode.rttidatatype to/from ppu file, and also copy it in
rttidatatype.getcopy (fixes mantis #15207)

git-svn-id: trunk@14318 -
2009-12-03 23:03:25 +00:00
Jonas Maebe
d1538ab023 o added ARM VPFv2/VFPv3 support:
+ 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 -
2009-12-03 22:46:30 +00:00
florian
28ac4a8dda * several mips/mipsel related stuff fixed
* regenerated linux makefile to support mipsel

git-svn-id: trunk@14278 -
2009-11-27 15:10:56 +00:00
florian
80fc5f05dc + system unit part of David Zhang's MIPS port
git-svn-id: trunk@14268 -
2009-11-24 21:26:36 +00:00
ivost
7ac4644289 * splittet zorba(dyn).pas into xqc.pas and zorba(dyn).pas
git-svn-id: trunk@14265 -
2009-11-24 12:10:12 +00:00
Jonas Maebe
d644fc87a1 * handle loc_jump/loc_flags in for-loop upper bound (mantis #15169)
git-svn-id: trunk@14261 -
2009-11-23 21:11:16 +00:00
Jonas Maebe
2c3c6d27d3 * fixed range checking for inc/dec when mixing unsigned and signed types
(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 -
2009-11-23 20:01:07 +00:00
florian
38c68b58aa + MIPS specific part of the rtl, by David Zhang
git-svn-id: trunk@14255 -
2009-11-22 18:35:03 +00:00
Jonas Maebe
dca8c521e5 r316 | jonas | 2009-11-21 16:57:50 +0100 (Sat, 21 Nov 2009) | 4 lines
* 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 -
2009-11-21 16:08:36 +00:00
pierre
2480a6bad1 + x86_64 processor specific solaris files
git-svn-id: trunk@14235 -
2009-11-21 00:18:13 +00:00
Jonas Maebe
af85e45b67 + support for id.anyobjcmethodinscope() calls for Objective-Pascal code,
using standard FPC overload selection logic
  * fixed detection of references to static symbol tables for class
    helpers

git-svn-id: trunk@14234 -
2009-11-21 00:14:21 +00:00
florian
f54365db94 * adapted more fpc-mips stuff to trunk
git-svn-id: trunk@14230 -
2009-11-20 21:13:53 +00:00
florian
0c8546f94c * more MIPS code of David Zhang integrated
git-svn-id: trunk@14228 -
2009-11-20 14:46:45 +00:00
florian
e5ebb2a26e * started to integrate the code of David Zhang's MIPS code from fpc-mips on sf into fpc trunk
git-svn-id: trunk@14219 -
2009-11-19 22:07:10 +00:00
Jonas Maebe
b495fbb991 * let search_class_helper() only return class helper methods; it could
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 -
2009-11-18 21:49:57 +00:00
Jonas Maebe
f8754d8fab + Objective-C category support (old and new ABI, both external and
implemented in Pascal). See
    http://wiki.freepascal.org/FPC_PasCocoa#Category_declaration for syntax
    details

git-svn-id: trunk@14196 -
2009-11-16 00:12:08 +00:00
florian
509447c4b9 + compiled test for win32
* use writeln to show the test result as well for easier manual testing

git-svn-id: trunk@14191 -
2009-11-15 20:56:18 +00:00
pierre
3bcc2b660a * New object added
git-svn-id: trunk@14188 -
2009-11-15 17:27:30 +00:00
Jonas Maebe
60a9ef963d * finished basic support for calling methods from external C++ classes
(slightly modified patch by Sven Barth, mantis #15082)

git-svn-id: trunk@14185 -
2009-11-15 14:55:40 +00:00
Jonas Maebe
38c09952a3 * don't exit the program in the exit code of shared libraries under Linux
(mantis #14958)

git-svn-id: trunk@14184 -
2009-11-15 13:50:14 +00:00
Jonas Maebe
099ceb9574 - removed, it's automatically generated (and removed) by the build process
git-svn-id: trunk@14182 -
2009-11-15 12:56:39 +00:00
Jonas Maebe
af80b89f55 * set default set packing to 1 for TP/Delphi mode (mantis #15088)
git-svn-id: trunk@14177 -
2009-11-14 23:54:10 +00:00
florian
5d01732128 * several fixes which improve the behaviour of nested generics, resolves #15077
git-svn-id: trunk@14176 -
2009-11-14 22:24:55 +00:00
marco
f326302a12 * Test for mantis 14798
git-svn-id: trunk@14166 -
2009-11-13 15:46:42 +00:00
florian
851b00f8e9 * more properties fixed
git-svn-id: trunk@14156 -
2009-11-12 18:11:10 +00:00
florian
517ac768f0 * properties fixed
git-svn-id: trunk@14155 -
2009-11-12 18:03:28 +00:00
pierre
da59236bb3 + Script to generate libgdb directory
git-svn-id: trunk@14149 -
2009-11-11 21:41:24 +00:00
pierre
9f6f70830f + Solaris/i386 gcc compiled objects
git-svn-id: trunk@14148 -
2009-11-11 21:35:29 +00:00
pierre
430c6008db * correct mime type for new file
git-svn-id: trunk@14139 -
2009-11-10 22:40:09 +00:00
pierre
17a838e7da + Add missing file for i386 solaris
git-svn-id: trunk@14138 -
2009-11-10 22:39:13 +00:00
marco
05f831fe17 * fuse package + 1 test, Mantis 12218
git-svn-id: trunk@14117 -
2009-11-08 16:48:30 +00:00
paul
cc8f91f2d0 compiler: allow enumeration of multidimensional arrays with implicit array conversion + test
git-svn-id: trunk@14093 -
2009-11-07 06:21:07 +00:00
Jonas Maebe
f9eb89eb98 * updated r308 of common Mac OS X interfaces:
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 -
2009-11-06 22:57:07 +00:00
Jonas Maebe
559e284bd0 * merged r13762-14047 from trunk
git-svn-id: branches/objc@14048 -
2009-11-04 15:50:26 +00:00
paul
2f0cde4625 compiler:
- don't find MoveNext functions with the required arguments
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14044 -
2009-11-04 13:21:10 +00:00
paul
5f7bc2d3b5 compiler:
- 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 -
2009-11-04 12:59:05 +00:00
paul
61ec5e1417 compiler:
- fix for-in loop for empty sets
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14042 -
2009-11-04 12:25:01 +00:00
paul
5752be310d compiler:
- fix for-in loop for string const array
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14041 -
2009-11-04 12:07:42 +00:00
pierre
3a96d163fd + Add mingw unit
git-svn-id: trunk@14025 -
2009-11-03 22:43:08 +00:00
paul
aa5a5e79ce merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994:
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 -
2009-11-02 03:24:48 +00:00
Tomas Hajny
0a6888dbcb + enhanced clone of GNU rm, helper for building GO32v2 releases under WinXP, but possibly useful in some other cases too
git-svn-id: trunk@14007 -
2009-11-01 21:33:07 +00:00
Jonas Maebe
8d65471fe2 * give a proper error when trying to use val() on a boolean (mantis #14777)
* don't allow a boolean or (wide)char to be used as the "error" parameter
    for val()

git-svn-id: trunk@14006 -
2009-11-01 17:18:40 +00:00
paul
dfef902c53 rtl: introduce new TObject methods: UnitName, GetHashCode, Equals, ToString added for compatibility with delphi 2009.
+ 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 -
2009-11-01 16:22:47 +00:00
paul
dfdfec0201 compiler: don't write zero ClassInfo pointer even if class does not have published methods rtti (issue #14930)
git-svn-id: trunk@14004 -
2009-11-01 16:01:23 +00:00
Jonas Maebe
3e624d990d * only allow one "message" modifier per method declaration (mantis #14946)
git-svn-id: trunk@14001 -
2009-11-01 15:23:57 +00:00
paul
c2e749797b + test
git-svn-id: trunk@13999 -
2009-11-01 14:42:52 +00:00
ivost
4e35433504 * added some new functions to zorba headers
* added an example

git-svn-id: trunk@13993 -
2009-11-01 01:26:13 +00:00