You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want the build system to be extremely extensible, and also work for LM unrelated projects.
Important features that I want integrated:
there should be a LM library / project hub, from which the projects are downloaded
if the project is already installed locally, then it doesn't download from there!!
the LM compiler itself, and related plugins should be libraries / projects too
documentation generation for LM can just be a LM AST consumer plugin
projects provide tasks which are kinda like functions. Functions also take in settings and information about the project, like description and others.
For example:
LM stdlib has lm-std::lib() -> lm::AST and lm-std::docs() -> lm-doc::Docs (it just provides the AST and docs of the lib)
I want the build system to be extremely extensible, and also work for LM unrelated projects.
Important features that I want integrated:
projects provide tasks which are kinda like functions. Functions also take in settings and information about the project, like description and others.
For example:
lm-std::lib() -> lm::AST
andlm-std::docs() -> lm-doc::Docs
(it just provides the AST and docs of the lib)lm-lsts::parse(File) -> lm::AST
lm-lm::parse(File) -> lm::AST
lm-c::parse(File) -> lm::AST
lm-doc::gen(lm::AST) -> lm-doc::Docs
,lm-doc::parse-md(File): lm-doc::Docs
,lm-doc::combine(Vector<lm-doc::Docs>)
,lm-doc::render2md(lm-doc::Docs) -> File
, andlm-doc::render2html(lm-doc::Docs) -> File
lm::combine(Vector<lm::AST>) -> lm::AST
,lm::compile(lm::AST) -> lm::Compiled
lm-emitc::emit(lm::Compiled) -> File
cc::c2o(File) -> File
lm-vxcc::emit(lm::Compiled) -> vxcc::IR
vxcc::ir2ir(vxcc::IR) -> vxcc::IR
,vxcc::ir2asm(vxcc::IR) -> File
, andvxc::ir2o(vxcc::IR) -> File
bin::ar(Vector<File>) -> File
,bin::link2exe(Vector<File>) -> File
,bin::link2shared(Vector<File>) -> File
lm-backend::compile(lm::Compiled) -> File
lm-publish::publish()
glob::glob(String) -> Vector<File>
then when you are building a project like a JSON parser, you can do this in your project file:
still left to decide:
The text was updated successfully, but these errors were encountered: