{"push_id":3151647737,"size":60,"distinct_size":1,"ref":"refs/heads/doc_fixes","head":"3c50590b9f7e3241f07d6ca1d02eb1db424791ae","before":"2c9d055e55d175f78dc8d664f0cbd9664ed113e2","commits":[{"sha":"d3770e0869c32083a1f087067cec91806d3dc4bb","author":{"name":"Alon Zakai","email":"e039247740c9816afdb6dbff3efc336a7fe345a9@gmail.com"},"message":"Update binaryen to 58 (#7616)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/d3770e0869c32083a1f087067cec91806d3dc4bb"},{"sha":"b8cf866290818bc4e7e243f7abfd1aa0d4d121fb","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Remove reference to removed libcextra library (#7620)\n\nThis library was removed and merged into libc in 50cb083e6","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/b8cf866290818bc4e7e243f7abfd1aa0d4d121fb"},{"sha":"713762077ff1d893fe8b6419bffe87ef808fab68","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Remove unused run_base function from shared.py (#7621)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/713762077ff1d893fe8b6419bffe87ef808fab68"},{"sha":"32932f8b36cf3cbc5950365bfaab5ed602dc2eb0","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Ensure all \"system\" libs start with `lib` (#7619)\n\nThis is the first step towards making the emscripten_cache directory\r\nlook more like a normal library directory.\r\n\r\nPossible followups:\r\n- rename libcxx and compiler-rt to libc++ and compiler-rt to match\r\n  upstream.\r\n- use -L and -l for including system libraries.\r\n  This should allow things like `-lc` on the command line.\r\n- implement -nostdlib flag (replace ONLY_MY_CODE?).","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/32932f8b36cf3cbc5950365bfaab5ed602dc2eb0"},{"sha":"b011232d3700d5c35fe627739ac4625c52c2ea68","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Cleanup package.json (#7536)\n\nThis is part of a larger change to remove the two checked in\r\nnode_modules trees that we have in the emscripten and rely instead\r\non developers running `npm install` after cloning/syncing.\r\n\r\n- Switch ws dependency to devDevpendency since its only used\r\n  for testing\r\n- Add private:true since we are not (yet) publishing emscripten as\r\n  a node package.\r\n- Remove running on npm install from sockets test;  We can rely on\r\n  developers doing this before running the tests.\r\n- Don't try to run npm install in test_sockets.py.  Assume that\r\n  developers to used \"git clone\" will also run npm install","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/b011232d3700d5c35fe627739ac4625c52c2ea68"},{"sha":"3990c972b51255dfa2b556e9e17865ebb2b78f71","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Rename libcompiler-rt to libcompiler_rt to name used upstream (#7624)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/3990c972b51255dfa2b556e9e17865ebb2b78f71"},{"sha":"b9b987d1afb582252489f320ed07048be2a5f933","author":{"name":"Gabriel Cuvillier","email":"1a73af9e7ae00182733b2292511b814be66f065f@gabrielcuvillier.pro"},"message":"OpenAL exception fix (#7592)\n\n* Fixed an issue in OpenAL implementation (audioBuf might be null, and this leads to an exception being thrown at runtime)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/b9b987d1afb582252489f320ed07048be2a5f933"},{"sha":"8ec4b4ab4c9c9c75218931f73e99fa92ce82e462","author":{"name":"Kirill Smelkov","email":"b0eeaac46e675e9f95bf68c0df1041cf581c26f4@nexedi.com"},"message":"ldso: wasm: Don't assume that WebAssembly modules are loaded serially\n\nWorking on support for (many) shared libraries and testing that inside\nbrowser revealed a problem in loadWebAssemblyModule: it implicitly\nassumes that modules are loaded serially one after another, and if this\ninvariant is not held programs misbehave by using wrong global data.\n\nThe problem comes from the fact, that even though loadWebAssemblyModule\nsupports async loading by API, inside it modifies/reads __memory_base &\n__table_base in process-wide Module['wasmTable']. Be\nloadWebAssemblyModule just one step inside a promise - that maybe might\nturn to be not a problem, but even now loadWebAssemblyModule, when\nrunning in async-mode, has 2 steps:\n\n1. WebAssembly.instantiate, and then\n2. postInstantiation\n\nThe values for Module['wasmTable']['__memory_base'] & co are set before\n\"1\", and are then used inside \"2\". Given that it might be undetermined\ntime before \"1\" starts and hands over to \"2\", and that another WASM\nmodule might become loading along that time, at \"2\" the value for\nModule['wasmTable']['__memory_base'] might become to be not what it was\nset to at \"1\". Also the value for Module['wasmTable']['__memory_base']\nmight become changed just while \"1\" is running, if the browser supports\nasynchronous WebAssembly instantiation.\n\nIn other words it is kind of race-condition between \"threads\" that load\nwasm modules on process-wide Module['wasmTable']['__memory_base'].\n\nAnd the race here is not necessary, because particular __memory_base and\n__table_base should be applied to one particular module only - as every\nmodule should have its own different bases. So we can avoid unrolling\nasync mutexes and instead fix the problem by simply not storing the\nbases globally and passing them locally only to the imported module.\n\nNo test in this patch as browser.test_dylink_dso_needed_*, that will be\nadded in the next patch, covers the problem as well. This commit is a\npreparatory step for the next patch, where dynamic libraries are\nactually started to be loaded in parallel, and it was prepared as a\nseparate change to raise semantic visibility and ease review.","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/8ec4b4ab4c9c9c75218931f73e99fa92ce82e462"},{"sha":"6410be8c5433cc1c0fa05cf952351465ecebff57","author":{"name":"Kirill Smelkov","email":"b0eeaac46e675e9f95bf68c0df1041cf581c26f4@nexedi.com"},"message":"ldso: Teach dynamic linking to handle library -> library dependencies\n\nCurrently Emscripten allows to create shared libraries (DSO) and link\nthem to main module. However a shared library itself cannot be linked to\nanother shared library.\n\nThe lack of support for DSO -> DSO linking becomes problematic in cases when\nthere are several shared libraries that all need to use another should-be\nshared functionality, while linking that should-be shared functionality to main\nmodule is not an option for size reasons. My particular use-case is SciPy\nsupport for Pyodide:\n\n        https://github.com/iodide-project/pyodide/pull/211,\n        https://github.com/iodide-project/pyodide/issues/240\n\nwhere several of `*.so` scipy modules need to link to LAPACK. If we link to\nLAPACK statically from all those `*.so` - it just blows up compiled size\n\n        https://github.com/iodide-project/pyodide/pull/211#issuecomment-433104484\n\nand if we link in LAPACK statically to main module, the main module size is\nalso increased ~2x, which is not an option, since LAPACK functionality is not\nneeded by every Pyodide user.\n\nThis way we are here to add support for DSO -> DSO linking:\n\n1. similarly to how it is already working for main module -> side module\n   linking, when building a side module it is now possible to specify\n\n        -s RUNTIME_LINKED_LIBS=[...]\n\n   with list of shared libraries that side module needs to link to.\n\n2. to store that information, for asm.js, similarly to how it is currently\n   handled for main module (which always has js part), we transform\n   RUNTIME_LINKED_LIBS to\n\n        libModule.dynamicLibraries = [...]\n\n   (see src/preamble_sharedlib.js)\n\n3. for wasm module, in order to store the information about to which libraries\n   a module links, we could in theory use \"module\" attribute in wasm imports.\n   However currently emscripten almost always uses just \"env\" for that \"module\"\n   attribute, e.g.\n\n        (import \"env\" \"abortStackOverflow\" (func $fimport$0 (param i32)))\n        (import \"env\" \"_ffunc1\" (func $fimport$1))\n        ...\n\n   and this way we have to embed the information about required libraries for\n   the dynamic linker somewhere else.\n\n   What I came up with is to extend \"dylink\" section with information about\n   which shared libraries a shared library needs. This is similar to DT_NEEDED\n   entries in ELF.\n\n   (see tools/shared.py)\n\n4. then, the dynamic linker (loadDynamicLibrary) is reworked to handle that information:\n\n   - for asm.js, after loading a libModule, we check libModule.dynamicLibraries\n     and post-load them recursively. (it would be better to load needed modules\n     before the libModule, but for js we currently have to first eval whole\n     libModule's code to be able to read .dynamicLibraries)\n\n   - for wasm the needed libraries are loaded before the wasm module in\n     question is instantiated.\n\n     (see changes to loadWebAssemblyModule for details)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/6410be8c5433cc1c0fa05cf952351465ecebff57"},{"sha":"3d66a7f8a4443ecd05d0ae5a3ed631168b76f06b","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"circleci: Build all ports with embuilder and wasm backend (#7628)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/3d66a7f8a4443ecd05d0ae5a3ed631168b76f06b"},{"sha":"c161824a3780d50bd0dfcfee1c96a7dfb1f05834","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Fix flake8 warnings in embuilder (#7627)\n\nAlso, use exit_with_error rather than assertions when things go\r\nwrong.","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/c161824a3780d50bd0dfcfee1c96a7dfb1f05834"},{"sha":"24aa4eb91ebc5a5d32e70ee7b4f3f90647bd1ee3","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Refactor check_sanity (#7625)\n\n- Move most actual checks to a separate function\r\n- Remove try/catch.  This wasn't serving any purpose AFAICT\r\n- Remove `else` after `return`","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/24aa4eb91ebc5a5d32e70ee7b4f3f90647bd1ee3"},{"sha":"969259af3b4f8cd8aa801c09ddaa5b005981e812","author":{"name":"Alon Zakai","email":"e039247740c9816afdb6dbff3efc336a7fe345a9@gmail.com"},"message":"Strip debug info in the wasm backend path (#7629)\n\nRun binaryen's --strip pass to remove debug info, which may have been in a library that was linked in etc.\r\n\r\nThis hit a leak on the bots, which I think may be unrelated to this PR, or only noticed now due to timing - we were leaking the .wasm.pre file that we used when running binaryen. This fixes that by avoiding a temp file altogether, but also saving the pre file to the temp dir if in debug mode.","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/969259af3b4f8cd8aa801c09ddaa5b005981e812"},{"sha":"9ecca00df75b4879f633c0c60fb4e317aa6cb196","author":{"name":"Sam Clegg","email":"4504a65e6a180f18042ae97f363f5ae49cc5c461@chromium.org"},"message":"Add is_slow_test test decorator and EMTEST_SKIP_SLOW env var (#7642)\n\nList of slow tests based on Jacob's list.  I only included tests\r\nthat take more than 20 seconds.\r\n\r\nFuture work:\r\n- Warn if test marked as slow runs in <10 seconds.\r\n- Warn if test not marked as slow runs in >30 seconds.","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/9ecca00df75b4879f633c0c60fb4e317aa6cb196"},{"sha":"e2a265e2636bf40f54dc53c865587353529c9faa","author":{"name":"Alon Zakai","email":"e039247740c9816afdb6dbff3efc336a7fe345a9@gmail.com"},"message":"Avoid stackRestore() in wasm-backend startup (#7650)\n\n* use imported stacktop in wasm backend, avoid using stackRestore() during startup. fixes #7644 [ci skip]\r\n\r\n* bump binaryen version to get stack import changes","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/e2a265e2636bf40f54dc53c865587353529c9faa"},{"sha":"e3b7ef1db7912c288d04542dc754c6b0ea6d4530","author":{"name":"Gabriel Cuvillier","email":"1a73af9e7ae00182733b2292511b814be66f065f@gabrielcuvillier.pro"},"message":"Implement of glVertex4f (#7591)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/e3b7ef1db7912c288d04542dc754c6b0ea6d4530"},{"sha":"4cf04eacdcbe96b2470d504961f83bb6a2dcc064","author":{"name":"Alon Zakai","email":"e039247740c9816afdb6dbff3efc336a7fe345a9@gmail.com"},"message":"benchmark cleanups: add a PROFILING option, and add a wasmobj mode (#7640)","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/4cf04eacdcbe96b2470d504961f83bb6a2dcc064"},{"sha":"edfbab330009636e58ed10f99a9368f7a000440f","author":{"name":"William Furr","email":"1ea56b7ceb86fbc4c6f0eb3dcf866c75769520a6@gmail.com"},"message":"Change use of NO_DYNAMIC_EXECUTION in embind to DYNAMIC_EXECUTION. (#7653)\n\nThis was not handled properly by the preprocessor, so we didn't actually reach the NO_ paths.","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/edfbab330009636e58ed10f99a9368f7a000440f"},{"sha":"52479350e642453bf74ceca108fca8e1f43b30d5","author":{"name":"Alon Zakai","email":"e039247740c9816afdb6dbff3efc336a7fe345a9@gmail.com"},"message":"Preprocessor: Use eval() for good (#7651)\n\nThis replaces our custom preprocessor code with eval(). This allows arbitrary conditions in our #ifs, e.g. the __EMSCRIPTEN_HAS_nodefs__ things are now\r\n\r\n#if LibraryManager.has('library_workerfs.js')\r\n\r\nwhere that function is a new utility that checks if a library was included.\r\n\r\nThis patch also switches to things we've wanted to do, like\r\n\r\n#if FULL_ES2 || LEGACY_GL_EMULATION\r\n\r\nwhere in the past we had to create a new global for them.\r\n\r\nWe now error if we do if we ifdef on something nonexistent (the eval call throws), which noticed that we had a bunch of NO_DYNAMIC_EXECUTION code that could be removed (we removed that option a while ago).","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/52479350e642453bf74ceca108fca8e1f43b30d5"},{"sha":"ca76495526cc9fa36076a1dba4ff261e78821dd9","author":{"name":"Jukka Jylänki","email":"6a6286aa890c480e084b5c11c8c88b04027c6dc3@gmail.com"},"message":"Remove unused/leftover initialStackTop variable from postamble","distinct":false,"url":"https://api.github.com/repos/gabrielcuvillier/emscripten/commits/ca76495526cc9fa36076a1dba4ff261e78821dd9"}]}
{"actor":{"display_login":"gabrielcuvillier"}}