Releases: Villavu/Simba
Simba 1400
Simba1400 with fixes.
Simba1500 Alpha
It's been years but a new Simba release is here. If you've still been active in the community this is building on Simba 1.3, which somehow never got a release.
Some Simba related changes:
- The GUI at this point been completely rewritten and is dockable. Drag the header of a component to rearrange or attach/detach.
- Scripts now run in their own process.
- DTM Editor & ACA.
- Package system.
- Quoted Files/URLs can now be clicked and opened from the output box
- Holding F1 will now print the current mouse position.
- In addition to
AddOnTerminate
there is nowAddOnPause
,AddOnResume
andAddOnUserTerminated
(the stop button was clicked)
The following are some of the major scripting changes.
Self Variable
Self is no longer implicit. It's now required to access the type variable.
// Previously
procedure TPoint.Test;
begin
X := 15;
Y := 15;
end;
// Now
procedure TPoint.Test;
begin
Self.X := 15;
Self.Y := 15;
end;
Previous functionality can be enabled with {$EXPLICTSELF OFF}
or with
can be used which is what was happening before internally.
procedure TPoint.Test;
begin
with Self do
begin
X := 15;
Y := 15;
end;
end;
Constref (Method Modifier)
constref
as a method modifier has been removed. If the variable is not writable a copy is made.
procedure Integer.Next;
begin
Self += 1;
end;
const
MyConst: Integer = 100;
var
MyVar: Integer = 100;
begin
MyConst.Next();
WriteLn('It did not change! ', MyConst);
MyVar.Next();
WriteLn('It changed! ', MyVar);
end;
Array Helpers
Many methods are now automatically added to arrays.
var
Arr: array of Integer;
begin
Arr.SetLength(1);
end;
Full list:
function <Array>.Low: Integer;
function <Array>.High: Integer;
function <Array>.Contains(Value: <ArrayType>): Boolean;
procedure <Array>.Swap(FromIndex, ToIndex: Integer);
function <Array>.Unique: <Array>;
function <Array>.IndexOf(Value: <ArrayType>): Integer;
function <Array>.IndicesOf(Value: <ArrayType>): TIntegerArray;
procedure <Array>.Sort;
procedure <Array>.Sort(CompareFunc: function(constref L, R: <ArrayType>): Integer);
procedure <Array>.Sort(Weights: TIntegerArray; LowToHigh: Boolean);
function <Array>.Sorted: <Array>;
function <Array>.Sorted(CompareFunc: function(constref L, R: <ArrayType>): Integer): <Array>;
function <Array>.Sorted(Weights: TIntegerArray; LowToHigh: Boolean): <Array>;
function <Array>.Length: Integer;
function <Array>.Copy: <Array>;
function <Array>.Copy(StartIndex: Integer; Count: Integer = High(Integer)): <Array>;
function <Array>.First: <ArrayType>;
function <Array>.Last: <ArrayType>;
function <Array>.RandomValue: <ArrayType>;
function <Array>.Reversed: <Array>;
function <Array>.Min: <ArrayType>;
function <Array>.Max: <ArrayType>;
function <Array>.Sum: <ArrayType>;
function <Array>.Mode: <ArrayType>;
function <Array>.Median: Double;
function <Array>.Mean: Double;
function <Array>.Variance: Double;
function <Array>.Stddev: Double;
function <Array>.Slice(Start, Stop, Step: Integer): <Array>;
function <Array>.Remove(Value: <ArrayType>): Boolean;
function <Array>.RemoveAll(Value: <ArrayType>): Integer;
procedure <Array>.Delete(Index: Integer; Count: Integer = High(Integer));
procedure <Array>.Insert(Item: <ArrayType>; Index: Integer);
procedure <Array>.SetLength(NewLength: Integer);
function <Array>.Pop: <ArrayType>;
function <Array>.Pop(Index: Integer): <ArrayType>;
function <Array>.RandomValue: <ArrayType>;
procedure <Array>.Reverse;
procedure <Array>.Clear;
procedure <Array>.Append(Value: <ArrayType>);
procedure <Array>.Extend(Value: <Array>);
Static Improvements
Static methods have had an improvement. Attempting to call a non-static method with a type will now error.
procedure String.Test;
begin
end;
begin
String.Test(); // Variable expected. "String.Test" is not a static method
end;
Bitmap Changes
The old bitmap integer wrappers have been removed. TMufasaBitmap
is now used which is what most Includes have been using for a long time.
var Bitmap: Integer;
begin
Bitmap := CreateBitmap(100, 100);
end;
var Bitmap: TMufasaBitmap;
begin
// Either
Bitmap.Init();
// Or
Bitmap := TMufasaBitmap.Create();
end;
FormatMilliseconds
Format them milliseconds.
It supports a lot. See the method here.
var
t: UInt64;
begin
t := 120*60000+6000;
WriteLn FormatMilliseconds(t, 'hh:mm:ss'); // 02:00:06
end.
String methods
Lots of string helpers have been added.
See all the methods here.
var
s: String;
begin
s := 'Hello World';
WriteLn s.Before(' '); // Hello
end.
Include & Macros
The include directive can now load from a URL:
{$I URL(www.someurl.com)}
The macro directive can now reference a environment variable.
WriteLn({$MACRO ENV(PATH)})
Area selector
A simple area selector has been added.
Once opened the area can be expanded by dragging the sides/corners.
To close either double click or press enter/escape. The selected area will be printed in the output box.
Simba 1.3 RC2
Full Simba changes: simba-1.3.0-rc1...simba-1.3-rc2
Full Lape changes: nielsAD/lape@824f0ef...7e28b53
Simba 1.3 RC1
Simba 1.2.0 Release Candidate 6
Linux fixes (safecall exceptions)
Introduce unused variable hints
Simba Changelog: simba-1.1.0...simba-1.2.0-rc6
Lape Changelog: SRL/Lape@0fd129b...a2a8eaa
Build: http://l0.lt/builders/master/builds/818
Downloads: http://nala.villavu.com/downloads/master/05a0dc6397ebfbf77d10eae153e58a5050678f87/
Simba 1.2.0 Release Candidate 5
Updated Lape! (many new features)
Form Designer
Many bugfixes (Including code-hints!!!)
Simba Changelog: simba-1.1.0...simba-1.2.0-rc5
Lape Changelog: SRL/Lape@0fd129b...95cb621
Build: http://l0.lt/builders/master/builds/813
Downloads: http://nala.villavu.com/downloads/master/e6628df9bdca1bd1d2a0b63454b71878740affee/
Simba 1.2.0 Release Candidate 4
Lots of small changes to gui and bug fixes.
Simba Changelog: simba-1.1.0...simba-1.2.0-rc4
Lape Changelog: SRL/Lape@0fd129b...affab04
Simba 1.2.0 Release Candidate 3
Plugin loading was fixed!
Simba Changelog: simba-1.1.0...simba-1.2.0-rc3
Lape Changelog: SRL/Lape@0fd129b...dd0d8c4
Simba 1.2.0 Release Candidate 2
Fixed some random hints, and updated FFI libraries.
Simba Changelog: simba-1.1.0...simba-1.2.0-rc2
Lape Changelog: SRL/Lape@0fd129b...dd0d8c4
Simba 1.2.0 Release Candidate 1
Mostly bug fixes!
The new things include a revamped form designer and the latest version of Lape.
Simba Changelog: simba-1.1.0...simba-1.2.0-rc1
Lape Changelog: SRL/Lape@0fd129b...ee92d04