# User:Roozbeh

Started programming with Pascal around 1990,and was always a big fan of delphi/pascal language. I am new to Lazarus, haven't used it for a big program yet, but i have lots of plans for it.

## My contributions

Well still not that much to be satisfied of but my main contributions was mainly to wince interfaces. Yes, maybe so far almost the whole basis code of wince interfaces is done by me, but nothing to be proud of, I just borrowed 90% of code from win32 interface(so thank you guys),just modified it to be working on wince. But I am really happy with my contributions to fpc compiler itself, for adding support for unaligned keyword, and handling of unaligned types. And some other small optimizations.

## My TODO List

• TImage on Wince.
• Other controls/ components which need being implemented.
• Creating/Simulating those non-existent/required Win32 APIs on WinCE.
• Special Components for mobile devices.
• i have some MAPI componenets for working with outlook and mail items,but the code is very messy,i hope soon i'll be able to submit them to lazarus project.
• Special Components for support for games on wince.
• FPC for symbian OS.
• Lazarus for Series 60,UIQ and all those Symbian OS gui interfaces.
• Contributions to lazarus/wiki pages for documenting more of internals.

Well, I think the list is huge enough to make me busy for as far as i can guess. I hope I can achieve.

## Things I am thinking of now

### Symbian port :

1.Compiler seems to be complete for arm, but THUMB and interworking is something good for symbian.

2.It seems there are some ABI incompatibilities, at least people from symbian IRC insist only symbian 9 and greater is ok with arm abi, find out what they are and how to implement them.

3.Everything on symbian is in c++,and fpc cant connect to c++ object files, the only solution is to create bindings in c,and then link fpc to c instead.

These tools seems to be helpful in someway :

  smoke,swig,doxyen


And some links to look at in this field:

4.Symbian has very complicated build/make process, how to do that?

5.Symbian has different kinds of applications, some new application modes has to be introduced.

6.Investigate how other languages- not c++ - deal with these problems.

7.Symbian OS -or their c++-does not have exceptions, static data and some strange other things.why?and does it mean we cant have them too on fpc?and how to deal with them!

8.Someone with great knowledge and background of symbian is needed here, I just know how to code simple programs on symbian.

9.The source code of gcc might be useful too.

Good books: Wiley, Programming for the Series 60 Platform and Symbian OS (2003) Wiley,Symbian OS Internals Real time Kernel Programming Dec 2005

### C/C++ to Pascal translator :

I thought one of main reasons why people don't use Pascal is problems they have with header files-which are in c-and lack of code samples. So maybe a good c/c++ to Pascal compiler/translator can do some changes.

Currently we have H2PAS program but it is not that perfect and it is just for header files, also no nice gui and no nice other things too! Using a compiler-compiler or other tools that do the job of creating compilers seems to be the best way to do and start with.

Currently we only have tpyacc and tplex-YACC and LEX for Pascal, which they can be a good approach to c but have problems in understanding c++. Other tools simply doesn't generate code in Pascal, which i would like program with.

There are plenty of compiler generators in world so which one to use is still has to be chosen.

Parsing seems to be easy now with these tools but still syntetic analyses still has to be done. Some tools also can generate good AST,maybe running those tools and using the generated AST can be an alternative.

Parsing, compiler construction and other necessary information:

Flex,Yacc,Bison and similar:

ANTLR ANother Tool for Language Recognition, (formerly PCCTS) :

Elkbound and elsa - interesting things, just don't know yet what to do with them!

[http://www.nobugs.org/developer/parsingcpp/ very nice article about parsing c++ and how to do that]

Hmm,dont know what do to with:

I found ANTLR is the best solution so far, maybe working on it to make it generate Pascal files is also another good project!

### ANTRL Pascal

ANTRL currently support generating code for c++,python,c#,java and also some others have semi working vb.net. Pascal addition could be an interesting thing to do, and will also ease the making of c/c++ to Pascal translator. I've contacted the author but haven't got any replies yet. The source of ANTRL is written in Java.

===KOL for Wince===

Currently Lazarus generated exe files are too big for distribution for these devices, so KOL for wince is really a good thing to happen. I am currently working with Thaddy on this, it seems to be a simple job, just have to remove some x86 assembly codes.

### MSEIDE for wince

There are problems with MSEIDE and fpc 2.1.x branch, mostly because of widestring not being reference counted anymore. Currently only 2.1.x branch supports wince and arm, so the project is on hold until MSEIDE become compatible with this branch.

### Lazarus Big exe files

We can at least not compile lots of files for wince. Still the case has to be investigated more.

### Wince,PocketPC,Smartphone

I just don't know how to deal with their differences. Gladly everything seems to be unique in win ce 5.0 but lots of things and how one should do things are different in these 3 different platforms.

### Nice demos

Creating nice demos and components is also a must to welcome new users to this field. I have ported gx-gapi-library and SDL to work in wince, just have to find time and the idea to make nice programs from them.

### Lazarus on Wince

Yes, why not. The best way to test almost all widgetsets is to run Lazarus itself on wince.