SLThree 0.8.0-alpha.112
See the version list below for details.
dotnet add package SLThree --version 0.8.0-alpha.112
NuGet\Install-Package SLThree -Version 0.8.0-alpha.112
<PackageReference Include="SLThree" Version="0.8.0-alpha.112" />
paket add SLThree --version 0.8.0-alpha.112
#r "nuget: SLThree, 0.8.0-alpha.112"
// Install SLThree as a Cake Addin #addin nuget:?package=SLThree&version=0.8.0-alpha.112&prerelease // Install SLThree as a Cake Tool #tool nuget:?package=SLThree&version=0.8.0-alpha.112&prerelease
SLThree
.NET script programming language.
For more information about language: slt-lang.github.io
Powerful REPL with useful commands
Embedding
SLThree may be runned in any .NET language. Minimal version for .NET Framework is 4.7.1, for .NET Standard is 2.1.
Here code example for C#:
using System;
using SLThree;
using SLThree.Embedding;
namespace TestSLThree
{
public class Program
{
public class TC
{
public int x, y;
public Method sum;
public object Sum() => sum.Invoke(x, y);
}
public class TC2
{
public Func<int, int, int> sum2;
}
static void Main(string[] args)
{
//Context.ReturnedValue method
Console.WriteLine("return 2 + 2 * 2;".RunScript().ReturnedValue);
//Uwrapping method
var tc = "x = 3; y = 5; sum = (a, b) => a + b;".RunScript().Unwrap<TC>();
Console.WriteLine(tc.Sum());
//[Experimental] Compilation:
var tc2 = "sum2 = (new using jit).opt(sum2 = (i32 x, i32 y): i32 => x + y, self).CreateDelegate(@System.Func<i32, i32, i32>);".RunScript().Unwrap<TC2>();
Console.WriteLine(tc2.sum2(35, 65));
}
}
}
LANG and REPL compatibility
REPL version | LANG version |
---|---|
2.0.0 | 0.7.0+ |
1.* | 0.2.0 — 0.6.0 |
Download
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NET Framework | net471 is compatible. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
0.9.0-alpha.700 | 50 | 10/5/2024 | |
0.9.0-alpha.580 | 52 | 9/1/2024 | |
0.9.0-alpha.555 | 82 | 8/18/2024 | |
0.9.0-alpha.484 | 64 | 8/15/2024 | |
0.9.0-alpha.411 | 51 | 8/8/2024 | |
0.9.0-alpha.333 | 42 | 8/4/2024 | |
0.9.0-alpha.308 | 41 | 8/2/2024 | |
0.9.0-alpha.247 | 55 | 7/31/2024 | |
0.9.0-alpha.209 | 42 | 7/31/2024 | |
0.9.0-alpha.186 | 49 | 7/30/2024 | |
0.9.0-alpha.149 | 42 | 7/29/2024 | |
0.9.0-alpha.115 | 51 | 7/28/2024 | |
0.9.0-alpha.68 | 59 | 6/21/2024 | |
0.9.0-alpha.30 | 57 | 6/18/2024 | |
0.8.1 | 119 | 6/22/2024 | |
0.8.0 | 115 | 6/21/2024 | |
0.8.0-rc.112 | 60 | 6/20/2024 | |
0.8.0-rc.45 | 69 | 6/19/2024 | |
0.8.0-rc.0 | 72 | 6/18/2024 | |
0.8.0-beta.0 | 63 | 6/13/2024 | |
0.8.0-alpha.234 | 63 | 6/12/2024 | |
0.8.0-alpha.208 | 76 | 6/9/2024 | |
0.8.0-alpha.112 | 68 | 6/9/2024 | |
0.8.0-alpha.67 | 72 | 6/8/2024 | |
0.8.0-alpha.48 | 63 | 6/8/2024 | |
0.8.0-alpha.10 | 67 | 6/8/2024 | |
0.7.1.2989 | 118 | 6/1/2024 | |
0.7.0.2988 | 146 | 4/24/2024 | |
0.6.0 | 144 | 1/22/2024 | |
0.5.2.1 | 178 | 12/10/2023 |
------ 0.8.0 ------ [~.~.~]
Language:
- You can now copy contexts with ":" in the following cases:
- New initializers: // [] - optional
`new T [Name][: Ancestors][{...}]`
- New context creators:
`context [Name][: Ancestors] {...}`
`new context [Name][: Ancestors]`
- Statement-like notation (without `;`) for expressions with body:
condition, match, context, new
- Constructor method that creates new contexts
`context TBase { constructor = (f) => this.f = f; };`
`T1 = TBase(5); T2 = TBase(10);`
- Condition expression instead of condition statement
- Changed context syntax:
`new context Name: T {...}` -> `new T Name {...}`
`new context: T {...}` -> `new T {...}`
`new context Name: T` -> `new T Name`
`new context: T` -> `new T`
`new context Name {...}` -> `context Name {...}`
`new context {...}` -> `context {...}`
Optimization:
- Wrappers refactoring, minumum 3x faster wrapping
minimum 20x faster unwrapping