[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)