CodePlexProject Hosting for Open Source Software
82 people following this project (follow)
ILSpy: Debug.ProcedureEnter(ldtoken($1())); // WTF? Reflector: Crashes blatantly! Unhandled ‘ldtoken’ at offset 0000. dotPeek: Well well, at least it got this right! Not sure why it is an issue though… // ISSUE: method reference Debug.ProcedureEnter(__methodref (eval\u002Dcore\u0028003\u0029.\u00241));
Output from Reflector: public static object $1() { Debug.ProcedureEnter(); Debug.ExpressionIn(); Debug.ExpressionOut(); Closure.Create(new CallTarget1(eval-core(003).::foo), 1); Debug.ExpressionIn(); Debug.ExpressionOut(); Closure.Create(new CallTarget2(eval-core(003).::bar), 2); Debug.ExpressionIn(); Debug.ExpressionOut(); Debug.ExpressionIn(); Debug.ExpressionOut(); ::dummy$2(::foo(RuntimeHelpers.Int32ToObject(20))); return Builtins.Unspecified; Debug.ProcedureExit(); } Output from ILSpy (correct): public static object $1() { Debug.ProcedureEnter(); Delegate arg_17_0 = new CallTarget1(eval-core(003).::foo); int arg_17_1 = 1; Debug.ExpressionIn(); Closure.Create(arg_17_0, arg_17_1); Debug.ExpressionOut(); Delegate arg_34_0 = new [...]
What Reflector makes out the C# to be: object[] a = new object[2]; a[0] = symbol_free-id; s11n:8 = objArray[8]; a[1] = s11n:8; $c$00BA = Builtins.List(symbol__, symbol_any, Builtins.ListStar(a, symbol_each-any)); What the actual IL is: L_045e: ldc.i4.2 L_045f: newarr object L_0464: dup L_0465: ldc.i4.0 L_0466: ldsfld object contracts::symbol_free-id L_046b: stelem.ref L_046c: dup L_046d: ldc.i4.1 L_046e: ldsfld object [...]
So someone asked a question on StackOverflow today, and I gathered the best solution was to use dynamic binding. Here follows a simple example on how to achieve it: class DynamicConsole : TextWriter { readonly TextWriter orig; readonly TextWriter output; public DynamicConsole(string filename) { orig = Console.Out; output = File.AppendText(filename); Console.SetOut(output); } public override System.Text.Encoding [...]
valerydc has successfully managed to embed and use IronScheme in Unity3D See http://forum.unity3d.com/threads/76266-Facilities-for-script-languages-Scheme-in-particular for details. You can also view the initial discussion @ http://ironscheme.codeplex.com/Thread/View.aspx?ThreadId=243958. Thanks a lot!
As some may have noticed, I have started actively working on IronScheme again. After a year of fiddling with other shit like microcontrollers and other hardware-related program, the itch for ‘bare-metal’ knowledge has finally subsided enough to let IronScheme take preference. Also, the IronScheme source code is now under a BSD license. The DLR goodies [...]
HiA common request is to have some form of compiled libraries to run a Scheme program, and not relying on source files for the program to run.This is already provided in IronScheme via precompiled/serialized libraries, but still results in a ‘binary’ format for every library file, which in turn can end up being quite a [...]
So everyone (well all the IronXXX people) is doing it, so I might well too I present using IronScheme in C# 4:class Program{ static dynamic Scheme = new SchemeEnvironment(); static void Main(string[] args) { var list = Scheme.list; var map = Scheme.map; [...]
HiAfter just over 1 year in beta phase, IronScheme has moved into release candidate phase.Download IronScheme 1.0 RC 1.Cheersleppie
HiI have recently checked in code that completely removes the usage (and in fact removes it from existence) of the DLR’s BigInteger implementation and replaces it with the IntX big number implementation.The new code provides much better performance in terms of multiplication of very big numbers. Although I have not benchmarked it, I suspect the [...]
As per the R6RS, I have now partially exploited compile time information to define record types at compile time if possible. Currently, it is only possible in the bootfile and only defines the ’shape’ of the record (iow fields).Further work will include making direct constructor (if possible), predicate, accessor and mutator references. This should provide [...]
I have moved with-clr-type and friends to the (ironscheme clr shorthand) library.clr-call, clr-field-get and clr-field-set! have been modified to infer the type based on the instance argument. This is good news, as it allows me to apply with-clr-type’s shorthand syntax fluidly (or recursively). To utilize this feature, you simply have to pass #f as the [...]
This one looks like a normal ‘let’ form, but binds to CLR constructed objects instead.Usage:(let-clr-type ((obj (TestClass "foo))) ; same as 'clr-new', but without 'clr-new' identifier (obj : Message))
I have added a new macro called ‘with-clr-type’, that tags an identifier with a CLR type, and this allows to write shorter syntax.Given the following class: public class TestClass { public string Source; public string Message { get; set; } public TestClass() [...]
The Scheme Programming Language – Fourth EditionThe new edition focuses on R6RS, which is the latest version of the Scheme language, and the one that IronScheme supports.Great reading! Thanks to Reddit (and the authors).Update:The site seems to have been taken down for unknown reasons. Let’s hope it reappears soon!Update 2:The site is now [...]
Just saw this on Reddit.The Scheme Programming Language – Fourth Edition
IronScheme 1.0 beta 4 is now available here.Please see the release notes for changes/fixes. This will also be the last beta before a possible release candidate, and the final 1.0 version.Cheersleppie
Over the last week or so, I have after some inspiration (and help from Fufie), added a bunch of documentation to the codeplex site.You can have a look here.As an added bonus, I wrote a little commandline webserver, that show cases another extension to the documentation (think library browser). The webserver is included in [...]
HiTo show the new debugging features of IronScheme, I have made a little screencast of it in action IronScheme DebuggingTo enable debugging of scripts, simply execute (debug-mode? #t) and attach a debugger to IronScheme.Console, and set a breakpoint in the scripts source file.
Yay! So they are good for use, and will be included in the next release.
Last edited Aug 25 2011 at 2:27 PM by leppie, version 47
I wanted to learn some LISP, and I step upon this project. I have been playing a bit with it, and it's really, really great that you... (more)
Ads by Lake Quincy Media
IronPython
IronLisp
IntX
Dynamic Language Runtime
IronRuby
Common Compiler Infrastructure - Metadata
Common Compiler Infrastructure - Code and AST components