3 ms·
The best use-case I can think of is using bash as a REPL for C libraries. Many times in the past, I've made library calls that either misinterpreted the paramet
by eric_the_read 11y ago
The best use-case I can think of is using bash as a REPL for C libraries. Many times in the past, I've made library calls that either misinterpreted the parameters or the result value. I would have loved the ability to prototype those calls in bash until I understood them enough to call them properly.
- michaelhoffman 11y agoYou can use gdb as an REPL for C.
- sea6ear 11y agoThis blew my mind the first time some one showed me, and is one of the reasons I currently prefer C to other mainstream compiled languages. Edit: I suppose it is possible to get some version of a repl with C++ (Cling?), Java (Beanshell, Java 9?), C# (Mono, but not currently .Net?). But each of those seems generally a bit harder to get access to than simply calling gdb on a binary with debugging symbols enabled.
- wvenable 11y agoC# has REPL in the immediate window when the debugger is running; so it's kind of like using GDB as a REPL for C. Although it is somewhat limited in what you can do.
- sea6ear 11y agoThat's actually really good to know about. Visual Studio's a little bit heavyweight, but if you're programming C#, there's a good chance that's what you're using anyway.
- shanemhansen 11y agobeanshell is quite painful. I like using the repl of a jvm language to explore classes and methods. Like slime+clojure or groovysh or jruby.
- eric_the_read 11y agoMy gdb-fu is weak, but don't you have to have a binary that you're debugging to do that? I'm thinking of this as more of an exploratory thing-- poking around the edges of an API until I feel comfortable enough with it to start writing real code.
- michaelhoffman 11y agoSure, but you could compile: #include <my_api.h> int main() { return 0; }
- jhallenworld 11y agoReminds me of vxworks: the main shell for the operating system is the debugger.
- shanemhansen 11y agoWhen I need a C repl, I often use python and ctypes.