C++ Weekly - Ep 405 - Dogbolt: The Decompiler Explorer

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024
  • ☟☟ Awesome T-Shirts! Sponsors! Books! ☟☟
    Check out Undo's Time Travel Debugging! undo.io/cppweekly
    Episode Details: github.com/lef...
    T-SHIRTS AVAILABLE!
    ► The best C++ T-Shirts anywhere! my-store-d16a2...
    WANT MORE JASON?
    ► My Training Classes: emptycrate.com/...
    ► Follow me on twitter: / lefticus
    SUPPORT THE CHANNEL
    ► Patreon: / lefticus
    ► Github Sponsors: github.com/spo...
    ► Paypal Donation: www.paypal.com...
    GET INVOLVED
    ► Video Idea List: github.com/lef...
    JASON'S BOOKS
    ► C++23 Best Practices
    Amazon Paperback: amzn.to/47MEAhj
    Leanpub Ebook: leanpub.com/cp...
    ► C++ Best Practices
    Amazon Paperback: amzn.to/3wpAU3Z
    Leanpub Ebook: leanpub.com/cp...
    JASON'S PUZZLE BOOKS
    ► Object Lifetime Puzzlers Book 1
    Amazon Paperback: amzn.to/3g6Ervj
    Leanpub Ebook: leanpub.com/ob...
    ► Object Lifetime Puzzlers Book 2
    Amazon Paperback: amzn.to/3whdUDU
    Leanpub Ebook: leanpub.com/ob...
    ► Object Lifetime Puzzlers Book 3
    Leanpub Ebook: leanpub.com/ob...
    ► Copy and Reference Puzzlers Book 1
    Amazon Paperback: amzn.to/3g7ZVb9
    Leanpub Ebook: leanpub.com/co...
    ► Copy and Reference Puzzlers Book 2
    Amazon Paperback: amzn.to/3X1LOIx
    Leanpub Ebook: leanpub.com/co...
    ► Copy and Reference Puzzlers Book 3
    Leanpub Ebook: leanpub.com/co...
    ► OpCode Puzzlers Book 1
    Amazon Paperback: amzn.to/3KCNJg6
    Leanpub Ebook: leanpub.com/op...
    RECOMMENDED BOOKS
    ► Bjarne Stroustrup's A Tour of C++ (now with C++20/23!): amzn.to/3X4Wypr
    AWESOME PROJECTS
    ► The C++ Starter Project - Gets you started with Best Practices Quickly - github.com/cpp...
    ► C++ Best Practices Forkable Coding Standards - github.com/cpp...
    O'Reilly VIDEOS
    ► Inheritance and Polymorphism in C++ - www.oreilly.co...
    ► Learning C++ Best Practices - www.oreilly.co...

ความคิดเห็น • 21

  • @cppweekly
    @cppweekly  ปีที่แล้ว +1

    Check out Undo's Time Travel Debugging! undo.io/cppweekly
    Episode Details: github.com/lefticus/cpp_weekly/issues/120

  • @MattGodbolt
    @MattGodbolt 11 หลายเดือนก่อน +87

    And it has an absolutely awesome name :)

    • @SpeedingFlare
      @SpeedingFlare 11 หลายเดือนก่อน +5

      Omg, it's the Matt, the myth, the God, the Bolt, the legend! 😍

    • @MattGodbolt
      @MattGodbolt 11 หลายเดือนก่อน +5

      @@SpeedingFlare lol 😊- only one of those is true!

    • @thestarinthesky_
      @thestarinthesky_ 11 หลายเดือนก่อน +2

      Thank you for the great Compiler Explorer😍🙏🏽I loveeeeeee it💙

    • @dukex123
      @dukex123 11 หลายเดือนก่อน +2

      Just to pile on! Compiler Explorer is one of the greatest and most influential tools in ages!

    • @MattGodbolt
      @MattGodbolt 11 หลายเดือนก่อน +3

      @@dukex123thanks so much! I'm lucky to have a number of helpers: it's absolutely a team effort these days!

  • @nikodempatrycjuszswiercz4064
    @nikodempatrycjuszswiercz4064 11 หลายเดือนก่อน +70

    Now for the Bodgolt Recompiler Explorer...

    • @latt.qcd9221
      @latt.qcd9221 11 หลายเดือนก่อน +4

      Don't forget Gobdolt.

  • @anon_y_mousse
    @anon_y_mousse 11 หลายเดือนก่อน +1

    There used to be a project that some university professor had named dcc which could sort of decompile C programs. You've made me want to go and find that now.

  • @SillyOrb
    @SillyOrb 2 หลายเดือนก่อน

    For those who what to know how this evolved later on:
    Bank switching was later superseded with memory overlays on the NDS, which swapped logic in RAM.
    The NDS didn't have the traditional cartridge architecture of the consoles and handhelds before it, where logic was executed off the cart's ROM. So games needed to be loaded into RAM and executed from there. This meant that, if you wanted to have a lot of variety in gameplay, but also have some memory left for graphics that didn't go into VRAM, you had to separate your compilation units into the main logic and groups of memory overlays. These overlays used the same memory segment and could be exchanged in-place. If my recollection is right, this was somewhat slow, so you would do that while the game was loading or changing game modes etc. due to overlays being loaded from the cart. The memory segment the linker reserved for an overlay was as big as the biggest overlay, so you had to be careful to balance them to some extent, as an overlay's unused memory wasn't easily made available for any other uses.
    Imagine you had several mini-games of which only one would run at any time. All mini-games could essentially share an overlay. Maybe you had different NPC AI models and you would group them according to what is used together most commonly. Maybe early in the game there were easy NPCs that stopped occurring in the second half of the game, which coincided with hard NPCs being introduced. There might have been medium NPCs that were pretty much everywhere. You could group them into overlays that exchanged the easy with the hard NPCs, while the more common medium ones might have been always present in the main logic.
    Cheers.

  • @KhalilEstell
    @KhalilEstell 11 หลายเดือนก่อน +3

    I've never heard of this. So excited for this video. Also FIRST!

  • @fenokineza6259
    @fenokineza6259 10 หลายเดือนก่อน

    I think he's available for code reviews and on-site training, guys!

  • @einsweniger
    @einsweniger 11 หลายเดือนก่อน +4

    Oh, my dog! I love that name ♥

  • @TheMrKeksLp
    @TheMrKeksLp 11 หลายเดือนก่อน +4

    Uoh, I can already smell the cease and desist letter from Hex-Rays flapping in. Got no loicense for that, good sir

    • @MattGodbolt
      @MattGodbolt 11 หลายเดือนก่อน +17

      Hex-Rays donated the license and are happy with the publicity

  • @maxcharlington3877
    @maxcharlington3877 11 หลายเดือนก่อน +1

    It'd be rather intertaining to see if some copilot like tool name functions or write some comments to clarify generated mess

    • @cppweekly
      @cppweekly  11 หลายเดือนก่อน +1

      That would indeed be interesting, and I might try it!

  • @__hannibaalbarca__
    @__hannibaalbarca__ 11 หลายเดือนก่อน

    This thing is still exist after 20 years I stop programming ( I engaged in mathematics research) .

  • @mrlithium69
    @mrlithium69 11 หลายเดือนก่อน

    hullo!