-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge jml/rules_haskell #16
Comments
@jml thanks for reaching out. Would be great to accelerate development by converging efforts. Happy to add you as a collaborator on this repo if you like.
|
I looked through the source and there's no new functionality or source that we don't already have, I think we have a straight up improvement over it. |
Lovely, thanks.
|
I think toolchain work is very valuable, it's something we'll have to do anyway. The questions here are things like:
Let me know if you have something specific you're looking to work on, any questions &c. |
Roadmap sounds pretty good!
* rules_go downloads official go binaries; I'd do likewise until we can't
* I really really want to be able to compile Haskell Linux binaries from my
Mac without my brain exploding. I *think* toolchains could give us this
power.
Next steps for me are to apply this to one of my own projects (will
probably wait until #14 is merged) and then see what itches I need to
scratch. I'm interested in working on #17, but expect there's more than
enough work to go around there.
…On Thu, 14 Dec 2017 at 14:17 Mateusz Kowalczyk ***@***.***> wrote:
- There's a lot of work in #14
<#14> so please take that
into consideration when looking at stuff to submit. I would treat that as
authoritative code. @mboes <https://github.com/mboes> did you have a
chance to look at it? It'd be good to merge into master so we can work off
master rather than piling everything on there.
- Great, I put some thoughts there w.r.t. what MVP could feature.
- So far the direction has been taken towards "let's get jni then
inline-java projects compiling (which they now do as of weekend in #14
<#14>). My next goal is to
get sparkle to compile. The idea is that these interact with Java so
we can use bazel's Java support to build the two languages as a complete
product. All feature work I've done has been directly guided by those
packages rather than trying to get feature complete rules. I expect that
once sparkle works, we will want to step out into more general
implementations. mboes suggested trying to build Agda. From my point
of view, the roadmap is somewhat like
- do whatever it takes to get sparkle working
- do whatever it takes to get Agda working
- take a step backwards on think about toolchain: for example we
may want to start integrating with
https://github.com/tweag/rules_nixpkgs such that we don't have to
provide a dirty environment with GHC with wired in packages
- in similar vein, start going backwards in dependency graph and
try to package dependencies properly rather than relying on wired-in
packages: this more than likely means doing something with
#17 <#17> to generate
BUILD files for dependencies off Hackage &c.
- I'm also part-time: about 2, sometimes 3 days of the week but I'll
try to reply to any questions sooner than later.
I think toolchain work is very valuable, it's something we'll have to do
anyway. The questions here are things like:
- How to set modes? Say, developer wants profiling. This has to
propagate down through all the rules. I recently found
https://github.com/bazelbuild/rules_go/blob/master/go/modes.rst#id1
which uses something called --features. This will work for simple
things.
- How to set non-simple things that propagate down? For example we
want to build everything with -O2. Currently I don't know a way. I
attempted aspects in the past but it was a huge failure (see comment on
22839bd
<22839bd>
)
- How to provide and pick different versions of GHC? Pulling down
binaries from GHC's site would be the easiest but will it work?
rules_nixpkgs is an alternative though a bit heavy. We should provide bazel
expressions that let us pull those in or perhaps it will be specified in
some different way. This also has to be propagated down.
- What will the UI be for hackage dependencies? I suspect in the end
it will be something like what stackage2nix generates: we will
generate BUILD files for all dependencies and use
https://docs.bazel.build/versions/master/external.html#non-bazel-projects
along with work from #17
<#17> in coarse mode to
create bazel dependencies we can use.
Let me know if you have something specific you're looking to work on, any
questions &c.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#16 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAHq6uroLUg7JA5qjS53hMJ-OYg5u3J_ks5tAS3kgaJpZM4RBt6n>
.
|
I have played a little with However in general I don't know if we want to use rules_nixpkgs for Official™ toolchain. I'm using it just in general to provision some stuff but for real deal we'll probably want to download official binaries and use those directly: luckily it should eventually be a drop-in replacement which is why I tried this in first place. |
Roadmap submitted as #19. Sounds like all other aspects of this ticket have been broken off into separate tickets by now. So closing this one. Feel free to file more. |
- unix-time declares one of the `./configure` script's outputs in `extra-tmp-files` - old-time's C library expects `__GLASGOW_HASKELL__` to be set.
Black-list config.log/.status from headers
This isn’t really an issue, just a way to kick off communications. (Do you have a mailing list I should be using instead?)
Very excited to discover this repo. I spent a chunk of time making https://github.com/jml/rules_haskell, but had to pause 3 months ago due to workload.
When I paused, I was working on generating rules files from cabal files, in a fashion not dissimilar to gazelle (see rules_go). I’m not sure if that’s pushed anywhere public yet.
The text was updated successfully, but these errors were encountered: