Commit Graph

284 Commits

Author SHA1 Message Date
paul
e379daaf9c compiler, rtl: move cpXXXX.pas files from compiler to RTL\charmaps directory and cleanup them, enable charmaps building for the majority of targets
git-svn-id: trunk@23799 -
2013-03-12 01:35:25 +00:00
yury
2fc220cc6c * Regenerated makefiles.
git-svn-id: branches/targetandroid@23410 -
2013-01-16 14:52:36 +00:00
yury
d26f0552a0 * Sync with trunk r23404.
* Regenerated makefiles.

git-svn-id: branches/targetandroid@23405 -
2013-01-16 13:21:51 +00:00
svenbarth
764f36a179 Extend TThread with (class) methods and (class) properties from Delphi 2007 and newer.
Especially for the introduction of the Queue method the internal Synchronize handling was modified. Instead of handling only one event there is now a queue of events which is walked completely when CheckSynchronize is called. Each entry in the queue can carry a PRTLEvent which will be signaled when the contained method has been executed and thus Synchronize methods can still be blocking.
Exceptions inside the queued methods are either handed back to the calling method for Synchronize events or raised directly (after leaving the queue in a valid state) to the caller of CheckSynchronize.

The way platform specific adjustments can be made to TThread was changed. Instead of implementing the Constructor and Destructor directly one now implements the methods SysCreate and SysDestroy which are called from the Constructor and Destructor respectively. All RTLs were adjusted for this and should be controlled by the platform maintainers for correct compilation (Unix works).

The new method NameThreadForDebugging has two overloaded variants: one with the thread name as AnsiString and one with the thread name as UnicodeString.
By default the AnsiString variant calls the UnicodeString variant and the latter needs to be implemented. This can be changed by defining THREADNAME_IS_ANSISTRING for a platform. Then the UnicodeString variant calls the AnsiString one and the AnsiString one needs to be implemented.

Also added was a global property CPUCount for the System unit. This property returns the number of virtual cores of the system.

New methods and functions that should be implemented per platform are:
System.GetCPUCount (default returns 1)
Classes.TThread.GetSystemTimes (default zeros the struct)
Classes.TThread.NameThreadForDebugging (default does nothing)

More detailed information about the added methods will be available in the feature announcement mail.

git-svn-id: trunk@23227 -
2012-12-27 16:16:17 +00:00
tom_at_work
810adb2f65 Merge with trunk r22040. Regenerated makefiles.
git-svn-id: branches/targetandroid@22046 -
2012-08-09 08:12:34 +00:00
tom_at_work
4150f0a2fb Rebase with r21814
git-svn-id: branches/targetandroid@21815 -
2012-07-07 23:09:20 +00:00
tom_at_work
77a85b7448 * basic android/x86 support
git-svn-id: branches/targetandroid@21296 -
2012-05-14 21:14:12 +00:00
Jonas Maebe
834026bfb5 * synchronised with trunk up to r21067
git-svn-id: branches/jvmbackend@21068 -
2012-04-26 21:24:20 +00:00
tom_at_work
acbc94e0fd - initial support for the android/arm target in the compiler; resulting .so's can be used for Android/ARM app development.
- basic rtl support using system calls
- fp(c)make/fppkg/makefile support

todo:
- revisit systems/t_android.pas: mostly duplicate with t_linux.pas, containing
lots of unnecessary code
- revisit rtl changes
- android ndk header translation import
- better app build/packaging support
- android/x86 support

git-svn-id: branches/targetandroid@21061 -
2012-04-26 09:36:42 +00:00
pierre
1b3fd997fc + Regenerate all Makefiles's after adding x86_64 netbsd target
git-svn-id: trunk@21031 -
2012-04-24 23:15:18 +00:00
Tomas Hajny
d442d14e0c + FileNameCasePreserving added - see #18066 in Mantis
git-svn-id: trunk@20894 -
2012-04-15 20:56:13 +00:00
Jonas Maebe
aee5380ae0 * merged trunk up to r20882
o support for the new codepage-aware ansistrings in the jvm branch
   o empty ansistrings are now always represented by a nil pointer rather than
     by an empty string, because an empty string also has a code page which
     can confuse code (although this will make ansistrings harder to use
     in Java code)
   o more string helpers code shared between the general and jvm rtl
   o support for indexbyte/word in the jvm rtl (warning: first parameter
     is an open array rather than an untyped parameter there, so
     indexchar(pcharvar^,10,0) will be equivalent to
     indexchar[pcharvar^],10,0) there, which is different from what is
     intended; changing it to an untyped parameter wouldn't help though)
   o default() support is not yet complete
   o calling fpcres is currently broken due to limitations in
     sysutils.executeprocess() regarding handling unix quoting and
     the compiler using the same command lines for scripts and directly
     calling external programs
   o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1
     to the make command line

