Exactly the problem is that we updated compiler in "master" branch. And this compiler is packed in bbscript.exe now, so when you try to compile old branches (for example #44), it cause TRAP. First TRAP in Dialog module in position 26041.
Code: Select all
PROCEDURE Exclude (IN t: Tree; node: TreeNode);
VAR c: TreeNode;
BEGIN
ASSERT(node # NIL, 20); ASSERT(node.tree = SYSTEM.ADR(t), 100);
IF t.Selected() = node THEN t.Select(NIL) >>> here <<< END;
node.tree := 0;
c := node.firstChild;
WHILE c # NIL DO Exclude(t, c); c := c.next END
END Exclude;
that is reasonable, because new compiler from master "does not like" modification of IN parameters...
The solution is simple: for each branch we should store bbscript.exe inside folder and use it for compile BlackBox of that branch.
This will prevent the situation when experimental compiler damage 'master' (branch #38 was damaging master) and 'master' will not damage 'issues' branches if in master the compiler was modified.
Also I have two improvements of Script subsystem.
1. Utf8 output for Script/Mod/Config.odc (for modules with unicode names)
2. Better AppendProperty (I developed it while making build engines for my projects)
Can I push this changes into some issue brunch or in the master? Do you trust me to tune engine while you a bit busy?
I really do not think, that we need to vote about this changes.