Live data from Hacker News

Please – A Cross-Language Build System

please.build

81–90 of 122 posts

Re: Please – A Cross-Language Build System

#81
I Googled to find the repository of a build system I wanted to mention and stumbled upon something else that I found interesting; https://shakebuild.com/

> Shake is a library for writing build systems. Most large projects have a custom-written build system, and developers working on the project are likely to run the build system many times a day, spending a noticeable amount of time waiting for the build system. This document explains why you might pick Shake over alternative tools for writing build systems (e.g. make, Ant, Scons).

https://shakebuild.com/why

Shake is written in Haskell and is open source.

Re: Please – A Cross-Language Build System

#82

Earlier quoted context omitted.

they could be cross platform, but thats not really what people think.. when someone says cross platform i definitely expect windows support

If someone says cross platform and it supports Linux, Mac, and BSDs, that is good enough for me. I have not done any development work on Windows in my entire life just like I have not done any development work on my Android phone. Just offering a counterviewpoint.

I for one do not expect windows support in a build system. Recently, someone said adding support for space in the filename in make adds a complexity we can avoid. I'd argue adding Windows support adds a complexity we can avoid. I'd rather they didn't support Windows. I say we can revisit this issue if enough people still use Windows on the server ten years from now.

Re: Please – A Cross-Language Build System

#86
I have used please, on a project also written by the please developers, of which I am not.

While my experience of `plz` may have been mired by the project that used it, I can't say I found it added anything special.

It arguably doesn't meet the needs of the `plz` developers themselves, as evidenced by the custom build-rules in the project that overrode the built-ins. And at one point, it was suggested to us that we drop Plz and move to buck/bazel/pants which was suggested would be a relatively simple replacement.

Sure, it built stuff, but the general impression was it got in the way, while due to the way it was configured, was essential to keeping the project running.

And why are there 20 releases on the 25th of November?

Re: Please – A Cross-Language Build System

#87
post #6

Earlier quoted context omitted.

waf continues to be the underappreciated gem in this space: high level build language supporting many languages and tools, cross platform, implemented and extensible in Python, nothing to install (except Python), and fast.

It is quite fast and Python is a nice language for specifying the build, but I found waf to be difficult to extend. I had some tests that needed a binary file. That binary file was generated from a text file by a utility program. That utility program had to be built from source. After a week of trying to get that correctly specified, I gave up. I thought I'd found the right way of doing it several times, but each tim…

I have found the learning curve to be very steep. Extension points are several, subtle, and powerful, leveraging heavily not only normal OOP but also python meta programming. It is not out of the question go beyond all that and monkey patch some core class; I’ve seen this recommended by maintainers in some circumstances.

The docs are up front that waf is not a build system but a build system toolkit. For example, there is a demo that uses makefiles as the build language and runs them in waf. Another demo requires no build file but just finds the source files and builds them. But I have yet to see any external project released that says, “This is a build system... built on the waf build system toolkit,” like the Software Construction Toolkit was built on scons. Perhaps the toolkit is so close to being a build system that people just use it as is and require only small customizations, which are kept in their projects.

Re: Please – A Cross-Language Build System

#88
post #60

Earlier quoted context omitted.

Why should I have to install the jdk for a build tool when I’m not using Java myself?

i don't notice people complaining about needing ruby, python, perl or other things installed for a given tool that depends on them nearly as much as java. interesting.

I actually do (internally) complain when some tool uses python/perl/ruby. It's usually painful to install and maintain compared to most C or Go in this case.

Especially virtualenvs are an axe I like to grind.

Re: Please – A Cross-Language Build System

#89

I Googled to find the repository of a build system I wanted to mention and stumbled upon something else that I found interesting; https://shakebuild.com/ > Shake is a library for writing build systems. Most large projects have a custom-written build system, and developers working on the project are likely to run the build system many times a day, spending a noticeable amount of time waiting for the build system. This…

One of the larger public projects working to migrate to shake over time is ghc. The current ghc build system uses a recursive make setup, and all that such entails. (:

Re: Please – A Cross-Language Build System

#90

Is there a problem with cmake? Why are people still inventing new build systems?

Because make is awkward and not very developer friendly, and it relies on shell scripting, which is arguably even more awkward, hard to learn, and developer-unfriendly.

Also, make is very barebones and "close to the metal". Good modern build systems provide libraries of common tasks so you don't have to reinvent the wheel; they can handle parallelism well; and can fall back on makefiles where needed.

They let you get more done in less time.

Post reply on HN