It might be good to look at how it's used in the test suite,

https://github.com/emscripten-core/emscripten/blob/9fd8eb088fa6795502e9bd2a2c92ff33390ef49d/tests/test_core.py#L7286

Looks like it just does python and then the path to the binder. I agree
that emsdk integration could be better, seems like right now you need to
give it the full path into the subdirectory of the emsdk where it exists.

I also agree those temp files shouldn't be emitted. I'm not sure offhand
why that happens, it could be due to the IDL parser library we use, which
we didn't write ourselves. Worth filing an issue, hopefully someone can
look into that.



On Wed, Apr 22, 2020 at 4:27 PM キャロウ マーク <[email protected]> wrote:

>
>
> On Apr 22, 2020, at 13:55, キャロウ マーク <[email protected]> wrote:
>
>
>
> On Apr 21, 2020, at 22:08, キャロウ マーク <[email protected]> wrote:
>
>
>
> On Apr 21, 2020, at 16:55, キャロウ マーク <[email protected]> wrote:
>
> Yes this seems like a really simple and stupid question, bear with me.
>
> The documentation
> https://emscripten.org/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html
>  just
> has a link to the source for the binder in the Emscripten GitHub repo. It
> says nothing about how you actually use it. Typing `webidl_binder.py` even
> prefixed with `python` gets a not found error. A `find` in my emsdk root
> reveals the tool is in upstream/emscripten/tools. The emsdk installer did
> not add the directory to $PATH from which it seems you aren’t meant to run
> it directly. However I can’t find any options in emcc to run the binder and
> it proclaims ignorance of the `.idl` extension if I just pass the file to
> it.
>
> So, am I supposed to add  `upstream/emscripten/tools` to my $PATH or is
> there another way I’m supposed to run it. If the former, why doesn’t emsdk
> add this directory to $PATH?
>
>
> I discovered that I copied the emsdk $PATH additions into my .bash_profile
> - because I want them visible to something called osx-env-sync.sh. It is
> possible that a more recent `emsdk construct_env` may be adding the tools
> directory.
>
> However webidl_binder.py does not have a #! line so can’t be run as a
> shell plus it does not have execute permission (I’m using a clone of the
> Emscripten repo) making it very difficult to run from the command line.
> Surely there must be a simpler way than `python
> $EMSDK/upstream/emscripten/tools/webidl_binder.py`. Yes I know I can make
> aliases and scripts, etc. etc. but why should I have to. I don’t have to in
> order to run `emcc`.
>
>
> I am running the binder the long-winded way. I am finding that it is
> leaving little turds behind, a file called “parser.out” and another called
> “WebIDLGrammar.pkl”.
>
> So I repeat my question. What is the proper way to run the binder? Will
> that still leave turds behind? Why the silence? Isn’t anyone else using
> this or do you all think my question so dumb it doesn’t deserve an answer?
>
>
> The binder is emitting the following code into the .cpp file:
>
> void array_bounds_check(const int array_size, const int array_idx) {
>   if (array_idx < 0 || array_idx >= array_size) {
>     EM_ASM({
>       throw 'Array index ' + $0 + ' out of bounds: [0,' + $1 + ')';
>     }, array_idx, array_size);
>   }
> }
>
> emcc barfs on " '$' in identifier [-Wdollar-in-identifier-extension]”.
> WebIDL-Binder.html says nothing about either EM_ASM or
> ‘array_bounds_check’. And I don’t see any flag to emcc relevant to enabling
> ASM_JS. How do I fix this?
>
> I feel like I’m blazing a new trail here yet there are examples pointed at
> by WebIDL-Binder.html. However I was unable to find the build scripts, .yml
> files make fles or whatever, for either of the examples.
>
> Regards
>
>     -Mark
>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/EDD7D00E-4DC6-4025-8D55-11A914BE7F68%40callow.im
> <https://groups.google.com/d/msgid/emscripten-discuss/EDD7D00E-4DC6-4025-8D55-11A914BE7F68%40callow.im?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpSKP5HnKDgurga7%2B6v%3DEyOfOsJ6DBRSY6OyEPPbJu1gng%40mail.gmail.com.

Reply via email to