Archive for the ‘Ongoing Efforts’ Category

Recent changes

Wednesday, April 22nd, 2009

Lots of pending modifications since 0.44draft1 have been merged into the repository (too many to enumerate all of them!), paving the way for the forthcoming 0.44 release.  A second draft version (0.44draft2) is expected within a week.  Several important changes are already active in the repository:

Core eC:

* Class: ‘size’ member of the main class Class has been separated into typeSize and structSize which should result in simpler code (especially in templates) in addition to being a lot easier to deal with.
* Map: the Map container is being the focus of a stress test, both in terms of performance evaluation and consistency.


* X11: a major CPU bottleneck that occured during the initialization of the IDE, making bitmaps to be loaded as if they contained transparency information, is now fixed.


* Builds: everything has been rebuilt and tested, with positive reports on recently supported architectures like PowerPC.
* Documentor: API documentation has seen a lot of recent updates which are tightly integrated in the IDE/Documentor for easy access.

* COM: some changes related to the class finder introduced regressions, and have been backed off for the time being.
* IDE: improvements enabled the builder process to run slighthly faster while using less CPU.

Ecere Corp. would like to thank all contributors and supporters of Ecere SDK, (alphabetically) Charlie, Jérôme, Joey, and Redj.

The Ecere SDK and eC go Open Source

Thursday, December 25th, 2008

Hello everyone, sorry for the very few updates in the past few months.

Much development has happened lately focused on what has always been the calling for Ecere: a Free Open Source Software status, as well as a greater facility to deploy across multiple platforms.

The next major release (0.44) was to reach these objectives, and I was hoping for it to be ready earlier this fall.

Unfortunately things moved a little slower than expected, but I still have a present for the enthusiasts on this Christmas day: a fully automated self building Ecere source package. It makes use of a much improved bootstrapping system (thanks Joey Adams for thinking it through) directly generated from the actual eC sources of the compiler.

Recent work was done to test and improve the support for platforms such as Mac OS X and big-endian systems (such as PowerPC, PlayStation 3 Cell processor, SPARC machines, …). I will call this a Source Draft, because it has not undergone much testing yet (although this SDK version is what makes up my own development tools). I will not provide binaries at this moment either. An official 0.44 release should follow up within the next few weeks. This draft release however marks the very first officially open source (under the revised BSD license) Ecere SDK release.

Contributions will be most welcome, and much efforts will be put in the coming weeks to increase the support for a community by establishing a clear roadmap, improving the web site, and coordinating interested developers. You can help us make this upcoming release the most stable Ecere SDK to date. Please note that any contribution will need to have its copyright renounced to Ecere, which will then relicense the code to everyone under the BSD license.

Despite being mainly a the first open source release, this new version features many improvements such as an automatic bootstrapping/build system, an SQLite driver for the Ecere Data Access system, additional IDE configurations enabling the integration of cross compilers, lots of bug fixes (most likely some new bugs as well) … and a tab control.

Download Ecere SDK 0.44 Draft 1 Sources

Merry Christmas, and I wish you all a wonderful year 2009, may you find internal peace and happiness in these fast pace and often challenging times.

eC Programming Guide Section Completed

Wednesday, February 6th, 2008

It has been more than a month since the last blog post, but both sections 1 and 2 of The Ecere Tao of Programming are finally completed. The first sections teach mostly the aspects that eC shares with C, while at the same time pointing out the innovations of eC. The second section teaches the object oriented concepts introduced with eC.

These sections together are intended to teach eC programming to both new programmers and experienced programmers alike (regardless of the background experience, be it C, C++, C#, Java, VB…). They therefore make up the official eC programming guide.

The remaining sections of the book will focus on teaching the various functionalities available in the Ecere SDK, such as the GUI toolkit and 2D/3D graphics engine.

Ecere programming book, Happy Holidays!

Saturday, December 22nd, 2007

I realize it has already been two weeks since the last blog entry. I’ve previously mentioned I would resume the work on the Acovel Media Player as well as improving the IDE’s code editor (Undo is still a blatantly missing feature…). These things are still high in priority, but I started working on a new project which should turn out very valuable. Thus those goodies will not be ready in 2007 as I would have hoped, but they’re still coming sometime soon in the new year.

About the new project, despite the abundance of good samples, I believe the lack of documentation is a major reason for people hesitating to jump on using eC and the Ecere SDK. Filling up the API documentation reference would certainly be helpful, but I think an in depth guide on how to use these various technologies available in the SDK would be even more useful. That is why I decided to start writing a book.

The Ecere Tao of Programming will teach programming from the ground up, making use of all the tools making up the Ecere SDK. I haven’t totally decided yet on the distribution method, but I would like to print and publish hard cover editions. You can take a look at an excerpt from the first chapters as well as an overview of the table of the contents for the book here. The intent is for the book to be a thorough Programmer’s Guide for the SDK, while at the same time it should be able to teach basic programming using C and eC to previously non programmers. It will also cover advanced programming concepts such as 3D graphics, multithreading, networking and much more.

I would like to wish everybody very happy holidays, and a wonderful year 2008. Also, special thanks to every current and future Ecere SDK users for their support :)

Multi-Monitor Support on Windows

Friday, December 7th, 2007

The Ecere SDK now supports multi monitor display setups on Windows.

Download Ecere SDK for Windows

Acovel Media Player for Linux!

Wednesday, December 5th, 2007

Unicode in Acovel

I’m pleased to announce the first preview of the Acovel Media Player for Linux. Acovel is currently limited to playing albums: bring up the Media Library, and click on the import button in upper right corner. Choose a folder containing music albums to import, and enjoy an intelligent algorithm which will analyze both ID3 tags and filenames to fill up its music collection database. Acovel’s search feature is amazingly fast (We tested against iTunes search and the results were very impressive). It makes use of the Ecere Database engine (EDB), an extremely light and simple database solution under development.

