EchoJS Cleanup
leonpegg opened this issue · 4 comments
echojs at present fails to build even under osx (running Yosemite) have also have very little sucsess on linux.
It would be good if we could strip it back to basics and split out the node-llvm and esj-llvm stuff into seperate modules and also upgrade node-llvm to use nan so it can easily build on 0.10, 0.12 and iojs
what build issues are you running into?
Ok I managed to get it building was my own fault forgot to map the path from brew to llvm.
but my suggestions of moving things out of the main repo and cleaning up is a sensible one this includes:
- moving node-llvm to it own repo
- converting node-llvm to use nan (remove compat issues with node > 0.10)
- move the runtime to its own repo
- use native/brew pcre, libuv (dependencies can then be resolved using pkg-config on *nix/osx)
- use npm for dependants esprima, escodegen & estraverse
- move node-compat to its own repo
What do you think of these ideas, overall it would make things cleaner and make it possible to build using node 0.12
Was the brew llvm problem not addressed in the docs? I'll take a look. that's definitely something that tripped me up as well.
There's a reason I didn't address the splitting up into repos comment: In general I disagree that moving libraries out of the repo is sensible. git submodules are a pain to manage, and they don't bring anything to the table until/unless the subprojects have a life of their own.
- no. node-llvm's sole purpose is to be api compatible with ejs-llvm so that we can use the same api for bootstrapping as we do for stage1.
- patches would be appreciated :) we've had issues in the past even with converting between 0.10 minor releases with GC bugs biting us, so you'll forgive us if this isn't super high priority.
- the compiler has dependencies on the runtime. There are often commits that modify both. splitting those across repos is not something we're interested in. At some point in the future (if we add support for dynamic linking) it might make sense to have separate distributable packages for the runtime/compiler, but that's distribution, not source repositories.
- I can't recall if brew pcre builds things the way we need them built. libuv we don't include in our repo at all.
- we can't. we forked them a while back so that we could import them using es6.
- node-compat is like ejs-llvm in that until the project reaches something like 1.0, there's absolutely no reason to think they need to be split out. Both of these libraries have a .ejs file, which means they would eventually be ripe for separate distribution, but again that doesn't mean we need separate repos for them.
anyway, this isn't an actionable issue - feel free to open smaller scoped ones, especially if the intention is to contribute patches :) closing this one.