git-svn-id: branches/jvmbackend@20887 -
2012-04-15 15:54:10 +00:00
Jonas Maebe
44bd889b9b * regenerated Makefiles with AIX support
git-svn-id: trunk@20812 -
2012-04-11 18:03:57 +00:00
pierre
2c4d8cc9d9 Add x86_64-openbsd target in Makefiles
git-svn-id: trunk@20723 -
2012-04-06 16:49:08 +00:00
pierre
e6cf348904 Update Makefile for mips-linux support
git-svn-id: trunk@20448 -
2012-02-29 11:22:05 +00:00
florian
9426cac1b0 * rebuilt Makefiles
git-svn-id: trunk@19748 -
2011-12-04 15:34:01 +00:00
paul
1ccf16358c rtl: init widestring and unitcodestring managers before initialization of Standard IO files (stdin,stdout,stderr)
git-svn-id: trunk@19542 -
2011-10-25 02:29:29 +00:00
Jonas Maebe
28c20cfc5e * the default string type for the JVM target is no longer automatically
unicodestring = java.lang.String. The reason this was the default in
    the past is that this was the first string type that was implemented,
    and without it being the default most code involving string operations
    would fail. Now the default strings types are the same as for other
    targets
  + new {$modeswitch unicodestrings} directive, that when activated
    *together* with {$h+},
   1) changes char into an alias for widechar
   2) changes string into an alias for unicodestring
   3) changes the preferred string evaluation type (in case of uncertainty)
      to unicodestring
    {$modeswitch unicodestrings} with {$h-} does not change anything at all
    regarding the string type (it still changes the char type)
  + new uuchar unit that redefines char as widechar, and which is automatically
    included by the compiler if {$modeswitch unicodestrings} is enabled

git-svn-id: branches/jvmbackend@18781 -
2011-08-20 08:35:47 +00:00
pierre
1c2a5f9819 + Update all Makefile's modified by
change in utils/fpcm/fpcmake.ini in prevous commit.

  Adapt also other files to that change:

  * compiler/globals.pas: Replace $FPCTARGET by os_string if
  tf_use_8_3 flag is set for target_info also.

  * tests/Makefile.fpc: Modify TEST_TARGETSUFFIX in the same way
  as TARGETSUFFIX was modified in previous commit.

  * tests/utils/dotest.pp:
    + New variable UseOSOnly, set to true if only target OS name
    should be used for subdirectories.

git-svn-id: trunk@18228 -
2011-08-16 20:10:19 +00:00
marco
39d7bb511d * Regenned all makefiles before 2.6.x branching.
git-svn-id: trunk@18073 -
2011-08-03 13:41:52 +00:00
michael
a201f07420 * Added share mode argument to FileCreate call
git-svn-id: trunk@17548 -
2011-05-23 21:11:07 +00:00
Károly Balogh
2b94b3255c + compile some units in correct order of dependence
git-svn-id: trunk@17146 -
2011-03-19 14:43:58 +00:00
Károly Balogh
3d203220a5 + regenerated Makefile
git-svn-id: trunk@17143 -
2011-03-17 16:11:10 +00:00
Károly Balogh
8b7e98db4b + compile mouse before keyboard, as keyboard depends on it (MorphOS)
git-svn-id: trunk@17142 -
2011-03-17 08:10:30 +00:00
Károly Balogh
f5930b0dfc * MorphOS, Amiga: changed definition of sLineBreak to match other system units, fixes fcl-base build
git-svn-id: trunk@16192 -
2010-10-21 02:13:57 +00:00
Jonas Maebe
8b0301409a + i386/iphonesim target for the new iPhoneSimulator in Xcode 3.2.4 and
later: the same as i386/darwin, except
      a) uses the non-fragile Objective-C ABI/runtime
      b) does not require stubs for direct calls/jumps (not required for
         i386/darwin under 10.6 and later either, but still generated
         there for backwards compatibility)
      c) only the same packages are enabled as for ARM/Darwin
      d) MacOSAll is compiled specifically for the iPhoneSimulator SDK
    This target also defines the symbol "darwin" apart from the target
    name "iphonesim" for source code compatibility reasons.

git-svn-id: trunk@16065 -
2010-09-29 21:56:47 +00:00
florian
786c4e206f * enables compilation of iso7185 unit on all targets
git-svn-id: trunk@15730 -
2010-08-06 17:45:42 +00:00
marco
be98b13554 * fix for 11263, changed fileread and fd_zero to out using $modeswitch.
git-svn-id: trunk@14965 -
2010-03-01 22:35:14 +00:00
marco
8e9a7e14ad * Revised yesterday solution to a more general one. Executeprocess gets
another parameter, a set type with flags, default = []

