欢迎来到 4coder 代码库。
此代码库由 Allen Webster 于 2014 年至 2022 年在许多贡献者的帮助下编写:
- 凯西·穆拉托里
- “insofaras”亚历克斯·贝恩斯
- 尤瓦尔·多列夫
- 瑞安弗勒里
还要感谢所有在财务上和/或通过您的所有详细反馈支持该项目的人。
截至 2022 年 5 月 31 日,我将冻结此代码库并将其开源。
我不建议从这个代码库中学习,尤其是不要用不加批判的眼光。它可能是某些算法和架构思想的有用参考,当然也包含一些警示故事。但如果你是初学者,我鼓励你的目标不仅仅是模仿这个代码库的风格和结构。
我不会在这个存储库中接受拉取请求或任何其他形式的贡献。由于我不再维护这个代码库,我的意图是让依赖 4coder 的用户可以选择分叉代码库、修复他们的问题,或者根据他们自己的愿景将我开始的内容带入新的方向。
我为这个代码库选择的许可证是非常宽松的 MIT 许可证。为了在 4coder 用户社区中清晰起见,我要求为这个代码库的新分支赋予唯一的名称。
在本自述文件中,您会发现:
- 许可证(麻省理工学院)
- 构建说明
- 重大事项说明
执照
版权所有 (c) 2022 艾伦韦伯斯特
特此免费授予任何获得本软件和相关文档文件(“软件”)副本的人,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同诉讼、侵权行为或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。
构建说明
- 创建一个名为“4ed”的空文件夹以包含代码库。
- 克隆存储库
- 将包含存储库的文件夹重命名为“代码”
- 在与“4ed”文件夹相同的级别,克隆“4coder-non-source”存储库
- A. 在 Windows 上设置 Visual Studio 命令行魔法酱,以便“cl”工作 B. 在 linux 上设置 g++ C. 在 mac 上设置 clang
- 导航到“4ed/code”文件夹。
- A. 在 windows 上运行“bin\build.bat” B. 在 linux 上运行“bin\build-linux.sh” C. 在 linux 上运行“bin\build-mac.sh”
重大事项说明
-
文件的构建系统和组织非常复杂。有一个 4ed_build.cpp 定义了构建如何运行,构建脚本必须构建和运行这个 C++ 文件。该文件非常混乱,因为它不能依赖代码库的常用助手。最重要的是,自定义层有一个完全独立的构建系统,这也是一个巨大的混乱。它涉及几个编译阶段和一些元程序。
-
文档系统过于复杂,文档不完整。关于内部或复杂的辅助层的文档很少。
-
词法生成器太复杂了,对语言特性的内置支持还没有完全开发。后台线程解析组织得不是很仔细,也不是很灵活,因此很难在系统的任何级别添加新语言。
-
有几层过于复杂的配置解析器。
-
多个版本未维护 Mac 支持。
-
代码库有一个非常薄弱的基础层,其中的关键特性是在很晚才添加的,因此在没有有用的特性将事物绑定在一起的情况下编写了大量代码。更糟糕的是,基础层被自定义层和核心层的区别所分割,导致一些双重定义和一些不一致。
文章来自:https://github.com/Dion-Systems/4coder