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
AddOnTerminatethere is nowAddOnPause,AddOnResumeandAddOnUserTerminated(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

