Announcement

Collapse
No announcement yet.

Meson: A Next-Gen Build System Showing Promise

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Meson: A Next-Gen Build System Showing Promise

    Phoronix: Meson: A Next-Gen Build System Showing Promise

    Meson is a new, open-source build system under development showing good results over the likes of SCons...

    http://www.phoronix.com/vr.php?view=MTc1MDc

  • #2
    Faster no-op builds are always great, so let's see how this evolves. Jussi Pakkanen admits there is a dependency bug, so maybe things become slower when that bug (and similar bugs) is (are) fixed.

    Assuming 0.04s is the all-inclusive "scan any transitive dependency file to see if it was changed since the last build", that's impressive. If there's a bug that results in only 1% of the dependant files being checked, then it's… well, useless right now.

    Also, please don't forget functional requirements for a build system. See for example https://wiki.debian.org/UpstreamGuide#SCons for why Debian thinks scons is not a good build system. If Meson gets those things right, cool!

    I haven't actually tried this, so it may very well be a very nice project. Just my thoughts when I read about a new and very fast build system. :-)

    Comment


    • #3
      I've always wished someone would try to do a pythonic build system. Scons is derived from a Perl build tool, Waf is really object oriented, etc. Meson likes its build files.

      I wonder why we don't have just a pip package build tool that you just import and it does the build stuff. Maybe you set some global variables and let it go. I just get the feeling from using Scons and Waf it does a lot of premature optimization for big projects - albeit, I'm just armchairing here, and need the free time to take a month writing yet another build system™. It is just that all these python based build utilties (yeah, I watched the fosdem vid and read the tutorial) come off as "make a build tool modeled after <something else> in python, rather than make a build tool in python to replace <something else>".

      Comment


      • #4
        The design goals of Meson are remarkably similar to Waf's. Has anyone compared the two in depth?

        Waf, by the way, has changed my life. It is exactly true that it's ridiculous to try to incorporate a dedicated programming language into a build system when there already are terrific dynamic languages out there, such as Python. With Waf, it's a pleasure to be able to do everything I need to do in my build script. And of course its built-in API handles so many important (and complicated) build tasks for me. What would Meson do differently?

        Comment


        • #5
          Meson is written in Python 3 and is designed to be high-performance
          One can't use "Python" and "high performance" in the same sentence unless it's a PR substitute for "not (too) slow".

          Comment


          • #6
            Originally posted by mark45 View Post
            One can't use "Python" and "high performance" in the same sentence unless it's a PR substitute for "not (too) slow".
            No, its not.

            Just like with JS. Or any other language for that matter.

            90% of computation is done in 10% of code.
            And You never know which one that will be before hand.


            For that critical part one can use C.
            (And also You gain smaller code for that 90% -> less bugs)

            Comment


            • #7
              How does Meson compare to http://community.haskell.org/~ndm/shake/ which is currently all the rage in the Haskell community?

              Comment


              • #8
                Originally posted by zanny View Post
                I've always wished someone would try to do a pythonic build system. Scons is derived from a Perl build tool, Waf is really object oriented, etc. Meson likes its build files.

                I wonder why we don't have just a pip package build tool that you just import and it does the build stuff. Maybe you set some global variables and let it go. I just get the feeling from using Scons and Waf it does a lot of premature optimization for big projects - albeit, I'm just armchairing here, and need the free time to take a month writing yet another build system™. It is just that all these python based build utilties (yeah, I watched the fosdem vid and read the tutorial) come off as "make a build tool modeled after <something else> in python, rather than make a build tool in python to replace <something else>".
                There is GYP of Google.

                I personally use it and think it is clean and awesome. Mostly automated and high level yet still I can easily add rules for my custom compilation targets (e.g. compiling a Qt resource file) like I can do in a makefile.

                It needs a little more time to mature though.

                Comment


                • #9
                  Re

                  There is also Gradle which is way more powerful and stable...

                  Comment


                  • #10
                    Requires python -> instantly dropped.

                    Why yes, I've had really bad experiences with scons, waf, jam, cmake, and other build systems of the week.

                    Comment


                    • #11
                      Originally posted by Alliancemd View Post
                      There is also Gradle which is way more powerful and stable...
                      That is a build system, not a build system generator FYI. CMake, GYP and such merely export makefiles, ninja files or IDE files. Whereas Gradle is a full-blown framework.

                      Comment


                      • #12
                        Gradle is good. A little bit too much to install though, 50MB on arch aur repo wtf is in that packet?

                        Comment


                        • #13
                          Meson seemed interesting until I saw the last slide of the lightning talk…

                          Comment


                          • #14
                            Originally posted by emblemparade View Post
                            It is exactly true that it's ridiculous to try to incorporate a dedicated programming language into a build system when there already are terrific dynamic languages out there, such as Python. With Waf, it's a pleasure to be able to do everything I need to do in my build script. And of course its built-in API handles so many important (and complicated) build tasks for me. What would Meson do differently?
                            To me, a basic test as to whether a programming language is too verbose to be fun to use is whether it makes sense to script the build system in the language itself. Ant and Maven are clunky, but they're a world better than writing your Java build configuration in Java. So Java, despite any other merits it might have, fails the fun-to-use test.

                            Groovy (Gradle) is a pleasure to use in the build system, and so is Clojure (Leiningen). Not coincidentally, given the choice I would rather work on Groovy or Clojure projects than on pure Java.

                            I can't imagine scripting my C or C++ builds in those languages. Yikes. But for example the attempted replacements Go and D both compile very rapidly and make a lot of common tasks syntactically simpler than equivalent C++ code, so I bet scripting your Go or D builds in those respective languages is feasible.

                            Comment


                            • #15
                              While we're on the topic of build systems I haven't really played with it yet I kinda like the ideas behind Qbs

                              http://qt-project.org/doc/qbs-1.2/la...roduction.html

                              Comment

                              Working...
                              X