Skip to content

Releases: Villavu/Simba

Simba 1400

Choose a tag to compare

@ollydev ollydev released this 25 Jul 02:19

Simba1400 with fixes.

Simba1500 Alpha

Simba1500 Alpha Pre-release
Pre-release

Choose a tag to compare

@ollydev ollydev released this 10 May 01:59

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 now AddOnPause, AddOnResume and AddOnUserTerminated (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

Choose a tag to compare

@ollydev ollydev released this 08 Aug 20:48

Simba 1.3 RC1

Simba 1.3 RC1 Pre-release
Pre-release

Choose a tag to compare

@MerlijnWajer MerlijnWajer released this 09 Nov 23:47
e0eeb97

Simba 1.2.0 Release Candidate 6

Pre-release

Choose a tag to compare

@nielsAD nielsAD released this 19 Dec 14:33

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

Pre-release

Choose a tag to compare

@JohnPeel JohnPeel released this 16 Jul 20:25

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

Pre-release

Choose a tag to compare

@JohnPeel JohnPeel released this 12 Jul 02:12

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

Pre-release

Choose a tag to compare

@JohnPeel JohnPeel released this 11 Jul 15:14

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

Pre-release

Choose a tag to compare

@JohnPeel JohnPeel released this 10 Jul 08:12

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

Pre-release

Choose a tag to compare

@JohnPeel JohnPeel released this 09 Jul 18:50

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