[HN Gopher] GTFL - A Graphical Terminal for Common Lisp
       ___________________________________________________________________
        
       GTFL - A Graphical Terminal for Common Lisp
        
       Author : oumua_don17
       Score  : 128 points
       Date   : 2024-05-27 20:00 UTC (1 days ago)
        
 (HTM) web link (www.martin-loetzsch.de)
 (TXT) w3m dump (www.martin-loetzsch.de)
        
       | mindcrime wrote:
       | I gotta say, that's pretty damn cool. It reminds me that I've
       | been meaning to take up Common Lisp for, like, forever. But
       | finding time to invest in learning the language / ecosystem is
       | the perpetual challenge. :-(
        
         | anonzzzies wrote:
         | Just do AoC in CL; start at the first year and do 1 per day.
         | When reaching the following year (first day puzzles are much
         | easier than the last one you did), add visualisations etc. When
         | you reach AoC '24, you'll be flying.
        
       | MikeSchurman wrote:
       | I love this. Probably because I've been thinking of similar ideas
       | for what seems like the last decade, I just have coders block
       | when it comes to actually implementing it. Seeing it (well
       | something like it) actually implemented makes me happy.
       | 
       | My use-case would be a "real-time" debug tool of sorts, that
       | would allow the viewing of trees as they have, but also the
       | modification of them, and the values at the nodes (think the
       | hierarchy+inspector of unity3d, but a remote tool).
       | 
       | Anyway this post is food for thought and I'm going to read more
       | about how it was done. I like the API they've created for sending
       | views, really interesting.
        
         | worthless-trash wrote:
         | I have something written which does 'real time graphing' of
         | data, its so stupid.
         | 
         | I'd much prefer to use more mature code, but I haven't seen
         | anything similar.
        
           | MikeSchurman wrote:
           | Same! I did this in unity3d, but also want to add this to my
           | remote tool. Where can I find the motivation? :)
           | 
           | This is also a very handy idea...
        
         | wormius wrote:
         | I think this is possibly related to something I was thinking
         | about when dealing with graph traversal in Python, wanting a
         | debug tool that let me snapshot each step but then diff the
         | watched variables. Being able to move back and forth to see the
         | state change, and the connections so I could determine what was
         | influencing the state. This was because no matter how hard I
         | tried, I kept running into variables that I was watching that
         | appeared to be the same reference, have different values (so I
         | know I was referring to something wrong, but could not for the
         | life of me figure it out, and though if I only had a way to
         | step/trace and do this visually like an AST that highlights
         | changed values and you could see back to its root where it's
         | actually being modified visually)
         | 
         | I found out there's a thing called "deterministic debugging"
         | (and the biggest known example afaict is rr: https://rr-
         | project.org/
         | 
         | Apparently MS has a time-travel debugger... I pictured the AST
         | being populated and repopulated via the steps, and the ability
         | to diff changes over time.
         | 
         | Here's a wiki on various systems, though most of these seem to
         | be typical text based "trace" options.
         | 
         | https://en.wikipedia.org/wiki/Time_travel_debugging (I hazard
         | that this may be similar to some of the power of Common Lisps
         | REPL, but could be wrong)
         | 
         | I found a professor at one point doing some research and he
         | seemed to have given up without more funding. I thought I had
         | it bookmarked, but am unable to find it right now. If I can
         | remember (ha) I'll see if I can find it tomorrow. He had the
         | most interesting approach that seemed closest to what I think
         | you (and possibly I) are thinking, with propagation through the
         | tree (I don't think I was picturing editing the graph directly
         | per se - but that would be a cool idea).
         | 
         | Have you looked into LightTable or Brett Victor's work at all?
         | http://lighttable.com/ (somewhat tangentially related, I
         | think?)
         | 
         | Sorry this is so scattered I need to hit the hay LOL.
        
           | anonzzzies wrote:
           | Ah thanks, I was trying to remember Lighttable; there must be
           | emacs plugins for CL for that I guess? As some type of more
           | addition to the REPL functionality; having it more automated?
        
             | wormius wrote:
             | Oh Sorry I don't know if there's more functionality -
             | didn't mean to imply something like LightTable exists for
             | it, but for some reason I thought it allowed you to step
             | back and forward in the execution to watch things (still
             | based in text, etc... I have SBCL on my system but never
             | really played with it beyond "hello world" so have never
             | actually used the full power of the REPL).
             | 
             | AFAIK it doesn't have any sort of extension like this
             | though. But maybe someone with more CL experience can
             | advise! Hopefully someone has a better idea for you :)
             | 
             | I see the stuff in the parent post but not sure exactly
             | what it can do vs what I envision or you may be
             | picturing...
        
             | wormius wrote:
             | Maybe this? https://undo.io/resources/step-backwards-time-
             | your-program-v...
        
           | MikeSchurman wrote:
           | Yes, I'm a big fan of Bret Victor's work. I share his
           | Inventing on Principle talk on a near yearly basis.
           | 
           | I've seen light table years ago and thought it looked really
           | neat, but I haven't looked into it much as it wasn't directly
           | applicable to my environments. But, probably worth a look for
           | ideas.
           | 
           | On the topic of time-travel debugging, have you seen the
           | demo: https://www.youtube.com/watch?v=72y2EC5fkcE (Tomorrow
           | Corporation Tech Demo) Very impressive, worth a watch.
        
             | homedirectory wrote:
             | Thank you for sharing this demo. Amazing stuff! Inspired me
             | to start working on improvements to the development
             | environment of my team.
        
           | jpmonettas wrote:
           | Have you seen http://www.flow-storm.org/. It does time travel
           | debugging for Clojure and has a bunch of features.
        
             | refset wrote:
             | FlowStorm really looks like it delivers on "execution is
             | data", per https://www.scattered-thoughts.net/writing/the-
             | shape-of-data
        
             | wormius wrote:
             | Interesting I'll have to look at that.
        
           | slifin wrote:
           | Clojure has a practical time travel debugger
           | 
           | I use it a lot at work it's fun
        
       | pard68 wrote:
       | This looks great. I'd love to try it and see where it can go. My
       | two favorite development features are using slime/sly for lisp
       | development and Elm's visualization of state and time travel. Put
       | those together and you'd get a language I'd never want to leave!
        
       | atgreen wrote:
       | I've just added this to the ocicl repo, in case you are using
       | that instead of quicklisp.
        
         | worthless-trash wrote:
         | Thanks. I use OCICL so this makes it a little easier.
        
       | agumonkey wrote:
       | There's something brilliant about the visual ergonomics of his
       | renders. Light, dense, complex yet simple.
        
       | lispm wrote:
       | one can easily miss the linked examples, here are the links from
       | the GTFL page:
       | 
       | http://www.martin-loetzsch.de/gtfl/application-example-1/
       | 
       | http://www.martin-loetzsch.de/gtfl/application-example-2/
        
       | jshaqaw wrote:
       | I want this mostly so I can invoke an output function as
       | GTF(Lisp)-Out
       | 
       | "gtfl-out &rest expressions => no values"
        
       ___________________________________________________________________
       (page generated 2024-05-28 23:02 UTC)