Difference between revisions of "BlackBox Component Builder 1.7"

From BlackBox Framework Wiki
Jump to navigation Jump to search
 
(31 intermediate revisions by 4 users not shown)
Line 1: Line 1:
===Download beta version 1.7:===
== Download ==


[http://blackboxframework.org/lastdev Download exe]
Stable version 1.7 (Center, dated 13-September-2016):
* [http://blackboxframework.org/stable/blackbox-1.7-setup.exe 1.7 Setup]
* [http://blackboxframework.org/stable/blackbox-1.7-setup-sibfu.exe 1.7 Setup signed by digital certificate]
* [http://blackboxframework.org/stable/blackbox-1.7.zip 1.7 Zip]


[http://blackboxframework.org/lastdev/zip.php Download zip]
Latest (unstable) builds:
* [http://blackboxframework.org/unstable Browse directories]


===Migration from 1.6===
==Migration from 1.6 to 1.7==


There is the tool for batch compilation of subsystems: [http://forum.blackboxframework.org/download/file.php?id=124 ypkDevTool].
BlackBox 1.7 contains in its root directory a detailed change list ([http://blackboxframework.org/stable/blackbox-1.7-changes.html Changes list]
) documenting all changes from 1.6 to 1.7. Most changes don't affect existing code but all existing code must be recompiled.


=== Migration problems detected by the compiler ===


The several typical changes you should do for adopting your subsystems for 1.7 are listed down:
===== IN to VAR =====


==== IN to VAR ====
With 1.7 it is forbidden to use a variable declared as IN parameter as the receiver of a method call that expects a VAR receiver. You should change the IN parameter to VAR or the VAR receiver to IN in such a case.


Now it is forbidden to call method of argument variable marked out by IN. You should change this flag to VAR.
===== Read-only variables =====


==== Read only record variables ====
With 1.7 it is forbidden to call the methods of a read-only variable if the receiver is declared to be VAR. So you should export such a variable by * or use IN for the receiver.


With 1.7 you can not call the method of read-only variable object in other module. So you should export such variable with *.
===== WinNet.hostent definition =====


 
With 1.7 the WinNet.hostent definition [http://redmine.blackboxframework.org/projects/blackbox/repository/diff?utf8=%E2%9C%93&rev=b3f0ad9f9012f89fb110909485ef22d35a49a46e&rev_to=bc96c56d1c94894f8e2afaf4a919ad8e79cdae64 was fixed], so you need to replace:
==== Net ====
 
WinNet.hostnet definition [http://redmine.blackboxframework.org/projects/blackbox/repository/diff?utf8=%E2%9C%93&rev=b3f0ad9f9012f89fb110909485ef22d35a49a46e&rev_to=bc96c56d1c94894f8e2afaf4a919ad8e79cdae64 was changed], so you need to replace:


<code>inaddr := hostentry.h_addr_list^[0]^[0]</code>
<code>inaddr := hostentry.h_addr_list^[0]^[0]</code>
Line 31: Line 34:
<code>inaddr := SYSTEM.VAL(WinNet.in_addr, hostentry.h_addr_list^[0]^)</code>
<code>inaddr := SYSTEM.VAL(WinNet.in_addr, hostentry.h_addr_list^[0]^)</code>


=== Migration problems NOT detected by the compiler ===
===== Underlined white space =====
Underlined spaces and tabs are now shown according to the defined format, i.e. they are underlined. So we recommend you to check your documentation files and/or program generated text files to prevent unexpected underlines.
=== Options for improvements after Migration ===
===== UTF8 =====
UTF-8 conversion is supported "out of the box" from module <code>Strings</code>. So if you are using UTF-8 conversions embedded in your own code or from some third-party modules, you can switch to the new Strings procedures.
===== External calls =====
1.7 supports calling URLs (e.g. web pages, E-mails), so now you can be sure that the user can call your link from documentation even if external CPC subsystems such as Info or i21Sys are not installed.
Use the <code>Dialog.OpenExternal</code> procedure to call a URL.
===== Config & Converters =====
The new Converter.next* export allows uninstalling and ordering converters "on the fly" from any module not just from the Config module used at BlackBox startup.
==Useful tools for migration==


==== UTF8 ====
For recompiling your sources you can use the commands ''DevCompiler.MakeList'' and ''DevCompiler.CompileSubs'', which have been introduced in release 1.7. ''MakeList'' creates a file list for a set of subsystems that can be compiled with ''Dev->Compile Module List''. ''CompileSubs'' compiles a set of subsystems directly. The special symbol + stands for all subsystems that are not part of the standard BlackBox distribution.

Latest revision as of 12:11, 15 September 2016

Download

Stable version 1.7 (Center, dated 13-September-2016):

Latest (unstable) builds:

Migration from 1.6 to 1.7

BlackBox 1.7 contains in its root directory a detailed change list (Changes list ) documenting all changes from 1.6 to 1.7. Most changes don't affect existing code but all existing code must be recompiled.

Migration problems detected by the compiler

IN to VAR

With 1.7 it is forbidden to use a variable declared as IN parameter as the receiver of a method call that expects a VAR receiver. You should change the IN parameter to VAR or the VAR receiver to IN in such a case.

Read-only variables

With 1.7 it is forbidden to call the methods of a read-only variable if the receiver is declared to be VAR. So you should export such a variable by * or use IN for the receiver.

WinNet.hostent definition

With 1.7 the WinNet.hostent definition was fixed, so you need to replace:

inaddr := hostentry.h_addr_list^[0]^[0]

to

inaddr := SYSTEM.VAL(WinNet.in_addr, hostentry.h_addr_list^[0]^)

Migration problems NOT detected by the compiler

Underlined white space

Underlined spaces and tabs are now shown according to the defined format, i.e. they are underlined. So we recommend you to check your documentation files and/or program generated text files to prevent unexpected underlines.

Options for improvements after Migration

UTF8

UTF-8 conversion is supported "out of the box" from module Strings. So if you are using UTF-8 conversions embedded in your own code or from some third-party modules, you can switch to the new Strings procedures.

External calls

1.7 supports calling URLs (e.g. web pages, E-mails), so now you can be sure that the user can call your link from documentation even if external CPC subsystems such as Info or i21Sys are not installed.

Use the Dialog.OpenExternal procedure to call a URL.

Config & Converters

The new Converter.next* export allows uninstalling and ordering converters "on the fly" from any module not just from the Config module used at BlackBox startup.

Useful tools for migration

For recompiling your sources you can use the commands DevCompiler.MakeList and DevCompiler.CompileSubs, which have been introduced in release 1.7. MakeList creates a file list for a set of subsystems that can be compiled with Dev->Compile Module List. CompileSubs compiles a set of subsystems directly. The special symbol + stands for all subsystems that are not part of the standard BlackBox distribution.