IronScheme

IronScheme 旨在成为一个基于微软 DLR 的、符合 R6RS 标准的类方案实现。「IronScheme aims to be a R6RS conforming Scheme-like implementation based on the Microsoft DLR.」

Github stars Tracking Chart

IronScheme

IronScheme 旨在成为一个基于微软 DLR 的、符合 R6RS 标准的类方案实现。

IronScheme 实现了超过 99% 的 R6RS 规范和指定行为。

构建

  1. 在 VS2019 中打开 IronSchemeCore.sln 文件
  2. 设置启动项目为 IronScheme.Console

或者,使用 IronScheme 目录下的 build.cmd 批处理文件。

在 Windows 上运行

运行 IronScheme.Console.exe,以获得你想要的目标运行时间和比特率。

V2 需要 .NET3.5。V4 需要的是 .NET4.0 或更高。几乎所有运行中的 Windows 都应该有其中的一个或两个。

你也可以用 .NET Core 运行它,它的编译功能有限。

在 Linux/MacOS 上运行

# get .NET Core if you dont have it already
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
dotnet-install.sh --channel Current --runtime dotnet # v2.1+
export -p PATH="$HOME/.dotnet:$PATH"


库的使用

从你的项目中引用 IronScheme.dll。

运行测试

构建完成后,你可以使用 NUnit 来运行 IronScheme.Tests.dll,它位于 IronScheme.Console bin 文件夹中。

IronScheme 目录下还有一个名为 test.cmd 的批处理文件。你可以在批处理文件中传递 /verbose,以便在失败的情况下看到完整的输出。

注意

确保 peverify 在你的 PATH 中。测试装置被设计为以特定的顺序执行。测试将不会少于6分钟完成。

Nuget feed

在 Nuget.org 和 CI-builds 上 https://ci.appveyor.com/nuget/ironscheme

问题

请在你的问题/PR 中 @leppie,否则我可能不知道。我不会主动监控 Github。如果我仍然没有答案,请在 Twitter 上唠叨我,也请 @leppie。

其他


Main metrics

Overview
Name With OwnerIronScheme/IronScheme
Primary LanguageScheme
Program languageC# (Language Count: 6)
PlatformLinux, Mac, Windows
License:Other
所有者活动
Created At2011-07-16 18:04:48
Pushed At2025-02-07 11:48:44
Last Commit At2024-11-15 20:17:08
Release Count74
Last Release Name1.0.575 (Posted on )
First Release Name1.0.110 (Posted on )
用户参与
Stargazers Count387
Watchers Count27
Fork Count45
Commits Count2k
Has Issues Enabled
Issues Count106
Issue Open Count21
Pull Requests Count16
Pull Requests Open Count1
Pull Requests Close Count3
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

IronScheme

IronScheme aims to be a R6RS conforming Scheme-like implementation based on the Microsoft DLR.

IronScheme implements over 99% of the R6RS specification and specified behavior.

Build status

Building

  1. Open the IronSchemeCore.sln file in VS2019
  2. Set startup project as IronScheme.Console

Alternatively, using the build.cmd batchfile in the IronScheme directory.

Running on Windows

Run the IronScheme.Console.exe for the runtime and bitness you want to target.

V2 requires .NET3.5. V4 requires requires .NET4.0 or higher. Pretty much any running Windows should have one or both of those.

You can also run it with .NET Core, which has limited compilation functionality.

Running on Linux/MacOS

# get .NET Core if you dont have it already
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
dotnet-install.sh --channel Current --runtime dotnet # v2.1+
export -p PATH="$HOME/.dotnet:$PATH"
# Download 
wget https://github.com/IronScheme/IronScheme/releases/download/<latest release>.zip
unzip <latest release>.zip
cd IronScheme
alias ironscheme="dotnet IronScheme.ConsoleCore.dll"
# if you prefer Mono
# alias ironscheme="mono IronScheme.Console-v4.exe"

ironscheme

Library usage

Reference IronScheme.dll from your project.

using IronScheme;

class Program
{
    static void Main(string[] args)
    {
        "(display 'hello-world)".Eval();
    }
} 

Running tests

After building, you can use NUnit to run IronScheme.Tests.dll in the IronScheme.Console bin folder.

There is also a batch file in the IronScheme directory called test.cmd. You can pass the /verbose to the batch file to see complete output in case of failures.

Note

Make sure that peverify is in your PATH. The test fixtures are designed to execute in a specfic order. The tests will not take less than 6 minutes to complete.

Nuget feed

On Nuget.org and CI-builds on https://ci.appveyor.com/nuget/ironscheme

Issues

Please @leppie in your issues/PR's, else I will probably not know about it. I do not actively monitor Github. If I still dont answers, nag me on Twitter, also @leppie.

Other