)]}'
{
  "commit": "de2db172fd5767566aee89f756f6f7c5cdefda89",
  "tree": "5abed732a49302a6586f2b4475bbc03fdf4cdaf6",
  "parents": [
    "decf37989eb4baeae7284766724740f90cdfed44"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Mon Dec 09 13:08:55 2024 +0000"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Mon Dec 09 13:46:34 2024 +0000"
  },
  "message": "Export freestanding symbols as unmangled.\n\nMangling these is painful for the compiler and we\u0027ve missed at least one\nplace where it needs to happen.  We don\u0027t mangle the atomics, so it\u0027s a\ngood idea to also not mangle the freestanding ones.\n\nAs a transitional measure, export the functions as both their mangled\nand unmangled forms.\n\nThe next step is to make the mangled form the compatibility definition\nand use `asm` in the header to export these as non-mangled by default\nfor direct calls, then finally to remove `compat.S`.\n\nOnce this is merged, the compiler is free to start emitting `mem*` as\nlibcalls without name mangling.\n\nFixes #368\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "965a02b6a005071251759789b324a8224dc36cac",
      "old_mode": 33188,
      "old_path": "sdk/include/string.h",
      "new_id": "2dd75f1b7e5fb10e0d106d878479d6df669cc2af",
      "new_mode": 33188,
      "new_path": "sdk/include/string.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6b90c7b5ca613ddacc59bc69ccba82ea5fab28d",
      "new_mode": 33188,
      "new_path": "sdk/lib/freestanding/compat.S"
    },
    {
      "type": "modify",
      "old_id": "8f3eef9d62adfe9b20ccbae5d035c5e7071ee573",
      "old_mode": 33188,
      "old_path": "sdk/lib/freestanding/memcmp.c",
      "new_id": "9a3a5185e11bb638a29b9b8cad352c8b4d1cc2fb",
      "new_mode": 33188,
      "new_path": "sdk/lib/freestanding/memcmp.c"
    },
    {
      "type": "modify",
      "old_id": "5b7c7915aa97c52d1aa5ee8e227e26230b612375",
      "old_mode": 33188,
      "old_path": "sdk/lib/freestanding/memcpy.c",
      "new_id": "80e880a053e60eaf6827a79904cbc5fca038f2fb",
      "new_mode": 33188,
      "new_path": "sdk/lib/freestanding/memcpy.c"
    },
    {
      "type": "modify",
      "old_id": "c9e4c0a31664527ceea0d7fb64b54087ac4e7299",
      "old_mode": 33188,
      "old_path": "sdk/lib/freestanding/memset.c",
      "new_id": "8945d5c10d497ea0e7eb1aaeed2262ff9806d110",
      "new_mode": 33188,
      "new_path": "sdk/lib/freestanding/memset.c"
    },
    {
      "type": "modify",
      "old_id": "62f10fb8fb587af1b7b850d2dccc934c3c29cc04",
      "old_mode": 33188,
      "old_path": "sdk/lib/freestanding/xmake.lua",
      "new_id": "6daf6c5ce30940c4da7c34114f16f57d6aae83ed",
      "new_mode": 33188,
      "new_path": "sdk/lib/freestanding/xmake.lua"
    },
    {
      "type": "modify",
      "old_id": "dc09d775c09db377beed9a1b149d1cc33aa8c6fd",
      "old_mode": 33188,
      "old_path": "tests/misc-test.cc",
      "new_id": "2de724a1aa8569b52df1b5414403471e082b8cef",
      "new_mode": 33188,
      "new_path": "tests/misc-test.cc"
    }
  ]
}
