July 30th, 2013

Hi Everyone!

We will be in Central Philadelphia on August 10th to showcase our latest and coolest software, and will be offering a 2 hours workshop on Cross-platform application development in eC with the Ecere SDK. FOSSCON registration is either free or voluntary 25$ donation, and likewise our workshop is free but donations are appreciated!

Check out FOSSCON at

The event is hosted at:
1501 Cherry Street, Philadelphia, PA
from 9 AM to 5:30 PM.
Our workshop will be from 3:30 PM to 5:30 PM.

On Sunday August 11th we will also be hosting an Ecere coding hackathon as part of the FOSSCON commitfest for anyone wishing to join the ranks of Ecere contributors, helping us to make this great SDK even better.

If you’re from the Philly area or can make it there, we’d love to see you!

Looking forward to meeting some of you there!

Best regards,


Ecere SDK 0.44: Open Source Release

March 9th, 2012
I have the great pleasure to announce that the official version 0.44 of Ecere, codenamed “Ryoan-ji“, is now available.
It is the first “official” Open Source release of Ecere (not a draft, or preview).
The Windows installer is available at:
Our Ubuntu Linux PPA on Launchpad is at:
To add our Ecere PPA to your Ubuntu system you can simply do:
sudo add-apt-repository ppa:ecere-team/ppa
sudo apt-get update
And then to install the Ecere SDK:
sudo apt-get install ecere-sdk
The source tarball for the Ecere SDK 0.44 is at:
It took us some time and great efforts to get there, but we now have what should be a stable and complete release. A quick history of what happened since 0.43 (September 2008):
  • In December 2008, we had released a first open-source draft, 0.44 draft 1, which could bootstrap itself from GCC.
  • In March 2010, we released 0.44 preview 1, with some new features, bug fixes, and new bugs. We also got a new website design, with new phpBB forums.
  • In May 2010, we adopted Git as our version control system. Our source repository is hosted on GitHub at
Both 0.44d1 and 0.44pre1 had some issues, and were lacking a Windows installer and proper Ubuntu PPAs.
Now all this is fixed, and it should be a breeze to get the Ecere SDK installed on your system in no time at all, to try out all the cool samples and features!
What’s new in this version:
  • Native Window decorationstoolbar and tool tips
  • new JSON-based .epj project format and powerful project settings, with powerful per File X Config X Platform Project Settings
  • Internationalization support, with Chinese and Spanish available by setting the LANGUAGE environment variable to zh_CN or es_ES
  • SQLite and Oracle drivers for Ecere Data Access (EDA)
  • Improved eC Distributed Objects
  • Less memory leaking on parsing code
  • Line Numbers in the Code Editor
  • Settings for multiple compilers (e.g. allowing to set up cross-compilers, different GCC versions…)
  • Support for ccache and distcc to speed up your builds
  • New Credits and License dialogs for the About box
  • A bunch of new samples, PowerPoint Tutorials and extras (SSLSocketAudio, WIA Scanning…)
  • Coursework to accompany the Tao
  • A new updated Windows installer, with MinGW (GCC 4.4.0 and GDB 7.0 were selected for working best)
  • PPAs for Ubuntu working on both 32 and 64 bit machines, for Lucid Lynx, Maverick Meerkat, Natty Narwhal, Oneiric Ocelot and Precise Pangolin
  • Numerous tracked issues were resolved, see the complete list at:
A much needed README was added to the source tree, you can read it online at

For those of you who do not yet have an account on the forums, and wish to register, please let me know of your user name for activation, because I unfortunately cannot distinguish spammers from real users.

Now that internationalization support is complete, I would like to invite you all to contribute a translation of Ecere in your native language.
You can use the nice collaborative interface on Launchpad for this purpose, at:
An article I wrote on Cross-Platform Development with the Ecere SDK will be featured in this month’s issue of theSoftware Developer’s Journal - .
It should come out within the next week, I invite you to check it out. It’s an excellent introduction to coding in eC with the Ecere SDK!
For an overview of what lies ahead for Ecere, you can take a peek at:
We will now focus on deploying Ecere applications on the Android platform.
All the best,

