GithubHelp home page GithubHelp logo

tslogger's Introduction

tslogger

Thread-safe logging for concurrent Haskell programs.

tslogger's People

Contributors

dreamlinuxer avatar rrnewton avatar peter-fogg avatar

Stargazers

Ivan Zakharyaschev avatar

Watchers

Abhishek Kulkarni avatar Sajith Sasidharan avatar Mike Vollmer avatar Eric Holk avatar Vikraman Choudhury avatar  avatar Eric Jiang avatar Lindsey Kuper avatar Joel Svensson avatar Michael DeWitt avatar Trevor L. McDonell avatar James Cloos avatar Cam Swords avatar William E. Byrd avatar Aaron W. Hsu avatar Baojun Wang avatar Sarah Spall avatar  avatar Laurel Carter avatar Ryan Scott avatar  avatar  avatar parfunc avatar  avatar  avatar Luke D'Alessandro avatar Mike Rainey avatar Ali Varamesh avatar Victoria Lewis  avatar  avatar

Forkers

heimdell

tslogger's Issues

Schedule Fuzz testing -- factor out a library of memory operations

Code that uses the logging framework currently, looks something like this:

  do ...
     log "About to operate on memory"
     casIORef ...
     log "About to read from memory..."
     readIORef ...

Etc. The point is, as the data structure author you need to remember to call a log command before any operation that peeks or pokes at memory. In fuzz testing / model checking mode, the log command is what actually blocks, gating execution until the scheduler decides that, say, the casIORef operation above is allowed to proceed, at which point it unblocks long enough to perform one memory operation, sequentially.

But this is tedious! We should abstract out a library of procedures like casIORef which automatically call log before doing the memory operation. This will mean that the data structure author simply needs to switch their imports from Data.IORef and Data.Atomics, to their replacement modules.

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.