Difference between revisions of "A few notes on running Visual Prolog 5.2 on recent eComStation systems"

From EDM2
Jump to: navigation, search
m
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is not as much a full article as a series of notes, tips and waffle for those setting up the VIP 5.2 development system on a modern OS/2 compatible system.
 
  
As to why you would want to run such an old piece of a development system in a modern setting, well the 5.2 version of Visual Prolog is something special in many ways, it compiles not just on and to 32 bit MS Windows like the more modern versions of VIP do, it also compiles to 16 bit or extended 32 bit DOS, 16 and 32 bit OS/2 GUI and textmode, 16 bit Windows GUI and creates text mode programs for Linux and SCO Unix, the Linux bit requires a bit of messaging to work on modern variants but it can work.
+
As to why you would want to run such an old piece of a development system in a modern setting, well the 5.2 version of [[Visual Prolog]] is something special in many ways, it compiles not just on and to 32-bit MS Windows like the more modern versions of VIP do, it also compiles to 16-bit or extended 32-bit DOS, 16 and 32-bit OS/2 GUI and text-mode, 16-bit Windows GUI and creates text mode programs for Linux and SCO Unix, the Linux bit requires a bit of messaging to work on modern variants but it can execute.
  
Also you can create Windows and DOS executables from the OS/2 version of the toolkit and vice versa, without even downloading SDK's for any of those systems. This sort of flexibility and SDK less & integrated development is really only matched by [[Open Watcom]], and while VIP does not have the systems programming flexibility of Watcom, it offers RAD capabilities not matched by many OS/2 development systems.
+
Also you can create Windows and DOS executables from the OS/2 version of the system and vice versa, without even downloading SDKs for any of those systems. This sort of flexibility and SDK less & integrated development is really only matched by [[Open Watcom]], and while VIP does not have the systems programming flexibility of Watcom, it offers RAD capabilities not matched by many OS/2 development systems, if any.
  
This gives you a platform not just to work on software for older operating systems side by side with generating executables that are valid modern Windows software that runs on recent 32 and 64 bit versions of Windows, but also gives you the opportunity to work on older pieces of code initially developed for PDC Prolog or even ancient Turbo Prolog source code with out having to do too many changes to the source code as you would with newer versions of the package, which has developed quite a bit in the last decade. VIP versions up to 5.1 were in fact compatible with the old DOS [[Borland]] graphics toolkit giving them some source level compatibility back to the original Turbo Prolog release of 1986, you can run older VPI versions side by side with 5.2 and work on getting old code compiling under 5.2. Since there is a toolkit available that helps you port VIP 5.2 applications to modern versions of VIP (but not older VIP versions), you can use VIP 5.2 as a bridge to port even older Turbo and PDC Prolog code to modern systems.
+
This gives you a platform not just to work on software for older operating systems side by side with generating executables that are valid modern Windows software that runs on recent 32 and 64-bit versions of Windows, but also gives you the opportunity to work on older pieces of code initially developed for [[PDC Prolog]] or even ancient [[Turbo Prolog]] source code without having to do too many changes to the source code as you would with newer versions of the package, which has developed quite a bit in the last decade. VIP versions up to 5.1 were in fact compatible with the old DOS [[Borland]] graphics toolkit giving them some source level compatibility back to the original Turbo Prolog release of 1986, you can run older VIP versions side by side with 5.2 and work on getting old code compiling under 5.2. Since there is a toolkit available that helps you port VIP 5.2 applications to modern versions of VIP (but not older VIP versions), you can use VIP 5.2 as a bridge to port even older Turbo and PDC Prolog code to modern systems.
  
 
Or in other words, in addition to the development capabilities that are inherent in the VIP 5.2 system, you can use it as a tool to port even older code to modern systems. That Turbo Prolog code you wrote as a young whippersnapper in 1986 on a 4.77 MHz 8/16 bit 8088 running DOS 3, and was meant to revolutionise the AI industry, can continue to be unhelpful in 2016 on a 12 core 64/80/128 bit 4.5 GHz AMD processor running Windows 10, a system that you otherwise primarily use to tell the kidz to get off your <strike>lawn</strike> Wi-Fi.
 
Or in other words, in addition to the development capabilities that are inherent in the VIP 5.2 system, you can use it as a tool to port even older code to modern systems. That Turbo Prolog code you wrote as a young whippersnapper in 1986 on a 4.77 MHz 8/16 bit 8088 running DOS 3, and was meant to revolutionise the AI industry, can continue to be unhelpful in 2016 on a 12 core 64/80/128 bit 4.5 GHz AMD processor running Windows 10, a system that you otherwise primarily use to tell the kidz to get off your <strike>lawn</strike> Wi-Fi.
 
As for the programming language itself it is a strongly typed version of Prolog, best described as almost a hybrid of Prolog and [[Modula 2]]. In some ways it is strongly reminiscent of the more modern programming language [[Mercury]] that took a similar path of Wirth family/Prolog family hybridisation to getting a usable compiled code out of a Prolog system that otherwise would be interpreted. The main difference being that the VIP system is a bona fide application development system with RAD generators, debuggers and everything else you need to ship a working code while like so many of the Unix derived tools used today, just getting Mercury to compile is a pain, you can forget about debugging and GUI development.
 
  
 
