Failure on Linux/Travis-CI machines

22 views
Skip to first unread message

Neil Mitchell

unread,
Dec 3, 2013, 11:41:01 AM12/3/13
to fabrica...@googlegroups.com
Hi,

I'm trying to measure the limits of various build systems, and provide
examples for common tasks. The project is called the 'Build System
Shootout' and is based at:
https://github.com/ndmitchell/build-shootout

I currently have examples for 5 build systems, including fabricate. On
my Windows machine using the tracker.exe branch, all the fabricate
tests pass. On the Travis-CI Linux machine the fabricate tests fail,
see https://travis-ci.org/ndmitchell/build-shootout

Has anyone used fabricate on Travis machines? Any known limitations?
Any suggestions of what to try? Why might things be failing on Linux?

If anyone using Linux wants to try the examples, it should be as
simple as install the Haskell Platform
(http://www.haskell.org/platform/) and type "runhaskell Main
fabricate".

Thanks, Neil

Simon Alford

unread,
Dec 3, 2013, 12:34:59 PM12/3/13
to fabrica...@googlegroups.com
Hi Neil,

There are some know issues with strace fabricate on Linux. e.g. The tar command is know to use system calls that fabricate does not take notice of. There is a bug report about this in the issue list.

There may well be other system calls that are rarely used that we should be tracking from the output of strace. 

Do you know what the failure is? Does it not correctly build the project? Or fail to rebuild it correctly? I followed your link to build-shootout but could not see any error messages from fabricate in the trace that I saw.

Simon.



--
You received this message because you are subscribed to the Google Groups "fabricate users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fabricate-use...@googlegroups.com.
To post to this group, send email to fabrica...@googlegroups.com.
Visit this group at http://groups.google.com/group/fabricate-users.
For more options, visit https://groups.google.com/groups/opt_out.

Lex Trotman

unread,
Dec 3, 2013, 3:36:13 PM12/3/13
to fabrica...@googlegroups.com
On 4 December 2013 03:41, Neil Mitchell <ndmit...@gmail.com> wrote:
Hi,

I'm trying to measure the limits of various build systems, and provide
examples for common tasks. The project is called the 'Build System
Shootout' and is based at:
https://github.com/ndmitchell/build-shootout

I currently have examples for 5 build systems, including fabricate. On
my Windows machine using the tracker.exe branch, all the fabricate
tests pass. On the Travis-CI Linux machine the fabricate tests fail,
see https://travis-ci.org/ndmitchell/build-shootout

Neil,

Does it work on a local Linux machine?

Cheers
Lex
 


Has anyone used fabricate on Travis machines? Any known limitations?
Any suggestions of what to try? Why might things be failing on Linux?

If anyone using Linux wants to try the examples, it should be as
simple as install the Haskell Platform
(http://www.haskell.org/platform/) and type "runhaskell Main
fabricate".

Thanks, Neil

Neil Mitchell

unread,
Dec 10, 2013, 1:22:10 PM12/10/13
to fabrica...@googlegroups.com
(Apologies for the delay in replying, Google Groups does not work like I thought it did...)

Hi Simon,

It fails to rebuild when it should. I've added a lot more debug printing at the bottom of the output (see https://travis-ci.org/ndmitchell/build-shootout/builds/15237502, right at the bottom). Taking the "monad1" example, I have the script:

from fabricate import *
def output():
    run('sh','-c','cat list | xargs cat > output')
main()

I first create the file list (containing the lines input1 and input2) and the files input1 (containing test) and input2 (containing again). In the initial run I get:

sh -c "cat list | xargs cat > output"
{
    ".deps_version": 2,
    "sh -c \"cat list | xargs cat > output\"": {
        "input1": "input-098f6bcd4621d373cade4e832627b4f6",
        "input2": "input-639849f6b368019778991b32434354fc",
        "list": "input-e6445150678b2f90aaf2a9b87c8b829d",
        "output": "output-68e37a5f0d265ce101f95f6e24df7540"
    }
}

That looks perfect. I then rerun with no changes, and nothing rebuilds or changes, as expected. I then modify input1 to become "more" and run the build system again. Everything updates, but the .deps now reads:

sh -c "cat list | xargs cat > output"
{
    ".deps_version": 2, 
    "sh -c \"cat list | xargs cat > output\"": {
        "output": "output-e7af27520e9ef04ba1df62d90a9c6132"
    }
}

I change another file in the next run, and unsurprisingly, things don't update as expected. On Windows, with tracker.exe, the .deps file has the correct contents throughout.

Lex: Alas, I have no local Linux machine to test on.

Thanks, Neil
Reply all
Reply to author
Forward
0 new messages