joha4270 13 hours ago

Oh this is delightful!

x86 assembly isn't something I'm familiar with (and I should really get back to $dayjob), but I will mention the existence of emoji-test.txt [1] in case somebody wants to try and mine more executable sequences. It might be worth paying attention to the minimally-qualified, unqualified and component lines, which can be added and removed semi freely. No idea if they actually correspond to useful byte sequences.

[1]: https://www.unicode.org/Public/emoji/latest/emoji-test.txt

dormento 5 hours ago

Anyone managed to reproduce it? I tried copying using Firefox on Wayland on Ubuntu GNULinux, then pasting on a Vim window. Nu luck, md5 didn't match.

  • joha4270 3 hours ago

    I cannot actually get the program working (which could easily be user error), but I could replicate the md5 by removing a newline vim inserted for me. If your file is 142 bytes, that's possibly what you're seeing

    • GloriousCow 2 hours ago

      For the 'hello' program, you need to use DosBox-X with the 'cpu cputype=8086' parameter. You can use 86Box or MartyPC as well but those take more effort to set up and get the executable onto them.

  • GloriousCow 2 hours ago

    Try copying from the links provided after each emoji block. That goes to my disassembler which should independently verify the md5.

    I think blogpspot unfortunately mucks with the emoji.

account42 12 hours ago

Waiting for someone to an emoji-x86 backend to LLVM/GCC.

KyleTheDev 6 hours ago

This is awesome, thanks! That was a very fun read.

fuzzfactor 16 hours ago

For this to be reproducible the browser version is going to need to be specified.

  • joha4270 14 hours ago

    I don't see why that would matter. Sure, it was noticed on a browser but ultimately this article is about overlap between x86 assembly and a subset of the unicode standard. The browser isn't really involved.

    • fuzzfactor 11 hours ago

      It does look like a good "works on my machine" proof-of-concept, but are you going to copy those emoji from something other than a browser?

      Probably wouldn't hurt to specify the text editor too and settings needed to match the intended file size as well.

      • joha4270 10 hours ago

        Emoji are text. Which text editor/browser/settings should I be using to ensure I copy your reply accurately?

        With the exception of (sigh) newlines, I surely hope your text editor accurately records the characters you paste into it. This job isn't different just because the characters are strange, multi colored ligatures.

        Edit: As long as you work in UTF-8 that is, but you have to go out of your way to use any other encoding as an interchange format these days, even if alternative internal encodings aren't uncommon-

        • jeroenhd 9 hours ago

          Some relatively recent emoji might not work in outdated browsers/operating systems. Generally, emoji font are regularly updated, but if you're using the stock browser (or Safari) on an outdated phone, you might not be able to render a lot of these emoji.

          Missing emoji should still be copyable though, it just won't look as funny.

          • MBCook 8 hours ago

            Why the Safari bash?

            Every single one works. Apple keeps their emoji list pretty up to date.

            • Ghoelian 7 hours ago

              Apple doesn't keep their emoji list up to date. Apple invents new emojis, implements them, and once enough people are using it, unicode will pretty much have to incorporate it. They're pretty much to emojis what google is to web standards.

        • fuzzfactor 28 minutes ago

          What did you use to get a 141 byte EMOJI.COM file from the first string of emojis?

    • GloriousCow 4 hours ago

      having the emojis survive copy & paste from a browser is surprisingly frustrating. I would have expected there to be well-defined semantics for this, but a lot of things insert variation selectors (U+FE0F) after certain emoji which breaks the code.

      It's less to do with browser versions and more to do with websites. Mastodon and unfortunately blogspot seem to mess up the emoji. Fortunately you can click on the disassembly links that go to my disassembler and copy them from there.