Open Sibyl

Open Sibyl is a Pascal RAD (Rapid Application Development) Tool for OS/2 and eCS.

Description
Open Sibyl is based on Free Pascal Compiler and its libraries. This compiler was choosen after a long discussion on the mailinglist. The problem was that neither the original SpeedSoft compiler nor the VPC compiler are open source (which is a requirement because some things need to be changed/extended).

Advantages of Free Pascal Compiler (from Open Sibyl point of view):
 * Open Source (Under GNU GPL)
 * Borland Delphi compatible (and Turbo/Borland Pascal)
 * CORBA/SOM ready (not COM-only interfaces)

Disadvantages:
 * EMX-based

Starting from version 2.0 native OS/2 target additionaly to the EMX target is planned.

Why not Lazarus or Speed-Soft Sibyl?
Lazarus is a portable RAD Tool based on Free Pascal Compiler. The main disadvantage of Lazarus is the high portability of IDE. So many OS/2 features can't be used (like REXX, SOM, WPS). May be Lazarus will be ported to OS/2 as part of work with Free Pascal Compiler RTL (Run-time library) and IDE but it will never be supported by the OpenSibyl project.

Speed-Soft Sibyl is only available Pascal RAD for OS/2. But SPC implemented with some incompatible things, like class initialization, assembler code in places, where it cann't be placed. As result, SPCC and SVDE very depended on SPC. And required lot of work to make things usable on other compiler.

Both, Lazarus and Speed-Soft Sibyl are classic Delphi-like RAD. This is not exactly what I want. I prefer to have tool, closely integrated with WPS. SOM support in language must be on level of C/C++. SOM is real target of OpenSibyl project.

How it must look?
Remember OpenDoc. It's one side. If you seen BlackBox (Component Pascal IDE) or Oberon OS then you imagine another side. Combination of both of them is OpenSibyl. OpenDoc is document-centric model, but OpenSibyl is application centric model. Core is SOM, WPS and OpenDoc. WPS and OpenDoc as IDE. Componens (buttons, comboboxes, labels, etc.) are OpenDoc parts. Interactions of components controlled by OSA. WPS class (like Templates folder) implements component toolbar (like in Delphi). Form part has property 'Lock' (like for WPS icons). After Lock is on component in running mode. If lock is off then component in edit mode.

Development plans
Development of Open Sibyl is a long term project. First of all, complete RTL is required. This work is not a part of the Open Sibyl project, but part of FPC development. Still a lot of API's are not supported by the OS/2 version of Free Pascal Compiler. This part is quite easy to do as it doesn't require deep knowledge of compiler or libraries.

The second goal is also part of the FPC development: This is to port FPC IDE with debugger. After this all requirements regarding Open Sibyl development tools are fulfilled.

SPCC is the base of any Delphi-like tool (like VCL/CLX for Delphi/Kylix). But I don't want to have another Delphi-like RAD. I want to have SOM-based RAD. So SOMObjects is the base of OpenSibyl. And OpenDoc parts are components.

Last part is OSA support to support events. It's includes Object REXX support (remember, Object REXX will be open-sourced). Application itself will be distributed as OpenDoc documents/applications. This means any can modify and extend them.

Subprojects

 * OS/2 API convertion
 * The goal is convert all OS/2 Developers ToolKit C headers (*.h) to Pascal units. Result must be published under modified GNU LGPL (as other FPC libraries).
 * Independent subproject.
 * Core API finished. fpc/rtl/*.pas of FPC source tree.
 * GDB porting
 * Port newer GDB with FPC modifications. Current GDB (and PMGDB) is outdated.
 * Result must be part of FPC development.
 * Independent subproject.
 * SOM headers porting
 * Port SOM ToolKit headers to FPC environment. Result must be part of FPC development.
 * Depends on OS/2 API conversion.
 * Core headers converted. fpc/packages/extra/os2units/som/som.pas of FPC source tree.
 * SOM Compiler Pascal Emitter
 * Write emitter to produce pascal bindings from the IDL. Because no Pascal support for SOM as yet emitter must be implemented in C/C++. Open Watcom is selected tool for this.
 * Depends on SOM headers conversion.
 * Write OpenSibyl WPS classes
 * Project must be maintaned by WPS class. Partal Pascal source parsing must be implemented to control source tree (FPC already has Pascal parser ;)).
 * Another class is component tool bar. Subclass of WPSFolder but with another view. Actually, components are templates.
 * Depends on SOM Compiler Pascal Emitter.
 * OpenDoc runtime
 * Repack OpenDoc runtime (can be found at hobbes). License allow us to ship parts of OpenDoc with our product.
 * Depends on SOM Compiler Pascal Emitter.
 * OSA support
 * Still no lot of information according OSA. At least we need to find/rewrite runtime.
 * Depends on SOM Compiler Pascal Emitter.

WDSibyl
Previously Open Sibyl was based on Speed-Soft Sibyl SPCC (Sibyl Portable Component Classes) and SVDE (Sibyl Visual Development Tool) sources published under GNU Lesser Public License and GNU Public License. It's very much like Delphi on Windows or Kylix on Linux. The goal was to provide an easy to use tool for application development on OS/2 and eCS.

After some time I have found SPCC not so good as expected. Implementation too closed to SPC-specific features. So I finished real work on SPCC and SVDE because my real target always was SOM support in Pascal (and WPS-based RAD).

If one of you want to have Delphi-like RAD you still can use WDSibyl - project with goal to extend Sibyl SVDE & SPCC. Thanks to Wolfgang for maintance of WDSibyl project.

Abbreviations

 * API:Application Programming Interface
 * RTL:Run-Time Library
 * SPCC:Sibyl Portable Component Classes
 * IDE:Integrated Development Environment
 * SVDE:Sibyl Visual Development Environment
 * FCL:Free Component Library
 * LCL:Lazarus Component Library
 * FPC:Free Pascal Compiler
 * VPC:Virtual Pascal Compiler
 * SPC:Speed Pascal Compiler
 * FV:Free Vision (Turbo Vision clone)
 * SOM:System Object Model
 * WPS:WorkPlace Shell
 * SOMTK:SOM ToolKit
 * GDB:GNU Debugger
 * IDL:Interface Definition Language
 * OSA:Open Scripting Architecture

OpenSibyl pages updated
Starting from FPC 2.0 OS/2 version will come with new features: FV and text-mode IDE. Work on SOM support for OpenSibyl in progress. OpenSibyl pages updated to make things more clear. First stage of OpenSibyl development finished

All required OS/2 API functions converted and placed to Free Pascal repository. OpenSibyl become to next stage: debugger and FPC IDE. Side news: forms.pas already compiled under fpc. Form created, shown and faster hidden (very interesting blink ;)). Developers still welcomed.

OpenSibyl now online
OpenSibyl now online! Read, enjoy and help ;-)

Download
The snapshots are done every week monday morning at 6.00 swiss time.
 * Latest update of the stable Free Pascal Compiler (base package) : Base package of the latest update of the stable Free Pascal Compiler for EMX.
 * Latest OpenSibyl sources : Latest snapshots of Open Sibyl sources. Can help to whose who can't access CVS.
 * Latest update of release of Free Pescal Compiler (FCL) : Snapshot of 1.0.x fixes branch

Links

 * Free Pascal Compiler
 * Lazarus
 * OpenSibyl mailinglist archive
 * Free Pascal for OS/2 Mailing List
 * WDSibyl