Saturday, October 15, 2005

A wiki at eclipse.org: Eclipsepedia

eclipsepedia is online. Feedback and comments can be given in bug 87949. Unfortunately, you have to be an eclipse committer to contribute. So, it's not really a wikipedia.....

Thursday, October 13, 2005

Carbide: Nokias CDT based C++ tools for Symbian OS

Nokia announces new Eclipse-based IDE for Symbian OS called Carbide.c++ (or Carbide Mobile Studio). It seems to be CDT based.

The Symbian OS company announced they have joined the Eclipse Foundation as an add-in provider.

IBM contributes the "Eclipse Process Framework Project"

IBM announces the Eclipse Process Framework Project (Beacon). It focuses on best practices for software development. The goal is to provide tools to support the software development process (part of the Rational Unified Process).

Chris Recoskie adds macro support to CDT managed build

Chris announces that he is adding macro support to CDT. He created a bugzilla entry for discussion.

Wednesday, October 12, 2005

eclipse developres journal

Just stumbled over the Eclipse Developers Journal. A little bit too much advertizement for my taste, but interesting stories... Hmm, very american "The Leading Eclipse Magazine for the Open Community"... what about the nice German Eclipse Magazin???

Why freeing SWT resources follows "the fundamental rules of java"...

From time to time, I see complains like this:
"SWT controls cannot be garbage collected. If SWT were being used in C++ that wasn't a problem. But this design decision for a Java API/Framework is a terrible flaw....This is IBM which is not adhering to the most fundamental rules of Java."
I think, it is a terrible flaw to do resource cleanup using the garbage collector.

Sun uses a similar policy for resources allocated outside the garbage collector. For example in JDK 1.4.2 they changed the policy to free native resources. Originally channels were garbage collected. But now you have to explicitely close them. It was for performance reasons, but th problem is the same: external resources are not seen by the garbage collector, and therefore it cannot trigger a collection if the system runs out of resources.

Just think of a simple object that allocates a megabyte in a native call and holding it in a pointer. The pointer is freed in the finalize method of the object. 1000 of those objects are are nothing to the garbage collector, but it takes 1 GB of your system resources. The simple loop:
for(int i=0;i<5000;i++)
new My1MbObject();
Will not work on most systems, becuase you allocate 5000 "small" objects .....

I think that's a general good rule to close resources that are created outside the garbage collector explicitely.

Therefore it is a good thing, that SWT relys on explicit disposing of native resources.

Migration to flexible workspaces (EFS)

John Arthorne wrote a document that describes how clients can transition towards supporting these more flexible workspaces (see also my previous blog entry "Restrictions of the eclipse workspace concept")

Tuesday, October 11, 2005

A guide to the workbench internals -- how workbench works

Stefan Xenos explains how the Eclipse 3.1 workbench works. He describes the infrastructure that makes views and editors work. The goal is to make the reader familiar with important classes in the workbench, and how they interact. It is assumed that the reader is already familiar with using the workbench APIs and with creating views, editors, action sets, etc.

Content-type-based editor lookup

Explains the retionale behind Content-type-based editor lookup.

Here is a paper with the details.

To have project specific content matcher, 3.1 added IProject.getContentTypeMatcher()

Here is a document that describes the BinarySignatureDescriber (for binary content types) and XMLRootElementContentDescriber. They can be used in the org.eclipse.core.runtime.contentTypes extension point to define a content type.

Plan for 3.2 core debug

The overall themes for platform debug 3.2 are:
  • Scaling Up

  • Design for Extensibility: Be a Better Platform

  • Simple to Use

Breaking up of platforn for better OSGi separation

Jeff McAffer explains how will be split into more plugins to better support OSGI. This will be done without breaking existing code.

org.eclipse.osgi
org.eclipse.core.common - some common base support classes like IStatus, etc. We'll look to take into account the JFace uses here as well as other. This will NOT be a dumping ground.
org.eclipse.equinox.registry - the extension registry mechanism
org.eclipse.core.jobs - job support
org.eclipse.core.preferences - preferneces support
org.eclipse.core.contenttypes - content types
org.eclipse.core.runtime - the original runtime layer with things like Platform, Plugin, ...

It will require and reexport all of the above plugins. Make this optional if possible.

Restrictions of the eclipse workspace concept

There is an old paper nicely describing the problems and another with possible solutions (it also contains an analysis what other IDEs do).

Bugzilla entries:
- Allow editors to open files outside workspace
- Support logical model integration
- Problems with opening external files
- Allow a search to be done on external directories, outside of the workspace
- Rsource exclusion filters
The discussion about tne new eclipse virtual file system (EFS) in here: Provide more flexible workspaces. In 3.2 resources will probably be based on EFS.

Note: There might be problems with code that assumes IResource.getLocation().toFile() does not return null, if the resource is not a file!

Monday, October 10, 2005

Eclipse remote development (paper from 2002)

There are many environments where the primary tools reside only on a remote system distinct from the developer's workstation, called remote development.

This document explains how the Eclipse Platform can also be extended by plug-ins to support a remote development paradigm, and provides recommendations and guidelines for plug-in developers building remote development support.

Eclipse 3.1 statistics

- Java source files: 11,548
- Lines of Java source code: 2,425,709
- Lines of XML source code: 57,533

.. and more

Testing CDT with OpenOffice

Doug Schaefer is testing CDT with OpenOffice (35000 C/C++).
It's double the size of Mozilla.....

YourKit Java Profiler alternative to Optimize It

I'm not really happy with Optimize it. Here's another (commercial $500) profiler YourKit Java profiler. I should give it a try....

eRCP M4 with eSWT RC2 available!

eRCP is the embedded version of the eclipse rich client platform.

JUnit 4 will use java 1.5 annotations @Test

An early look at JUnit 4

Wayne Beaton is the new eclipse evangelist.

Wayne Beaton is the new eclipse evangelist. His job is to promote eclipse (talk at conferences etc). In an interview
he explins that many eclipse core developers come from smalltalk (like himself).

Eclipse and Java links