New Ecere SDK Forums, Ecere SDK 0.44pre1

March 13th, 2010

Hi guys.

Some news in the Ecere world:

As you might have noticed, I started updating the website a bit. We have a new front page with a nice big obvious download button, a new mascott (Oliver the Sea Otter – Ollie). There is still quite a bit more refinements to the rest of the web site content when I find the time to do so.

A new pre-release of the version 0.44 of the SDK has been released. Click the aforementioned big button on the front page to grab it and build it.

To install it on Windows, first install the 0.43 SDK to get the right MinGW setup. You’ll need to rename make.exe in Program Files/Ecere SDK/mingw/bin to mingw32-make.exe as we’ve fixed the new version by default to comply with that MinGW standard. Then just hit mingw32-make on the new 0.44pre1 source code. Then you can do make install (make sure you are administrator if you are on vista/win7) to update your installation if you are.

To install it on Linux, either grab the PPA at (see this thread for detailed instructions, potential issues and updates on that package) if you are on Ubuntu, or just hit ‘make’ in the source code and then ‘sudo make install’.

We do have a newer MacOS X build! Just click the fancy rainbow apple on the main page. It still has some of the same issues it had before (Random bus errors, X11 window coordinates issues when resizing/moving things around), and apparently the source won’t build on Snow Leopard. Contributors who want to improve the Mac OS X support are more than welcome!

We now have a nice new forums system at The ones we had before wasn’t quite working for any of us. I like the new ones, please help us make them livelier than ever! I might in fact from this point on use that medium for announcements and other things I would otherwise have posted here. Having too many points of contacts (IRC, forums, blog, mailing list…) makes it quite difficult for everyone to focus and exchange all together, so I suggest we just stick to the forums as the general point of contact, and IRC for those who are into it.

So please make sure you register and participate in the new forums, and don’t be surprised if this blog is outdated (as it has been for most of its existence, let’s admit it, so I don’t think anyone will actually be surprised) and if this is the last post.

I’ll be seeing you in the forums and on IRC.



Recent changes

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.

… or not

March 18th, 2009

Well folks it seems Ecere has not been selected as a mentor organization for the Google Summer of Code 2009… Maybe we will try applying again next year. Sorry for all enthusiastic students who were hoping to participate with us.

The list of all accepted mentor organizations is now available.

Of course contributors are still welcome to participate in any of the projects on our roadmap. You won’t get the nice $$$ bonus, but you’ll still get the chance to learn a lot and work with us on making great software even much better.



Google Summer of Code 2009

March 13th, 2009

Today is the mentor organizations application deadline for the Google Summer of Code 2009 program in which Ecere really hopes to participate.

We’ve put together an ideas list up for prospective students. It’s available here:

If we get the chance to participate in this program, this could mean a lot to Ecere in terms of enhanced features and usability, as well as stirring a more active open source collaboration community. Please wish us the best of luck in being awarded this golden opportunity. We will keep you informed whether we were accepted or not as soon as the list of accepted mentor organizations is available (March 18, next Wednesday).

Whether we’re accepted or not, the projects mentioned in the ideas list are of course available for interested contributors to work on, and they draft the roadmap ahead for the new developments in Ecere for 2009.

We’ll also be working on the transition to a reorganized Ecere web site which hopefully will more adequately serve the community of users and developers, and present Ecere in a clearer and more attractive way.

On a side note, I realize it has been a while since last update… I have been mostly busy improving and putting to test the Ecere Data Access and its SQLite driver. There is no new release available yet, but in the coming weeks a second source draft of 0.44 should be released as soon as the most critical current issues are resolved.


The Ecere SDK and eC go Open Source

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.

Ecere SDK 0.43: Templates, Syntax Highlighting…

