Prexonite, a .NET hosted scripting language with a focus on meta-programming and embedded DSLs
0

Configure Feed

Select the types of activity you want to include in your feed.

Central package management

Christian Klauser (Nov 15, 2025, 12:03 PM +0100) 3f60a83b c3f1b83b

+87 -64
+31
Directory.Build.props
··· 1 + <Project> 2 + <!-- Common properties for all projects --> 3 + <PropertyGroup> 4 + <!-- Modern defaults --> 5 + <LangVersion>preview</LangVersion> 6 + <TargetFramework>net10.0</TargetFramework> 7 + <ImplicitUsings>enable</ImplicitUsings> 8 + <Nullable>enable</Nullable> 9 + 10 + <!-- Product/Company info --> 11 + <Product>Prexonite</Product> 12 + <Company>$(Product)</Company> 13 + <NeutralLanguage>en-US</NeutralLanguage> 14 + 15 + <!-- Version --> 16 + <Version>1.99.0</Version> 17 + 18 + <!-- Repository info --> 19 + <RepositoryUrl>https://github.com/chklauser/prx.git</RepositoryUrl> 20 + <RepositoryType>git</RepositoryType> 21 + 22 + <!-- Symbol packages --> 23 + <IncludeSymbols>true</IncludeSymbols> 24 + <IncludeSource>true</IncludeSource> 25 + <SymbolPackageFormat>snupkg</SymbolPackageFormat> 26 + 27 + <!-- Assembly signing --> 28 + <SignAssembly>true</SignAssembly> 29 + <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)PrexoniteTests\Prexonite.snk</AssemblyOriginatorKeyFile> 30 + </PropertyGroup> 31 + </Project>
+23
Directory.Packages.props
··· 1 + <Project> 2 + <!-- Enable centralized package management --> 3 + <PropertyGroup> 4 + <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> 5 + </PropertyGroup> 6 + 7 + <ItemGroup> 8 + <!-- Build tools --> 9 + <PackageVersion Include="Microsoft.Build.Framework" Version="17.10.4" /> 10 + <PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.10.4" /> 11 + <PackageVersion Include="PxCoco" Version="1.98.0" /> 12 + 13 + <!-- Runtime dependencies --> 14 + <PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="9.0.0" /> 15 + 16 + <!-- Test dependencies --> 17 + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" /> 18 + <PackageVersion Include="Moq" Version="4.20.70" /> 19 + <PackageVersion Include="NUnit" Version="3.14.0" /> 20 + <PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" /> 21 + <PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" /> 22 + </ItemGroup> 23 + </Project>
+8
NuGet.Config
··· 4 4 <add key="nuget" value="https://api.nuget.org/v3/index.json" /> 5 5 <add key="chklauser" value="https://nuget.pkg.github.com/chklauser/index.json" /> 6 6 </packageSources> 7 + <packageSourceMapping> 8 + <packageSource key="nuget"> 9 + <package pattern="*" /> 10 + </packageSource> 11 + <packageSource key="chklauser"> 12 + <package pattern="PxCoco" /> 13 + </packageSource> 14 + </packageSourceMapping> 7 15 </configuration>
+2 -21
Prexonite/Prexonite.csproj
··· 1 1 <Project Sdk="Microsoft.NET.Sdk"> 2 2 3 3 <PropertyGroup> 4 - <TargetFramework>net10.0</TargetFramework> 5 - <LangVersion>preview</LangVersion> 6 - <Nullable>enable</Nullable> 7 - <ImplicitUsings>enable</ImplicitUsings> 8 4 <DefineConstants>UseIndex</DefineConstants> 9 5 </PropertyGroup> 10 6 11 7 <PropertyGroup> 12 8 <IsPackable>true</IsPackable> 13 - <Version>1.99</Version> 14 9 <Title>Prexonite Scripting Language</Title> 15 10 <PackageDescription>An embeddable scripting language with a focus on meta programming and domain specific languages.</PackageDescription> 16 11 <Description>$(PackageDescription)</Description> 17 12 <Copyright>Christian Klauser © 2021</Copyright> 18 13 <PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression> 19 - <IncludeSymbols>true</IncludeSymbols> 20 - <IncludeSource>true</IncludeSource> 21 - <SymbolPackageFormat>snupkg</SymbolPackageFormat> 22 - <RepositoryUrl>https://github.com/chklauser/prx.git</RepositoryUrl> 23 - <RepositoryType>git</RepositoryType> 24 - 25 - <Product>Prexonite</Product> 26 - <Company>$(Product)</Company> 27 - <NeutralLanguage>en-US</NeutralLanguage> 28 - </PropertyGroup> 29 - 30 - <PropertyGroup> 31 - <SignAssembly>true</SignAssembly> 32 - <AssemblyOriginatorKeyFile>..\PrexoniteTests\Prexonite.snk</AssemblyOriginatorKeyFile> 33 14 </PropertyGroup> 34 15 35 16 <!-- CUSTOM TASKS --> ··· 166 147 167 148 <!-- NUGET References --> 168 149 <ItemGroup> 169 - <PackageReference Include="PxCoco" Version="1.98.0" /> 170 - <PackageReference Include="Microsoft.Extensions.ObjectPool" Version="7.0.13" /> 150 + <PackageReference Include="PxCoco" /> 151 + <PackageReference Include="Microsoft.Extensions.ObjectPool" /> 171 152 </ItemGroup> 172 153 </Project>
+4
PrexoniteTests/Meta.cs
··· 64 64 65 65 #region Overrides of Constraint 66 66 67 + public override string Description => $"meta entry '{_key}' exactly equals {_expectedEntry}"; 68 + 67 69 public override ConstraintResult ApplyTo<TActual>(TActual actual) 68 70 { 69 71 object actualObj = actual; ··· 95 97 } 96 98 97 99 #region Overrides of Constraint 100 + 101 + public override string Description => $"contains meta key '{_key}'"; 98 102 99 103 public override ConstraintResult ApplyTo<TActual>(TActual actual) 100 104 {
+6 -12
PrexoniteTests/PrexoniteTests.csproj
··· 3 3 <PropertyGroup> 4 4 <OutputType>Exe</OutputType> 5 5 <IsTestProject>true</IsTestProject> 6 - <TargetFramework>net10.0</TargetFramework> 7 - <LangVersion>preview</LangVersion> 8 - <Nullable>enable</Nullable> 9 - </PropertyGroup> 10 - 11 - <PropertyGroup> 12 - <SignAssembly>true</SignAssembly> 6 + <!-- Override assembly key file location for this project --> 13 7 <AssemblyOriginatorKeyFile>Prexonite.snk</AssemblyOriginatorKeyFile> 14 8 </PropertyGroup> 15 9 16 10 <ItemGroup> 17 - <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" /> 11 + <PackageReference Include="System.Text.RegularExpressions" /> 18 12 <ProjectReference Include="..\Prexonite\Prexonite.csproj" /> 19 - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> 20 - <PackageReference Include="Moq" Version="4.20.69" /> 21 - <PackageReference Include="NUnit" Version="3.13.3" /> 22 - <PackageReference Include="NUnit3TestAdapter" Version="4.5.0" /> 13 + <PackageReference Include="Microsoft.NET.Test.Sdk" /> 14 + <PackageReference Include="Moq" /> 15 + <PackageReference Include="NUnit" /> 16 + <PackageReference Include="NUnit3TestAdapter" /> 23 17 </ItemGroup> 24 18 25 19 <ItemGroup>
+3 -1
PrexoniteTests/Tests/Configurations/ModuleCacheV2.cs
··· 25 25 { 26 26 _trace.TraceEvent(TraceEventType.Information, 0, "Infer sln path"); 27 27 var slnCandidate = AppContext.BaseDirectory; 28 - while (Directory.Exists(slnCandidate) && !File.Exists(Path.Combine(slnCandidate, "prx.sln"))) 28 + while (Directory.Exists(slnCandidate) && 29 + !File.Exists(Path.Combine(slnCandidate, "prx.sln")) && 30 + !File.Exists(Path.Combine(slnCandidate, "prx.slnx"))) 29 31 slnCandidate = Path.Combine(slnCandidate, @".." + Path.DirectorySeparatorChar); 30 32 31 33 if (Directory.Exists(slnCandidate))
+3 -1
PrexoniteTests/Tests/Configurations/ScriptedUnitTestContainer.cs
··· 69 69 Root = new NullContext(Engine, Application, []); 70 70 71 71 var slnPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 72 - while (slnPath != null && Directory.Exists(slnPath) && !File.Exists(Path.Combine(slnPath, "prx.sln"))) 72 + while (slnPath != null && Directory.Exists(slnPath) && 73 + !File.Exists(Path.Combine(slnPath, "prx.sln")) && 74 + !File.Exists(Path.Combine(slnPath, "prx.slnx"))) 73 75 slnPath = Path.Combine(slnPath, @".." + Path.DirectorySeparatorChar); 74 76 75 77 if (slnPath != null && Directory.Exists(slnPath))
+2
PrexoniteTests/Tests/Internal/DependingOnConstraint.cs
··· 49 49 throw new ArgumentException($"The string {name} is not a valid module name."); 50 50 } 51 51 52 + public override string Description => $"depends on {_dependency}"; 53 + 52 54 public override ConstraintResult ApplyTo<TActual>(TActual actual) 53 55 { 54 56 var actualValue = actual;
-17
Prx/Prx.csproj
··· 6 6 7 7 <PropertyGroup> 8 8 <OutputType>exe</OutputType> 9 - <TargetFramework>net10.0</TargetFramework> 10 9 <AppConfig>config/app.$(Configuration).config</AppConfig> 11 - <LangVersion>preview</LangVersion> 12 - <Version>1.99</Version> 13 10 <Title>Prexonite CLI</Title> 14 11 <Description>Prexonite command line interpreter and compiler.</Description> 15 12 <Copyright>Christian Klauser © 2020</Copyright> 16 13 <PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression> 17 - <IncludeSymbols>true</IncludeSymbols> 18 - <IncludeSource>true</IncludeSource> 19 - <SymbolPackageFormat>snupkg</SymbolPackageFormat> 20 - <RepositoryUrl>https://github.com/chklauser/prx.git</RepositoryUrl> 21 - <RepositoryType>git</RepositoryType> 22 - 23 - <Product>Prexonite</Product> 24 - <Company>$(Product)</Company> 25 - <NeutralLanguage>en-US</NeutralLanguage> 26 - <Nullable>enable</Nullable> 27 14 </PropertyGroup> 28 15 29 16 <!-- single file app (Release-Mode only) --> ··· 78 65 <None Include="samples\**\*.pxs" CopyToPublishDirectory="Always" /> 79 66 </ItemGroup> 80 67 81 - <PropertyGroup> 82 - <SignAssembly>true</SignAssembly> 83 - <AssemblyOriginatorKeyFile>..\PrexoniteTests\Prexonite.snk</AssemblyOriginatorKeyFile> 84 - </PropertyGroup> 85 68 86 69 </Project>
+5 -12
PxCoco/PxCoco.csproj
··· 2 2 3 3 <PropertyGroup> 4 4 <OutputType>Exe</OutputType> 5 + <!-- Override defaults from Directory.Build.props for legacy project --> 5 6 <TargetFrameworks>net6.0;net48</TargetFrameworks> 6 7 <LangVersion>7.3</LangVersion> 8 + <Nullable>disable</Nullable> 9 + <ImplicitUsings>disable</ImplicitUsings> 7 10 </PropertyGroup> 8 11 9 12 <PropertyGroup> 10 13 <IsPackable>true</IsPackable> 11 14 <IsTool>true</IsTool> 12 - <Version>1.99.0</Version> 13 15 <Title>Prexonite Coco/R</Title> 14 16 <PackageDescription>Coco/R is a compiler generator, which takes an attributed grammar of a source language and generates a scanner and a parser for this language. The scanner works as a deterministic finite automaton. The parser uses recursive descent. LL(1) conflicts can be resolved by a multi-symbol lookahead or by semantic checks. Thus the class of accepted grammars is LL(k) for an arbitrary k. The 'Prexonite' version is slightly modified and extended with MSBuild tasks.</PackageDescription> 15 17 <Description>$(PackageDescription)</Description> 16 18 <Copyright>Copyright (c) 1990, 2005 Hanspeter Moessenboeck, University of Linz 17 19 extended by M. Loeberbauer &amp; A. Woess, Univ. of Linz 18 20 with improvements by Pat Terry, Rhodes University. Prexonite extensions by Christian Klauser</Copyright> 19 - <IncludeSymbols>true</IncludeSymbols> 20 - <IncludeSource>true</IncludeSource> 21 - <SymbolPackageFormat>snupkg</SymbolPackageFormat> 22 - <RepositoryUrl>https://github.com/chklauser/prx.git</RepositoryUrl> 23 - <RepositoryType>git</RepositoryType> 24 - 25 - <Product>Prexonite</Product> 26 - <Company>$(Product)</Company> 27 - <NeutralLanguage>en-US</NeutralLanguage> 28 21 29 22 <!-- Suppresses the warnings about the package not having assemblies in lib/*/.dll.--> 30 23 <NoPackageAnalysis>true</NoPackageAnalysis> ··· 43 36 </ItemGroup> 44 37 45 38 <ItemGroup> 46 - <PackageReference Include="Microsoft.Build.Framework" Version="17.10.4" /> 47 - <PackageReference Include="Microsoft.Build.Utilities.Core" Version="17.10.4" /> 39 + <PackageReference Include="Microsoft.Build.Framework" /> 40 + <PackageReference Include="Microsoft.Build.Utilities.Core" /> 48 41 <!-- marks all packages as 'local only' so they don't end up in the nuspec --> 49 42 <PackageReference Update="@(PackageReference)" PrivateAssets="All" /> 50 43 </ItemGroup>