Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-29 Thread Fred van Stappen
Hello Martin.


OK, I will (try to) be patient and wait for the first mselang release.


Before that very expected moment I will do a break with Pascal.


Thanks for all Martin.


Fre;D
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-27 Thread Martin Schreiber
On Tuesday 27 June 2017 14:32:16 Fred van Stappen wrote:
>
> Other thing...
>
> In fpc, to initialize a variable:
>
> var
> x : integer = -1 ;
> y : integer = -1 ;
> z: integer = -1 ;
>
> I would prefer:
>
> var
> x, y, z : integer = -1 ;
>
MSElang probably will have no initializers for local variables.
"
var
 x, y, z : integer = -1 ;
"
actually is
"
var
 x, y, z : integer;
begin
 x:= -1;
 y:= -1;
 z:= -1;
"
so I think it should be written in this style.

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-27 Thread Fred van Stappen

>> Personally, I do not like ^, @ and friends.
>> See that topic:
>>http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html

> For me reference and dereference operations are operations like addition and 
> substraction. For me
> dest:= s1 + s1 - delta + p1^.a.b + p2^.r^;
> is easier to read than
> dest:= s1 plus s1 minus delta plus refptr(p1).a.b plus refptr(refptr(p2).r));

Huh, "minus" (in place of "-") and  "plus" (in place of "+") was a joke.

But, personally, I prefer :

dest:= s1 + s1 - delta + refptr(p1).a.b + refptr(refptr(p2).r));

But is is question of taste (and if you have a no-latin keyboard) : to write ^ 
with my keyboard, I need to do shift  and 2 times the  "^" key, keeping the 
shift key down.

...

Other thing...

In fpc, to initialize a variable:

var
x : integer = -1 ;
y : integer = -1 ;
z: integer = -1 ;

I would prefer:

var
x, y, z : integer = -1 ;


Fre;D
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-26 Thread Martin Schreiber

> Personally, I do not like ^, @ and friends.
>
> See that topic:
> http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html
>
For me reference and dereference operations are operations like addition and 
substraction. For me
"
dest:= s1 + s1 - delta + p1^.a.b + p2^.r^;
"
is easier to read than
"
dest:= s1 plus s1 minus delta plus refptr(p1).a.b plus refptr(refptr(p2).r));
"

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-26 Thread Fred van Stappen

>> - Would it be possible to compile fpc-code with mselang (would be the

>> fpc-syntax compatible)  ?

>Yes, as long you use the subset used in MSEide+MSEgui, especially no macros
and no generics.

Perfect.

>> - Do you have plan to make work some (needed) features that do not work
>> with fpc ?

> Sure.

Perfect.

>>   I will be happy if this (that does not work correctly with fpc) work with
>> mselang :-  {$I something.inc}  and friends ---> the fpc compiler can 
>> not deal if
>>  something was changed in something.inc, need to re-build all.

>Are you sure? I vaguely remember that I read somewhare that FPC tracks changed 
>include files.

Huh, with last fpc commit it (still) does not work ok.

If, for example, in your something.inc you add or change  {$DEFINE something}, 
the fpc compiler does not see it.
You must then re-build all.