All what follows applies to the full version of VIP 5.2 that has been set up with all the target and library options, your mileage may vary, and note that the free version of VIP 5.2 lacks some of the libraries used and if I remember correctly showed a slightly different installation behaviour.
 
All what follows applies to the full version of VIP 5.2 that has been set up with all the target and library options, your mileage may vary, and note that the free version of VIP 5.2 lacks some of the libraries used and if I remember correctly showed a slightly different installation behaviour.
 
 
  
 
==Installation==
 
==Installation==
The installation throws an error on some eComSation systems but appears to install without a fault on others, I have not been able to track down why. Notably it those cases it does not create a program manager group or modify the config.sys but since VPI actually does not rely on the paths in the config.sys this is not too big a problem, just create program objects on the desktop for VPI.exe and the converter found in the \VIP52\BIN\OS2\ directory.
+
The installation throws an error on some eComSation systems but appears to install without a fault on others, I have not been able to track down why. Notably it those cases it does not create a program manager group or modify the ''CONFIG.SYS'' but since VPI actually does not rely on the paths in the ''CONFIG.SYS'' this is not too big a problem, just create program objects on the desktop for ''VPI.exe'' and the converter found in the ''\VIP52\BIN\OS2\'' directory.
  
 
Note that it sometimes sets up Prolog directory as the  directory that you installed from (presumably your CD ROM) rather than the one you installed to, fix this by changing x:\xxx\VIP52\BIN\OS2\setpath.cmd as required.
 
Note that it sometimes sets up Prolog directory as the  directory that you installed from (presumably your CD ROM) rather than the one you installed to, fix this by changing x:\xxx\VIP52\BIN\OS2\setpath.cmd as required.
  
 
* The OS/2 installer does not require a serial number like the Windows installer does
 
* The OS/2 installer does not require a serial number like the Windows installer does
 
  
 
==Documentation and examples==
 
==Documentation and examples==
The documentation as shipped does not accurately reflect the version of the compiler shipped with the system.
+
The documentation and examples that were shipped with the last version of VP 5.2 are older than the compiler, the examples would not compile and the syntax of the language had changed enough to make even the basic pieces shown in the manual stop working.
  
 
==Usage==
 
==Usage==
 +
* The free version of VIP 5.2 in addition to missing some features adds a "personal use only"/[[No commercial usage clause]] to every exe it generates.
  
 
* The free version of VIP 5.2 in addition to missing some features adds a "personal use only"/[[No commercial usage clause]] to every exe it generates.
 
 
====Project & file creation====
 
====Project & file creation====
 
Not mentioned in the manual but in the OS/2 project creation directory window you can create a new sub folder of a given directory by writing it in the sub folder text box and pressing OK, the project will then be created in the new folder. It cannot by design however create sub-folders of that folder.
 
Not mentioned in the manual but in the OS/2 project creation directory window you can create a new sub folder of a given directory by writing it in the sub folder text box and pressing OK, the project will then be created in the new folder. It cannot by design however create sub-folders of that folder.
Line 39: Line 32:
 
The VIP converter does an excellent job of automatically converting code and resources between OS/2 and windows, however some of the standards have changed since this was originally developed, the HLP windows files have now been depreciated although you can download help.exe's for modern Windows systems from Microsoft. Icon conversions are low resolution/few colours on both systems, which gives them a distinctly 1992-ish look.
 
The VIP converter does an excellent job of automatically converting code and resources between OS/2 and windows, however some of the standards have changed since this was originally developed, the HLP windows files have now been depreciated although you can download help.exe's for modern Windows systems from Microsoft. Icon conversions are low resolution/few colours on both systems, which gives them a distinctly 1992-ish look.
  
If we wait a few years, perhaps Win3.1 style icons will come back in fashion, but it may be better just to use the built in conversion tools initially and then replace the icons in the finished executable with something more modern.
+
If we wait a few years, perhaps Win 3.1 style icons will come back in fashion, but it may be better just to use the built in conversion tools initially and then replace the icons in the finished executable with something more modern.
  
 
For cross compilation to Windows the option to inject a signature into the .exe would be really helpful since modern windows systems bitch about this even though they do run unsigned executables if pressed hard. Although you can use Microsoft's SignTool this is a bit manual and alongside the antiquated help files the only thing that prevents VPI to be used without an SDK on both systems.
 
For cross compilation to Windows the option to inject a signature into the .exe would be really helpful since modern windows systems bitch about this even though they do run unsigned executables if pressed hard. Although you can use Microsoft's SignTool this is a bit manual and alongside the antiquated help files the only thing that prevents VPI to be used without an SDK on both systems.
Line 50: Line 43:
 
