Is this change supposed to survive exiting and relaunching the app? I typed in the command and confirmed it worked with cat. I then exited and launched the app and ran cat /etc/resolv.conf and it was empty again.

I stated above that it works on WiFi. I also noticed that it is not listed under Settings/Cellular. I think that this is definitely related to the problem, because if it is not listed then it cannot get data over cellular.

I just tried ZSH on the latest version of ish and it is hella broken right now: prompt shows up as \h:\w\$, typing a command gives Bad system call (179, sigsuspend, a system call I didn't know existed) followed by a UAF. I don't have time to fix all that right now, but if anyone wants to give it a shot please do.

Haven't tested yet, so can't say, but there's a difference between being compatible with VO and being nice to use. Generally, terminal programs automatically read output as it comes in without requiring manual review. If you're using webKit, maybe you could set up the output as an ARIA live region?

The JIT runs as soon as control jumps to an address that hasn't been compiled yet.

The unit of compilation is a basic block. In other words, it starts compiling at the current instruction pointer and continues compiling until it reaches a branch or call. When a compiled block finishes running, the last gadget calculates where the branch destination is and jumps back to the main loop, which finds the block for that address (compiling it if necessary) and starts running it.

Most of the gadgets are of the form "load value into temporary register" or "do math with temporary register and value". For example, the instruction add %eax, 8(%esp) would compile into load_reg_a, addr_reg_sp 8, add_mem.

Yes, creating a new stack frame for every gadget would very quickly run out of memory. Tailcalls can be done in C as well as assembly, if you end your function with a function call and hope the optimizer is working.

The array is stored in a register, and each gadget ends with code to load the next pointer from the array, increment the register, and jump.

All of the latest datapacks seem to have been generated by a compiler instead of being written by hand. They have no comments, most of the functions are named things like execute13, except for a few with names like whilezl17_7. The BlingEdit datapack functions are named a little differently, like execute035_ln318, where the 318 is apparently a line number.

That's called obfuscation, and it's generally done when the original author doesn't want to release the source code of a program made in a scripting language (Python, Lua, Javascript, or Minecraft Datapacks).

I'd also prefer a GitHub release rather than a closed-source Google Docs release

I don't think it's obfuscated, since many of the function names such as whilezl17_7 actually make sense (that one is while z < 17). I highly doubt the original source was pure minecraft commands, since if you're an experienced programmer, writing code directly as minecraft commands is very painful.

Tags seem to be a replacement for communities, and you could follow communities. There is now no longer any way to follow the Programming tag like you could follow the Programming community, for example.

Unfortunately, as this thread has indicated, we didn't do a great job of redirecting to Science & Technology. Based on the feedback of this thread, we have made a few further adjustments that we hope will ease this transition:

Searching for "programming" or "game development" will now return the Science & Technology category

Links to the retired Programming or Game Development categories will now load the Science & Technology category

We have adjusted search so queries for "programming" will return streams that are tagged with the previously mentioned development tags

As we continue to adjust categories moving forward, we will apply the lessons learned here to make things easier for our users. Thank you for the feedback!

Nobody remembers to tag their stream with Programming or Game Development. And there's no way to follow a tag, like you could follow the Programming community. You really didn't have to make this change.

In at least one IDE (probably more), when you autocomplete a function, it generates a snippet like func(<arg1>, <arg2>) and selects <arg1> to let you edit it. You can then press tab to select <arg2> and edit that. Is there a vim plugin that does this?

Edit: Apparently there is. How do I configure things to make this happen?