Re: [fpc-pascal] Inline assembly using absolute dword ptr
Jonas Maebe wrote: On 20 Apr 2012, at 17:50, OBones wrote: So there is a difference with Delphi's assembler where it defaults to relative indexing while FPC defaults to absolute in that context. What exactly do you mean by relative addressing in this context? RIP-relative? In FPC, you indeed have to explicitly mention the RIP register in your reference to get RIP-relative addressing. What I mean is that under Delphi XE2 in x64 mode, if I type this: rcx,qword ptr gs:[$30] I get this generated code: 65488B0D3000 but if I type the "abs" keyword, I get this: 65488B0C253000 while if I do it in x86 mode, I get this : mov ecx,dword ptr fs:[$18] 648B0D1800 so it seems that for Delphi XE2 in x64, the default mode, when no keyword is specified, is to use "relative" indexing which is definitely not what I want. Freepascal, however, appears to use absolute indexing in all mode in this instance, which is fine by me, but something to keep in mind when porting the code. Regards ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Compiling from and to memory
Mattias Gaertner wrote: On Fri, 20 Apr 2012 18:26:28 +0200 Florian Klaempfl wrote: Am 19.04.2012 14:11, schrieb OBones: I looked around in the documentation for "standard input", "pipe", but apart from ways to access them from within a program, I was not able to find any information. Is this possible? If yes, how should I proceed? Do you have any proof that writing/reading to the files to disk is an issue? On modern harddisks and OSes the plain I/O speed is normally not the issue when compiling. True. Lazarus make clean all under Linux 64 bit: ramdisk: real1m8.377s user1m2.584s sys 0m4.212s disk: real1m11.661s user1m5.488s sys 0m4.352s Ah but I don't have any doubt regarding Linux performance, problem is that I'm building under Windows where performances are an order of magnitude lower. And because I have to split my generated files so that FPC does not hit the 2GB memory limit (which it does for a 15M source file), the disk performances are getting more critical. Thanks for the testing anyway. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
[fpc-pascal] Errors compiling fixes_2.6 on win64: forgot to include dblib for mssqlconn?
Good morning list, Running fpcup (64 bit) on my Windows machine gives errors with fpc fixes_2.6 (r21000/21001): C:/development/fpc/compiler/ppcx64.exe -Ur -Xs -O2 -n -S2 -FuC:/development/fpc/rtl/units/x86_64-win64 -FuC:/development/fpc/packages/dblib -FuC:/development/fpc/packages/fcl-base/units/x86_64-win64 -FE. -FUC:/development/fpc/packages/fcl-db/units/x86_64-win64 -dx86_64 -dRELEASE mssqlconn.pp mssqlconn.pp(43,3) Fatal: Can't find unit dblib used by mssqlconn Fatal: Compilation aborted make.exe[5]: *** [mssqlconn.ppu] Error 1 make.exe[5]: Leaving directory `C:/development/fpc/packages/fcl-db/src/sqldb/mssql' Perhaps some of these revisions in trunk could be backported: r20692 | marco | 2012-04-02 13:46:51 +0200 (ma, 02 apr 2012) | 2 lines * reenable dblib/freetds for win64, after successfull test. r20682 | marco | 2012-03-31 22:11:51 +0200 (za, 31 mrt 2012) | 2 lines * enable parts of sqldb,dblib and fpindexer for Haiku. Patch by Oliver, Mantis #21618 In any case, I suspect this: Index: packages/dblib/fpmake.pp === --- packages/dblib/fpmake.pp(revision 21001) +++ packages/dblib/fpmake.pp(working copy) @@ -5,7 +5,7 @@ uses fpmkunit; Const - DBLibOSes = [linux,freebsd,netbsd,openbsd,win32]; + DBLibOSes = [linux,freebsd,netbsd,openbsd,win32,win64,haiku]; Var P : TPackage; may be sufficient... but simply running make in the top level dir doesn't seem to take it into account... so presumably there is some step needed to regenerate them... Thanks, Reinier ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Errors compiling fixes_2.6 on win64: forgot to include dblib for mssqlconn?
In our previous episode, Reinier Olislagers said: > Running fpcup (64 bit) on my Windows machine gives errors with fpc > fixes_2.6 (r21000/21001): > > C:/development/fpc/compiler/ppcx64.exe -Ur -Xs -O2 -n -S2 > -FuC:/development/fpc/rtl/units/x86_64-win64 > -FuC:/development/fpc/packages/dblib > -FuC:/development/fpc/packages/fcl-base/units/x86_64-win64 -FE. > -FUC:/development/fpc/packages/fcl-db/units/x86_64-win64 -dx86_64 > -dRELEASE mssqlconn.pp > mssqlconn.pp(43,3) Fatal: Can't find unit dblib used by mssqlconn > Fatal: Compilation aborted > make.exe[5]: *** [mssqlconn.ppu] Error 1 > make.exe[5]: Leaving directory > `C:/development/fpc/packages/fcl-db/src/sqldb/mssql' > > Perhaps some of these revisions in trunk could be backported: > r20692 | marco | 2012-04-02 13:46:51 +0200 (ma, 02 apr 2012) | 2 lines It is hard because 2.6.x uses a different makefile system compared to trunk, which is harder to tune for specific OSes. fpmake is a pain sometimes, but at least it killed the packages/Makefile.fpc file. I think dblib is compiled even, but the packages/Makefile.fpc dependencies of fcl-db are complex, and win64 is a special case for some reason (and I have to find out why. There are three groups 1. linux freebsd openbsd netbsd win32 beos haiku -> have dependencies on all database client libs. 2. win64 wince solaris darwin iphonesim -> have dependencies on all database client libs except for paradox (pxlib) 3. (ELSE) Have no dependencies on clientlibs at all. I added dblib only to the first group. possible solutions: 1. add dblib also to second group con: also enabled it for the others in that group. 2. move win64 to first group. con: does pxlib run on win64? 3. refactor everything. > may be sufficient... but simply running make in the top level dir > doesn't seem to take it into account... so presumably there is some step > needed to regenerate them... In 2.6.x only two packages are fpmake built (as test case, one of them being fcl-web). Migration of the rest has stalled since fpmake is still not trouble free in trunk. So merging anything that touches makefiles and dependencies requires manual work when merging from 2.7.x to 2.6.x ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Errors compiling fixes_2.6 on win64: forgot to include dblib for mssqlconn?
On 23-4-2012 10:48, Marco van de Voort wrote: > In our previous episode, Reinier Olislagers said: > It is hard because 2.6.x uses a different makefile system compared to trunk, > which is harder to tune for specific OSes. Arrrgh. > I think dblib is compiled even, but the packages/Makefile.fpc dependencies > of fcl-db are complex, and win64 is a special case for some reason (and I > have to find out why. > I added dblib only to the first group. > > possible solutions: > 1. add dblib also to second group >con: also enabled it for the others in that group. dblib uses FreeTDS which should be available/compile for at least OSX and Solaris. Win CE, iphonesim: never heard of it working there, but I'm not a FreeTDS guru. Worst case would be that that dblib fails to compile, blowing up the build again; another risk may be that there actually isn't a FreeTDS library port for that platform. Lacak2 and Ludo Brands quite probably have a better idea whether the first problem may occur; I'd say the other problem is not that big of a deal ;) > 2. move win64 to first group. >con: does pxlib run on win64? Perhaps the easiest way... if one can accept a Paradox connector without the required library being available... > 3. refactor everything. > In 2.6.x only two packages are fpmake built (as test case, one of them being > fcl-web). Migration of the rest has stalled since fpmake is still not > trouble free in trunk. > > So merging anything that touches makefiles and dependencies requires manual > work when merging from 2.7.x to 2.6.x Ok. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Errors compiling fixes_2.6 on win64: forgot to include dblib for mssqlconn?
I added dblib only to the first group. possible solutions: 1. add dblib also to second group con: also enabled it for the others in that group. dblib uses FreeTDS which should be available/compile for at least OSX and Solaris. Win CE, iphonesim: never heard of it working there, but I'm not a FreeTDS guru. Worst case would be that that dblib fails to compile, Why it should? dblib.pp will compile on any platform on which FPC will . Another question if there is available port of FreeTDS db-library. If not, then of course user cann't use dblib (in his application) but it does not break building of FPC. Or I miss something? blowing up the build again; another risk may be that there actually isn't a FreeTDS library port for that platform. Yes it may happen, but I do not see this as a real problem. So simplest way is IMO: 1. add dblib also to second group ;-) L. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re:[fpc-pascal] Commercial support for Lazarus/FPC
> > Same for Lazarus, although the numbering is different. > > There is always a svn branch "fixes", while the svn "trunk" is the > > development version. The fixes receives only bug fixes. > > The release was 0.9.30. The development version was 0.9.31. Then came > > several minor releases 0.9.30.2,3,4,5 with fixes. > > Next version is 1.0 (fixes branch), development has version 1.1 (trunk). > > > > Mattias I know about those branches. But still, I'd like to know more about commercial support. Could you present some information about services behind it? Not everything is backported and unfortunately fpc trunk sometimes not too stable. Especially when using templates/generics and interfaces. Moreover, I'd like to understand the terms of support for components which are part of FPC and Lazarus. -- Regards, Denis ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal