1. Want to make a short map for the June 30 Custom Game Night? Check out AvatarsLord's Map Challenge!
    Dismiss Notice
  2. Join in on Icon Contest #17 and show your interpretation of a legendary equipment set!
    Dismiss Notice
  3. Join us in our custom games night on Saturday, June 30. We'll see you on Battle.net and Discord!
    Dismiss Notice
  4. Texturing Contest #28 has come to an end; vote for your favorite swamp dweller here! You can vote up to 3 entries.
    Dismiss Notice
  5. The Maxwell vs PrinceYaser Icon Challenge has come to a finish. See the results here!
    Dismiss Notice
  6. We've created the Staff Job Openings thread. We're currently in need of icon, video production, and social/multimedia positions to be filled. Thank you!
    Dismiss Notice
  7. Music Contest #10 Retro is out! Join us for some retro/vintage fun!
    Dismiss Notice
  8. Don't be stagnant - embrace change! The time has come to evolve and join the Techtree Contest #12 - Evolution.
    Dismiss Notice
  9. On May 20th a new law about privacy and data processing comes into work in the EU. I am no lawyer and I need help figuring out if we comply and if not, what we must do about it. Please message me if you can provide any assistance. Read more. Ralle
    Dismiss Notice
Waffle
Last Activity:
Jun 16, 2018
Joined:
Jul 30, 2013
Messages:
268

Following 1

Waffle

Dedicated Survivor n' dev

Waffle was last seen:
Jun 16, 2018
    1. Ezekiel12
      Ezekiel12
      Hey, you wrote this:

      "eg the following could in rare cases be true and cause heisenbugs:
      StringHash(a) == StringHash(b) && StringHash(a) != StringHash(b)"

      Which edge cases do you mean?
      1. View previous comments...
      2. Waffle
        Waffle
        ... (split cuz 1k char limit..)

        this is the type of silent and rare type of data corruption that is very hard to detect .. also its ocurring conditions are verr particular/situational because they are dependent on data that changes form game to game.

        also you should know that there are way more possible strings than there are 32 bit integers thus there must be many strings whose hashes are the same. but since most maps use very few string it is very rare and thus the issue gets little press. thus not getting fixed and always putting everyone at risk without them realising it.
        Feb 25, 2018
      3. Ezekiel12
        Ezekiel12
        I see what you mean, your posted code still can never be true.

        The problem you are describing all starts with hashtable taking integer as key, therefore the StringHash function has to return an integer.
        This is probably for performance reasons and to emulate the way gamecache was used in combination with the return bug until 2009. When that was found being able to virus other peoples PCs, hashtable and GetHandleId(...) was introduced.
        Feb 25, 2018
      4. Waffle
        Waffle
        Precicely. in normal programming languages the key to a hashtable is the key object itself, but in jass it is instead an integer derived from the key object not the key object itself. (ofc hashtables all use integral hashes underneath the hood but having the actual key object as input allows for dealing with hash collisions transparently, since w3 hashtables do not store the key itself they are unable to deal with .. or even detect that such an issue has occurred)
        Feb 26, 2018
    2. BlueSaint
      BlueSaint
  • Loading...
  • Loading...
  • About

    Home Page:
    http://www.fortress-survival.com
    Current Project:
    Fortress Survival Alpha
    WarCraft 3 Account:
    Waffle(est)
    WarCraft 3 Realm:
    US East

    Interact

  • Loading...