{"id":13414985,"url":"https://github.com/IronScheme/IronScheme","last_synced_at":"2025-03-14T22:32:38.420Z","repository":{"id":1579434,"uuid":"2058856","full_name":"IronScheme/IronScheme","owner":"IronScheme","description":"IronScheme","archived":false,"fork":false,"pushed_at":"2025-02-07T11:48:44.000Z","size":77172,"stargazers_count":386,"open_issues_count":22,"forks_count":44,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-02T08:54:08.956Z","etag":null,"topics":["c-sharp","dotnet","dotnetcore","r6rs","r6rs-scheme","scheme"],"latest_commit_sha":null,"homepage":"","language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IronScheme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-07-16T18:04:48.000Z","updated_at":"2025-02-27T20:57:52.000Z","dependencies_parsed_at":"2023-11-23T15:23:50.442Z","dependency_job_id":"f7ab5233-6e28-4b5b-8c73-194bb00fa477","html_url":"https://github.com/IronScheme/IronScheme","commit_stats":{"total_commits":1974,"total_committers":10,"mean_commits":197.4,"dds":"0.011144883485309065","last_synced_commit":"749121a9af0b9c5f26bd6fea15a56e32affae80a"},"previous_names":["leppie/ironscheme"],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronScheme%2FIronScheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronScheme%2FIronScheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronScheme%2FIronScheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronScheme%2FIronScheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IronScheme","download_url":"https://codeload.github.com/IronScheme/IronScheme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242980727,"owners_count":20216285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","dotnet","dotnetcore","r6rs","r6rs-scheme","scheme"],"created_at":"2024-07-30T21:00:40.841Z","updated_at":"2025-03-14T22:32:38.415Z","avatar_url":"https://github.com/IronScheme.png","language":"Scheme","readme":"[![Build status](https://ci.appveyor.com/api/projects/status/github/IronScheme/IronScheme?branch=master\u0026svg=true)](https://ci.appveyor.com/project/leppie/ironscheme/branch/master)\n[![Build](https://github.com/IronScheme/IronScheme/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/IronScheme/IronScheme/actions/workflows/build.yml)\n[![NuGet Version](https://img.shields.io/nuget/vpre/IronScheme.Core?logo=nuget\u0026label=IronScheme.Core)](https://www.nuget.org/packages/IronScheme.Core)\n[![NuGet Version](https://img.shields.io/nuget/vpre/IronScheme.Tool?logo=nuget\u0026label=IronScheme.Tool)](https://www.nuget.org/packages/IronScheme.Tool)\n\n\n\nIronScheme\n==========\n\nIronScheme aims to be a R6RS conforming Scheme-like implementation for all .NET implementations and platforms.\n\nIronScheme implements over 99% of the R6RS specification and specified behavior. \n\nIronScheme's macro system is based on psyntax, and thus behaves similar to other implementations using psyntax, ie Icarus, Vicare, Chez.\n\nBuilding (Visual Studio)\n========================\n\n1. Open the `IronSchemeCore.sln` file in VS2019/2022\n2. Set startup project as `IronScheme.Console`\n\nAlternatively, using the `build.cmd` batchfile in the IronScheme directory.\n\nNote: the VS solution is for an already bootstrapped configuration. It can behave differently to the `IronScheme.dll` in the release package. This is mostly to just provide debugging and advanced usage of IronScheme.\n\nBuilding (Windows)\n==================\n\nMake sure you have .NET 9 SDK installed.\n\n```\ngit clone https://github.com/IronScheme/IronScheme.git -b master --recurse-submodules\n\ncd IronScheme/IronScheme\n\nbuild\ntest \u0026\u0026 test /net9 \u0026\u0026 test /core\npackage\nnuget\ncoverage\n```\n\nBuilding (non-Windows)\n======================\n\nMake sure you have .NET 9 SDK installed.\n\n```\ngit clone https://github.com/IronScheme/IronScheme.git -b master --recurse-submodules\n\ncd IronScheme/IronScheme\n\nsh build.sh\nsh test.sh\n#sh test-netbefore9.sh\nsh package.sh\nsh nuget.sh\n```\n\nRunning on Windows\n==================\n\nRun the `IronScheme.Console.exe` for the runtime and bitness you want to target. \n\nV2 requires .NET3.5. V4 requires requires .NET4.0 or higher. Pretty much any running Windows should have one or both of those.\n\nYou can also run it with .NET Core, which has no persisted compilation functionality. It may load precompiled libraries, but if it fails to load, it will fallback to runtime compilation. A warning will be display in that case.\n\nBy default, it will run on the lowest supported .NET Core runtime installed (.NET Core 2.1 or higher).\n\nTo Run it on a specific .NET Core version, use the `--fx-version` option with `dotnet` or `IronScheme.ConsoleCore.exe`.\n\nExample to run on .NET 6.0 when you have multiple framework versions installed:\n\n```\ndotnet --fx-version 6.0.0 IronScheme.ConsoleCore.dll \u003cargs...\u003e\n```\nor\n```\nIronScheme.ConsoleCore.exe --fx-version 6.0.0 \u003cargs...\u003e\n```\n\nTo run on the latest installed .NET Core version:\n\n```\ndotnet --roll-forward LatestMajor IronScheme.ConsoleCore.dll \u003cargs...\u003e\n```\nor\n```\nIronScheme.ConsoleCore.exe --roll-forward LatestMajor \u003cargs...\u003e\n```\n\nRunning on Linux/MacOS\n=======================\n\nThe preferred way to run on non-Windows OS is to use .NET Core. You can also run IronScheme on Mono, but your mileage may vary.\n\n```\n# get .NET Core if you dont have it already\nwget https://dot.net/v1/dotnet-install.sh\nchmod +x dotnet-install.sh\ndotnet-install.sh --channel Current --runtime dotnet # v2.1+\nexport -p PATH=\"$HOME/.dotnet:$PATH\"\n```\n\n```\n# Download \nwget https://github.com/IronScheme/IronScheme/releases/download/\u003clatest release\u003e.zip\nunzip \u003clatest release\u003e.zip\n```\n\n```\ncd IronScheme\nalias ironscheme=\"dotnet IronScheme.ConsoleCore.dll\"\n# if you prefer Mono\n# alias ironscheme=\"mono IronScheme.Console-v4.exe\"\n\nironscheme\n```\n\nLibrary usage\n=============\n\nReference `IronScheme.dll` from your project. \n\n```\nusing IronScheme;\n\nclass Program\n{\n    static void Main(string[] args)\n    {\n        \"(display 'hello-world)\".Eval();\n    }\n} \n```\n\nOr with C# 9 and later as:\n\n```\nusing IronScheme;\n\n\"(display 'hello-world)\".Eval();\n```\n\nCompiling libraries\n===================\n\nWhen running on .NET Framework or .NET 9.0 or higher, you can precompile scheme libraries.\n\nYou can do to this by running `(compile-system-libraries)`, or `(compile)` after importing your libraries.\n\nRunning tests\n=============\n\nTo run the R6RS test suite, call the `(ironscheme-test)` procedure. There are a few known failure cases (currently 3 for .NET desktop). This can be run from the release package as well to confirm IronScheme runs correctly on a new platform or framework.\n\nAfter building, you can use NUnit to run `IronScheme.Tests.dll` in the `IronScheme.Console` bin folder.\n\nThere 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.\n\n**Note**\n\nMake 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.\n\nNuget feed\n==========\n\nOn Nuget.org and CI-builds on https://ci.appveyor.com/nuget/ironscheme\n\nIssues/PR\n=========\n\nPlease @leppie in your issues/PR's, else I will probably not know about it. I do not actively monitor Github. If I still dont answer, nag me on Twitter, also @leppie.\n    \n","funding_links":[],"categories":["Compilers, Transpilers and Languages","编译器、透明机和语言","Languages","Identifiers"],"sub_categories":["C#"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIronScheme%2FIronScheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIronScheme%2FIronScheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIronScheme%2FIronScheme/lists"}