basic-build

Dev tools

build system

SHOW HN2017

100points
63comments
#460of 2,242 in 2017
Top 21%of 2017 by points

How HN took it

RoastedHalf or more of the comments are critical

0 positive, 9 neutral or asking, 2 mixed, 17 critical, out of 28 comments about the project. Thread score -0.49.

Idea: 0 for, 12 againstExecution: 0 for, 5 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Explicit sequence of steps is more readable than declarative makefiles

    From 1 comment
    • Yes, that's true. I'm still noodling on that, primarily to enable parallel builds. Outside of parallel builds, however, I actually prefer an explicit sequence of steps to…
      akkartik on HN

Objections

  • Uses functions and the local keyword, which are not portable to original Bourne shell or some platforms like Solaris

    From 3 comments
    • > This repo illustrates a way to manage a project using just plain Bourne sh, available on all Unix systems since 1977. No, this code uses functions, which didn't exist in the…
      jwilk on HN
    • It also uses the "local" keyword, which is non-portable. People like to bash the autotools, but they exist for exactly this reason - they already spent decades working through…
      jperkin on HN
    • Any OS which use the Korn shell as /bin/sh, for example Solaris 10, 11, and illumos: ``` $ /bin/sh -c "fail() { local f; }; fail" /bin/sh[1]: local: not found [No such file or…
      jperkin on HN
  • No dependency resolution or topological sorting, so it does not scale

    From 3 comments
    • This leaves the topological sorting of the tasks to the programmer? This is neat, but that's one very useful feature of make that's missing.
      boomlinde on HN
    • I seriously wonder if the author ever worked on a project with more than around 10k LOC, multiple languages and tools, automatic testing, deployment, version control (merging…
      edejong on HN
    • Yes, it's a team of engineers. But interestingly, Google started with a mono-repo. All through their explosive growth they maintained (mostly, except Android and Chromium) their…
      edejong on HN
  • Python or another modern language would be cleaner than shell

    From 1 comment
    • I applaud the effort, but is "pure /bin/sh" really a good feature in today's systems? To my knowledge, today every Unix system has Python, usually at least 2.7, if not Python 3.…
      vog on HN
  • Code has no open source license

    From 1 comment
    • > The build script is easy to repurpose to your needs No, it's not. This isn't under a free or open source license. The lack of license means that only an idiot would use it for…
      TheDong on HN

Requests

  • Support for parallel builds and dependency graphs

    From 2 comments
    • This leaves the topological sorting of the tasks to the programmer? This is neat, but that's one very useful feature of make that's missing.
      boomlinde on HN
    • Yes, that's true. I'm still noodling on that, primarily to enable parallel builds. Outside of parallel builds, however, I actually prefer an explicit sequence of steps to…
      akkartik on HN

Questions

  • How does it compare to make, tup, or apenwarr's do?

    From 3 comments
    • "notabug.org"... interesting. Anyway, how does this compare, features-wise, with GNU Make? For example with make you have `./configure` files, do I also have them here?
      lauretas on HN
    • How does this compare to e.g. @apenwarr's minimal `do`?
      zimpenfish on HN
    • has anyone tried tup? http://gittup.org/tup/
      jlebrech on HN

Alternatives named

  • tup

    From 3 comments
    • If you aim for slightly larger projects and efficiency, you'd need at least a DAG (because that's the fundamental nature of a dependency graph). You can find a nice explanation…
      vog on HN
    • has anyone tried tup? http://gittup.org/tup/
      jlebrech on HN
    • Tup is pretty darn amazing. I've never had such a high success rate while writing build rules under it. "Once it builds, it has no bug". Not to mention the great speed to begin…
      chenglou on HN
  • GNU make

    From 2 comments
    • "notabug.org"... interesting. Anyway, how does this compare, features-wise, with GNU Make? For example with make you have `./configure` files, do I also have them here?
      lauretas on HN
    • It's not a requirement - I give you: .RECIPEPREFIX > If you prefer to prefix your recipes with a character other than tab, you can set the .RECIPEPREFIX variable to an alternate…
      falcolas on HN
  • ninja

    From 1 comment
  • apenwarr's do

    From 1 comment
  • qbs

    From 1 comment
    • tup sounds similar to qbs. I found qbs to be a most amazing C++ build system, it's the only one I used that is 1) reasonably easy to use 2) very fast 3) very correct Most build…
      dom0 on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/15043432)