All Projects → qwertie → Ecsharp

qwertie / Ecsharp

Licence: other
Home of LoycCore, the LES language of Loyc trees, the Enhanced C# parser, the LeMP macro preprocessor, and the LLLPG parser generator.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Ecsharp

Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (-80.14%)
Mutual labels:  math, geometry
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (+91.49%)
Mutual labels:  math, geometry
cas
Cellular Automata Simulator
Stars: ✭ 22 (-84.4%)
Mutual labels:  math, geometry
Polyhedra Viewer
Explore the relationships between convex regular-faced polyhedra.
Stars: ✭ 253 (+79.43%)
Mutual labels:  math, geometry
Math Toolbox
Lightweight and modular math toolbox
Stars: ✭ 71 (-49.65%)
Mutual labels:  math, geometry
Reduce.jl
Symbolic parser generator for Julia language expressions using REDUCE algebra term rewriter
Stars: ✭ 172 (+21.99%)
Mutual labels:  parser-generator, math
SharpMath2
2D math / geometry collision library for C#, compatable with monogame.
Stars: ✭ 36 (-74.47%)
Mutual labels:  math, geometry
utils.js
👷 🔧 zero dependencies vanilla JavaScript utils.
Stars: ✭ 14 (-90.07%)
Mutual labels:  math, geometry
Sophus
C++ implementation of Lie Groups using Eigen.
Stars: ✭ 1,048 (+643.26%)
Mutual labels:  math, geometry
Sharpmath
A small .NET math library.
Stars: ✭ 36 (-74.47%)
Mutual labels:  math, geometry
Mathnet Spatial
Math.NET Spatial
Stars: ✭ 246 (+74.47%)
Mutual labels:  math, geometry
Wave geometry
Manifold geometry with fast automatic derivatives and coordinate frame semantics checking
Stars: ✭ 92 (-34.75%)
Mutual labels:  math, geometry
Hole fixer
Demo implementation of smoothly filling holes in 3D meshes using surface fairing
Stars: ✭ 165 (+17.02%)
Mutual labels:  math, geometry
VsTeXCommentsExtension
TeX comments rendering inside Visual Studio.
Stars: ✭ 48 (-65.96%)
Mutual labels:  visual-studio, math
Pas Coogeo
Pas-CooGeo is coordinate geometry library for Pascal.
Stars: ✭ 25 (-82.27%)
Mutual labels:  math, geometry
Graphical Debugging
GraphicalDebugging extension for Visual Studio
Stars: ✭ 88 (-37.59%)
Mutual labels:  visual-studio, geometry
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (-17.02%)
Mutual labels:  math, geometry
Stylus
Expressive, robust, feature-rich CSS language built for nodejs
Stars: ✭ 10,817 (+7571.63%)
Mutual labels:  preprocessor
Symengine.jl
Julia wrappers of SymEngine
Stars: ✭ 139 (-1.42%)
Mutual labels:  math
Lalrpop
LR(1) parser generator for Rust
Stars: ✭ 1,929 (+1268.09%)
Mutual labels:  parser-generator

README

The ecsharp repository holds several tools for enhancing .NET and C# development:

  • The Loyc .NET Core libraries, a set of libraries whose theme is "stuff that should be built into the .NET framework, but isn't." These libraries have their own repository and home page, and the Loyc .NET Core repository is the Core/ folder in this repository. One of these libraries (Loyc.Syntax) supports universal syntax trees, LES2 and LES3.

  • Enhanced C# (or EC#) is a liberalization and regularization of the C# language. You can think of EC# as a C# preprocessor, since only the "front end" part of the project is done. The preprocessor consists of three mostly-independent parts,

    1. The Enhanced C# parser
    2. LeMP, the Lexical Macro Processor
    3. LeMP Standard Macros
  • LLLPG, the Loyc LL(k) Parser Generator, which is used to generate code from the grammars of Enhanced C#, LES, and LLLPG itself.

These projects are the first products of the Loyc (Language of Your Choice) initiative.

Installation

If you just want the core libraries, you can find them in NuGet. Otherwise, see

How to build

Open Loyc.netfx.sln in Visual Studio (or Loyc.netstd.sln for the .NET Standard edition), set the build configuration to Debug, and build it!

If you need to change any .ecs or .les source files (Enhanced C# or LES), you'll need to install the latest LeMP extension for Visual Studio, which can be found on the Releases page. There is no build step for these files, so the extension is not required for building. Unfortunately VS Code is not supported at this time - let me know if you need support.

If Visual Studio complains about OxyPlot, the easiest fix is to unload the LoycCore.Benchmarks project (nothing depends on it). To fix it properly, open Core\Loyc.netstd.sln, right-click the solution, choose "Restore NuGet packages", build the solution (just to make sure it worked), and then return to the original solution.

Visual Studio may complain, while building a .NET Framework 4.7.2 project, that 'Your project does not reference ".NETFramework,Version=v4.7.2" framework...." if you built the .NET Standard version of the same project earlier. To fix this, locate the folder named obj inside the project from which the error message originated, delete the entire obj folder, and rebuild (the project.assets.json file inside that folder seems to be causing the error).

How to publish new versions

This is more of a note-to-self than anything. Pull-requestors can ignore it.

  1. Rebuild all (Release configuration in Loyc.all.sln) and run tests (Tests.exe)
  2. Update version in Core/AssemblyVersion.cs
  3. Update appveyor.yml at version: (first line)
  4. Update appveyor.yml at - set SEMVER= (semantic version combines w.x.y into wx.y, e.g. 2.7.1 => 27.1, because semantic versioning demands a new major version number for each breaking change, while the internal version number increments the minor version for a minor breaking change.)
  5. (Tentative) If the VS extension is to be released, update the version number in Visual Studio Integration\LoycForVS2017\source.extension.vsixmanifest
  6. If a GitHub release is to be created, uninstall the LeMP VS extension and rebuild it with UpdateLibLeMPAndReinstall.bat. Manually check that it still works.
  7. Commit changes
  8. Push changes and check whether the build succeeded on AppVeyor.
  9. On success, create an (unannotated) git tag like v2.7.1 locally: git tag v2.7.1.
  10. Push the tag to make Appveyor publish NuGet packages: git push origin v2.7.1.
  11. Every so often, create a release on GitHub.com. Prepare a zip file from the built binaries and include Lib\LeMP\LeMP_VisualStudio.vsix separately as part of the release.
  12. Update version-history.md on ecsharp.net and core.loyc.net, and update documentation by running doc/Doxygen.bat in the gh-pages branch.
  13. If applicable, release a new version of the extension on the Visual Studio Marketplace
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].