Re: [fpc-devel] Small Wstrings problem

2005-06-27 Thread Florian Klaempfl
Martin Schreiber wrote:
 On Sunday 26 June 2005 20.07, Florian Klaempfl wrote:
 
 
I didn't merge the widestring memory handling to fixes and it wasn't
wrong to do so, see the current failures :)
 
 
 They don't work with checkpointer (see bug report 4125).

Anybody a suggestion how we should handle this? There was a bug report
(http://www.freepascal.org/bugs/showrec.php3?ID=2423) that FPC causes problems
when working with variants and widestrings and passing them to windows.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Small Wstrings problem

2005-06-27 Thread Michael Van Canneyt



On Mon, 27 Jun 2005, Florian Klaempfl wrote:


Martin Schreiber wrote:

On Sunday 26 June 2005 20.07, Florian Klaempfl wrote:



I didn't merge the widestring memory handling to fixes and it wasn't
wrong to do so, see the current failures :)



They don't work with checkpointer (see bug report 4125).


Anybody a suggestion how we should handle this? There was a bug report
(http://www.freepascal.org/bugs/showrec.php3?ID=2423) that FPC causes problems
when working with variants and widestrings and passing them to windows.


In delphi, on windows the function NewWideString calls SysAllocStringlen
to allocate the wide string. On Linux, a simple getmem is used.

When freeing the wide string, SysFreeString is used.

I don't see any other way to do it. To make the code 'system
independent' you could introduce a set of procedural variables
GetWideStringMem : Function (Len : Integer) : Pointer;
FreeWideString : procedure(var P : Pointer);

Which are set to defaults on non-win32, and which are set to 2 functions
that call the appropriate windows functions.

Michael.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Small Wstrings problem

2005-06-27 Thread Florian Klaempfl
Martin Schreiber wrote:

 On Monday 27 June 2005 11.38, Peter Vreman wrote:
 
Move all FPC_CHECKPOINTER calls to a function tcg.maybe_checkpointer()
that also requires a tdef as argument. Make an exception for
tdef=widestring under windows.
 
 
 Does it work with pwidechar(widestring) or pwidechar(@widestring[index])?
 We should have an additional string type 'OLEString' or 'BSTR' on windows, 
 'widestring' should remain reference counted and heap based on all platforms.

That won't like people who count on delphi compatibility. Maybe we should make
the widestring heap allocation through the widestring manager so heaptrace can
hook it.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Small Wstrings problem

2005-06-27 Thread Martin Schreiber
On Monday 27 June 2005 13.53, Florian Klaempfl wrote:

 That won't like people who count on delphi compatibility. Maybe we should
 make the widestring heap allocation through the widestring manager so
 heaptrace can hook it.

Then the other way around, a new widestring which is reference counted
on all platforms for people like, me who count on cross platform 
portability. So i can write

type 
 {$ifdef FPC}
 mywidestring  = FPCwidestring;
{$else}
 mywidestring = widestring;
{$endif}

and exchange 'widestring' by 'mywidestring' 10'000 times...
In most times i use widestrings and not ansistrings and i estimate
the performance gain of the FPC widestrings over the not reference
counted delphi strings.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] WinCE port

2005-06-27 Thread Yury Sidorov
Hello,

I started WinCE port. Any help is appreciated.

Currently not much is done.
I added added new (empty) target wince to compiler and built crosscompiler 
for arm with wince target.

I have some questions:
1. What is simplest way to add wince target to makefiles? The only way I see 
is to edit all makefile.fpc files and add wince to them.
2. I need fakertl stuff to start.
3. Any knowledge of how to implement export,import,linker stuff for wince 
target?
4. Port of windows unit for WinCE?

Yury Sidorov. 



___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] ARM crosscompiler in latest trunk

2005-06-27 Thread Yury Sidorov
Hi,

I updated source to the latest 510 revision and get the following error 
while compiling ARM crosscompiler:

cpubase.pas(416,65) Fatal: Syntax error, , expected but ) found

The error is due to type Tsubregister was changed.

Yury Sidorov. 



___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] WinCE port

2005-06-27 Thread Florian Klaempfl
Yury Sidorov wrote:

 Hello,
 
 I started WinCE port. Any help is appreciated.
 
 Currently not much is done.
 I added added new (empty) target wince to compiler and built crosscompiler 
 for arm with wince target.
 
 I have some questions:
 1. What is simplest way to add wince target to makefiles? The only way I see 
 is to edit all makefile.fpc files and add wince to them.

What do you mean with all? Only the top level make files should really need
extra effort. For the other Makefiles it's enough with a fpcmake of 2.1.1 svn
branch to regenerate them.

 2. I need fakertl stuff to start.

Well, I'am not sure how close wince to win32 is. Maybe you can start with the
win32 system unit?

 3. Any knowledge of how to implement export,import,linker stuff for wince 
 target?

No. Probably the same as win32 does. Playing with the gnu c/binutils for wince
would be a good starting point.

 4. Port of windows unit for WinCE?

No idea how much it from win32 differs.

 
 Yury Sidorov. 
 
 
 
 ___
 fpc-devel maillist  -  fpc-devel@lists.freepascal.org
 http://lists.freepascal.org/mailman/listinfo/fpc-devel


___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] WinCE port

2005-06-27 Thread Yury Sidorov
From: Florian Klaempfl [EMAIL PROTECTED]

 1. What is simplest way to add wince target to makefiles? The only way I 
 see
 is to edit all makefile.fpc files and add wince to them.

 What do you mean with all? Only the top level make files should really 
 need
 extra effort. For the other Makefiles it's enough with a fpcmake of 2.1.1 
 svn
 branch to regenerate them.

I do not know much about fpcmake, but as I see there is makefile.fpc file in 
each directory. fpcmake creates makefile files based on makefile.fpc files.
Which makefile.fpc files should be changed to add new target os?

 2. I need fakertl stuff to start.

 Well, I'am not sure how close wince to win32 is. Maybe you can start with 
 the
 win32 system unit?

Yes, I hope actual system unit for WinCE will be based in win32 system unit. 
But first of all I need fpc to create working WinCE executables, so I need 
fake (empty) rtl to test it.

Yury Sidorov.



___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] WinCE port

2005-06-27 Thread Florian Klaempfl

Yury Sidorov wrote:


From: Florian Klaempfl [EMAIL PROTECTED]

1. What is simplest way to add wince target to makefiles? The only way I 
see

is to edit all makefile.fpc files and add wince to them.



What do you mean with all? Only the top level make files should really 
need
extra effort. For the other Makefiles it's enough with a fpcmake of 2.1.1 
svn

branch to regenerate them.



I do not know much about fpcmake, but as I see there is makefile.fpc file in 
each directory. fpcmake creates makefile files based on makefile.fpc files.

Which makefile.fpc files should be changed to add new target os?


I think do get basic things rolling you don't need to change one but 
create a new one in rtl/wince






2. I need fakertl stuff to start.



Well, I'am not sure how close wince to win32 is. Maybe you can start with 
the

win32 system unit?



Yes, I hope actual system unit for WinCE will be based in win32 system unit. 
But first of all I need fpc to create working WinCE executables, so I need 
fake (empty) rtl to test it.


Which tool chain do you plan to use? Using the fakertl is more hazzle 
than starting with a real system unit :)



___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel