4 ms·
GTFL – A Graphical Terminal for Common Lisp
- mindcrime 2y agoI 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 2y agoJust 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 2y agoI 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 2y agoI 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 2y agoSame! 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 2y agoI 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/ 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 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/ http://lighttable.com/ (somewhat tangentially related, I think?) Sorry this is so scattered I need to hit the hay LOL.
- anonzzzies 2y agoAh 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 2y agoOh 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...
- pard68 2y agoThis 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 2y agoI've just added this to the ocicl repo, in case you are using that instead of quicklisp.
- worthless-trash 2y agoThanks. I use OCICL so this makes it a little easier.
- agumonkey 2y agoThere's something brilliant about the visual ergonomics of his renders. Light, dense, complex yet simple.
- lispm 2y agoone 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-1/ http://www.martin-loetzsch.de/gtfl/application-example-2/ http://www.martin-loetzsch.de/gtfl/application-example-2/
- jshaqaw 2y agoI want this mostly so I can invoke an output function as GTF(Lisp)-Out "gtfl-out &rest expressions => no values"