* [http://msdn.microsoft.com/en-us/library/bfsktky3%28v=vs.80%29.aspx MS Certificate Creation Tool] - Useful for testing certificate signing before shelling out for one.
 
* [http://msdn.microsoft.com/en-us/library/bfsktky3%28v=vs.80%29.aspx MS Certificate Creation Tool] - Useful for testing certificate signing before shelling out for one.
  
 
+
[[Category:Prolog Articles]]
[[Category:Tools Articles]] [[Category:Prolog]] [[Category:Visual Prolog]]
+

Latest revision as of 22:02, 23 June 2020

As to why you would want to run such an old piece of a development system in a modern setting, well the 5.2 version of Visual Prolog is something special in many ways, it compiles not just on and to 32-bit MS Windows like the more modern versions of VIP do, it also compiles to 16-bit or extended 32-bit DOS, 16 and 32-bit OS/2 GUI and text-mode, 16-bit Windows GUI and creates text mode programs for Linux and SCO Unix, the Linux bit requires a bit of messaging to work on modern variants but it can execute.

Also you can create Windows and DOS executables from the OS/2 version of the system and vice versa, without even downloading SDKs for any of those systems. This sort of flexibility and SDK less & integrated development is really only matched by Open Watcom, and while VIP does not have the systems programming flexibility of Watcom, it offers RAD capabilities not matched by many OS/2 development systems, if any.

This gives you a platform not just to work on software for older operating systems side by side with generating executables that are valid modern Windows software that runs on recent 32 and 64-bit versions of Windows, but also gives you the opportunity to work on older pieces of code initially developed for PDC Prolog or even ancient Turbo Prolog source code without having to do too many changes to the source code as you would with newer versions of the package, which has developed quite a bit in the last decade. VIP versions up to 5.1 were in fact compatible with the old DOS Borland graphics toolkit giving them some source level compatibility back to the original Turbo Prolog release of 1986, you can run older VIP versions side by side with 5.2 and work on getting old code compiling under 5.2. Since there is a toolkit available that helps you port VIP 5.2 applications to modern versions of VIP (but not older VIP versions), you can use VIP 5.2 as a bridge to port even older Turbo and PDC Prolog code to modern systems.

Or in other words, in addition to the development capabilities that are inherent in the VIP 5.2 system, you can use it as a tool to port even older code to modern systems. That Turbo Prolog code you wrote as a young whippersnapper in 1986 on a 4.77 MHz 8/16 bit 8088 running DOS 3, and was meant to revolutionise the AI industry, can continue to be unhelpful in 2016 on a 12 core 64/80/128 bit 4.5 GHz AMD processor running Windows 10, a system that you otherwise primarily use to tell the kidz to get off your lawn Wi-Fi.

All what follows applies to the full version of VIP 5.2 that has been set up with all the target and library options, your mileage may vary, and note that the free version of VIP 5.2 lacks some of the libraries used and if I remember correctly showed a slightly different installation behaviour.

Installation

The installation throws an error on some eComSation systems but appears to install without a fault on others, I have not been able to track down why. Notably it those cases it does not create a program manager group or modify the CONFIG.SYS but since VPI actually does not rely on the paths in the CONFIG.SYS this is not too big a problem, just create program objects on the desktop for VPI.exe and the converter found in the \VIP52\BIN\OS2\ directory.

Note that it sometimes sets up Prolog directory as the directory that you installed from (presumably your CD ROM) rather than the one you installed to, fix this by changing x:\xxx\VIP52\BIN\OS2\setpath.cmd as required.

  • The OS/2 installer does not require a serial number like the Windows installer does

Documentation and examples

The documentation and examples that were shipped with the last version of VP 5.2 are older than the compiler, the examples would not compile and the syntax of the language had changed enough to make even the basic pieces shown in the manual stop working.

Usage

  • The free version of VIP 5.2 in addition to missing some features adds a "personal use only"/No commercial usage clause to every exe it generates.

Project & file creation

Not mentioned in the manual but in the OS/2 project creation directory window you can create a new sub folder of a given directory by writing it in the sub folder text box and pressing OK, the project will then be created in the new folder. It cannot by design however create sub-folders of that folder.

Program updates

The PDC company updated the system to version 5.2.1 but the bulk of those updates were MS Windows specific and had little to do with OS/2, DOS or any of the Unices supported. One change in particular is very useful even though it is Windows only is the Unicode support.

What is missing

The VIP converter does an excellent job of automatically converting code and resources between OS/2 and windows, however some of the standards have changed since this was originally developed, the HLP windows files have now been depreciated although you can download help.exe's for modern Windows systems from Microsoft. Icon conversions are low resolution/few colours on both systems, which gives them a distinctly 1992-ish look.

If we wait a few years, perhaps Win 3.1 style icons will come back in fashion, but it may be better just to use the built in conversion tools initially and then replace the icons in the finished executable with something more modern.

For cross compilation to Windows the option to inject a signature into the .exe would be really helpful since modern windows systems bitch about this even though they do run unsigned executables if pressed hard. Although you can use Microsoft's SignTool this is a bit manual and alongside the antiquated help files the only thing that prevents VPI to be used without an SDK on both systems.

  • An OS/2 Unicode mode compatible with the Windows one would be useful. Since the Win Unicode mode is just a static library it may be possible to recreate this on eCS.

Links