git-svn-id: trunk@14572 -
2010-01-07 20:49:28 +00:00
Károly Balogh
95ccc3ea40 + fixed sysdir.inc to follow recent rtl changes. trunk now cycles again on MorphOS.
git-svn-id: trunk@14542 -
2010-01-04 23:49:46 +00:00
Károly Balogh
99a94573ed + removed empty Beep(); function, uses OnBeep now, sysutils should compile again
git-svn-id: trunk@14541 -
2010-01-04 23:42:16 +00:00
Jonas Maebe
e246cac3ac * regenerated using latest fpcmake
git-svn-id: trunk@13487 -
2009-08-02 18:40:14 +00:00
Károly Balogh
c11243c83d * made MorphOS build to cycle again: fixed path_absolute() for Amiga and MorphOS, and fixed AllFilesMask for MorphOS
git-svn-id: trunk@13474 -
2009-07-30 00:57:06 +00:00
Károly Balogh
ddad9f320d * fixed typo
git-svn-id: trunk@12822 -
2009-02-28 12:14:59 +00:00
Károly Balogh
ca28c013af * added right mousebutton support
* removed superverbose debug for snapshot release
* added Enter to rawkey table

git-svn-id: trunk@12821 -
2009-02-28 12:12:19 +00:00
Károly Balogh
c9308d4299 * Somewhat working mouse support (left button + moves), only to be used with FV
* An attempt to optimize forced screen updates in video mode, because they really blow, and Free Vision forces a whole screen update on every window move
* Probably other stuff i already forgot

git-svn-id: trunk@12799 -
2009-02-26 00:46:27 +00:00
Károly Balogh
a55ec3bf3b * have a larger buffer for Exec() (can't remember if this was actually an useful change, but let's have it commited, as next snapshot will have this code anyway)
git-svn-id: trunk@12795 -
2009-02-25 21:32:29 +00:00
florian
344ccfce72 * who uses C style operators in the heart of FPC ;)? fixed
git-svn-id: trunk@12764 -
2009-02-21 22:59:10 +00:00
Jonas Maebe
d4d7b695c7 - removed all "islibrary:=false;" assignments from system unit
initialisation code, because that's a typed constant already initialised
    to that value and it interferes with a generic solution to set islibrary
    to true for libraries

git-svn-id: trunk@12376 -
2008-12-17 17:48:04 +00:00
Károly Balogh
193b658325 + fixed SysUpdateScreen(true) refresh bugs
git-svn-id: trunk@12000 -
2008-10-30 21:59:59 +00:00
Károly Balogh
4a5a3e3118 + support for changing window size in keyboard and video units
* still has bugs, but good for a start

git-svn-id: trunk@11997 -
2008-10-30 20:52:22 +00:00
Károly Balogh
eac6ce9a98 + Some keyboard unit rework
* moved more RawKeyCode handling into our nice table from custom code
  * initial sysmsg support (SysClose, for now)

git-svn-id: trunk@11983 -
2008-10-27 09:33:36 +00:00
Károly Balogh
423aca9d63 + Huge video unit rework for Amiga/MorphOS
* removed tons of Win32 unit leftovers, and other cleanups
  * cursor handling fixes, additions (like changing cursor shapes)
  * added initial support for sysmsgs

git-svn-id: trunk@11982 -
2008-10-27 09:30:46 +00:00
Károly Balogh
42871abdeb + ObtainPen()'s 2nd argument is actually a longint, not cardinal,
because -1 is a valid argument for this function there.
  This bug is also in the original AmigaOS C SDK, which specifies
  this argument as ULONG, and defines -1 as valid argument for it.

git-svn-id: trunk@11981 -
2008-10-27 09:27:07 +00:00
Károly Balogh
07f30fbd47 + more work on video and keyboard units
* less debug during init
  * SysGetShiftState() support, reworked RawKeyCode support
  * support for more keys, with qualifiers. for example some clipboard operations work now in FV.

git-svn-id: trunk@11973 -
2008-10-25 00:49:42 +00:00
Károly Balogh
b683ddf406 + added a quick'n'dirty Sysutils.Sleep() implementation
git-svn-id: trunk@11965 -
2008-10-24 00:26:20 +00:00
Károly Balogh
eb1f214c3d * fixes and optimizations in video unit
+ now properly sets ScreenColor to true
  + optimized DrawChar() to use BltTemplate() instead of WritePixel() loops
    this results in less gfx operations, major speedup, and elimination of
    possible display trashing (WritePixel() doesn't wait for blit operations
    to finish)
  + updated vgafont in videodata.inc to be in proper format for BltTemplate()
  + other tweaks here and there

git-svn-id: trunk@11964 -
2008-10-23 23:40:36 +00:00
marco
e5db5e4aa8 * regened makefiles to propagate makefile versions
git-svn-id: trunk@11947 -
2008-10-22 17:32:15 +00:00
Károly Balogh
a096096de1 + fixed Sysutils' ExecuteProcess() to allow longer ComLine than 256 chars (smartlinking needs this badly)
git-svn-id: trunk@11867 -
2008-10-07 19:33:30 +00:00
florian
f97c2968f9 * fixed widestring/unicodemanager initialisiation
git-svn-id: trunk@11743 -
2008-09-10 21:02:50 +00:00