A file in a project is checked against the packages bjo fetched for it: the server installs the project's .bjo/roots, .bjo/frameworks and .bjo/nuget/root before its first check, through the compiler's ProjectInputs, so imports from packages check and definition, hover and completion reach them. A server serves one project, the first file's; a warning on a file's first line says when it cannot serve one as bjo would: packages not fetched, the roots changed since it started, or another project. The server no longer has the old Microsoft.Extensions.DependencyInjection .Abstractions next to it. The compiler excludes it, the exclusion does not pass through a project reference, and with it there every ASP.NET type failed to load, so bjoweb did not check. A diagnostic marks the form at the line and column the compiler names now: an atom or a string whole, a bracketed form to its closing bracket, and one over several lines as far as its head. The build no longer asks git for Source Link, which fails on this repository's SHA-256 objects. 🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5) Co-Authored-By: eca-agent <git@eca.dev>
49 lines
2.3 KiB
XML
49 lines
2.3 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<NuGetAudit>false</NuGetAudit>
|
|
<!-- The compiler's tokenizer recurses once per token and needs tail
|
|
calls, which F# turns off in Debug by default. -->
|
|
<Tailcalls>true</Tailcalls>
|
|
<!-- Where the Bjolang checkout is, beside this one. The server runs the
|
|
compiler in-process, and the compiler finds the standard library
|
|
and the runtime assemblies by walking up from its own binary, which
|
|
here is in this project's bin. So the checkout's path is baked in,
|
|
and BJOLANG_HOME overrides it. -->
|
|
<BjolangHome>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)../Bjolang'))</BjolangHome>
|
|
<!-- The build asks git about the repository for Source Link, and the
|
|
SDK's git reader refuses a repository whose objects are SHA-256,
|
|
as this one's are. Nothing here is published with Source Link. -->
|
|
<EnableSourceControlManagerQueries>false</EnableSourceControlManagerQueries>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<AssemblyMetadata Include="BjolangHome" Value="$(BjolangHome)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Include="Rpc.fs" />
|
|
<Compile Include="Project.fs" />
|
|
<Compile Include="Expansion.fs" />
|
|
<Compile Include="Check.fs" />
|
|
<Compile Include="Symbols.fs" />
|
|
<Compile Include="Scope.fs" />
|
|
<Compile Include="Hover.fs" />
|
|
<Compile Include="Completion.fs" />
|
|
<Compile Include="Program.fs" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="$(BjolangHome)/Bjolang.fsproj" />
|
|
<!-- The compiler excludes this assembly's runtime copy, and the
|
|
exclusion does not pass through a project reference. A copy next
|
|
to the server is what its load context answers with when ASP.NET
|
|
Core asks for the assembly, and an older one makes every type that
|
|
needs it fail to load: a project that names WebApplicationBuilder
|
|
then fails to check. See the compiler's Bjolang.fsproj. -->
|
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" ExcludeAssets="runtime" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|