ILAssembler
ILAssembler copied to clipboard
ILAsm-like DSL for PowerShell
The `no.` prefix ([EMCA §III.2.2](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf#page=344&zoom=100,116,96)) seems to be excluded from both `SRE.OpCodes` and `SRM.ILOpCodes`. I'll need to find out if it's actually supported and why it was excluded.
https://github.com/SeeminglyScience/ILAssembler/blob/ccdac27792cbd89d800ace04fe5c896f58b8b210/src/ILAssembler/CilAssembler.cs#L244-L254 Saves one minor heap allocation every assemble, but not really worth the readability loss and the `stackalloc` doesn't guard against stack overflow.
Currently `DynamicMethod`s are cached by their AST and signature. This check should be skipped if `Ast.Extent.File` is blank as the call site is very unlikely to be called again and...
Maybe something like: ```powershell il -Closure 'test' ` -DelegateSignature { [int]([string]) } ` -MethodSignature { [int]([object], [string]) } ` -Body { ldarg.0 callvirt { [string] [object].ToString() } ldarg.1 call {...
I wrote a disassembler from scratch awhile ago and never did anything with it. I should be able to just change the formatting. Probably will be hosted in a different...
Thinking a fake attribute like: ```powershell using namespace System.Runtime.InteropServices il { [modreq([InAttribute])] [byref] [int] $_._() } { } ```
Should look like: ```powershell using namespace System using namespace System.Diagnostics using namespace System.Runtime.CompilerServices il { [byref] [int] $_._([object[]] $args) } { # Method attribute .custom { [void] [DebuggerStepThroughAttribute].new() } =...
Need: - [X] `calli` signature calling convention handling - [ ] Method signature parsing
Here's a rough draft of how that would look: ```powershell using namespace System using namespace System.IO using namespace System.Reflection using namespace System.Runtime.CompilerServices using namespace System.Text emitil -OutputPath ./bin { #...