Re: [fpc-pascal] Inline assembly using absolute dword ptr

2012-04-23 Thread OBones

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

2012-04-23 Thread OBones

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?

2012-04-23 Thread Reinier Olislagers
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?

2012-04-23 Thread Marco van de Voort
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?

2012-04-23 Thread Reinier Olislagers
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?

2012-04-23 Thread LacaK


  

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

2012-04-23 Thread denisgolovan

> > 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