Hare did the legwork of adding proper DWARF support afaik. Btw that spec is huge, and the debug info generator ended up being larger than the rest of the compiler at that point.
Btw adding some non-standard debugging support to QBE is not impossibly hard even without that. You can inject bogus no-ops per line, force the compiler to keep them, and it will dutifully track all state values throughout the pipeline, and likewise you can track values from variables to SSA assignments, to temp registers to actual registers, its mostly bookkeeping.
I'm guessing you mean dwarf, but I started on a pdb library that I'd planned to use along-side qbe eventually. (The code currently lives in a jitting-C compiler https://scot.tg/2023/05/02/debugging-with-pdbs/ that uses dynasm directly though.)
For TextMate, cmd+E, cmd+F then the selection is in the search box. Or, you don't even have to open the search box with cmd+F, just cmd+G to next selection or cmd+opt+F to multi-cursor edit all occurrences.
The regex in TextMate is also very powerful (the unicode support is more powerful). New lines can be matched with \n. Another way is to select new line and repeat the cmd+E trick.
TextMate column selection is even better: you can enter column select mode simply by pressing opt. It is in fact multi-cursor editing, many editing commands like completion / copy / paste can work for each row individually.
Cmd+N or ctrl+cmd+N in TextMate.
The last one, not in TextMate. Though cmd+E then cmd+opt+F can highlight and start multi-edit on all instances of the word.
1. Fast and responsive
2. If you write a plugin, you know TextMate is Unix (forked child process, communicate through shared fd, you invoke a command named dialog2 to let TextMate popup any dialogs or completion menu...). You can add editor commands in any language -- you can even make TextMate display complex UI dialog with bash.
3. File browser is nearly a finder (drag and drop like finder, and most finder shortcuts work)
4. Search (there are some hidden shortcuts, but when you master it you feel very fluent)
There are weakness too: TextMate is losing the market, many bundle developers switched to other editors. You can't find many new bundles nowadays. It still doesn't support vim-like keyboard operation... etc
I think another (important) cause of microservice is politics:
When every department wants the easiest job with max outcome and the boss decides to split the cake equally, then an easy job X can be cut into N services which are usually named "micro", resulting in a huge project of complexity (X/N)^N for each team.
reply