September 3rd, 2008

After a lot hard work, I am pleased to announce the release 0.43 of the Ecere SDK. Download links follow:

For Windows:

Ecere SDK 0.43 for Windows – September 3, 2008 (36 MB)

If you already have MinGW installed on your system (or if you already have an earlier version of the Ecere SDK installed), you can chose the following significantly smaller package instead. Note that it doesn’t contain GDB and UPX either.
Ecere SDK 0.43 (No MinGW/GDB/UPX) for Windows – September 3, 2008 (7 MB)
If you chose this smaller package, make sure that the MinGW executables are either in your PATH or in the IDE’s File/Global Settings/Executables paths so that they can be found by the build system. Also, the IDE will be looking for a “make.exe” (rather than a mingw-make.exe).

For Linux:

Ecere SDK 0.43 for Linux (Generic binaries) – September 3, 2008

Please read the INSTALL file for instructions on how to install the generic tarball and for general notes on operation under Linux.

Ecere SDK 0.43 for Debian/Ubuntu – September 3, 2008
The samples will be located in /usr/ecere/samples/ .

Ecere SDK 0.43 for GoboLinux – September 3, 2008
(Add to your official repository and run InstallPackage Ecere)
The samples will be located in /Programs/Ecere/0.43/samples/ .

Additions to the eC language

This release main highlights are class templates as well as standard collection (container) classes which have been added to the eC language. This functionality represents major work which had actually started in the the earlier releases as well, and finally is ready in this new version.


Class templates make possible generic/meta programming.

The approach of eC towards templates is unique in that it is completely dynamic. A template class is in fact declared the same way as (and no different from) a regular class, but specify “template parameters” to be parametrized. It is dynamic in that the class as it is can already deal with any parameters the class template could be used with, even if that parameter refers to for example a class not defined within the module of that template.

eC classes can exist within a shared library, or an eC source file and it can be used across multiple modules without the need for header files. The same is true for eC class templates, which do not require any additional compilation for use with different parameters. Only a single piece of code for the actual class templates and its functions exists, just like for any other eC class.

This “no recompilation” approach templates makes for smaller code size, but may scare some about its performance. However, in practice this should be minimal, since many optimizations are being applied, and more optimizations should come as we benchmark the eC dynamic templates approach. These new templates have worked and performed nothing but extremely well so far.

Classes can be parametrized using any number of three types of parameters: data types, expressions (e.g. specifying a constant value), as well as identifiers (Which can currently identifier a data member, but will be extended to properties and methods as well).

The templates are very powerful and support even complex cases with recursions as in the following example:

class A : B<A> { int a; }
class B<class T> { T test; }


The standard container classes included in this release are “typed” class templates to replace the previous “non typed” container classes (List, BinaryTree, and pseudo-template Array, which will be slowly phased out. In the meantime List has been renamed to “OldList”, Array to “OldArray”, and Link to “OldLink”). The new containers are all derived from a base “Container” class from which all containers should derive in order to benefit from generic iteration and new eC syntactic sugar. The provided default containers cover dynamic arrays through the new Array class, link lists through the new classes List and LinkList, associative arrays through the new class Map, as well as AVL trees (a particular type of self balancing binary tree) through the new classes AVLTree and CustomAVLTree. It is somewhat analogous to a subset of the Standard Template Library and its corresponding classes such as std::vector, std::list and std::map, though I believe eC’s approach is generally a lot more elegant.

The syntactic sugar for containers include the array notation, e.g. [ 1, 2, 3 ] to denote a container containing the three integers 1, 2 and 3. It also introduces a “foreach” syntax using the regular for keyword in a new way. The following will print all i in array which are greater than 1:

Array<int> array { [ 1, 2, 3 ] };
for(i : array; i > 1) PrintLn(i);

Notice how i (which takes the type of the array elements) does not need to be declared. Iterating can be done generically (not knowing what kind of container we’re dealing with) using the Iterator class, for example in the following manner:

Iterator<int> i { array };
while(i.Next()) PrintLn(;

The indexing operator can also be used directly with the container classes. The following example can be used to count the occurrences of strings, assuming it is repeatedly called with “s” being each string to count. Notice how wordCounts is indexed with “s”.

Map<String, int> wordCounts { };

The container classes can also be used to iterate through infinite collections, or through data contained outside the actual container class. Please look at the ContainersTest sample in the samples directory for additional examples, including iterating through the Fibonacci series.

Print / PrintLn

You might have noticed the PrintLn function which is now available to print to the standard output any data type followed by a newline. The equivalent function Print does the same without printing the new line. Furthermore, these functions can take any variable number of parameters which can be of different types, and it comes in various flavors (inside the File class, PrintBuf/PrintLnBuf, PrintString/PrintLnString). The following demonstrate the elegance of this new tool:

int a = 3, b = 4;
PrintLn(a, " + ", b, " = ", a + b);

 Other improvements

Another very enjoyable improvement is much improved syntax highlighting inside the IDE’s code editor, as well as some tweaks to the way the editor works which can be changed in the File/Global Settings dialog.

Many bug fixes and other issues were resolved inside the IDE, notably relating to the debugger integration. The debugging functionality should now be very useable under both Linux and Windows.

I’m also happy to provide new packages available for specific Linux distributions, such as Gobolinux (my personal favorite to which I switched my main development station – and Debian/Ubuntu.

Ecere Communicator as well as Acovel Media Player have been slightly updated for the new release, with some minor fixes along the way not justifying new versions. Here are the download links:

Acovel Media Player 0.01 for Windows
Acovel Media Player 0.01 for Linux

Ecere Communicator 0.02 for Windows
Ecere Communicator 0.02 for Linux

Ecere SDK 0.42.1 and Cute Fractals

June 12th, 2008

I just released Ecere SDK version 0.42.1.

This release features major bug fixes and improvements to the EDA library (Ecere Data Access), support for executables and DLLs compression through UPX, an improved EditBox Undo buffer, important optimizations to the region updating engine, as well as a bunch of other bug fixes and improvements.

Download Ecere SDK 0.42.1 for Windows – June 11, 2008 (obsolete)

Download Ecere SDK 0.42.1 for Linux – June 11, 2008  (obsolete)

I’ve been wanting to add a few features to the Ecere Fractals explorer (a sample project in the SDK) ever since I coded it up years ago. I finally took some time to work on it! Improvements include support for smooth coloring; a brand new gradient editor; the option to save with or without computed data; export to image files with bilinear filtering; and some new interesting presets. The new version is included in the SDK and here are some links to pre-built executables and source code:

Download Ecere Fractals Explorer for Windows / Linux / Source

Here is a screenshot of the new version:

and some of my new creations:

New Ecere SDK Release 0.42

May 15th, 2008

I am pleased to announce the release 0.42 of the Ecere SDK, for both Windows and Linux.

It brings a long overdue undo/redo buffer to the IDE’s code editor, improved X support, improvements to the IDE and numerous bug fixes.

The new installer for Windows comes with a GCC 4.3 alpha MinGW and should install and compile on Windows Vista with much less difficulty than last release.

The Ecere Database Access system ( / EDA.dll) is included in this release, with two new samples making use of it: MedDB and EDATest. Please take a look at this wiki page for a quick walk through (draft) of using EDA and get in touch with me further assistance.

You will also notice a new / ec.dll which holds the compiler functionality. It is not required by applications built with the SDK, but shared by the IDE and compilation tools (you will notice they shrank in size).

The latest version of the programmer’s guide (a work in progress) is bundled as a PDF in a documentation folder as well.

Please register on the Mantis bug tracker to report any problem with this release.

Ecere SDK 0.42 for Windows – May 15, 2008

Ecere SDK 0.42 for Linux – May 15, 2008