Acovel has been on hold for a while as I was attending to Linux & Unicode support in the SDK, but now that I’m back on it you can expect a lot more improvements to come in the next few weeks.

Download Acovel 0.01 for Linux

Download Acovel 0.01 for Windows

Minor X fix for last release

Sunday, December 2nd, 2007

Some extra calls to XSync which were used for debugging purposes mistakenly got slipped into the last release.

This is mainly a patch release to correct the performance issue.

Download Ecere SDK for Linux

Download Ecere SDK for Mac OS X

Initial Mac OS X Support, X Improvements – SDK

Saturday, December 1st, 2007

Here is the first attempt at supporting Mac OS X. For now the interface & graphics driver run on X11. Support for a more native solution such as Carbon is planned for the future, but it is not a priority for the moment. This should allow Mac folks to give the Ecere SDK a try, and hopefully attract contributors who would like to improve Mac support.

There are a few glitches with Ecere on X on Mac. To get anywhere you will most likely need the server rather than the old XFree86. comes by default with Leopard, but for those still on Tiger, here is where you can obtain prebuilt binaries for it. Also take a look at this page. You will also need the same dependencies as for Ecere on Linux, such as libjpeg, libpng, freetype, fontconfig, etc., some of which might not be already installed on your system. Some other problems seem to be caused by the interaction with quartz-wm (another window manager might work better). For some reason, new windows always want to be positioned at the top-middle position of the desktop. I had to patch the X driver to get around this problem, but it still causes some annoying repositioning of the windows. Sadly, the overall performance especially with text seems a lot slower for me than on Linux/ 7.3. I am not sure what is making XRender so much slower on my Mac. On my system the IDE has a little trouble dialoguing with the installed GDB 6.1 which prevents the integrated debugger to function. It might work on a more recent version of GDB.

Please give me feedback on how Ecere on Mac works out for you in the comments.

A few important improvements were also made to the X driver. Windows can now be closed through the window manager. Repositioning windows from the Window manager doesn’t confuse their positions anymore. 15/16 bit displays are now supported.

I found that the Xrender API documentation is very difficult to find, and quite incomplete. Here is where the latest Xrender protocol is at and here is a copy of Xrender library API documentation. Trying to get 16 bit working, the XRenderFindFormat function was particularly difficult, but I learned that the count parameter which the above documentation isn’t so clear about had to be 0. The color masks should also not be shifted.

Download Ecere SDK for Windows
Download Ecere SDK for Linux
Download Ecere SDK for Mac OS X

International Input Support on X – SDK

Sunday, November 25th, 2007

After all this struggle to get SCIM working, I could finally implement the international input support.

Ecere Communicator now includes the new runtime library and supports international input as well.

The Linux SDK now also properly supports X keysyms to follow the correct keyboard layout.

I believe the X clipboard operations should be fixed for good this time. (I tested and was able to copy to and from FireFox and between two Ecere IDEs.)

The X bitmap rendering features some additional support.

Two small samples were added, a transparent clock, and a utility to take a screen shot of the X desktop.

A smal fix was made to desktop-level transparent windows using OpenGL. The IDE and Debugger had some minor improvements done as well.

An issue was resolved on Windows, whereas internal resources could not be accessed when a executable was inside a path containing non-ASCII characters. The last installer itself would not work when ran from such a path.

With the Windows taskbar autohiding, the Ecere applications do not resize anymore (it was causing a “jumping” effect) .

The runtime now prompts for reestablishing Windows network connections.

Download Ecere SDK for: Windows or Linux

Download Ecere Communicator 0.02 for Linux

Upgrading to glibc-2.7, Setting up SCIM

Sunday, November 25th, 2007

In order to implement and test international input on Linux, I had to get an input method such as SCIM working.

It turned out my locales were not installed, so I decided to upgrade my GNU libc while I was at it, and that didn’t go too smoothly. I’m running on Ecere Linux which has been my self-built Linux distribution for many years. Here’s a few hints to those trying to build their libc (I upgraded to 2.7).

If you get something like /bin/sh: no: command not found, it seems this is just a tactics from the configure script to fail, and “no” here is a placeholder for some tools not recent enough. Upgrading gettext was the solution to that one.

Make sure march is set or you might get something like undefined reference to `__sync_bool_compare_and_swap_4′.

For some other unknown reason, I had undefined reference to `__stack_chk_guard’ while trying to build the nscd directory. I had to manually edit the Makefile and add -lssp to that line LDLIBS-nscd = $(selinux-LIBS) -lssp .

My working configure line was the following:

export CHOST=”i686-pc-linux-gnu”; export CFLAGS=”-O2 -march=i686″; ../glibc-2.7/configure –enable-shared –prefix=/usr –enable-profile=no –enable-add-ons –enable-kernel=2.6.0

I was quite relieved to see “Your new glibc installation seems to be ok.” come up on the screen.

After make install, I couldn’t couldn’t login remotely or from the console, su would jam on a send.
Upgrading the coreutils and/or restarting my syslogd seemed to resolve that.

Then to install the locales I did: make localedata/install-locales

With locales in place, SCIM was more likely to work. I installed scim, anthy & scim-anthy for japanese support, kasumi which is a dictionary editing tool which you can use with anthy, as well as scim-pinyin for writing chinese in pinyin.

In order to make SCIM work with XIM, the following environment variable should be set: XMODIFIERS=@im=SCIM

SCIM should also be initialized on X startup with: scim -d

I tested with Firefox, but Firefox 2 would crash if my locale was set to Japanese. I tried Firefox 3 beta 1 and I could finally type my first japanese characters in Linux!