Traceback (most recent call last):
....
File "D:\Work\kodo-js-new\waf-1.9.8-cede92d629572d85573d26cdbc2f2b42\waflib\extras\wurf\git_url_parser.py", line 54, in parse
return GitUrl(protocol=result.group('protocol'),host=result.group('host'),path=result.group('path'))
AttributeError: 'NoneType' object has no attribute 'group'
python2 waf configure --cxx_mkspec=cxx_default_emscripten --emscripten_path="D:\Work\kodo-js\emsdk\emscripten\1.38.10"
$ python2 --version
Python 2.7.13 :: Anaconda 4.3.1 (64-bit)
// on a windows 10 64bit
--
You received this message because you are subscribed to the Google Groups "steinwurf-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to steinwurf-de...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
[remote "origin"]
url = https://github.com/steinwurf/kodo-js
[remote "origin"]
url = https://github.com/steinwurf/kodo-js.git
https://github.com/steinwurf/kodo-js
https://github.com/steinwurf/kodo-js.git
wurf: Resolve execute resolve
['git', 'config', '--get', 'remote.origin.url']
out: https://github.com/steinwurf/kodo-js
Hi Patrik,
Thanks for your message. There should be a log file called something like build/resolve.resolve.log
Could you attache that one?
All the best,
Morten
On 07/31/2018 04:32 PM, braun....@aut.bme.hu wrote:
--
You received this message because you are subscribed to the Google Groups "steinwurf-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to steinwurf-de...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "steinwurf-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/steinwurf-dev/A1Z05Nh-W9c/unsubscribe.
To unsubscribe from this group and all its topics, send an email to steinwurf-de...@googlegroups.com.
Selected benchmark parameters:
Field: binary8
Symbols: 64
Symbol size: 1600
Setup time: 22579 microsec
Encoding time: 30467.9 microsec
Decoding time: 14249.03 microsec
Encoding rate: 6.721829 MB/s
Decoding rate: 7.186456 MB/s
memory usage: 26.869993 MB
Selected benchmark parameters:
Field: binary8
Symbols: 64
Symbol size: 1600
Setup time: 540.86 microsec
Encoding time: 29697.89 microsec
Decoding time: 14138.95 microsec
Encoding rate: 6.896114 MB/s
Decoding rate: 7.242403 MB/s
memory usage: 28.3834 MB
bld.env.append_value('CXXFLAGS', '-s')
bld.env.append_value('CXXFLAGS', 'ALLOW_MEMORY_GROWTH=1')
bld.env.append_value('LINKFLAGS', '-s')
bld.env.append_value('LINKFLAGS', 'ALLOW_MEMORY_GROWTH=1')
Dear Patrik,
I just looked at your code modification below:
template<class Coder>emscripten::val coder_write_payload(Coder& coder){std::vector<uint8_t> payload(coder.payload_size());coder.write_payload(payload.data());return emscripten::val(emscripten::typed_memory_view(payload.size(), payload.data()));}
This is totally unsafe, because the payload std::vector is destroyed when the function returns! Therefore the typed memory view points to an area where the memory was already freed and the data will not be copied!
If you want to return a valid memory view to the payload buffer, then you have to copy the data to a Uint8Array that is *not* allocated on the Emscripten heap, but somewhere else in the regular JS memory space (just like a user-created array). I tried this approach in this branch: https://github.com/steinwurf/kodo-js/blob/test-arrays/src/kodo_js/coder.hpp#L28Copying also takes time, so this "heavily-optimized" solution was actually slower in my benchmarks. And it is certainly more complex, so we will stick with the current approach until Emscripten introduces a more efficient way to share memory.
Your benchmarks are interesting, and it is funny to see that binary16 is almost as fast as binary8! We have a huge difference between those 2 fields in C++ (binary16 is painfully slow), so the coding operations are not so relevant here, we are benchmarking something else ;) I think Emscripten gives us a huge overhead just for copying data and calling functions.
So the JS engine is about 50-100x slower than C++, and that's why we cannot recommend using node.js on the server side. If you run node.js, then you can serve 10 HD streams, but with C++ you can serve 1000 streams. I think node.js might be useful for prototyping a web application, but nothing beyond that.
Cheers,Peter
On Tue, Aug 14, 2018 at 4:04 PM Patrik János Braun <braun....@aut.bme.hu> wrote: