another question about debug information:
while debugging with gdb, i have found that object methods are 'mapped' to
the debugger (or debug information?) as functions with additional parameter
'self' (what they actually are),
so let's say, i have an object m: TMyObject with method procedure MyMet
> It is impossible to encode properties in stabs. In Dwarf you can in theory
> describe pretty much anything, but gdb does not yet support the full Dwarf
> specifications. I guess it would be possible already to add debug info for
> properties that simply map directly to a field, but other than tha
As much as I do appreciate your comments, I really can't believe that
the GNU GCC community took the pain to fully integrate OpenMP that
deeply in their system that it can be used by just issuing a single
#pragma line, if there would be no benefit to be expected.
-Michael
Actually, most p
On 04 Nov 2008, at 14:33, dmitry boyarintsev wrote:
What debug information FP-compiler generates?
Stabs or Dwarf.
To make proper expression
evaluation, debugger should be aware of properties, otherwise result
of the
lines like this:
i := Memo1.Lines.Count; // there Lines and Count are p
On 03 Nov 2008, at 21:46, Sergei Gorelkin wrote:
The attached patch implements i386-specific codegeneration for 32 ->
64 bits multiplications, approximately as described in "FPC HowToDo"
wiki page.
Thanks!
I also copied the generic part from tcgaddnode into
ti386addnode.second_mul, so t
I had bad experiences using the PIC18 with USB interfaces (bad latency,
loss of connection without automatic reconnect). We reverted to RS232/RS422,
and are experimenting with the newer ethernet versions.
Thanks for the warning. I am going to discuss this with the FAE.
Did you use host or devi
How big is the implementation? In LUTs, FFs, BlockRAMs?
For Linux you need the biggest processor ("f") which (in Altera speak )
needs 1400..1800 LEs and three M4Ks. I don't kn ow how LEs translate to
LUTs and FFs. M4Ks are 4 K Bit block RAM units. You can configure I and
D Caches which of co
Michael Schnell wrote:
which system/vendor did you choose?
We are going to design some controller boards with Altera Cyclone III
FPGAs. The "NIOS" processor is optimized for this FPGA architecture, is
very easily implemented into the HDL design, offers acceptable features
How big is the imp
In our previous episode, Michael Schnell said:
> I'm going to use the PIC24 series, as same features an USB interface.
I had bad experiences using the PIC18 with USB interfaces (bad latency,
loss of connection without automatic reconnect). We reverted to RS232/RS422,
and are experimenting with the
Hello
What debug information FP-compiler generates? To make proper expression
evaluation, debugger should be aware of properties, otherwise result of the
lines like this:
i := Memo1.Lines.Count; // there Lines and Count are properties
cannot be evaluated.
Bernd Mueller wrote:
Michael Schnell wrote:
This is why I decided to handle this kind of complexity with an FPGA
with embedded (Linux-) Processor.
which system/vendor did you choose?
We are going to design some controller boards with Altera Cyclone III
FPGAs. The "NIOS" processor is optimi
Hi.
I little extend compiler parametr -m. Now we can remap message
verbosity. Parametr -m5024_,5025w,5026e means:
do not show message 5024, 5025 is warning and 5026 is error.
Petr
--
Ing. Petr Kristan
.
EPOS PRO s.r.o., Bozeny Nemcove 2625, 530 02 Pardubice
tel: +420 466335223Czech Republic
I'm going to use the PIC24 series, as same features an USB interface.
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
Michael Schnell wrote:
This is why I decided to handle this kind of complexity with an FPGA
with embedded (Linux-) Processor.
which system/vendor did you choose?
Regards, Bernd.
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://list
Florian Klaempfl wrote:
- it solves none of the real MT problems
No. I agree: if a programmer or architect doesn't understand MP the
syntax "sugar" might be misleading and prone to misinterpretation.
But that is already the case with TThread. You wouldn't believe the
times I had to correct c
Florian Klaempfl wrote:
Thaddy schrieb:
I consider parallel as syntactic sugar:
Yes it is sugar ;)
smime.p7s
Description: S/MIME Cryptographic Signature
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman
Thaddy schrieb:
I consider parallel as syntactic sugar:
- the same effect can be achived by some thread classes
- it gives the compiler no opportunity to generate better code
- the use cases are limited, it is nothing being used hundred of times
in a typical program
- it solves none of the real MT
yes, this is why I consider to use an ARM7 controller "in front of" an
ARM9 (Linux) controller, although the ARM9 should have the power to
handle my realtime stuff.
This is why I decided to handle this kind of complexity with an FPGA
with embedded (Linux-) Processor. The fast stuff can be do
Michael Schnell wrote:
I tool a look at the C code of one of the example projects in the ALIOTH
test. Here they seemingly used SIMD vector operations via "typedef int
This has nothing to do with MT or OpenMP though. GCC can vectorize
automatically and takes advantage of SSE.
Micha
_
Just observing the thread I'd like to add some real world examples where
OpenMP like additions can be very effective.
Not because something can't be done otherwise, but because it has
syntactical advantages.
That said, even with the addition of a "parallel for" syntax and the
like (paralell whil
Marco van de Voort wrote:
In our previous episode, Bernd Mueller said:
Marco van de Voort wrote:
So the main reason for using HW as much as possible is to keep the actual uc
free as much as possible for other tasks.
yes, this is why I consider to use an ARM7 controller "in front of" an
ARM9 (
Actually here a "good" implementation of _parallel_ for can be beneficial,
if it implements the pool for sure without Spin Locks. Most developers
(including me until recently), are probably unaware that Windows, Linux, and
Solaris, switch to Spin Locks when you have multiple cores. I thought a
If you google for: pic pascal compiler
There are plenty of options.
I am using mikroPascal, and it's an excelent choice:
http://www.dontronics-shop.com/mikroelektronika-pascal-compiler-for-pic.html
Thanks a lot for the pointers !
-Michael
___
I think that some keyword _parallel_ cannot solve this.
This of course is correct. It's only meant for very simple cases (e.g.
like Matrix Multiplication) where mutual interactions are excluded.
Normally this does not help with _latency_ issues (what I normally use
threads for) but with paral
In our previous episode, Boian Mitov said:
> True, in their case it is core pool. Another concern is that in multicore
> situation the operating systems tend to use spinlocks for the threads
> instead of context switching locks. This probably will lead to CPU waste if
> locks are used to suspen
In our previous episode, Bernd Mueller said:
> Marco van de Voort wrote:
> >
> > So the main reason for using HW as much as possible is to keep the actual uc
> > free as much as possible for other tasks.
>
> yes, this is why I consider to use an ARM7 controller "in front of" an
> ARM9 (Linux) c
Marco van de Voort wrote:
So the main reason for using HW as much as possible is to keep the actual uc
free as much as possible for other tasks.
yes, this is why I consider to use an ARM7 controller "in front of" an
ARM9 (Linux) controller, although the ARM9 should have the power to
handle
Felipe Monteiro de Carvalho schrieb:
> On Tue, Nov 4, 2008 at 8:10 AM, Marco van de Voort <[EMAIL PROTECTED]> wrote:
>> Well, I gave up PIC24 since they don't contain motorcontrol,
>
> I've always wanted to know what does a microcontroller with
> motorcontrol is supposed to do different from a nor
True, in their case it is core pool. Another concern is that in multicore
situation the operating systems tend to use spinlocks for the threads
instead of context switching locks. This probably will lead to CPU waste if
locks are used to suspend the threads in the pool.
With best regards,
Boi
Michael Schnell wrote:
How much do you need on a PIC ?
I did not have many hope for really using Pascal on the PIC, but I am
just thinking about a project with a PIC24 (which is a quite normal 16
bit processor core with 64K linear addressable memory (completely
integrated in the chip), ot
In our previous episode, Boian Mitov said:
> BTW: The CUDA as example simply uses a thread pool. Maintaining a number of
> cores pool will very much eliminate the thread creation.
True, but CUDA single threaded. So you would need a threadpool per thread
that can do _paralel_
_
In our previous episode, Felipe Monteiro de Carvalho said:
> > Well, I gave up PIC24 since they don't contain motorcontrol,
>
> I've always wanted to know what does a microcontroller with
> motorcontrol is supposed to do different from a normal microcontroler?
>
> I mean, to drive a stepper motor
BTW: The CUDA as example simply uses a thread pool. Maintaining a number of
cores pool will very much eliminate the thread creation. Please note that I
am not advocating this addition. There are better ways to add MT support
IMHO, but that is another discussion.
With best regards,
Boian Mitov
On 04 Nov 2008, at 10:56, Michael Schnell wrote:
But OTOH I feel a bit uncomfortable to see yet another intermediate
code (after GCC's "RTL", CLR's (.Net/Mono) "CIL" and FPC's own
stuff) in the game.
GCC's RTL and FPC's node tree representation were never designed as a
generic intermedia
On Tue, Nov 04, 2008 at 10:08:09AM +0100, Michael Schnell wrote:
>
>> Michael. How many MT programs you really made?
>>
> I don't know what you exactly mean here.
>
> If MT just stands for Multi-Threading. Lots of them as well in Pascal
> (usually Delphi) as in GNU C. Multi-Processing or Calcul
On Tue, Nov 4, 2008 at 8:10 AM, Marco van de Voort <[EMAIL PROTECTED]> wrote:
> Well, I gave up PIC24 since they don't contain motorcontrol,
I've always wanted to know what does a microcontroller with
motorcontrol is supposed to do different from a normal microcontroler?
I mean, to drive a steppe
In our previous episode, Michael Schnell said:
> > How much do you need on a PIC ?
> >
> I did not have many hope for really using Pascal on the PIC, but I am
> just thinking about a project with a PIC24 (which is a quite normal 16
> bit processor core with 64K linear addressable memory (compl
On Tue, Nov 4, 2008 at 8:04 AM, Michael Schnell <[EMAIL PROTECTED]> wrote:
> I did not have many hope for really using Pascal on the PIC
If you google for: pic pascal compiler
There are plenty of options.
I am using mikroPascal, and it's an excelent choice:
http://www.dontronics-shop.com/mikroe
How much do you need on a PIC ?
I did not have many hope for really using Pascal on the PIC, but I am
just thinking about a project with a PIC24 (which is a quite normal 16
bit processor core with 64K linear addressable memory (completely
integrated in the chip), other than the PIC16, whic
I am personally (every now and then) working on an FPC backend that
emits llvm code. Llvm has been designed from the ground up to take
some form of intermediate code as input and as a generic backend for
other compilers. It's still quite young as a project and does not yet
support as many tar
Op Tue, 4 Nov 2008, schreef Michael Schnell:
The point is those compilers cannot provide it because of (a) technical
limitations,
I don't think this is true. GCC can compile Java which I think is an object
language in a similar extend as Object pascal is. And it seems to be
similarly "ric
llvm is interresting to say the least. I experimented with it a bit but never
got to do anything serious.
A llvm backend is surely doable especially if you can get an AST out of FPC.
--
Aleš Katona <[EMAIL PROTECTED]>
___
fpc-devel maillist - fpc-de
In our previous episode, Michael Schnell said:
> > What you want is done by GPC and p2c.
> >
> Do you suggest they offer the rich Object Pascal language that FPC has ?
How much do you need on a PIC ?
___
fpc-devel maillist - fpc-devel@lists.freepasc
But they do their job as you ask it...
The job I am asking for is porting Delphi software to different CPU
architectures. If the tool level is not as high as FPC can provide, I
can redo the code in C as just as well.
-Michael
___
fpc-devel maillist
On 04 Nov 2008, at 10:30, Michael Schnell wrote:
Thanks,
all points taken,
another dream down the drain :(.
I am personally (every now and then) working on an FPC backend that
emits llvm code. Llvm has been designed from the ground up to take
some form of intermediate code as input and as
The point is those compilers cannot provide it because of (a)
technical limitations,
I don't think this is true. GCC can compile Java which I think is an
object language in a similar extend as Object pascal is. And it seems to
be similarly "rich", though of course in different directions.
-
Marco and all others:
Thanks,
all points taken,
another dream down the drain :(.
So the only future option I am still intending to take one day is doing
a NIOS code generator for FPC.
Though since some time there is a concurrent concept: you now can buy
(!) a CLR (they say ".NET") - framewor
On Tue, 4 Nov 2008, Michael Schnell wrote:
>
> > What you want is done by GPC and p2c.
> >
> Do you suggest they offer the rich Object Pascal language that FPC has ?
Not at all, rather the contrary, as far as I know.
But they do their job as you ask it... That they don't offer all FPC
feat
Op Tue, 4 Nov 2008, schreef Michael Schnell:
What you want is done by GPC and p2c.
Do you suggest they offer the rich Object Pascal language that FPC has ?
The point is those compilers cannot provide it because of (a) technical
limitations, and (b) because their approach makes it harder
Florian, actually has some points here. Being mainly C++ developer I used to
ne big proponent for "clean" languages, and criticized Java for adding
threading support into the language. On the other hand, it does make
development easier, so there are arguments in both directions Florian is
r
What you want is done by GPC and p2c.
Do you suggest they offer the rich Object Pascal language that FPC has ?
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
In our previous episode, Michael Van Canneyt said:
> > Are there other than historical reasons that FPC is this "self-contained" ?
> > (I
> > suppose compiling speed is an issue here, so a "GCC compatible parser" might
> > only be an additional tool provided by the FPC team, but I'd really love to
On 04 Nov 2008, at 10:01, Michael Schnell wrote:
I could imagine a system that only provides a Pascal-to-RTL-parser
and uses many of the GNU tools (preprocessor ,
optimizer, code generator, linker, make).
FPC-generated object files can already be integrated with the GNU
linker and make.
In our previous episode, Michael Schnell said:
> While I do all PC projects (for Windows and Linux) in Object Pascal,
> which is my favorite programming language as it offers the best
> productivity and the lowest count on errors that show at runtime, I am
> forced to use GCC for the embedded p
Michael Schnell schrieb:
>
> This would just provide another language for GCC and for hopefully allow
> me to use FPC-Pascal for any processor architecture supported by GCC.
Already finding skilled contributors to FPC is hard. If deep C knowledge
would be also a requirement it would be even harde
a look at CUDA may be beneficial.
I _never_ suggested that OpenMP is the way to go. I just stated that
there _should_be_ a way to improve FPC on behalf of easy use of MP.
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://list
Op Tue, 4 Nov 2008, schreef Michael Schnell:
Are there other than historical reasons that FPC is this "self-contained" ?
(I suppose compiling speed is an issue here, so a "GCC compatible parser"
might only be an additional tool provided by the FPC team, but I'd really
love to use this for my
I don't think OpenMP prevents you from creating race
condititions in parallel for loops.
I guess this is _very_ true and if using OpenMP with less standard stuff
than Matrix-Multiplication etc, you will quickly run into this kind of
problems (as we all know).
-Michael
On 04 Nov 2008, at 10:07, Michael Van Canneyt wrote:
Do do what you want
would also mean that the RTL depends on libc
The generated code would probably depend on libgcc (for helper
routines used by gcc when lowering the intermediate code to machine
code), but not necessarily on libc (unle
In our previous episode, Michael Schnell said:
> > Moving things in the language without a notable advantage which can be
> > solved by a library is not a good thing.
> >
> Don't you think "ease of use" _is_ a notable advantage of a programming
> language ?
No, it is not specific enough. Moreo
Michael Schnell schrieb:
>
>> Moving things in the language without a notable advantage which can be
>> solved by a library is not a good thing.
>>
> Don't you think "ease of use" _is_ a notable advantage of a programming
> language ?
It is. But as pointed out, parallel does not solve any of t
Michael. How many MT programs you really made?
I don't know what you exactly mean here.
If MT just stands for Multi-Threading. Lots of them as well in Pascal
(usually Delphi) as in GNU C. Multi-Processing or Calculation speed
never was an issue but providing low latency to some of the tas
On Tue, 4 Nov 2008, Michael Schnell wrote:
> AFAIK FPC works quite similar, but while only the "parser" really knows about
> the programming language, it comes with it's own preprocessor (which is only
> used optionally), it's own code generator and it's own linker. AFAIK, it even
> provides it'
Moving things in the language without a notable advantage which can be
solved by a library is not a good thing.
Don't you think "ease of use" _is_ a notable advantage of a programming
language ?
-Michael
___
fpc-devel maillist - fpc-devel@lists
CUDA works best if you load the image and then perform multiple
processing/transformations on it. This is the approach we take in our
architecture.
CUDA uses task queue. It adds the tasks to the queue and assigns a core as
soon as one is available. It uses some form of matrix for preparing the
Hi Compiler developers.
I do lots of software projects for PCs and for embedded devices.
While I do all PC projects (for Windows and Linux) in Object Pascal,
which is my favorite programming language as it offers the best
productivity and the lowest count on errors that show at runtime, I am
I don't know about Michael, but almost every single development I have
done in the last 13 or so years had to have multithreading, be it for
handling RS 232, sockets, background compilation, image processing, process
control, communications, artificial intelligence, data acquisition, or
runnin
Zitat von Michael Schnell <[EMAIL PROTECTED]>:
>
> > There is almost no speed difference from one thread or two threads on
> > a two core machine. :(
> > I will soon test on a 2 x quad core with 8 threads.
> >
> Great example. Thanks for sharing the results with us !
>
> You said "less than expect
In our previous episode, Michael Schnell said:
> > If the machine has a unified cache for both cores like a core duo
> > there is indeed little chance for improvement by MT.
>
> Sounds like a reasonable explanation. So a this kind of CPU Chip is more
> or less a hoax ?
No. But one must be very
Michael,
You really start to make more and more sense ;-) .
As for parallel implementation that makes it easy, a look at CUDA may be
beneficial. Submitting a multidimensional matrix and function to be
performed across cores on it, has probably a better chance than using loops,
although bot
In our previous episode, Boian Mitov said:
> Very nice wrap on this one Michael.
> While architectures such as OpenMP or CUDA do not solve and don't even try
> to solve the general case of MT development, they are very powerful in the
> areas of image processing and DSP. Indeed we are already res
On Tue, Nov 04, 2008 at 09:39:23AM +0100, Michael Schnell wrote:
>
>> You still didn't show any example which shows the real power of parallel
>> which cannot be solved by a T(Pooled)Thread.Create and
>> T(Pooled)Thread.WaitFor statements.
>>
> As I said several times, I don't suggest that any o
Michael Schnell schrieb:
>
>> You still didn't show any example which shows the real power of parallel
>> which cannot be solved by a T(Pooled)Thread.Create and
>> T(Pooled)Thread.WaitFor statements.
>>
> As I said several times, I don't suggest that any other implementation
> (be it OpenMP or
You still didn't show any example which shows the real power of parallel
which cannot be solved by a T(Pooled)Thread.Create and
T(Pooled)Thread.WaitFor statements.
As I said several times, I don't suggest that any other implementation
(be it OpenMP or whatever) would provide better results t
Michael Schnell schrieb:
>
>> If you want to have good multicore scaling you are lost with OpenMP.
> As I said, that is my POV, too.
>
> I did not start this discussion for preaching for OpenMP. In fact I know
> close to nothing about it. My starting point were the rather poor
> results for FPC i
If you want to have good multicore scaling you are lost with OpenMP.
As I said, that is my POV, too.
I did not start this discussion for preaching for OpenMP. In fact I know
close to nothing about it. My starting point were the rather poor
results for FPC in the "shootout" tests and "paralle
Michael Schnell schrieb:
>
>> Each tool simply has its place and usage ;-) , so does OpenMP . That
>> does not mean that it is the magic wand for solving MT, it is just
>> another tool that we can use.
> That is my POV, as well.
>
> OpenMP seems to be a relatively quite easy "add-on" for compiler
Op Tue, 4 Nov 2008, schreef Michael Schnell:
If you want to have _really_ good optimization, have to solve a a really
complex or non-standard problem, you of course are lost with OpenMP and need
to use more appropriate methods. Supposedly will not use FPC here but a more
low-level programmin
OpenMP might have it's use but I consider the impact in the compiler too
big for real use.
What do you mean by "impact" ?
Using a "parallel" keyword should introduce a similar complexity as the
#pragma ocm_... of in GCC (of course i don't know the implications it
imposes).
-Michael
___
Each tool simply has its place and usage ;-) , so does OpenMP . That
does not mean that it is the magic wand for solving MT, it is just
another tool that we can use.
That is my POV, as well.
OpenMP seems to be a relatively quite easy "add-on" for compiler makers,
so the GCC people decided to
Boian Mitov schrieb:
> Very nice wrap on this one Michael.
> While architectures such as OpenMP or CUDA do not solve and don't even
> try to solve the general case of MT development, they are very powerful
> in the areas of image processing and DSP. Indeed we are already
> researching CUDA for usag
However, as you point out there is no free lunch, parallelization of
software is complex.
Of course you are right.
But providing a starting point to the application programmer (like GNU C
does with the basic OpenMP pragma stuff ) would help to do a first step,
that - depending on the problem
Op Tue, 4 Nov 2008, schreef Michael Schnell:
If the machine has a unified cache for both cores like a core duo there is
indeed little chance for improvement by MT.
Sounds like a reasonable explanation. So a this kind of CPU Chip is more or
less a hoax ?
That's too strong. The Intel mult
Thanks a lot for providing this broader view on the issue !
So the current bottleneck is the hardware architecture and not the
programming languages shortcomings.
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepas
84 matches
Mail list logo