|
i pulled back the curtain and all that this fancy ecmascript "compiles" into is literally a bunch of string evals
|
# ? Sep 26, 2017 15:33 |
|
|
# ? May 25, 2024 20:17 |
|
also this "minified" script still has all the whitesapce and really long-rear end function names in these eval strings
|
# ? Sep 26, 2017 15:37 |
|
current tps: POCing/prototyping some stuff in django and it seems way easier to get up and running than what i'm used to (pyramid) how bad actually is it?
|
# ? Sep 26, 2017 15:47 |
Mr SuperAwesome posted:current tps: POCing/prototyping some stuff in django and it seems way easier to get up and running than what i'm used to (pyramid) eh, it's like a double whopper with an actually healthy salad
|
|
# ? Sep 26, 2017 16:45 |
|
hackbunny posted:well, for one, you have to make a closure around all variables that might be affected by an unwind visual c++ on x86 elegantly sidesteps the issue by just loading the original ebp lol. or do you mean you actually use msvcrt (and its abi) on windows and you have to structure code exactly like visual c++ because I figure at some point it must be simply less effort to just write your own libc (fake edit: yep you do hats off, that's no mean feat) yeah, when i saw how much work they were putting into it i suggested exactly that, that they consider just writing their own personality, but they really wanted to match the abi for some reason, and quelle surprise they ended up loving around with cleanup entry ordering for months because msvcrt apparently has some undocumented and probably unnecessary requirements about that honestly we should write our own personality for libUnwind, too, the gxx personality requires a ton of code size overhead that we could at least shift into the unwind tables just saving the original frame pointer and making sure things get spilled into it instead of kept in callee-save registers is 100% the right way to compile that kind of non-escaping closure hackbunny posted:I hadn't realized that clang never had -fasynchronous-exceptions. scratch my earlier "all major compilers" then i think we might have the really basic support, so if you throw an async exception from a callee it works and it's just local exceptions that the support is weak for. i can't remember, though
|
# ? Sep 26, 2017 17:10 |
|
rjmccall posted:yeah, when i saw how much work they were putting into it i suggested exactly that, that they consider just writing their own personality, but they really wanted to match the abi for some reason, and quelle surprise they ended up loving around with cleanup entry ordering for months because msvcrt apparently has some undocumented and probably unnecessary requirements about that well there are good* reasons to match the ABI, like the fact that some libraries are only available as static libraries, or otherwise mixing code compiled with clang with code compiled with msvc. it also means piggybacking on the major (I won't say "native" as windows tries hard to be compiler-agnostic and imo largely succeeds) platform toolset: linker, debugger, c and c++ runtimes and related debugger magic (like visual studio's stl container inspectors), etc. besides, writing a C runtime for windows must be a really thankless task, as basically nobody but microsoft and borland has done it (lcc doesn't count because theirs is poo poo) as a bonus, it doubles as documentation of a notoriously undocumented ABI, so yay clang for going to these insane lengths rjmccall posted:just saving the original frame pointer and making sure things get spilled into it instead of kept in callee-save registers is 100% the right way to compile that kind of non-escaping closure it could be forbidden by the platform abi maybe, as a non-standard stack frame layout? all I remember clearly from reverse engineering is that on x86, __except filter expressions and __finally blocks are emitted as blocks in the enclosing function, in true "C as a fancy macro assembler" fashion, while on all other platforms they are stand alone functions that operate on a closure
|
# ? Sep 26, 2017 22:35 |
|
here's a fun thing i added to the jaguar program I wanted to add a text layer to it. I searched around and found a bitmap of the atari 8-bit font in 16x16 format. I converted it to a 256x256 1bpp raw image and rescaled it to make an 8x8 font too. I added an 320x200x1 pixel buffer and set it up so it's drawn in front of the background layer. I wrote some blit routines to draw 8x8 and 16x16 characters from the bitmaps - now I have a simple text layer with two sizes of fonts. once again surprised at how easy the blitter is to program to do that compared to how dumb the rest of the architecture is code:
|
# ? Sep 27, 2017 06:05 |
|
hackbunny posted:well there are good* reasons to match the ABI, like the fact that some libraries are only available as static libraries, or otherwise mixing code compiled with clang with code compiled with msvc. it also means piggybacking on the major (I won't say "native" as windows tries hard to be compiler-agnostic and imo largely succeeds) platform toolset: linker, debugger, c and c++ runtimes and related debugger magic (like visual studio's stl container inspectors), etc. besides, writing a C runtime for windows must be a really thankless task, as basically nobody but microsoft and borland has done it (lcc doesn't count because theirs is poo poo) iirc a lot of this was done by the chromium team, and yeah, it's quite possible that the static library thing especially was really important to them i assume they wouldn't need to replace the entire c runtime, just have those functions advertise that they're using a different personality, right? hackbunny posted:as a bonus, it doubles as documentation of a notoriously undocumented ABI, so yay clang for going to these insane lengths for sure hackbunny posted:it could be forbidden by the platform abi maybe, as a non-standard stack frame layout? all I remember clearly from reverse engineering is that on x86, __except filter expressions and __finally blocks are emitted as blocks in the enclosing function, in true "C as a fancy macro assembler" fashion, while on all other platforms they are stand alone functions that operate on a closure on some conceptual level there isn't much difference between taking a frame pointer and taking a pointer to a struct that just happens to have the layout of some function's call frame. but yeah, it does add substantial complexity to the backend to directly depend on the layout of a function; you have to compile functions in a specific order and propagate information between them, which otherwise is unnecessary and usually actively counter to the design. on the other hand having to form a closure isn't really zero-cost so the issue that the sub-functions are actually emitted contiguously with the main function is another of those "this is not really what we want but it's a lot of otherwise-unnecessary complexity to do it any other way" sorts of things. ideally everything related to exception handling would be in a completely different section so that it didn't interfere with the page-level locality of the normal path, but now you're talking about functions having multiple address ranges for various kinds of tooling and it all becomes a huge mess
|
# ? Sep 27, 2017 06:42 |
|
I should look into how Common Lisp implementations deal with the condition system, which supports restarting
|
# ? Sep 27, 2017 07:59 |
|
Guys, Has anybody every heard C# pronounced as "C hashtag" yet?
|
# ? Sep 27, 2017 09:10 |
|
rjmccall posted:i assume they wouldn't need to replace the entire c runtime, just have those functions advertise that they're using a different personality, right? correct! but the microsoft C runtime (until the "universal runtime" refactoring, which split the core C runtime from the compiler intrinsics library) was never meant to be used by other compilers, and they freely changed standard conformance and even the ABI from one version to the next. the "funniest" (in the "funniest home videos" sense of a football hitting someone in the crotch) one is probably msvcrt.dll, which while continuously upgraded with the latest bells and whistles, has to retain backwards compatibility with Visual Studio 6. the bits that have been updated, but if put in msvcrt.dll would break this compatibility, are distributed as a static library, confusingly merged with the msvcrt.dll import library (which is only available in the Windows driver kit, the Visual Studio version of msvcrt.lib does not link to msvcrt.dll). it took me weeks to explain this to the mingw-w64 guys and steer them away from the age old habit of blindly linking to msvcrt.dll plus msvcrt has always had a chronic lack of extensions that are very common elsewhere, and I've always been surprised that nobody has tried to port one of the major multiplatform libcs to windows cygwin doesn't count rjmccall posted:but now you're talking about functions having multiple address ranges for various kinds of tooling and it all becomes a huge mess I've seen link time optimization do worse
|
# ? Sep 27, 2017 10:38 |
|
I used to work with a guy who always (and insistently) pronounced C++ as simply "c plus." The devil couldn't have conceived of a better way to inflame everyone's autism than to leave such a commonly ingrained phrase sequence incomplete.
|
# ? Sep 27, 2017 10:39 |
|
ynohtna posted:I used to work with a guy who always (and insistently) pronounced C++ as simply "c plus." lol this owns
|
# ? Sep 27, 2017 10:45 |
|
"depreciated"
|
# ? Sep 27, 2017 11:01 |
floatman posted:Guys, yes, in latvian
|
|
# ? Sep 27, 2017 11:37 |
|
ynohtna posted:I used to work with a guy who always (and insistently) pronounced C++ as simply "c plus." People in my department routinely call C++ "C".
|
# ? Sep 27, 2017 11:54 |
|
floatman posted:Guys, Yyyup.
|
# ? Sep 27, 2017 12:04 |
|
ynohtna posted:I used to work with a guy who always (and insistently) pronounced C++ as simply "c plus."
|
# ? Sep 27, 2017 12:04 |
redleader posted:"depreciated" codeing
|
|
# ? Sep 27, 2017 12:06 |
|
floatman posted:Guys, https://twitter.com/mariancall/status/905485243620114432
|
# ? Sep 27, 2017 12:59 |
|
cinci zoo sniper posted:codeing "implement" replacing any of the words make, use, build
|
# ? Sep 27, 2017 13:09 |
prisoner of waffles posted:"implement" replacing any of the words make, use, build
|
|
# ? Sep 27, 2017 13:31 |
|
floatman posted:Guys, c octothorpe
|
# ? Sep 27, 2017 13:39 |
|
HoboMan posted:i pulled back the curtain and all that this fancy ecmascript "compiles" into is literally a bunch of string evals You configured yr compiler wrong
|
# ? Sep 27, 2017 14:19 |
|
i like to call it c pound sometimes for funsies
|
# ? Sep 27, 2017 14:40 |
|
C but after the end of this sentence, D.
|
# ? Sep 27, 2017 15:14 |
|
floatman posted:Guys, c pound ... ... ed in the butt by anders hejlsberg
|
# ? Sep 27, 2017 15:25 |
c double plus
|
|
# ? Sep 27, 2017 15:27 |
|
d flat
|
# ? Sep 27, 2017 15:35 |
|
Doom Mathematic posted:People in my department routinely call C++ "C".
|
# ? Sep 27, 2017 15:51 |
|
floatman posted:Guys, No but I'm going to start doing that in standups now.
|
# ? Sep 27, 2017 16:10 |
|
*pronounces "C" slightly out of key with the rest of the sentence*
|
# ? Sep 27, 2017 16:13 |
|
i wonder if kids are going to think hashtag is some weird german loanword
|
# ? Sep 27, 2017 16:20 |
|
C increment
|
# ? Sep 27, 2017 18:11 |
|
IT'S HERE the flash cart is somewhere between me and poland
|
# ? Sep 27, 2017 18:17 |
|
jesus hellfucking christ what is that goddamn controller garbage
|
# ? Sep 27, 2017 18:26 |
|
the theory at the time was "video games are complex so they're gonna need more buttons" sega responded with a 6-button controller the snes controller already had a million buttons atari bolted a phone keypad onto the rear end end of a 3-button controller and packed overlays in with games that came unstuck if you looked at them wrong realizing their mistake, they soon released... the Jaguar Pro Controller the d-pad is fine and the buttons are responsive, the controller is just too goddamn big and the phone keypad is impossible to use in the middle of a game
|
# ? Sep 27, 2017 18:33 |
|
tbf modern console controllers could stand to have a few more buttons on the back grip like the ones that the steam controller has
|
# ? Sep 27, 2017 19:46 |
|
how is a phone keypad useful on a game controller
|
# ? Sep 27, 2017 19:48 |
|
|
# ? May 25, 2024 20:17 |
|
atari could finally make a good E.T. game
|
# ? Sep 27, 2017 19:50 |