[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2067":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":7,"htmlUrl":7,"language":8,"languages":7,"totalLinesOfCode":7,"stars":9,"forks":10,"watchers":11,"openIssues":12,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":10,"stars30d":15,"stars90d":13,"forks30d":13,"starsTrendScore":16,"compositeScore":17,"rankGlobal":7,"rankLanguage":7,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":7,"pushedAt":7,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":13,"starSnapshotCount":13,"syncStatus":14,"lastSyncTime":26,"discoverSource":27},2067,"dotcl","dotcl\u002Fdotcl",null,"C#",138,3,5,15,0,2,4,6,44.71,"MIT License",false,"master",true,[],"2026-06-12 04:00:13","# dotcl\n\nCommon Lisp implementation on .NET. Lisp source is compiled to CIL\n(Common Intermediate Language) and runs on the .NET JIT — so the same\nLisp image runs on Windows, macOS, and Linux across x86-64 and ARM64\nwithout per-platform porting work.\n\n**Broadly conforms to the ANSI Common Lisp standard** — verified\nagainst the\n[ansi-test suite](https:\u002F\u002Fgitlab.common-lisp.net\u002Fansi-test\u002Fansi-test).\n\n## What dotcl is good for\n\n- **Embedding Common Lisp in .NET applications.** `dotcl.runtime` is a\n  regular .NET library; you load it from any C# \u002F F# \u002F VB.NET project,\n  evaluate Lisp code, and call back and forth.\n- **Writing .NET code in Lisp.** The `dotnet:` package gives direct\n  access to .NET types: `(dotnet:new \"System.Text.StringBuilder\")`,\n  `(dotnet:invoke sb \"Append\" \"x\")`, `(dotnet:static \"System.Math\" \"Sin\"\n  1.0)`. You can subclass .NET types from Lisp via `dotnet:define-class`\n  — the compiler emits real .NET classes, so frameworks like MAUI,\n  ASP.NET Core, and MonoGame just see them as ordinary subclasses.\n- **Cross-platform CL with NuGet ecosystem access.** Any NuGet package\n  is reachable from Lisp; any Quicklisp library that doesn't rely on\n  SBCL-only internals tends to work too (asdf, alexandria, etc. are\n  routinely loaded).\n\n## Quick start\n\n```bash\n# Install dotcl as a global .NET tool (works on any host with .NET SDK 10+).\ndotnet tool install --global dotcl\n\n# REPL\ndotcl repl\n\n# Evaluate a form\ndotcl --eval \"(format t \\\"hello, ~a~%\\\" (lisp-implementation-type))\"\n\n# Run a file\ndotcl --load my-program.lisp\n```\n\nThe framework-dependent `dotcl` package is portable across OS \u002F arch but\nJIT-compiles the core on first launch (~3 s cold start). For faster\nstartup, install the RID-specific package — it bundles ahead-of-time\n(R2R) FASLs:\n\n```bash\n# Pick the one matching your host:\ndotnet tool install --global dotcl.win-x64\ndotnet tool install --global dotcl.win-arm64\ndotnet tool install --global dotcl.linux-x64\ndotnet tool install --global dotcl.linux-arm64\ndotnet tool install --global dotcl.osx-x64\ndotnet tool install --global dotcl.osx-arm64\n```\n\nThe two variants share the `dotcl` command name, so install only one.\n\nFor Roswell users, per-RID tarballs are also published on each\n[release page](https:\u002F\u002Fgithub.com\u002Fdotcl\u002Fdotcl\u002Freleases).\n\n### Prerequisites\n\n- **.NET SDK 10+** — see install table below\n\n#### Installing .NET SDK 10\n\n| OS | Command |\n|----|---------|\n| macOS (Homebrew) | `brew install --cask dotnet-sdk` |\n| Ubuntu 24.04+ | `sudo apt install dotnet-sdk-10.0` |\n| Debian | add the Microsoft package repository, then `apt install dotnet-sdk-10.0` — see [official guide](https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fcore\u002Finstall\u002Flinux-debian) |\n| Windows (winget) | `winget install Microsoft.DotNet.SDK.10` |\n| Windows (Scoop) | `scoop install dotnet-sdk` |\n| Cross-platform script | [`dotnet-install.sh` \u002F `dotnet-install.ps1`](https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fcore\u002Ftools\u002Fdotnet-install-script) |\n| Other | https:\u002F\u002Fdotnet.microsoft.com\u002Fdownload |\n\n### Building from source\n\nIf you want to hack on dotcl itself rather than just use it, clone the\nrepo and bootstrap with [Roswell](https:\u002F\u002Fgithub.com\u002Froswell\u002Froswell):\n\n```bash\nmake cross-compile        # uses Roswell\u002FSBCL to bootstrap the compiler\nmake compile-asdf-fasl    # pre-compiles ASDF (required by samples)\nmake install              # builds and installs the local nupkg as `dotcl`\n```\n\nAfter the first cross-compile, dotcl can self-host: `DOTCL_LISP=dotcl\nmake cross-compile` rebuilds the compiler using dotcl itself.\n\n## Samples\n\nWorking integrations in `samples\u002F`:\n\n- **MauiLispDemo** — a .NET MAUI app (Windows + Android) where\n  `Application` \u002F `ContentPage` \u002F view model are all defined in Lisp\n  via `dotnet:define-class`.\n- **AspNetLispDemo** — ASP.NET Core controller written in Lisp, with\n  attribute routing.\n- **MonoGameLispDemo** — `Game` subclass in Lisp; the `Draw` override\n  runs on the MonoGame frame loop and animates the background colour.\n- **McpServerDemo** — Model Context Protocol server exposing a Lisp\n  REPL to MCP clients (Claude Desktop, etc.).\n\nEach sample's `README.md` walks through the boot pattern.\n\n## Architecture\n\n- **Compiler** (`compiler\u002F`, written in Lisp): transforms S-expressions\n  into a flat list of CIL instructions (SIL).\n- **Runtime** (`runtime\u002F`, written in C#): object representation,\n  reader, CIL assembler (`PersistedAssemblyBuilder`-based for `.fasl`\n  output and `Reflection.Emit` for in-memory codegen), and the standard\n  library functions that aren't expressible in pure Lisp.\n- **Bootstrap** is by cross-compile: a Roswell SBCL runs\n  `compiler\u002Fcil-compile.lisp` to emit `compiler\u002Fcil-out.sil`, which the\n  .NET runtime loads to bring up the Lisp environment. From that point\n  dotcl can rebuild itself.\n\nArchitectural detail and design history are in\n[`DESIGN.md`](DESIGN.md).\n\n## License\n\nMIT. See [`LICENSE`](LICENSE).\n","dotcl 是一个在 .NET 平台上实现的 Common Lisp 解释器，它将 Lisp 代码编译成 CIL（通用中间语言），并在 .NET JIT 上运行，从而支持跨平台（Windows、macOS 和 Linux）和架构（x86-64 及 ARM64）。该项目广泛遵循 ANSI Common Lisp 标准，并通过 ansi-test 套件验证。其核心功能包括将 Common Lisp 嵌入到 .NET 应用程序中，直接从 Lisp 调用 .NET 类库，以及利用 NuGet 生态系统访问各种包。适用于需要在 .NET 环境下使用 Lisp 编程语言的场景，如开发跨平台的应用程序或扩展现有的 .NET 项目。","2026-06-11 02:47:54","CREATED_QUERY"]