{"action":"created","issue":{"url":"https://api.github.com/repos/kripken/emscripten/issues/7239","repository_url":"https://api.github.com/repos/kripken/emscripten","labels_url":"https://api.github.com/repos/kripken/emscripten/issues/7239/labels{/name}","comments_url":"https://api.github.com/repos/kripken/emscripten/issues/7239/comments","events_url":"https://api.github.com/repos/kripken/emscripten/issues/7239/events","html_url":"https://github.com/kripken/emscripten/issues/7239","id":367652214,"node_id":"MDU6SXNzdWUzNjc2NTIyMTQ=","number":7239,"title":"Emterpreter: show a proper error if a function is in both WHITELIST and BLACKLIST","user":{"login":"hostilefork","id":20440,"node_id":"MDQ6VXNlcjIwNDQw","avatar_url":"https://avatars1.githubusercontent.com/u/20440?v=4","gravatar_id":"","url":"https://api.github.com/users/hostilefork","html_url":"https://github.com/hostilefork","followers_url":"https://api.github.com/users/hostilefork/followers","following_url":"https://api.github.com/users/hostilefork/following{/other_user}","gists_url":"https://api.github.com/users/hostilefork/gists{/gist_id}","starred_url":"https://api.github.com/users/hostilefork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hostilefork/subscriptions","organizations_url":"https://api.github.com/users/hostilefork/orgs","repos_url":"https://api.github.com/users/hostilefork/repos","events_url":"https://api.github.com/users/hostilefork/events{/privacy}","received_events_url":"https://api.github.com/users/hostilefork/received_events","type":"User","site_admin":false},"labels":[{"id":112674,"node_id":"MDU6TGFiZWwxMTI2NzQ=","url":"https://api.github.com/repos/kripken/emscripten/labels/good%20first%20bug","name":"good first bug","color":"02e10c","default":false},{"id":399965028,"node_id":"MDU6TGFiZWwzOTk5NjUwMjg=","url":"https://api.github.com/repos/kripken/emscripten/labels/help%20wanted","name":"help wanted","color":"fef2c0","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-10-08T06:25:43Z","updated_at":"2018-10-12T00:20:32Z","closed_at":null,"author_association":"NONE","body":"*Using SDK version 1.38.12 on Linux*\r\n\r\nI was concerned that a given top-level function in a project might not be emterpreted, because I saw it on the stack with a name instead of `emterpret`...even though I'd said EMTERPRETIFY=1 and it wasn't on the EMTERPRETIFY_BLACKLIST.\r\n\r\nI'm pretty sure it was emterpreted, and that was just a property of top-level calls distinct from subsequent ones.  But for the sake of assurance, I thought I'd throw it in an EMTERPRETIFY_WHITELIST:\r\n\r\n    -s EMTERPRETIFY_WHITELIST=\"['_repl']\"\r\n\r\nI hadn't thought through the question of what having both a blacklist and whitelist would mean.  But instead of getting an error like \"hey, you can't have both\" the code generation just terminated in a somewhat uninformative way:\r\n\r\n> [\"binary\", \"%\", \"$33\", [\"unary-prefix\", \"+\", 2]]\r\n> ERROR:root:'/home/hostilefork/emsdk/clang/e1.38.12_64bit/binaryen/bin/asm2wasm libr3.temp.asm.js --total-memory=16777216 --trap-mode=allow -Os --mem-init=libr3.js.mem --mem-base=1024 -g -o libr3.wast -S' failed\r\n\r\nLet me know if this isn't enough information to reproduce.  The spew from EMCC_DEBUG didn't look too useful, here's some prelude to the above:\r\n\r\n> DEBUG:root:separating asm\r\n> DEBUG:root:PYTHON not defined in /home/hostilefork/.emscripten, using \"/usr/bin/python\"\r\n> DEBUG:root:JAVA not defined in /home/hostilefork/.emscripten, using \"java\"\r\n> DEBUG:root:Cache: PID 13667 acquiring multiprocess file lock to Emscripten cache at /home/hostilefork/.emscripten_cache\r\n> DEBUG:root:Cache: done\r\n> DEBUG:root:Cache: PID 13667 released multiprocess file lock to Emscripten cache at /home/hostilefork/.emscripten_cache\r\n> DEBUG:root:check tells us to use asm.js backend\r\n> DEBUG:root:Successfully executed /usr/bin/python /home/hostilefork/emsdk/emscripten/1.38.12/tools/separate_asm.py /tmp/tmpd5RFMf/libr3.bc.o.js.pp.js.mem.js.jsopted.js.jsopted.js.jsopted.js.em.js.jsopted.js libr3.temp.asm.js /tmp/tmpd5RFMf/libr3.bc.o.js.pp.js.mem.js.jsopted.js.jsopted.js.jsopted.js.em.js.jsopted.js\r\n> DEBUG:root:using binaryen, with method: native-wasm\r\n> DEBUG:root:binaryen root already set to /home/hostilefork/emsdk/clang/e1.38.12_64bit/binaryen\r\n> DEBUG:root:binaryen root already set to /home/hostilefork/emsdk/clang/e1.38.12_64bit/binaryen\r\n> DEBUG:root:asm2wasm (asm.js => WebAssembly): /home/hostilefork/emsdk/clang/e1.38.12_64bit/binaryen/bin/asm2wasm libr3.temp.asm.js --total-memory=16777216 --trap-mode=allow -Os --mem-init=libr3.js.mem --mem-base=1024 -g -o libr3.wast -S\r\n> [\"binary\", \"%\", \"$33\", [\"unary-prefix\", \"+\", 2]]\r\n> ERROR:root:'/home/hostilefork/emsdk/clang/e1.38.12_64bit/binaryen/bin/asm2wasm libr3.temp.asm.js --total-memory=16777216 --trap-mode=allow -Os --mem-init=libr3.js.mem --mem-base=1024 -g -o libr3.wast -S' failed"},"comment":{"url":"https://api.github.com/repos/kripken/emscripten/issues/comments/429163686","html_url":"https://github.com/kripken/emscripten/issues/7239#issuecomment-429163686","issue_url":"https://api.github.com/repos/kripken/emscripten/issues/7239","id":429163686,"node_id":"MDEyOklzc3VlQ29tbWVudDQyOTE2MzY4Ng==","user":{"login":"hostilefork","id":20440,"node_id":"MDQ6VXNlcjIwNDQw","avatar_url":"https://avatars1.githubusercontent.com/u/20440?v=4","gravatar_id":"","url":"https://api.github.com/users/hostilefork","html_url":"https://github.com/hostilefork","followers_url":"https://api.github.com/users/hostilefork/followers","following_url":"https://api.github.com/users/hostilefork/following{/other_user}","gists_url":"https://api.github.com/users/hostilefork/gists{/gist_id}","starred_url":"https://api.github.com/users/hostilefork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hostilefork/subscriptions","organizations_url":"https://api.github.com/users/hostilefork/orgs","repos_url":"https://api.github.com/users/hostilefork/repos","events_url":"https://api.github.com/users/hostilefork/events{/privacy}","received_events_url":"https://api.github.com/users/hostilefork/received_events","type":"User","site_admin":false},"created_at":"2018-10-12T00:20:32Z","updated_at":"2018-10-12T00:20:32Z","author_association":"NONE","body":"* a blacklist is a way of saying *\"this is the list of functions that are not emterpreted, everything else is.\"*\r\n* a whitelist says *\"this is a list of functions that are emterpreted, everything else is not.\"*\r\n\r\nSo if you're going to have both a blacklist and a whitelist, there has to be a rule for resolving it.  If you have: foo(), baz(), bar()\r\n\r\n    BLACKLIST =\"foo\"\r\n    WHITELIST = \"baz\"\r\n\r\nSo, is bar() emterpreted or not?"}}
{"actor":{"display_login":"hostilefork"}}