>>   -  {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal
>> if something was changed in UNITPATH, need to re-build all.

>I don't know that option. Is it a good idea to define paths in source?

I would really like it (if it works better than fpc).

Huh, something else...

Personally, I do not like ^, @ and friends.

See that topic: 
http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html

Thanks.

Fre;D



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-25 Thread Martin Schreiber
On Sunday 25 June 2017 14:56:52 Fred van Stappen wrote:
>
> - Would it be possible to compile fpc-code with mselang (would be the
> fpc-syntax compatible)  ?
>
Yes, as long you use the subset used in MSEide+MSEgui, especially no macros 
and no generics.
>
> - Do you have plan to make work some (needed) features that do not work 
> with fpc ?
>
Sure.

>   I will be happy if this (that does not work correctly with fpc) work with
> mselang :
>
>
>
>   -  {$I something.inc}  and friends ---> the fpc compiler can not deal if
> something was changed in something.inc, need to re-build all.
>
Are you sure? I vaguely remember that I read somewhare that FPC tracks changed 
include files.

>   -  {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal
> if something was changed in UNITPATH, need to re-build all.
>
I don't know that option. Is it a good idea to define paths in source?

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-06-25 Thread Fred van Stappen
Hello Martin.


http://free-pascal-general.1045716.n5.nabble.com/Implementing-AggPas-with-PtcGraph-td5728957i80.html

+


https://gitlab.com/mseide-msegui/mselang/tree/master/mselang/benchmark/putimage


=  WoW.



Huh. some questions...


- Would it be possible to compile fpc-code with mselang (would be the 
fpc-syntax compatible)  ?


- Do you have plan to make work some (needed) features that do not work  with 
fpc ?

  I will be happy if this (that does not work correctly with fpc) work with 
mselang :



  -  {$I something.inc}  and friends ---> the fpc compiler can not deal if 
something was changed in something.inc, need to re-build all.

  -  {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal if 
something was changed in UNITPATH, need to re-build all.


Thanks.


Fre;D


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-26 Thread Martin Schreiber
On Friday 26 May 2017 12:02:00 Fred van Stappen wrote:

> Do you have a idea when it will be possible to compile a library that uses
> those units ? :
>
>
> ---> Classes, ctypes, Math, sysutils. dynlibs, Pipes, cthreads, unixtype.
>
Not in near future, it still is much work to do.
>
Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-26 Thread Fred van Stappen
Hello Martin.


The excellent result of float benchmark with mselang gives a big hope for all 
Pascal developers.


Do you have a idea when it will be possible to compile a library that uses 
those units ? :


---> Classes, ctypes, Math, sysutils. dynlibs, Pipes, cthreads, unixtype.


Thanks.


Fre;D
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Thursday 25 May 2017 00:50:46 Jon Foster wrote:
>
>
>  Apple traded out GCC for CLang / LLVM some time ago. The only downside
> I've heard about LLVM is that its slow. Like GCC & friends weren't. But I
> think a lot GCC slowness is inherited from binutils and that's probably the
> same for CLang/LLVM.

I fear the slowness of LLVM - and it really slow - is also caused by the 
excessive use of "advanced C++ techniques".

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Jon Foster

  
  

On 05/24/2017 01:27 PM, Fred van
  Stappen wrote:


  
  
  
> So LLVM does something
like what Java's compiler does. 

  
The kernel of FreeBSD is
made by LLVM-clang compiler.
(Even if the script to
build the kernel needs 8 different compilers ! (that are
in fact copy the same clang compiler with 8 different names
!).

  
  

Apple traded out GCC for CLang / LLVM some time ago. The only
downside I've heard about LLVM is that its slow. Like GCC &
friends weren't. But I think a lot GCC slowness is inherited from
binutils and that's probably the same for CLang/LLVM. That's one of
the reasons that FPC has been struggling to build internal
replacements for the binutils suite. Still have to use binutils on
many platforms. 

-- 
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about

Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com

  


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Fred van Stappen
> So LLVM does something like what Java's compiler does.


The kernel of FreeBSD is made by LLVM-clang compiler.

(Even if the script to build the kernel needs 8 different compilers ! (that are 
in fact copy the same clang compiler with 8 different names !).


Fre;D


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Jon Foster

On 05/24/2017 10:51 AM, Martin Schreiber wrote:
> On Wednesday 24 May 2017 18:58:40 Graeme Geldenhuys wrote:
>> On 2017-05-24 17:52, Martin Schreiber wrote:
>>> which will be optimized ("opt") and compiled to machine code ("llc") or
>>> runned by a just in time compiler or interpreter ("lli").
>> So LLVM does something like what Java's compiler does. I know nothing
>> about LLVM. :)
>>
> There is also a Java Script backend for LLVM (LLVM bitcode -> Java Script).
>
The LLVM project looked very interesting. I've had an eye on it for a 
while. I was looking to implement my own language too. :-D


-- 
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about

Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com
541-410-2760
Making computers work for you!


-- 
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about

Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Wednesday 24 May 2017 18:58:40 Graeme Geldenhuys wrote:
> On 2017-05-24 17:52, Martin Schreiber wrote:
> > which will be optimized ("opt") and compiled to machine code ("llc") or
> > runned by a just in time compiler or interpreter ("lli").
>
> So LLVM does something like what Java's compiler does. I know nothing
> about LLVM. :)
>
There is also a Java Script backend for LLVM (LLVM bitcode -> Java Script).

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Graeme Geldenhuys
On 2017-05-24 17:52, Martin Schreiber wrote:
> which will be optimized ("opt") and compiled to machine code ("llc") or runned
> by a just in time compiler or interpreter ("lli").

So LLVM does something like what Java's compiler does. I know nothing 
about LLVM. :)

Regards,
   Graeme


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Wednesday 24 May 2017 17:25:02 Jon Foster wrote:
>
> MSElang is using LLVM, right? Are you using an upstream provided x86 back
> end or did you have to write that?

MSElang produces LLVM bitcode
http://llvm.org/docs/BitCodeFormat.html
which will be optimized ("opt") and compiled to machine code ("llc") or runned 
by a just in time compiler or interpreter ("lli").

Martin


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Jon Foster
On 05/24/2017 06:32 AM, Graeme Geldenhuys wrote:
> On 2017-05-24 14:15, Martin Schreiber wrote:
> Bottom line FPC sucks for game development - unless you offload
> pretty much everything onto a GPU - something I was hoping wouldn't be
> needed for that project.
>
> FPC's saving grace is that most applications seem to be console, web or
> desktop apps, so those inefficient binaries go unnoticed.
Actually all you've done is proven that floating point is slow. FPC 
produces some pretty good code. I can still parse the entirety of the fpGUI 
"src" tree and build a fully completed model of the class hierarchy faster 
than the blink of an eye. All on my aging core 2 2GHz. In fact it happens 
so fast I have to go look to see if the tree was built, because otherwise 
I'm under the impression nothing happened.

So its saving grace is that it does most everything else well. There is 
always room for improvement.

-- 
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about

Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Graeme Geldenhuys
On 2017-05-24 15:35, Jon Foster wrote:
> Interesting! Only a 25% increase between your 3.2GHz and my 1.9GHz CPUs.

No real surprise. For many many years now, GHz is not a reliable 
measuring stick to measure performance differences between CPUs. A 2Ghz 
Intel i7 could easily outperform a 2.5Ghz Intel i3 - depending on how 
you test. For the poor consumer this is all a bloody nightmare.

Regards,
   Graeme


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Jon Foster
On 05/24/2017 07:31 AM, Martin Schreiber wrote:
> On Wednesday 24 May 2017 15:15:15 Martin Schreiber wrote:
>> On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote:
 So what's MSElang's frame rate and on what kind of machine/OS?
>>> Not ready yet.
>> Linux 32 bit
>> Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
>>
>> With round() operations
>> https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mcte
>> st/mctest.pas
>>
>> FPC 3.0.2
>> -O- -> 8 FPS
>> -O4 -CfSSE3 -CpCOREI -> access violation
>> -O3 -CfSSE3 -CpCOREI -> access violation
> -O1 -CpCOREI -CfSSE3 -> 12.5 FPS
>
Interesting! Only a 25% increase between your 3.2GHz and my 1.9GHz CPUs.

-- 
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about

Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com
541-410-2760
Making computers work for you!


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Wednesday 24 May 2017 15:15:15 Martin Schreiber wrote:
> On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote:
> > > So what's MSElang's frame rate and on what kind of machine/OS?
> >
> > Not ready yet.
>
> Linux 32 bit
> Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
>
> With round() operations
> https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mcte
>st/mctest.pas
>
> FPC 3.0.2
> -O- -> 8 FPS
> -O4 -CfSSE3 -CpCOREI -> access violation
> -O3 -CfSSE3 -CpCOREI -> access violation

-O1 -CpCOREI -CfSSE3 -> 12.5 FPS

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Jon Foster
On 05/24/2017 06:15 AM, Martin Schreiber wrote:
> On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote:
>
>>> So what's MSElang's frame rate and on what kind of machine/OS?
>> Not ready yet.
>>
> Linux 32 bit
> Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
>
> With round() operations
> https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest.pas
>
> FPC 3.0.2
> -O- -> 8 FPS
> -O4 -CfSSE3 -CpCOREI -> access violation
> -O3 -CfSSE3 -CpCOREI -> access violation
> -O4 -CpCOREI -> 8.2 FPS
>
> MSElang, LLVM 3.8.0
> No options -> 4.2 FPS
> -O3 -> 5.9 FPS
> -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 33.5 FPS
>
> With trunci32() operations
> https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest_trunc.pas
> -O3 -> 8.1
> -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 41.5 FPS
ROCK ON!

Since a server crash got me up *WAY* early this morning I ended up with an 
hour of extra time so I went over Jonas' suggestions again. I made tweaks 
fixing integer types, using trunc() instead of round, ... The over all 
improvement is only +0.6%, as I predicted nowhere near the 10x+ needed to 
compete with the other languages. I'd also like to point out that most of 
these things deal with internals in the compiler, which is what the initial 
complaint was.

I also tried the SSE3 flag, which for a brief period of time brought me up 
to 10fps on my 1.9GHz i3 notebook. That is just under a 3x improvement. But 
then it segfaulted. As Jonas pointed out -O1 is about as far as you can 
take it with -CfSSE3 due to bugs in FPC. Also Jonas pointed out that they 
don't have a floor() with a float output. Indeed I could not find any 
rounding mechanism, in the docs, that produced a float output. So tried 
substituting -frac(). It was actually marginally slower. :-)

His item #4 about the time base is my doing. It was the method I 
substituted for the the SDL_GetTicks() time source, which is probably much 
faster than FPC's time(). I'm sure there is a much better system call for 
that. But the short of it is that its only happening once per render and 
its total contribution to the performance deficit is inconsequential.

Your machine is closer to what Graeme's is/was than mine is and that 
41.5FPS is *SWEET*!

THX - Jon

-- 
Sent from my Debian Linux laptop
Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Wednesday 24 May 2017 15:32:05 Graeme Geldenhuys wrote:
> On 2017-05-24 14:15, Martin Schreiber wrote:
> > FPC 3.0.2
> > -O- -> 8 FPS
> > -O4 -CfSSE3 -CpCOREI -> access violation
> > -O3 -CfSSE3 -CpCOREI -> access violation
> > -O4 -CpCOREI -> 8.2 FPS
>
> Bottom line FPC sucks for game development - unless you offload
> pretty much everything onto a GPU - something I was hoping wouldn't be
> needed for that project.
>
> FPC's saving grace is that most applications seem to be console, web or
> desktop apps, so those inefficient binaries go unnoticed.
>
Maybe with working SSE3 on 64 bit it is not so bad. Without SSE3 FPC is faster 
than LLVM.

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Graeme Geldenhuys
On 2017-05-24 14:15, Martin Schreiber wrote:
> FPC 3.0.2
> -O- -> 8 FPS
> -O4 -CfSSE3 -CpCOREI -> access violation
> -O3 -CfSSE3 -CpCOREI -> access violation
> -O4 -CpCOREI -> 8.2 FPS

Bottom line FPC sucks for game development - unless you offload 
pretty much everything onto a GPU - something I was hoping wouldn't be 
needed for that project.

FPC's saving grace is that most applications seem to be console, web or 
desktop apps, so those inefficient binaries go unnoticed.

Regards,
   Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Graeme Geldenhuys
On 2017-05-24 06:47, Martin Schreiber wrote:
> That is wrong, the code is not identical. Please read the mail again,
> especially about the differences of round().

There was so many iterations of that program, I lost track of which one 
I published. But I know for a fact I tried frac(), trunk() and round() 
in my tests, and they made little or no difference in the FPS count.

Regards,
   Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-24 Thread Martin Schreiber
On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote:

>
> > So what's MSElang's frame rate and on what kind of machine/OS?
>
> Not ready yet.
>
Linux 32 bit
Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz

With round() operations
https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest.pas

FPC 3.0.2
-O- -> 8 FPS
-O4 -CfSSE3 -CpCOREI -> access violation
-O3 -CfSSE3 -CpCOREI -> access violation
-O4 -CpCOREI -> 8.2 FPS

MSElang, LLVM 3.8.0
No options -> 4.2 FPS
-O3 -> 5.9 FPS
-O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 33.5 FPS

With trunci32() operations
https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest_trunc.pas
-O3 -> 8.1
-O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 41.5 FPS

Martin



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk


Re: [MSEide-MSEgui-talk] fpcflop benchmark

2017-05-23 Thread Martin Schreiber
On Wednesday 24 May 2017 04:46:04 Jon Foster wrote:
> On 05/23/2017 10:45 AM, Martin Schreiber wrote:
> > On Friday 19 May 2017 18:06:18 Jon Foster wrote:
> >> On 05/07/2017 03:05 AM, Graeme Geldenhuys wrote:
> >>> On 2017-05-07 08:20, Martin Schreiber wrote:
>  MSElang has been designed as a high performance language so it can't
>  be so simple.
> >>>
> >>> [...]
> >>> Although many on the FPC mailing list seem content to come up with
> >>> excuses or blame Graeme for poor design it seems to me the real
> >>> questions is: Why is x/y, when both are declared as singles, so
> >>> much slower in FPC then it is in language X. So I'd really like to see
> >>> how MSElang scores in this arena. I've been contemplating some game
> >>> scenarios and I've been keeping my eye out for an improved language.
> >>> Maybe I should get on board with MSElang.
> >
> > Please read Jonas mail about the problems of the testcase:
> > https://www.mail-archive.com/fpc-pascal%40lists.freepascal.org/msg46162.h
> >tml
>
> Yes, I've read his post and he had an idea or two that might improve FPC's
> performance somewhat. I think Graeme addressed him with a reply. The bottom
> line was that the identical code runs amazingly faster in other languages.

That is wrong, the code is not identical. Please read the mail again, 
especially about the differences of round().

[...]

> Your image looks like its probably doing things right but the output is
> scrambled. The x & y dimensions in the array that I substituted for the SDL
> drawing surface are probably reversed.

So it is better:
"
var
  screen: array [0..s_h-1, 0..s_w-1] of LongInt;
  texmap : array[0..16*16*16*3-1] of LongInt;
  map : array[0..64*64*64-1] of smallint;

procedure  plot(x,y,c : LongInt) {$ifdef FPC}inline{$endif};
begin
  screen[y, x] := c;
end;
"
> So what's MSElang's frame rate and on what kind of machine/OS?
>
Not ready yet.

Martin

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk