Home > Quartex Pascal > Quartex Pascal, rolling my own

Quartex Pascal, rolling my own

Quartex is 4ever

Quartex is 4ever

No rest for the wicked. Just finished work, ran to get my daughter from daycare – then back again to the office. Homework with the kids, then finally, after arguing with my 10-year-old son that the concept of a straight angle triangle is Pythagorean in nature — I had 1 hour to play with my own stuff.

So what did I add today? What did I whip up in one hour? Well, the bridge between editor (synedit) and the filesource system is now complete. In short it can be explained as this: Whenever the compiler needs a unit an event fires. But you need a unified system so that units can be found everywhere. This is basically the same as what Delphi does with its search paths (tools -> options -> libraries -> library paths). But more importantly, the system needs to be clever and not just locate a file with a name, but rather return a list of candidates. Lets just say that TDictionary and hashed lookup tables are involved in finding files quickly. Secondly, the calling routine in question then have to make a decision on which of the resulting files is the unit you need (for example, if the file is a part of a package, then naturally a filename from that package receives a higher score than a file with the same name in another location). So this is not a walk in the park but requires a bit of thinking and infrastructure.

Also you want the IDE to be as clean and abstract as possible. So i created a class system that allows me to abstract files from the ide completely. So the IDE now happily loads and works with files no matter where they are. The RTL will not be “open” but rather stored in a sealed package.

What is the benefit of this? To change compiler target and (obviously) RTL for another language (C#, C++, Javascript or whatever) you just change the package. It also means easy component distribution and last but not least – that the IDE can support several different RTL versions for different project types (a game doesn’t really need the overhead of TComponent or TEventDelegate). In short: Easy to maintain, no dependencies, and instead of shipping a full installer for updates, I can just ship the updated RTL package (zipfile).

Some "me only" windows showing but you get the idea

Some “me only” windows showing but you get the idea

Now that I think of it, I will probably make a special “DWS only” build. You wont find a better editor for all things DWS that’s for sure. The DWS webserver deserves a good IDE and it would be fun to make different RTL/Compiler version for different tasks. But first things first: HTML5 and C#

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: