• R/O
  • SSH

SOM-Delphi-Wiki: Commit

Markdown wiki backup


Commit MetaInfo

Revision0931b284f0c5bf0e80bd710818a333a525f0f9c8 (tree)
Zeit2016-10-26 06:33:19
AutorOCTAGRAM <bo_ <gen@octa...>
CommiterOCTAGRAM <bo_

Log Message

Downgraded to SOM 2.1 and using new bindings created by the same importer

Ändern Zusammenfassung

Diff

diff -r d9725d477c90 -r 0931b284f0c5 Home.md
--- a/Home.md Mon Oct 24 17:56:05 2016 +0000
+++ b/Home.md Tue Oct 25 21:33:19 2016 +0000
@@ -4,11 +4,15 @@
44
55 ## Achievements
66
7-Created by hand Delphi bindings for SOM 3.0 kernel and Interface Repository Framework. Created IR importer in Delphi using these bindings. IR importer opens SOM.IR file present in SOM DTK (0.5Mb binary file having information about every class in the SOM DTK) and writes SOMIRTest.DumpOut.pas. The currently reached milestone is generation of bindings enough to compile sample program (completely independent from previous manual bindings). The project is in transition from SOM 3.0 to SOM 2.1, and manual bindings and IR importer are still for SOM 3.0, while the output is being checked against SOM 2.1. The sample program now works as expected.
7+Created by hand Delphi bindings (old, procedural) for SOM 3.0 kernel, Emitter Framework and Interface Repository Framework. Created IR importer in Delphi using these bindings. Generated new object-style bindings for SOM 2.1. Ported IR importer from old bindings (and SOM 3.0) to the new bindings (and SOM 2.1). (SOM 2.1 is better, see below.) Now the importer uses bindings produced by itself. That means, these new bindings are usable enough to traverse the whole SOM.IR and regenerate bindings from scratch.
8+
9+There is only one tool at the moment: SOMIRIMP.exe, the name is chosen to be similar to [TLIBIMP.exe](http://docwiki.embarcadero.com/RADStudio/Berlin/en/TLIBIMP.EXE).
810
911 ## Current tasks
1012
11-Handle exceptions (suppressed currently). Rewrite importer to use autogenerated bindings for SOM2.1 as opposed to manually written bindings for SOM3.0. This would finish migration to SOM2.1.
13+Better exceptions handling (mapped to one class currently). Implement subclassing (currently client only). Check SOM.DLL for DEP issue and patch it like before.
14+
15+The IR importer is designed to generate self-sufficient files (this is to prevent RRBC issues on inter-BPL level in particular), so every file produced by IR importer is self-sufficient standalone unit. The output unit contains the dynamic part generated from SOM.IR (more complete compared to manual bindings) and the hardwired part (less complete). These are the procedures and functions not covered by SOM.IR database. Copying everything from SOM 3.0 bindings is not an option since SOM 2.1 is older and contains less procedures, so everything needs checking before copying.
1216
1317 ## Near future plans
1418
@@ -18,7 +22,7 @@
1822 2. The same patch (found on IBM FTP) also contains enough files to run DTC C++
1923 3. OpenDoc for Windows with ComponentGlue works with SOM 2.1, but not SOM 3.0
2024
21-So it makes sense to downgrade project from SOM 3.0 to SOM 2.1 eventually. We'll get DirectToSOM C++ and OLE Automation (read: JScript, VBScript, Python, PHP, ...) this way. This could be an effective demonstration.
25+With SOM 2.1 we get DirectToSOM C++ and OLE Automation (read: JScript, VBScript, Python, PHP, ...) this way. This could be an effective demonstration. SOM is known for its backwards compatibility, but SOM 3.0 Release (December 1996) is out of line. It looks like SOM 3.0 Beta (February 1996) was designed properly and could be used as SOM 2.1 replacement, but it is not available. Something happened in the middle of 1996, near to the project closure, and it impacted SOM 3.0 Release quality. So the preference is for SOM 2.1 currently (and then somFree).
2226
2327 After all I have decided to make another object model like SOM from scratch instead of using somFree. The object model itself rocks, but multiple minor features are crying for update. And since there is little point in being compatible with the 20-years old SOM, where most compiled libraries don't even work on modern OSes, we could restart with something modern.
2428
Show on old repository browser