PLEASE COMEFROM 🏷
It’s in Intercal, a joke language from '70s. Mark Rendle describes it here in his talk at NDC. This whole talk is ridiculous btw.
This is the same language where you have to say
PLEASE
sometimes or it won’t compile. But if you sayPLEASE
too much, the compiler will think you’re pandering and also refuse to compile. The range between too polite and not polite enough is not specified and varies by implementation.This is hilarious!
I love how arbitrary, cultural and opinionated that must be to work with. You’d learn something about the implimenter of the compiler by using it for a while.
Guy who worked at my place before me kept using these and GOTO statements all over the place.
His name? Cotton-eyed Joe
where did you COMEFROM where did you GO…TO
where did you COMEFROM, cottonEyedJoe2
Wh… what do you mean, “originally as a joke”?
COMEFROM is my go to function;
Looks like C# 12 interceptors:
[InterceptsLocation(@"C:\testapp\Program.cs", line: 4, column: 5)]
I know it looks awful, but it’s not intended for direct use, but rather for source generators for native ahead of time compilation.
https://andrewlock.net/exploring-the-dotnet-8-preview-changing-method-calls-with-interceptors/
That sounds like a fucking nightmare. I had to troubleshoot poorly-written-yet-somehow-functional GOTOs a lot when I was a BAS technician and that’s annoying enough.
am i the only dumb fuck here who unironically likes this?
would make goto type situations much more usable
I don’t see any case where this is better than a goto. A goto you can read progressively though. A comefrom you’d see written then have to track to that piece of code and remember there’s a potential hidden branch there.
TBH I fail to see the significant difference between this and a function declaration.
Doesn’t it steal control flow? More like a break point, except you define where execution continues.
I wonder if it’s a compile error to have multiple conflicting COMEFROM statements, or if it’s random, kind of like Go’s select statement.
How awesome would it be to be able to steal the execution stack from arbitrary code; how much more awesome if it was indeterminate which of multiple conflicting COMEFROM frames received control! And if it included a state closure from the stolen frame?
Now I want this.
I wonder if it’s a compile error to have multiple conflicting COMEFROM statements
I think there’s at least one INTERCAL implementation where that’s how you start multi-threading
I honestly thought C++ (aka dumping ground of programming concepts) would implement this for “completeness”.