Git Product home page Git Product logo

Comments (3)

riz0id avatar riz0id commented on September 16, 2024 1

@thoughtpolice oh, and as for this comment:

Alternatively, you could modeltrace from the start and simply look for any inviolate state according to the temporal property, but this seems like a delicate thing the API should handle for you? And it seems like there's probably a reason they're separate APIs, for now.

The motivation for having a separate modeltrace vs modelcheck is that this approach was the most direct path to providing both features. It turned out to be fairly difficult to implement both in features in way that shared the same model checker run without significant changes to the model checker's implementation being needed. Since the current CLI is a very simple tool primarily geared towards debugging issues with the model checker, I didn't feel comfortable making significant changes to the model checker in order to support the CLI. Especially since the model checker's correctness is so sensitive to changes.

from spectacle.

ixmatus avatar ixmatus commented on September 16, 2024

Hi @thoughtpolice! Thanks for writing a detailed ticket about what would be more useful for you 🙂 We're pretty busy at the moment so probably won't get around to properly responding to you for a little while.

And yeah, one of the reasons we chose to drive model checking from Haskell was to make integration with Git and CI much nicer. Thanks for affirming our design decisions 🙂

Also, if you do any of the work to generate HTML reports from traces, please contribute it (if you feel so inclined). PRs are welcome!

from spectacle.

riz0id avatar riz0id commented on September 16, 2024

I made some crude changes to the CLI to enable performing a trace with property checks within the same interaction call in #55, e.g.

$ cabal v2-repl integration-tests
ghci *> :set args --trace --diagram
ghci *> import Specifications.Bitclock
ghci *> check

The model checker will run in check-only mode by default as before. To disable property checking and only trace the specification you can use:

$ cabal v2-repl integration-tests
ghci *> :set args --no-check --trace --diagram
ghci *> import Specifications.Bitclock
ghci *> check

I know this still isn't ideal from the users perspective, but I understand how annoying it was to switch back and fourth between checking and tracing. Leaving this issue open as I think significant improvements can still be made to the CLI to make tracing more user-friendly.

from spectacle.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.