Comments (11)
Started looking at this, but the current project structure is not rebar3 friendly - I think promoting the current compiler/
subdirectory to a top-level project might be required. See e.g. the efene
language and plugins
https://github.com/efene/rebar3_efene_compile
from gleam.
The compiler would be published as a hex package which will be a regular dep of the rebar3 plugin, so no problem there.
You're right in that it would be a problem if using git to resolve the dependency, I've made an issue for this here erlang/rebar3#1923
It may make sense to structure this repo as umbrella application containing multiple library applications, but I have not experimented with this yet. :)
For now I'm focusing on getting a CLI for compiling modules first, then can work on rebar support afterwards.
from gleam.
Yeah, it's a bit of a bootstrapping issue, this blog post does a pretty good job of describing submodules: https://blog.github.com/2016-02-01-working-with-submodules/
Ideally there should be a gleam-compiler
repo under the current compiler/
subdir
from gleam.
My intention is to keep all core projects in one git repo (i.e. a monorepo), so no need for submodules. I find it much easier to work with one large repository for tightly coupled projects.
If you wish to create a rebar3 plugin I would recommend forking this repository and working within another top level directory. A rebar3 plugin would be the kind of library I would like to have in the core project long term.
from gleam.
OK, I started that under my repo, but obviously rebar itself needs support for subdirs before it can be used as-is.
from gleam.
We could use rebar checkouts until packages are published
https://www.rebar3.org/docs/dependencies#section-checkout-dependencies
from gleam.
Cool, I missed that in the rebar docs 👍
from gleam.
Me too! tsloughter pointed it out to me
from gleam.
Hi @hengestone , are you looking at this? I was considering making a very rough and ready version in the near future but don't want to step on your toes :)
from gleam.
Take a look at my gleam fork at https://github.com/hengestone/gleam under /gleam_rebar. That should have the code to do the actual compile step, adapted from Efene.
Feel free to build on that or discard as appropriate :)
from gleam.
Wonderful, thank you.
from gleam.
Related Issues (20)
- Have the ability to add packages to the wasm compiler HOT 3
- Add support to custom CA certificate stores
- Type constructors are not consistent during equality HOT 2
- Compiler mishandling case statements HOT 3
- Gleam compiler crash when pattern matching bit arrays HOT 3
- LSP: Add Document Symbol support HOT 3
- Pattern matching problem involving improper scoping HOT 11
- gleam add with multiple dependencies HOT 2
- LSP crash in exhaustiveness checker HOT 3
- LSP code action: remove all unused imported types and values
- LSP code action: import module HOT 6
- LSP: rename custom type variant HOT 1
- Allow `gleam add` to take a version specifier HOT 1
- Markdown support in the `@deprecated` message. HOT 1
- Deprecate result.partition in favor of new list.partition_map HOT 7
- `gleam deps why packagename` command to explain requirements for package version HOT 1
- Unable to refetch a release when release is replaced on hex HOT 1
- LSP module auto-import: handle module name collisions
- Convert LS completion tests to use snapshots HOT 2
- LSP: When auto adding import, if it's the first import, a blank line should follow it HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gleam.