Giter Club home page Giter Club logo

debug's People

Contributors

alexknauth avatar florence avatar mbutterick avatar racket-dep-fixer avatar sorawee avatar suzannesoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

debug's Issues

build error caused by package conflict

There’s a build error on debug that’s percolating through to my Travis builds that rely on debug (naturally):

 raco pkg install: packages conflict
  package: rackunit-typed
  package: typed-racket-more
  module path: typed/rackunit/type-env-ext

Show arguments in name

When instrumenting calls to recursive functions, it's hard to tell which calls match which returns.
Showing the value of the arguments in addition to / instead of the instrumented form.
That could be a different form, like #A or something.

Runtime option to disable debug

The ability to disable debug (or otherwise override debug's behavior) at runtime would be a great feature.

Downside: it might encourage people to start committing code with #R all over the place. ;-)

Allow pretty-printing

First, this package is awesome!
When using it to debug TR, I sometimes need to print large values. Pretty-printing would make them more readable.

Debugging all callers of a function?

Sometimes I don't want to debug an expression, I want to debug all calls to a particular function. Would that belong in this package or a different library?

I'm imagining something like define/debug that works just like define but acts as if all callsites are wrapped in #R.

making `debug` part of a #lang reader by default

I would like to make the debug metareader part of the default #lang br environment (that is, #lang br would work the way #lang debug br does now). Roughly, how might I do this with the current debug interface? Or would it require some form of cooperation not yet available?

print syntax objects natively in the DrRacket REPL

Of course, DrRacket doesn’t need syntax objects reduced to strings, becuase it can produce the nice clickable native display. It’s not hard to patch report to do this, except for one thing: restricting the behavior to the DrRacket REPL (as opposed to any REPL).

So I think this reduces to the question: Is there a way for a macro to detect whether it’s being invoked within DrRacket?

Nested debug forms are difficult to read

The following:

#R(+ 1 #R(+ 2 3))

Produces this debug output:

(+ 2 3) = 5
(+ 1 (let () (local-require (only-in debug/report (report report))) (report (+ 2 3)))) = 6

The outer #R captures the macro expansion of the inner #R. This is difficult to read, especially with more complex expressions. Changing this is probably more trouble than it's worth, but it's an interesting problem at least.

Make debug-repl variables immutable

Within a (debug-repl), I want to the local variables accessible within it to be immutable. By that I mean using set! on them should fail.

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.