IM SO CLOSE
#phm#ryland grace#rocky the eridian#project hail mary spoilers



seen from Brazil
seen from United Kingdom
seen from United Kingdom
seen from United States
seen from United Kingdom
seen from China

seen from United States
seen from China
seen from Japan
seen from United States

seen from United States

seen from United States
seen from United Kingdom
seen from United States
seen from Germany

seen from Türkiye
seen from United States

seen from Singapore

seen from Malaysia

seen from Singapore
IM SO CLOSE
what i learned in my attempt to make a compiler this winter break:
lexing and parsing are fun and relatively easy. very enjoyable process overall.
but there are languages that are meant to be the target for your backend, like asm and llvm ir, and there are languages that absolutely are NOT meant to be the target for your backend, like (shockingly) C.
I don't know how Nim is doing what it's doing but it's a miracle and not one that the faint of heart can replicate.
i know it's hard but please choose a target language that is actually reasonable to target. asm or llvm are good choices, but you can also pick an interpreted language with a well supported VM (such as JS, which is already the target for a lot of compilers because it's the defacto web language. that might be switching to wasm though).
Just. don't pick C. or C++. You think it's a low-enough level language and it'll work well but I'm telling you it probably won't. I'm sorry.
LLVM should've been written in lisp.
PVS-Studio Unicorns - 3
The picture was created for an article and referred to Thor: "I'm still worthy!". It demonstrates that our tool catches bugs even in high-quality projects such as the LLVM project — https://pvs-studio.com/en/blog/posts/cpp/0771/?utm_source=tumblr&utm_medium=firefly
Learn more about the history of PVS-Studio unicorns: The unicorns of PVS-Studio.
"Two posters stood out for their effective design and presentation, both receiving the Best Poster Award" FOR GLORY~! Thanks to the Eurosys2018 jury and congratulations to VUSec for winning Best Poster! 🎉🎊
At 2018 European LLVM Developers’ Meeting, Robin Zhong, Nebulas founder has presented his idea of implementing LLVM within blockchains. The title of the speech was ‘LLVM x Blockchain, A New Ecosystem of Decentralized Applications’ in the conference. The conference was date was April 16-17, 2018 at Bristol Marriott Hotel City Centre, Bristol, UK. Nebulas …
HMAPL Update: Decompiling the Game
Good news!
Avast has released the source code for their Retargetable Decompiler (RetDec for short).
Why am I excited about this?
Because can decompile PowerPC binaries (i.e. elf files) into a programming language (C or Python).
The main executable program in any Gamecube/Wii game is a Start.dol file, which is a variant of the elf format. Also, the GC/Wii are both based on the PowerPC architecture.
Most decompilers will only break a game down into what’s called Assembly. This is a type of machine code that is difficult at best to reverse-engineer. And those that support recompiling to other programming languages typically only support the x86 architecture.
Previously, one could try RetDec online, but it had a very small limit on decompilation time (which was not enough for a file as large as the game’s main program code). But now, I can run it on my own machine for as long as needed to run the decompilation process.
I’ve been able to successfully install RetDec and it’s dependencies. I was then able to convert AWL’s Start.dol file into a Start.elf file using DolTool 0.3 and begin the decompilation process.
Unfortunately the decompilation failed part-way through due to not having enough memory (my laptop only has 4GB RAM). My roommate offered to let me try on his laptop (which has 8GB), so once I’m able to try on that, I’ll post an update.
From the partial decompilation, I can tell that I’m on the right track though. I’ve been able to find a few lines in the LLVM code that reference CLZ files and could be the key to their decompression algorithm.
@global_var_80298180.828 = constant [22 x i8] c"mainchapter%d.arc.clz\00"
…
%v4_800131f8 = call i32 @function_80238268(i32 %v2_800131f0, i32 ptrtoint ([22 x i8]* @global_var_80298180.828 to i32), i32 %v0_800131e8)
It appears that the clz file is passed through to a variable, which is them passed through some sort of function (possibly to be decompressed).
I’ll be analyzing this code as much as I can to try and figure out how the files work.
On a separate note, decompiling the game’s primary source code could create a better understanding of the game overall and could open the door for additional future mods from other authors..