23 ms·
αcτµαlly pδrταblε εxεcµταblε
- schoen 6y agoThe source code equivalent of this is a polyglot program: https://en.wikipedia.org/wiki/Polyglot_(computing) https://en.wikipedia.org/wiki/Polyglot_(computing) Apparently people on Stack Exchange have been working together on a single polyglot program for four years and have gotten a single codebase up to validity in nearly 300 languages. https://codegolf.stackexchange.com/questions/102370/add-a-language-to-a-polyglot?answertab=oldest#tab-top https://codegolf.stackexchange.com/questions/102370/add-a-la... Edit: also, Yusuke Endoh is a master at this art form https://github.com/mame/quine-relay https://github.com/mame/quine-relay and has even written a book about it http://uguu.org/words/2015_10_01.html http://uguu.org/words/2015_10_01.html which I would still love to have available in English!
- donaldcuckman 6y agoseems like youre trying to diminish the importance and significance of justines work by brushing it off as a polyglot, which you clearly watched youtube video of this past week . As i have and all i see everyone must also be subjected to via logic of mine
- chrisdalke 6y ago+1 for the mention of Endoh's work -- Yusuke Endoh's YouTube channel with many of his quines is really fantastic: https://www.youtube.com/c/YusukeEndoh/videos https://www.youtube.com/c/YusukeEndoh/videos A quine that prints itself as scrolling text in an AVI file: https://www.youtube.com/watch?v=rMlJy5He-Tk https://www.youtube.com/watch?v=rMlJy5He-Tk A self-similar quine that behaves like a fractal zooming out infinitely: https://www.youtube.com/watch?v=6J7u2G52scc https://www.youtube.com/watch?v=6J7u2G52scc A quine with source code that contains sheet music to a Bach song in comments and plays it: https://www.youtube.com/watch?v=OryXKUgRVOg https://www.youtube.com/watch?v=OryXKUgRVOg
- logicallee 6y ago>Apparently people on Stack Exchange have been working together on a single polyglot program for four years and have gotten a single codebase up to validity in nearly 300 languages. Wow, what a link. I submitted it just now as a separate HN post using your phrasing: https://news.ycombinator.com/item?id=24257630 https://news.ycombinator.com/item?id=24257630
- jaclaz 6y agoClassical examples of chimera/polyglots are: PoC||GTFO International Journal of Proof-of-Concept or ... https://www.alchemistowl.org/pocorgtfo/ https://www.alchemistowl.org/pocorgtfo/ Corkami: https://github.com/corkami https://github.com/corkami
- Rebelgecko 6y agoThis is incredible and also very frightening. Has anyone tried to distribute one of these binaries in a real context?
- userbinator 6y agoI think the closest to that would be https://en.wikipedia.org/wiki/Shar https://en.wikipedia.org/wiki/Shar and I've seen ones that were both valid shell scripts and Windows batch files. Of course, the actual polyglot part is tiny and serves only to direct execution to continue with the appropriate platform-specific binary.
- bigiain 6y agoHow about most issues of PoC||GTFO? From issue 2: "A careful reader may have noticed that a bootable OS image was hidden in the last issue of PoC‖GTFO,as one of the files in its dual PDF/ZIP structure (if you haven’t, download and extract it now!). This time, though, let’s hide it in plain sight. You will find by running ‘qemu-system-i386 -fda pocorgtfo02.pdf’ that the PDF file you are reading is also a bootable disk image."
- IgorPartola 6y agoThis is perverse in the best way possible.
- armitron 6y agoNo, this is perverse in the worst way possible. It's incompatible with modern debuggers. It's incompatible with shared libraries. It's limited to a feature-poor "unified" API (that might as well be seen as a crippled VM). It's complex in both interface and implementation. The bad aspects of Unix made even worse. The justifications make no sense whatsoever. It wants to do future-proofing but invents an adhoc "VM" with hardcoded OS interfaces that are meant to be treated as private. For macOS, I doubt binaries will work in the next release or two, nevermind 10 years. It's a fun toy or troll, but if you're looking at this for serious work I suggest you steer well clear.
- saagarjha 6y ago> It's incompatible with modern debuggers. Any debugger that can't debug this binary is broken and should be treated as such.
- a1369209993 6y agoThat's true, but I think they meant that it fails to actively support debugging the way a not-broken-by-design modern executable file format should.
- deleted 6y ago[deleted]
- DoreenMichele 6y agoWhy does the title font look pseudo Greek?
- deleted 6y ago[deleted]
- PCChris 6y agoBecause that's the name of the post/"format"... > I started a project which called Cosmopolitan which implements the αcτµαlly pδrταblε εxεcµταblε format. I chose the name because I like the idea of having the freedom to write software without restrictions that transcends traditional boundaries.
- deleted 6y ago[deleted]
- knolax 6y agoI hate it when people do that. It looks tacky and it's super annoying when they (mis)use a script you can read.
- thaumasiotes 6y ago"My Big Fat GRSSK Wedding" was a big offender there.
- dorkwood 6y agoIt also plays havoc with screen readers! I feel sorry for any blind people scrolling down the home page at the moment.
- DoreenMichele 6y agoIt's especially annoying if you took two quarters of Greek like 35 years ago and recognize it just well enough to have trouble seeing it as weird English lettering.
- alchemism 6y ago
- voltagex_ 6y ago>Similar to how the Super Mario Bros ROM has managed to survive all these years without needing a GitHub issue tracker. Well yeah, but that might be more a function of it existing before git and github. https://www.mariowiki.com/List_of_Super_Mario_Bros._glitches https://www.mariowiki.com/List_of_Super_Mario_Bros._glitches
- krackers 6y agoCan someone eli5 how this works? I sort of get that you can create one big binary file with all the necessary file headers for each platform and the actual x86 code being shared, but what about stuff like syscalls? The post also lost me when it started mentioning the need for shell scripts and emulators.
- Mathnerd314 6y agoHe talks about it a bit as the "magic numbers". You can see the big table: https://github.com/jart/cosmopolitan/blob/c91b3c50068224929cd4d3ddf36c5a10254cbd9c/libc/sysv/consts.sh https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... I guess there's also syscall emulation stubs for Windows but since he only supports "stdio and sockets" maybe not.
- reallyeli 6y agoThe author is a "she": https://en.wikipedia.org/wiki/Justine_Tunney https://en.wikipedia.org/wiki/Justine_Tunney
- Rebelgecko 6y ago"Tunney has described Occupy Wall Street as a far-left movement.[13] Her former comrades have described her as a technocratic fascist.[14]" Wow, although I'm not familiar with her, this wiki article seems a bit melodramatic
- jessaustin 6y agoHow on earth has that article met the "notability" threshold?
- mlindner 6y agoWell she owns/owned the Occupy Wallstreet twitter account.
- 6y ago
- ocdtrekkie 6y agoIs hosting web URLs at storage.googleapis.com a thing? After finding a persistent phishing campaign using it, I ended up restricting it from being loaded in the web browser in my environment. (Embedded images from it, like on blog.google, still work.) This is the first time I've seen a legitimate website with one of these URLs.
- sdan 6y agoHaha yeah, I have the same question... normally Google Buckets are hosted under storage.googleapis.com/[your bucket] not under a subdomain...
- renewiltord 6y agoTo get https don't you have to put a paid load balancer in front of it? At that point it's both more effort and costly than Netlify.
- tzot 6y agoPerhaps it's not that costly (or you can circumvent costs) if you work at Google, like Justine does IIUC.
- dri_ft 6y agoShe did, but no longer. The project's github README: > Justine Tunney currently isn't on the payroll of any company. She's been focusing on Cosmopolitan because she wants to give back to Free Software which helped her be successful.
- modeless 6y agoI believe that scripts without a shebang line cannot be executed by execve. They will only run if the shell sees them before the kernel does. It's an annoying limitation of this approach and it wasn't clear to me whether this technique includes a workaround for this. Also the push for code signing everywhere is going to make this harder in the future as well. (I heard a rumor that the workaround to run unsigned executables on macOS no longer works when running on Apple Silicon.) Otherwise, I love it! My approach was slightly different; I created a polyglot script header you can paste at the beginning of a C source file to make it essentially a C script which is just-in-time compiled when it is executed. Works on Windows, Linux, and Mac as long as a C compiler is installed. https://gist.github.com/jdarpinian/6860ddfd92b5b458a20ab6055583bc3e https://gist.github.com/jdarpinian/6860ddfd92b5b458a20ab6055...
- ChrisSD 6y ago> C compiler is installed It's a great idea but that part is a big ask for any Windows user who doesn't develop desktop applications.
- modeless 6y agoTrue. I'm imagining this as useful mostly for build scripts or other developer tools. To the extent that it's useful at all.
- terminalcommand 6y agoIt is actually pretty useful. If you’re given a locked down machine (for example in your company), you can write code in notepad, compile it with csc.exe and run it. As it is generated on the local machine, you may get to be able to execute it. (I tried this once when I was super bored at an intership, and a hello world program compiled and ran.)
- int_19h 6y agoOn Windows, though, there's C# compiler out of the box on every OS since Vista. And C# has a bunch of rarely-used syntax for things like raw pointers, that can work on more or less the same level as C, and even look pretty similar. It might be possible to do something with that.
- notaplumber 6y ago> I believe the best chance we have of doing that, is by gluing together the binary interfaces that've already achieved a decades-long consensus, and ignoring the APIs. Yeah, this isn't going to fly for OpenBSD, which doesn't have ABI stability, programs are expected to use libc. Program for the API, not the ABI. The author is clever, but misguided.
- ChrisSD 6y agoI believe the claim is that there exists a stable subset: > Bell System Five is the umbrella term we use to describe Linux, FreeBSD, OpenBSD, and Mac OS X which all have nearly-identical application binary interfaces that stood the test of time, having definitions nearly the same as those of AT&T back in the 1980's. However, only Linux guarantees stability at this level so I too am very sceptical that this will "stand the test of time". And of course this completely excludes Windows.
- FeepingCreature 6y agoIsn't Windows also known for being committed to both API and ABI stability?
- mrpippy 6y agoYes, but the stable interface is functions exported from kernel32, ntdll, etc. Syscall numbers can and do change freely between builds.
- ChrisSD 6y agoIndeed. The Win32 API (and UWP et al) is the only one that's officially stable. Kernel syscalls themselves are entirely unstable. Not even just the numbers but the calling convention and everything else. Microsoft reserves the right to add, remove or modify anything in or exposed by the NT kernel. Of course they won't do so frivolously but syscall numbers are especially prone to change with a new build of the kernel. So as with MacOS, BSD, etc the stable interface is provided by userspace libraries.
- angrygoat 6y agoInteresting point about the x86-64 patents expiring and the possibility of third parties making chips for that instruction set. Is it just so big and clunky that the energy is with ARM / RISC-V?
- ekianjo 6y agothere are more recent patents involving extensions on x86_64 which are essential for more modern processors, I believe.
- sgerenser 6y agoYes, being x64 compatible but not supporting SSE4 or AVX is basically useless.
- saagarjha 6y agoRosetta won't support this, it's far from "useless". Good programs should detect the lack of support and fall back to earlier extensions.
- sgerenser 6y agoRosetta is a compatibility stopgap, not a whole new CPU. Apple making a new chip with the x86/x64 instruction set and not supporting any modern SIMD features would be pointless. I’ve seen AVX2 code that performs nearly 8x faster than scalar code on the same CPU. Besides, where did you hear that Rosetta wont have to at least support SSE4? I think there are Mac apps that assume presence of these instructions since all of Apples macs since 2008 or so has had them.
- snarfy 6y agoBack when all you had was minicom dialing a BBS, there was a chicken and egg problem where you needed uudecode to decode any executable you downloaded. If you did not have uudecode you were stuck. If you are unfamiliar, unencoding a file allows you to send binary data through text transmission. Then a clever version of a DOS .COM file was posted which implemented uudecode, but it only used x86 instructions that were also ASCII characters. You could copy/paste between the --cut here-- lines into a file, save it as uudecode.com, and then get your other binaries like pkzip.
- userbinator 6y agobut it only used x86 instructions that were also ASCII characters That was a somewhat common approach back then. It's hard to find references to that technique now, but here's something I did find: https://news.ycombinator.com/item?id=16312562 https://news.ycombinator.com/item?id=16312562
- zwegner 6y agoThere's also this compiler (with accompanying paper/video), that compiles C89 to x86 with the output executable restricted even further, to only printable ASCII bytes: http://tom7.org/abc/ http://tom7.org/abc/
- saagarjha 6y agoThis is still quite useful when working on constrained shellcode, specifically the kind of shellcode you'd enter through a text input field.
- throwaway2048 6y agoYou can even do one better, you can construct shellcode out of valid english sentences. http://www.cs.jhu.edu/~sam/ccs243-mason.pdf http://www.cs.jhu.edu/~sam/ccs243-mason.pdf Since COM files are basically just raw binary code without headers or metadata, it should be easy to adapt the technique to make valid english language COM files.
- 6y ago
- fouc 6y agoFinally, you can produce a single cross-platform executable in C. > we've basically reconfigured the stock compiler on Linux so it outputs binaries that'll run on MacOS, Windows, FreeBSD, OpenBSD too. They also boot on bare metal
- edgyquant 6y agoBut it doesn't work on Linux?
- ComputerGuru 6y agoIt does for me. Make sure to execute via/prefix with sh, you can’t invoke it directly even after chmod +x
- alganet 6y agoOh, I love a great retrospecification work. This is awesome.
- naikrovek 6y agoI bet the name of this thing sends screen readers straight into the abyss. "Need cred or accessibility? Nerd cred! Screw you if your eyes don't work!"
- StavrosK 6y agoOr people who can read Greek. I can only imagine how Russians feel towards the frequent misuse of their alphabet.
- quickthrower2 6y ago"Actually Portable Executable" Incase anyone searches on hn.aloglia in future!
- 082349872349872 6y ago"Όντως φορητό εκτελέσιμο" ?
- NKosmatos 6y agoIMHO a better meaning would be "Πραγματικά φορητό εκτελέσιμο", but yours is also pretty close ;-) Having being involved with translation of software into Greek it's the small differences that bring the meaning as close to real usage as possible and not the transliteration that makes a great translation.
- tzot 6y ago…εξακτεμάν! :D
- 082349872349872 6y agoيَمَن https://en.wikipedia.org/wiki/Mots_d%27Heures https://en.wikipedia.org/wiki/Mots_d%27Heures ?
- deleted 6y ago[deleted]
- frio 6y ago... or uses a screenreader.
- deleted 6y ago[deleted]
- celrod 6y ago> the x86_64 patents should expire this year. Apple could have probably made their own x86 chip without paying royalties. The free/open architecture that we've always dreamed of, might turn out to be the one we're already using. I've never seen anyone mention this before. Is this really in the cards? Or are all the extensions patented as well, so that a hypothetical Apple (or whoever else takes it on) x86 wouldn't be able to use x86 without licensing it?
- rkv 6y agohttps://www.blopeur.com/2020/04/08/Intel-x86-patent-never-ending.html https://www.blopeur.com/2020/04/08/Intel-x86-patent-never-en...
- zozbot234 6y agoThe TL;DR seems to be that if you restrict yourself to implementing an ISA from 20 years ago, your chip can indeed be patent free, but that isn't going to run modern software - maybe not even modern x86 32-bit software!
- ant6n 6y agoI thought windows runs on anything which supports extensions up to sse2, which is what amd64 includes.
- ChrisSD 6y agohttps://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview#31-processor https://docs.microsoft.com/en-us/windows-hardware/design/min... Devices that run Windows 10 for desktop editions require a 1 GHz or faster processor or SoC that meets the following requirements: * Compatible with the x86* or x64 instruction set. * Supports PAE, NX and SSE2. * Supports CMPXCHG16b, LAHF/SAHF, and PrefetchW for 64-bit OS installation
- 6y ago
- saagarjha 6y agoAs expected, macOS Big Sur refuses to run the resulting executable: $ ./program.com -bash: ./program.com: cannot execute binary file: Exec format error $ sh ./program.com ./program.com: ./program.com: cannot execute binary file It's quite finicky in what it will accept ;)
- comex 6y agoOn my Big Sur machine, `bash ./hello.com` works the first time, but then it overwrites itself(!) with a Mach-O, so further executions have to be `./hello.com`.
- saagarjha 6y agoYup, that matches my experience running the example (I also had to put it in $PATH for the command -v in the header to work). I built program.com myself and it seems to be missing the DOS header for some reason, so it just doesn't execute at all…I'd file a bug, but I have no idea if she is interested in supporting it or if I can provide any useful information besides "it doesn't work".
- jart 6y agoGlad to hear you're using it! You can ping me on Google Hangouts (jtunney@gmail.com) for help. We also might be able to set up a Slack or IRC channel to iron out these issues. I actually didn't post this thread because I was still working on fixing the long tail of minor bugs. But now that the project has caught everyone's attention, we might be able to fix them sooner!
- saagarjha 6y agoSure, invite sent :)
- axegon_ 6y agoPeople... Please stop using foreign alphabets like that! It's a nightmare for those of us who know the alphabets. It took me a good 20 seconds to read the title. And it's magnitudes worse when someone uses cyrillic for instance and it's native to me.
- Wowfunhappy 6y agoFwiw, it’s significantly easier to read on the actual site than on Hacker News. Something about the font. HN’s title should probably be changed.
- mastazi 6y ago"actmally rdrtable execmtable" that's more or less how it reads to someone who knows the Greek alphabet :-D (I might be partially wrong because I've studied Greek many years ago and my memory is not good)
- hvenev 6y agoIt's somehow worse than "toys ya us".
- keiferski 6y agoOr Nee (Nine Inch Nails: NIИ)
- api 6y agoWhoa... that means Trent Reznor is a Knight who says Nee!
- augustk 6y agoOr Stack Overflow's "We are less than three people who code."
- BrandonM 6y agoThis comment is the top Google result for "stack overflow we are less than three people who code". It's not clear to me what you mean.
- iamthemalto 6y agoWhat's the program being used to go through the machine code in the gif?
- jcul 6y agoI'm not sure exactly what debugger is used, but gdb dashboard can be set up in a similar way. It's just stepping through instructions and viewing the registers and some memory regions. https://github.com/cyrus-and/gdb-dashboard https://github.com/cyrus-and/gdb-dashboard Though any debugger should be able to give the same information (including just plain gdb).
- jart 6y agoThe program being used is https://justine.storage.googleapis.com/emulator.com https://justine.storage.googleapis.com/emulator.com with the -t flag passed for the tui gui. Please note that I've only tested it on Linux and it's only intended for static executables, not shared objects.
- normanmatrix 6y agoThis girl is a true visionary engineer
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]
- Aeolun 6y agoC programmers: > here’s how simple it is: (two lines of arcane gcc invocation) I just don’t see how you can call that simple.
- saagarjha 6y agoI suggest you never look under the hood of the compiler frontend ;)
- kokooo 6y agoThis is cool but this is from the source code... - License is GPL2 - If you want to be able to distribute binaries in binary only form, then please send $1,000 to Justine Tunney jtunney@gmail.com on PayPal, for a license lasting 1 year. If the goal of this project is to have something similar to cross platform web development this is the wrong way to go about it imo.
- pjmlp 6y agoI imagine that Justin Tunney has bills to pay. Long term we will be back to the shareware days and we will have the anti-GPL task force to thank for.
- saagarjha 6y ago(Justine)
- jart 6y agoAuthor here. I'm sorry you feel that way. If you'd rather it be licensed ISC/MIT/BSD/etc. then please encourage your favorite member of FAANG or some other huge company to acquire Actually Portable Executable and then make it freely available under those terms, for the sake of benevolence and commitment to serving public interest. I come included.
- simias 6y agoIt's a very cool hack and technically interesting, but I can't say that I share the author's "serious" rationale: >So I think it's really the best of times to be optimistic about systems engineering. We agree more on sharing things in common than we ever have. There are still outliers like the plans coming out of Apple and Microsoft we hear about in the news, where they've sought to pivot PCs towards ARM. [...] >If a microprocessor architecture consensus finally exists, then I believe we should be focusing on building better tools that help software developers benefit from it Considering ARM an outlier in a world were smartphones outnumber desktop PCs and where the x86 stronghold is under attack from several sides seems like a strange take to me. Also, there's more to portability than managing to run a hello world from the same binary on Windows and Linux. I used to use FreeBSD a lot on the desktop, which usually involved using Linux binary compatibility to run Linux closed source binaries that weren't available on FreeBSD. It worked generally pretty well, but it wasn't without friction at times even though it was coded by very smart people and between two systems that were overall very similar. These "compatibility" applications often end up as 2nd class citizen that don't integrate well with native applications, or at least not as easily. See Wine for instance, managing to run Windows applications on un*x is a huge undertaking. >One of the reasons why I love working with a lot of these old unsexy technologies, is that I want any software work I'm involved in to stand the test of time with minimal toil. Similar to how the Super Mario Bros ROM has managed to survive all these years without needing a GitHub issue tracker. I love emulation, so I definitely understand where this is coming from, but I don't really see what that has to do with the rest. In particular if you're willing to go down the emulation route, why do you care about everybody running x86? Super Mario Bros was not written to run on a Celeron. Besides CPU emulation for something like a NES video game is only a tiny part of the story, you also have to emulate the GPU, sound chip etc... I feel like there's a mishmash of interesting ideas in there, but it's a bit confusing to understand.
- jdmichal 6y agoNot to mention this one: > I couldn't resist the temptation of making it a reality, since it means that high-performance native code can be almost as pain-free as web apps. > Please note this is intended for people who don't care about desktop GUIs, and just want stdio and sockets without devops toil. My understanding was that people are using web-apps and electron precisely to provide cross-platform GUIs. I feel like this is really missing the forest for the mountains...
- als0 6y ago> If a microprocessor architecture consensus finally exists I don't think that's a good goal to have. Without competing architectures we'll enter a microprocessor dark age. Although the glory days of Alpha and IA64 are over, plenty of that experience was used to bolster today's instruction sets. Diversity is a good thing.
- simias 6y agoI'm not sure I buy that, you can have a lot of competition on the same ISA. After all on the desktop/server x86 has been king for a while, and on embedded architectures ARM has all but taken over the competition. Yet there's significant competition on both fronts. Meanwhile attempts at creating new ISAs over the past couple of decades has been met with relatively little success, or only in very specific niches. Itanium being an obvious example. People talk about RISC V a lot but in practice it's not really making a dent into the ARM market share yet. These days competition appears to come mostly from companies reimplementing and extending existing ISAs with better performance.
- dwrodri 6y agoI would just like to add in that RISC-V is still a lot of talk because there are still some important standards that really need closer attention before we start mass-producing server CPUs. Specifically, the Platform-Level Interrupt Controller[1] and the Vector Instructions[2]. The former is super-important because we now know interrupts/traps can be used in Spectre/Meltdown style attacks, especially if your chip has something like a DSP/iGPU, which can be used in covert side channel attacks. The latter will be important for the same reason that SSE/AVX is important today. Just my opinion, but SiFive has been a huge driving force in even giving RISC-V a shot at breaking into server space. Most other companies (Google, Nvidia, Western Digital) have invested in RISC-V with the apparent intent of focusing on building microcontrollers/embedded processors. AFAIK, there's only one player who is investing in building RISC-V server-class CPUs and that's SiFive. Please correct me if I'm mistaken! I've been following RISC-V pretty closely for the last year or so and there's quite a lot to catch up on. 1 = https://github.com/riscv/riscv-v-spec https://github.com/riscv/riscv-v-spec 2 = https://github.com/riscv/riscv-plic-spec https://github.com/riscv/riscv-plic-spec
- hattori31 6y agoWriting things like this reminds me of edgy teenager on the internet of early 2000s.
- jfax 6y agoI associate it with naive teenagehood, but I don't associate it with 'edginess'.
- greyhair 6y agoIs this actually portable x86 executable?
- Bayart 6y agoActmallg rdrtable ekecmatable ?
- Igorvelky 6y agoinadvertently revealed NSA backdoor from 1997 " Please note that zsh has a minor backwards compatibility glitch with Thompson Shell so try sh hello.com rather than ./hello.com. "
- gargalatas 6y agoSo here we go for the greek alphabet: - μ stands for m - δ stands for th - τ stands for t - ε stands for e So I read this like: actmally pthrtable execmtable.
- vpribish 6y agocute title; but not searchable, machine translatable, or screen-reader friendly.
- saagarjha 6y agoGoogle found it in the first couple results: https://www.google.com/search?hl=en&q=actually%20portable%20executable https://www.google.com/search?hl=en&q=actually%20portable%20...
- deleted 6y ago[deleted]
- kreas 6y agoAs a person that speaks Greek, this hurts my delicate and beautiful soul. Please don't do that again.
- dracodoc 6y agoIt's funny. In China there used to be a time when high school students like to use rarely used Chinese characters, which are only similar to the intentional character in shape instead of meaning. They think that's cool. This style was called brain damaged style. https://zhidao.baidu.com/question/63502990 https://zhidao.baidu.com/question/63502990 什庅bai湜焱暒妏?举些瑺鼡哋唎ふ。du 什庅湜悩残軆?举些瑺鼡哋唎ふ。 什庅湜zhi悱炷蓅?举些瑺鼡哋唎ふ。 莓兲想埝祢巳宬儰⒈种漝惯
- Aachen 6y agoTo be clear, "intentional" should be "intended" right? Had to read this a few times (I'm also a non-native speaker, I wonder if that makes it easier or harder for me to understand a text with meaning-altering typos/mistakes) but I think it must be this.
- checkyoursudo 6y agoIntentional and intended are both adjectives. They both mean intended. They are synonyms, so they can be used mostly interchangeably. However, one or the other may be conceptually more clear in various cases. As a native English speaker, intentional character is understandable to me. I likely would have written intended character, but I don't think that intentional here is clearly incorrect.
- aasasd 6y ago30und5 c1053 70 13375p34k.
- dwighttk 6y agoactmally pdrtable execmtable?
- sagebird 6y agoWhat's the challenges involved in making a actually portable executable that is a compiler that can create actually portable executables. Why muck with getting a gcc running on windows or whatever if you don't have to? If you only mess with c once a year or so, getting compilers set up is a pain.
- jart 6y agoRight now I'm solving the problem by only doing my dev work on Linux. That works fine for me, since the output binaries run on other platforms too. But I'd love to support more flexibility for more people! Not everyone is accustomed to doing their coding via an SSH terminal. So the challenge is getting more eyeballs on the Cosmo source code so we can add features and iron out the long tail of bugs. Earlier this year, I somehow managed to successfully compile an x86_64-linux-gnu toolchain under MinGW. Using that, pretty much 90% of the Cosmopolitan built fine under Windows without needing a Linux VM (which actually goes faster than native WIN32 due to how Make+GCC assumes processes work). I've tried and failed several times to compile GCC from source on Mac. But I think compiling GCC is just so hard, that I'd probably rather embed the GNU/Linux compiler binaries in the PKZIP embedded file structure of EMULATOR.COM, since that should create a GPL boundary that's kosher per the GPLv3 and GCC RTEv3 terms.
- badrabbit 6y agoYou don't always need a shebang if it is marked as executable,is this a cosmetic conformity thing?
- saagarjha 6y agoYou need a shebang if you're going to execute it directly.
- deleted 6y ago[deleted]
- sgammon 6y agolol sick ️