fastled 1.2.89__tar.gz → 1.2.92__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastled-1.2.89 → fastled-1.2.92}/.gitignore +1 -0
- fastled-1.2.92/Dockerfile +85 -0
- {fastled-1.2.89 → fastled-1.2.92}/PKG-INFO +79 -4
- {fastled-1.2.89 → fastled-1.2.92}/README.md +76 -1
- {fastled-1.2.89 → fastled-1.2.92}/RELEASE.md +1 -1
- {fastled-1.2.89 → fastled-1.2.92}/build_local_docker.py +1 -6
- {fastled-1.2.89 → fastled-1.2.92}/compiler/init_runtime.py +5 -10
- {fastled-1.2.89 → fastled-1.2.92}/compiler/prewarm.sh +2 -3
- {fastled-1.2.89 → fastled-1.2.92}/compiler/pyproject.toml +1 -1
- {fastled-1.2.89 → fastled-1.2.92}/compiler/run.py +4 -4
- {fastled-1.2.89 → fastled-1.2.92}/docker-compose.yml +1 -1
- {fastled-1.2.89 → fastled-1.2.92}/pyproject.toml +3 -3
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/__init__.py +1 -1
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/server_flask.py +1 -1
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/settings.py +2 -2
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/PKG-INFO +79 -4
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/SOURCES.txt +8 -19
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/requires.txt +2 -2
- fastled-1.2.92/tests/unit/test_cli.py +38 -0
- fastled-1.2.92/tests/unit/test_ino/bad_platformio/platformio.ini +97 -0
- fastled-1.2.92/tests/unit/test_version_matches.py +70 -0
- fastled-1.2.92/vscode-plugin/readme +17 -0
- fastled-1.2.89/Dockerfile +0 -208
- fastled-1.2.89/compiler/__init__.py +0 -0
- fastled-1.2.89/compiler/build.sh +0 -3
- fastled-1.2.89/compiler/build_archive.sh +0 -28
- fastled-1.2.89/compiler/build_fast.sh +0 -54
- fastled-1.2.89/compiler/code_sync.py +0 -106
- fastled-1.2.89/compiler/compile.py +0 -652
- fastled-1.2.89/compiler/compile_lock.py +0 -3
- fastled-1.2.89/compiler/paths.py +0 -19
- fastled-1.2.89/compiler/pre-process.sh +0 -27
- fastled-1.2.89/compiler/process_extended.py +0 -109
- fastled-1.2.89/compiler/server.py +0 -882
- fastled-1.2.89/compiler/sketch_hasher.py +0 -255
- fastled-1.2.89/compiler/wasm_compiler_flags.py +0 -157
- fastled-1.2.89/tests/unit/test_cli.py +0 -26
- fastled-1.2.89/tests/unit/test_ino/bad_platformio/platformio.ini +0 -41
- {fastled-1.2.89 → fastled-1.2.92}/.aiderignore +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.dockerignore +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/build_multi_docker_image.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/build_webpage.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/lint.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/publish_release.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/template_build_docker_image.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_build_exe.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_macos.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_ubuntu.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_win.yml +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.pylintrc +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.vscode/launch.json +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.vscode/settings.json +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/.vscode/tasks.json +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/LICENSE +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/MANIFEST.in +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/TODO.md +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/build_exe.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/build_site.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/clean +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/CMakeLists.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/arduino-pre-process.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/debug.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/entrypoint.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/final_prewarm.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/install-arduino-cli.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/libcompile/CMakeLists.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/compiler/process-ino.py +0 -0
- {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/100dots.html +0 -0
- {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/demo_threejs.html +0 -0
- {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/micdemo.html +0 -0
- {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/mp3upload.html +0 -0
- {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/webgl_postprocessing_unreal_bloom.html +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/install +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/install_linux.sh +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/lint +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/requirements.testing.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/setup.cfg +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/setup.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/app.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/example.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/localhost-key.pem +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/localhost.pem +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli_test.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli_test_interactive.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/client_server.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/compile_server.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/compile_server_impl.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/docker_manager.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/filewatcher.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/keyboard.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/keyz.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/live_client.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/open_browser.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/parse_args.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/paths.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/print_filter.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/project_init.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/select_sketch_directory.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/server_start.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/site/build.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/site/examples.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/sketch.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/spinner.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/string_diff.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/test/can_run_local_docker_tests.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/test/examples.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/types.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/util.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled/web_compile.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/dependency_links.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/entry_points.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/top_level.txt +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/test +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/integration/test_build_examples.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/integration/test_examples.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/html/index.html +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_api.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_bad_ino.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_compile_server.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_docker_linux_on_windows.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_embedded_data.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_experimental_cpp_filter.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_fetch_source_files.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_filechanger.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_http_server.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/bad/bad.ino +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/embedded/wasm.ino +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/wasm/wasm.ino +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_print_filter.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_project_init.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_server_and_client_seperatly.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_string_diff.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_version.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_webcompile.py +0 -0
- {fastled-1.2.89 → fastled-1.2.92}/upload_package.sh +0 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
|
2
|
+
# The only reason we use docker is because of the fastled-wasm-compiler.
|
3
|
+
FROM niteris/fastled-wasm-compiler:latest
|
4
|
+
|
5
|
+
|
6
|
+
# Get the compiler requirements and install them.
|
7
|
+
COPY compiler/pyproject.toml /install/pyproject.toml
|
8
|
+
RUN uv pip install --system -r /install/pyproject.toml
|
9
|
+
|
10
|
+
# FIRST PRE-WARM CYCLE and initial setup: Download the fastled repo from the github and pre-warm the cache with a compilation.
|
11
|
+
# This is by far the most expensive part of the build, because platformio needs to download initial tools. This
|
12
|
+
# pre-warm cycle is "sticky" and tends to stay in the cache for a long time since docker is very relaxed about
|
13
|
+
# invalidating cache layers that clone a github repo.
|
14
|
+
|
15
|
+
RUN echo "force update4"
|
16
|
+
ARG FASTLED_BUILD_DAY=echo $(date +'%Y-%m-%d')
|
17
|
+
ENV FASTLED_BUILD_DAY=${FASTLED_BUILD_DAY}
|
18
|
+
|
19
|
+
ARG FASTLED_VERSION=master
|
20
|
+
ENV FASTLED_VERSION=${FASTLED_VERSION}
|
21
|
+
RUN mkdir -p /js/fastled && \
|
22
|
+
rsync -a /git/fastled/ /js/fastled/ --exclude='.git'
|
23
|
+
|
24
|
+
# Create symlinks for wasm platform files.
|
25
|
+
COPY compiler/init_runtime.py /js/init_runtime.py
|
26
|
+
COPY compiler/prewarm.sh /js/prewarm.sh
|
27
|
+
|
28
|
+
WORKDIR /js
|
29
|
+
|
30
|
+
ARG NO_PREWARM=0
|
31
|
+
ENV NO_PREWARM=${NO_PREWARM}
|
32
|
+
|
33
|
+
RUN python /js/init_runtime.py || true
|
34
|
+
|
35
|
+
|
36
|
+
# First pre-warm cycle - always do it as part of the build.
|
37
|
+
RUN mkdir -p /logs
|
38
|
+
|
39
|
+
# Force a build if the compiler flags change.
|
40
|
+
COPY compiler/CMakeLists.txt /trash/CMakeLists.txt
|
41
|
+
RUN rm -rf /trash
|
42
|
+
|
43
|
+
RUN chmod +x /js/prewarm.sh && \
|
44
|
+
cat /js/prewarm.sh >> /logs/prewarm.log.0
|
45
|
+
RUN /js/prewarm.sh --force >> /logs/prewarm.log.1 || true
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
# # Copy the fastled repo from the host machine and prepare for pre-warm
|
50
|
+
# # Make sure and delete files that have been removed so that we don't get
|
51
|
+
# # duplicate symbols from stale files.
|
52
|
+
# COPY *.json /host/fastled/
|
53
|
+
# COPY src/*.* /host/fastled/src/
|
54
|
+
# COPY examples /host/fastled/examples
|
55
|
+
# COPY src/fx /host/fastled/src/fx
|
56
|
+
# COPY src/fl /host/fastled/src/fl
|
57
|
+
# COPY src/lib8tion /host/fastled/src/lib8tion
|
58
|
+
# COPY src/third_party /host/fastled/src/third_party
|
59
|
+
# COPY src/sensors /host/fastled/src/sensors
|
60
|
+
# COPY src/platforms /host/fastled/src/platforms
|
61
|
+
|
62
|
+
RUN echo "force update"
|
63
|
+
COPY compiler /js/compiler
|
64
|
+
|
65
|
+
COPY compiler/entrypoint.sh /entrypoint.sh
|
66
|
+
RUN chmod +x /entrypoint.sh && dos2unix /entrypoint.sh
|
67
|
+
|
68
|
+
# RSYNC DISABLED FOR NOW
|
69
|
+
# now sync local to the source directory.
|
70
|
+
# RUN rsync -av /host/fastled/ /js/fastled/ && rm -rf /host/fastled
|
71
|
+
|
72
|
+
RUN python /js/init_runtime.py || true
|
73
|
+
|
74
|
+
|
75
|
+
# SECOND PRE-WARM CYCLE: Copy the fastled repo from the host machine and pre-warm the cache with that compilation. This will
|
76
|
+
# be much quicker than the first pre-warm cycle.
|
77
|
+
RUN /js/prewarm.sh --force > /logs/prewarm.log.2 || true
|
78
|
+
|
79
|
+
# Now timestamp the image and store it at the end of the build.
|
80
|
+
RUN date > /image_timestamp.txt
|
81
|
+
|
82
|
+
ENTRYPOINT ["/entrypoint.sh"]
|
83
|
+
CMD ["python", "/js/run.py", "server"]
|
84
|
+
|
85
|
+
# CMD ["/bin/bash", "/entrypoint.sh"]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fastled
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.92
|
4
4
|
Summary: FastLED Wasm Compiler
|
5
5
|
Home-page: https://github.com/zackees/fastled-wasm
|
6
6
|
Maintainer: Zachary Vorhies
|
@@ -10,17 +10,17 @@ Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Requires-Python: >=3.10
|
11
11
|
Description-Content-Type: text/markdown
|
12
12
|
License-File: LICENSE
|
13
|
-
Requires-Dist: docker>=7.1.0
|
14
13
|
Requires-Dist: httpx>=0.28.1
|
15
14
|
Requires-Dist: watchdog>=6.0.0
|
15
|
+
Requires-Dist: docker>=7.1.0
|
16
16
|
Requires-Dist: filelock>=3.16.1
|
17
|
-
Requires-Dist: disklru>=2.0.1
|
18
17
|
Requires-Dist: appdirs>=1.4.4
|
19
18
|
Requires-Dist: rapidfuzz>=3.10.1
|
20
19
|
Requires-Dist: progress>=1.6
|
21
20
|
Requires-Dist: watchfiles>=1.0.5
|
22
21
|
Requires-Dist: Flask>=3.0.0
|
23
22
|
Requires-Dist: livereload
|
23
|
+
Requires-Dist: fastled-wasm-server>=1.0.6
|
24
24
|
Dynamic: home-page
|
25
25
|
Dynamic: license-file
|
26
26
|
Dynamic: maintainer
|
@@ -38,7 +38,6 @@ Dynamic: maintainer
|
|
38
38
|
[](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
|
39
39
|
|
40
40
|
|
41
|
-
|
42
41
|
## Compile your FastLED sketch and run it on the Browser!!
|
43
42
|
|
44
43
|

|
@@ -394,3 +393,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
394
393
|
|
395
394
|
|
396
395
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
396
|
+
|
397
|
+
|
398
|
+
## Performance
|
399
|
+
|
400
|
+
```
|
401
|
+
###############################
|
402
|
+
# Build started with command: #
|
403
|
+
# pio run -v #
|
404
|
+
###############################
|
405
|
+
|
406
|
+
0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
|
407
|
+
0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
|
408
|
+
0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
|
409
|
+
0.41 --------------------------------------------------------------------------------
|
410
|
+
0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
|
411
|
+
0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
|
412
|
+
0.99 Found 1 compatible libraries
|
413
|
+
0.99 Scanning dependencies...
|
414
|
+
1.40 Dependency Graph
|
415
|
+
1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
|
416
|
+
1.49 Building in release mode
|
417
|
+
1.49
|
418
|
+
1.49 #########################
|
419
|
+
1.49 # C++/C Compiler Flags: #
|
420
|
+
1.49 #########################
|
421
|
+
1.49
|
422
|
+
1.49 CC/CXX flags:
|
423
|
+
1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
|
424
|
+
1.49 -DFASTLED_FORCE_NAMESPACE=1
|
425
|
+
1.49 -DFASTLED_USE_PROGMEM=0
|
426
|
+
1.49 -O1
|
427
|
+
1.49 -DUSE_OFFSET_CONVERTER=0
|
428
|
+
1.49 -std=gnu++17
|
429
|
+
1.49 -fpermissive
|
430
|
+
1.49 -Wno-constant-logical-operand
|
431
|
+
1.49 -Wnon-c-typedef-for-linkage
|
432
|
+
1.49 -Werror=bad-function-cast
|
433
|
+
1.49 -Werror=cast-function-type
|
434
|
+
1.49 -I
|
435
|
+
1.49 src
|
436
|
+
1.49 -I/js/src/platforms/wasm/compiler
|
437
|
+
1.49
|
438
|
+
1.49 #################
|
439
|
+
1.49 # Linker Flags: #
|
440
|
+
1.49 #################
|
441
|
+
1.49
|
442
|
+
1.49 --bind
|
443
|
+
1.49 -fuse-ld=lld
|
444
|
+
1.49 -sWASM=1
|
445
|
+
1.49 -sALLOW_MEMORY_GROWTH=1
|
446
|
+
1.49 -sINITIAL_MEMORY=134217728
|
447
|
+
1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
|
448
|
+
1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
|
449
|
+
1.49 --no-entry
|
450
|
+
1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
|
451
|
+
1.49 -sMODULARIZE=1
|
452
|
+
1.49 -sEXPORT_NAME=fastled
|
453
|
+
1.49 -o
|
454
|
+
1.49 /js/.pio/build/wasm/fastled.js
|
455
|
+
1.49
|
456
|
+
1.49 ##########################
|
457
|
+
1.49 # FastLED Library Flags: #
|
458
|
+
1.49 ##########################
|
459
|
+
1.49
|
460
|
+
1.49 --bind
|
461
|
+
1.49 -Wl,--whole-archive,-fuse-ld=lld
|
462
|
+
1.49 -Werror=bad-function-cast
|
463
|
+
1.49 -Werror=cast-function-type
|
464
|
+
1.49
|
465
|
+
1.49 ################
|
466
|
+
1.49 # End of Flags #
|
467
|
+
1.49 ################
|
468
|
+
1.49
|
469
|
+
2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
|
470
|
+
3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
|
471
|
+
```
|
@@ -11,7 +11,6 @@
|
|
11
11
|
[](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
|
12
12
|
|
13
13
|
|
14
|
-
|
15
14
|
## Compile your FastLED sketch and run it on the Browser!!
|
16
15
|
|
17
16
|

|
@@ -367,3 +366,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
367
366
|
|
368
367
|
|
369
368
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
369
|
+
|
370
|
+
|
371
|
+
## Performance
|
372
|
+
|
373
|
+
```
|
374
|
+
###############################
|
375
|
+
# Build started with command: #
|
376
|
+
# pio run -v #
|
377
|
+
###############################
|
378
|
+
|
379
|
+
0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
|
380
|
+
0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
|
381
|
+
0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
|
382
|
+
0.41 --------------------------------------------------------------------------------
|
383
|
+
0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
|
384
|
+
0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
|
385
|
+
0.99 Found 1 compatible libraries
|
386
|
+
0.99 Scanning dependencies...
|
387
|
+
1.40 Dependency Graph
|
388
|
+
1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
|
389
|
+
1.49 Building in release mode
|
390
|
+
1.49
|
391
|
+
1.49 #########################
|
392
|
+
1.49 # C++/C Compiler Flags: #
|
393
|
+
1.49 #########################
|
394
|
+
1.49
|
395
|
+
1.49 CC/CXX flags:
|
396
|
+
1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
|
397
|
+
1.49 -DFASTLED_FORCE_NAMESPACE=1
|
398
|
+
1.49 -DFASTLED_USE_PROGMEM=0
|
399
|
+
1.49 -O1
|
400
|
+
1.49 -DUSE_OFFSET_CONVERTER=0
|
401
|
+
1.49 -std=gnu++17
|
402
|
+
1.49 -fpermissive
|
403
|
+
1.49 -Wno-constant-logical-operand
|
404
|
+
1.49 -Wnon-c-typedef-for-linkage
|
405
|
+
1.49 -Werror=bad-function-cast
|
406
|
+
1.49 -Werror=cast-function-type
|
407
|
+
1.49 -I
|
408
|
+
1.49 src
|
409
|
+
1.49 -I/js/src/platforms/wasm/compiler
|
410
|
+
1.49
|
411
|
+
1.49 #################
|
412
|
+
1.49 # Linker Flags: #
|
413
|
+
1.49 #################
|
414
|
+
1.49
|
415
|
+
1.49 --bind
|
416
|
+
1.49 -fuse-ld=lld
|
417
|
+
1.49 -sWASM=1
|
418
|
+
1.49 -sALLOW_MEMORY_GROWTH=1
|
419
|
+
1.49 -sINITIAL_MEMORY=134217728
|
420
|
+
1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
|
421
|
+
1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
|
422
|
+
1.49 --no-entry
|
423
|
+
1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
|
424
|
+
1.49 -sMODULARIZE=1
|
425
|
+
1.49 -sEXPORT_NAME=fastled
|
426
|
+
1.49 -o
|
427
|
+
1.49 /js/.pio/build/wasm/fastled.js
|
428
|
+
1.49
|
429
|
+
1.49 ##########################
|
430
|
+
1.49 # FastLED Library Flags: #
|
431
|
+
1.49 ##########################
|
432
|
+
1.49
|
433
|
+
1.49 --bind
|
434
|
+
1.49 -Wl,--whole-archive,-fuse-ld=lld
|
435
|
+
1.49 -Werror=bad-function-cast
|
436
|
+
1.49 -Werror=cast-function-type
|
437
|
+
1.49
|
438
|
+
1.49 ################
|
439
|
+
1.49 # End of Flags #
|
440
|
+
1.49 ################
|
441
|
+
1.49
|
442
|
+
2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
|
443
|
+
3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
|
444
|
+
```
|
@@ -5,4 +5,4 @@ Go to src/fastled/__init__.py and increase the version number.
|
|
5
5
|
Make sure this is the ONLY change in your repo (or the release will fail
|
6
6
|
for unknown reasons) and commit and then push. Github builders will do all the rest.
|
7
7
|
|
8
|
-
Make sure and watch the jobs to verify that it worked.
|
8
|
+
Make sure and watch the jobs to verify that it worked.
|
@@ -37,11 +37,6 @@ for line in images.strip().splitlines():
|
|
37
37
|
# Step 4: Optionally remove volumes
|
38
38
|
# _exec("docker volume prune -f") # Uncomment if you want to purge volumes too
|
39
39
|
|
40
|
-
# Step 5: Remove local build artifacts (e.g., PlatformIO)
|
41
|
-
if os.path.exists("build"):
|
42
|
-
print("Removing local build/ directory")
|
43
|
-
shutil.rmtree("build")
|
44
40
|
|
45
|
-
|
46
|
-
# Step 6: Rebuild images
|
41
|
+
# Step 5: Rebuild images
|
47
42
|
_exec("docker compose build")
|
@@ -77,26 +77,21 @@ def make_links() -> None:
|
|
77
77
|
# Define file patterns to include
|
78
78
|
patterns = [
|
79
79
|
"*.h",
|
80
|
+
"*.py",
|
80
81
|
"*.hpp",
|
81
82
|
"*.cpp",
|
82
|
-
"*.py",
|
83
83
|
"*.sh",
|
84
84
|
"*.ino",
|
85
|
-
"*.ini",
|
86
85
|
"*.txt",
|
87
86
|
]
|
88
87
|
|
89
88
|
# Get all matching files in compiler directory
|
90
89
|
tasks = _collect_docker_compile_files(globs=patterns)
|
91
90
|
tasks += _collect_fastled_compile_files(globs=patterns)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
if "entrypoint.sh" in str(src):
|
97
|
-
continue
|
98
|
-
dst = COMPILER_ROOT / src.name
|
99
|
-
tasks.append((src, dst))
|
91
|
+
tasks += [
|
92
|
+
("/platformio/wasm_compiler_flags.py", COMPILER_ROOT / "wasm_compiler_flags.py")
|
93
|
+
]
|
94
|
+
tasks += [("/platformio/fastled.json", COMPILER_ROOT / "fastled.json")]
|
100
95
|
|
101
96
|
# Process files in parallel using ThreadPoolExecutor
|
102
97
|
with ThreadPoolExecutor(max_workers=16) as executor:
|
@@ -32,12 +32,11 @@ mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
|
|
32
32
|
python /js/compile.py --quick --mapped-dir /prewarm && rm -rf /js/.pio/build/wasm/src/wasm.ino.o || echo "failed to delete wasm.ino.o"
|
33
33
|
rm -rf /prewarm
|
34
34
|
|
35
|
-
mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
|
36
|
-
python /js/compile.py --release --mapped-dir /prewarm && rm -rf /js/.pio/build/wasm/src/wasm.ino.o || echo "failed to delete wasm.ino.o"
|
37
|
-
rm -rf /prewarm
|
38
35
|
|
39
36
|
mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
|
40
37
|
cd /js
|
41
38
|
python compile.py --no-platformio --mapped-dir /prewarm # 60 seconds -> 5 seconds
|
42
39
|
python compile.py --no-platformio --mapped-dir /prewarm # 5 seconds -> 0.5 seconds
|
43
40
|
rm -rf /prewarm
|
41
|
+
|
42
|
+
# I think delete wasm is missing here
|
@@ -9,13 +9,13 @@ description = "FastLED Server"
|
|
9
9
|
requires-python = ">=3.10"
|
10
10
|
|
11
11
|
dependencies = [
|
12
|
-
"platformio==6.1.17",
|
13
12
|
"fastapi==0.115.11",
|
14
13
|
"uvicorn[standard]==0.34.0",
|
15
14
|
"python-multipart==0.0.20",
|
16
15
|
"disklru==2.0.0",
|
17
16
|
"psutil==6.1.1",
|
18
17
|
"wormhole-tx",
|
18
|
+
"fastled-wasm-server>=1.0.6",
|
19
19
|
]
|
20
20
|
|
21
21
|
[tool.setuptools]
|
@@ -6,8 +6,8 @@ import warnings
|
|
6
6
|
from pathlib import Path
|
7
7
|
from typing import Tuple
|
8
8
|
|
9
|
-
from code_sync import CodeSync
|
10
|
-
from paths import
|
9
|
+
from fastled_wasm_server.code_sync import CodeSync
|
10
|
+
from fastled_wasm_server.paths import VOLUME_MAPPED_SRC
|
11
11
|
|
12
12
|
_PORT = os.environ.get("PORT", 80)
|
13
13
|
|
@@ -72,7 +72,7 @@ def _run_server(unknown_args: list[str]) -> int:
|
|
72
72
|
unknown_args = []
|
73
73
|
cmd_list = [
|
74
74
|
"uvicorn",
|
75
|
-
"server:app",
|
75
|
+
"fastled_wasm_server.server:app",
|
76
76
|
"--host",
|
77
77
|
"0.0.0.0",
|
78
78
|
"--workers",
|
@@ -106,7 +106,7 @@ def main() -> int:
|
|
106
106
|
|
107
107
|
code_sync = CodeSync(
|
108
108
|
volume_mapped_src=VOLUME_MAPPED_SRC,
|
109
|
-
rsync_dest=
|
109
|
+
rsync_dest=Path("/invalid/path"),
|
110
110
|
)
|
111
111
|
code_sync.sync_source_directory_if_volume_is_mapped()
|
112
112
|
|
@@ -11,12 +11,11 @@ keywords = ["template-python-cmd"]
|
|
11
11
|
license = { text = "BSD 3-Clause License" }
|
12
12
|
classifiers = ["Programming Language :: Python :: 3"]
|
13
13
|
dependencies = [
|
14
|
-
"docker>=7.1.0",
|
15
14
|
"httpx>=0.28.1",
|
16
15
|
"watchdog>=6.0.0",
|
17
16
|
########## Begin Docker Manager Dependencies
|
17
|
+
"docker>=7.1.0",
|
18
18
|
"filelock>=3.16.1",
|
19
|
-
"disklru>=2.0.1",
|
20
19
|
"appdirs>=1.4.4",
|
21
20
|
"rapidfuzz>=3.10.1",
|
22
21
|
"progress>=1.6",
|
@@ -24,11 +23,12 @@ dependencies = [
|
|
24
23
|
"watchfiles>=1.0.5",
|
25
24
|
"Flask>=3.0.0",
|
26
25
|
"livereload",
|
26
|
+
###### WASM SERVER ######
|
27
|
+
"fastled-wasm-server>=1.0.6", # This version can float upwards, while the docker is pinned.
|
27
28
|
]
|
28
29
|
|
29
30
|
dynamic = ["version"]
|
30
31
|
|
31
|
-
|
32
32
|
[tool.setuptools]
|
33
33
|
package-dir = {"" = "src"}
|
34
34
|
|
@@ -14,7 +14,7 @@ from .types import BuildMode, CompileResult, CompileServerError, FileResponse
|
|
14
14
|
# IMPORTANT! There's a bug in github which will REJECT any version update
|
15
15
|
# that has any other change in the repo. Please bump the version as the
|
16
16
|
# ONLY change in a commit, or else the pypi update and the release will fail.
|
17
|
-
__version__ = "1.2.
|
17
|
+
__version__ = "1.2.92"
|
18
18
|
|
19
19
|
|
20
20
|
class Api:
|
@@ -5,12 +5,12 @@ FILE_CHANGED_DEBOUNCE_SECONDS = 2.0
|
|
5
5
|
MACHINE = platform.machine().lower()
|
6
6
|
IS_ARM: bool = "arm" in MACHINE or "aarch64" in MACHINE
|
7
7
|
PLATFORM_TAG: str = "-arm64" if IS_ARM else ""
|
8
|
-
CONTAINER_NAME = f"fastled-wasm-
|
8
|
+
CONTAINER_NAME = f"fastled-wasm-container{PLATFORM_TAG}"
|
9
9
|
DEFAULT_URL = str(os.environ.get("FASTLED_URL", "https://fastled.onrender.com"))
|
10
10
|
SERVER_PORT = 9021
|
11
11
|
|
12
12
|
IMAGE_NAME = "niteris/fastled-wasm"
|
13
|
-
DEFAULT_CONTAINER_NAME = "fastled-wasm-
|
13
|
+
DEFAULT_CONTAINER_NAME = "fastled-wasm-container"
|
14
14
|
# IMAGE_TAG = "latest"
|
15
15
|
|
16
16
|
DOCKER_FILE = (
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fastled
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.92
|
4
4
|
Summary: FastLED Wasm Compiler
|
5
5
|
Home-page: https://github.com/zackees/fastled-wasm
|
6
6
|
Maintainer: Zachary Vorhies
|
@@ -10,17 +10,17 @@ Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Requires-Python: >=3.10
|
11
11
|
Description-Content-Type: text/markdown
|
12
12
|
License-File: LICENSE
|
13
|
-
Requires-Dist: docker>=7.1.0
|
14
13
|
Requires-Dist: httpx>=0.28.1
|
15
14
|
Requires-Dist: watchdog>=6.0.0
|
15
|
+
Requires-Dist: docker>=7.1.0
|
16
16
|
Requires-Dist: filelock>=3.16.1
|
17
|
-
Requires-Dist: disklru>=2.0.1
|
18
17
|
Requires-Dist: appdirs>=1.4.4
|
19
18
|
Requires-Dist: rapidfuzz>=3.10.1
|
20
19
|
Requires-Dist: progress>=1.6
|
21
20
|
Requires-Dist: watchfiles>=1.0.5
|
22
21
|
Requires-Dist: Flask>=3.0.0
|
23
22
|
Requires-Dist: livereload
|
23
|
+
Requires-Dist: fastled-wasm-server>=1.0.6
|
24
24
|
Dynamic: home-page
|
25
25
|
Dynamic: license-file
|
26
26
|
Dynamic: maintainer
|
@@ -38,7 +38,6 @@ Dynamic: maintainer
|
|
38
38
|
[](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
|
39
39
|
|
40
40
|
|
41
|
-
|
42
41
|
## Compile your FastLED sketch and run it on the Browser!!
|
43
42
|
|
44
43
|

|
@@ -394,3 +393,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
394
393
|
|
395
394
|
|
396
395
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
396
|
+
|
397
|
+
|
398
|
+
## Performance
|
399
|
+
|
400
|
+
```
|
401
|
+
###############################
|
402
|
+
# Build started with command: #
|
403
|
+
# pio run -v #
|
404
|
+
###############################
|
405
|
+
|
406
|
+
0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
|
407
|
+
0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
|
408
|
+
0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
|
409
|
+
0.41 --------------------------------------------------------------------------------
|
410
|
+
0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
|
411
|
+
0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
|
412
|
+
0.99 Found 1 compatible libraries
|
413
|
+
0.99 Scanning dependencies...
|
414
|
+
1.40 Dependency Graph
|
415
|
+
1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
|
416
|
+
1.49 Building in release mode
|
417
|
+
1.49
|
418
|
+
1.49 #########################
|
419
|
+
1.49 # C++/C Compiler Flags: #
|
420
|
+
1.49 #########################
|
421
|
+
1.49
|
422
|
+
1.49 CC/CXX flags:
|
423
|
+
1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
|
424
|
+
1.49 -DFASTLED_FORCE_NAMESPACE=1
|
425
|
+
1.49 -DFASTLED_USE_PROGMEM=0
|
426
|
+
1.49 -O1
|
427
|
+
1.49 -DUSE_OFFSET_CONVERTER=0
|
428
|
+
1.49 -std=gnu++17
|
429
|
+
1.49 -fpermissive
|
430
|
+
1.49 -Wno-constant-logical-operand
|
431
|
+
1.49 -Wnon-c-typedef-for-linkage
|
432
|
+
1.49 -Werror=bad-function-cast
|
433
|
+
1.49 -Werror=cast-function-type
|
434
|
+
1.49 -I
|
435
|
+
1.49 src
|
436
|
+
1.49 -I/js/src/platforms/wasm/compiler
|
437
|
+
1.49
|
438
|
+
1.49 #################
|
439
|
+
1.49 # Linker Flags: #
|
440
|
+
1.49 #################
|
441
|
+
1.49
|
442
|
+
1.49 --bind
|
443
|
+
1.49 -fuse-ld=lld
|
444
|
+
1.49 -sWASM=1
|
445
|
+
1.49 -sALLOW_MEMORY_GROWTH=1
|
446
|
+
1.49 -sINITIAL_MEMORY=134217728
|
447
|
+
1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
|
448
|
+
1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
|
449
|
+
1.49 --no-entry
|
450
|
+
1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
|
451
|
+
1.49 -sMODULARIZE=1
|
452
|
+
1.49 -sEXPORT_NAME=fastled
|
453
|
+
1.49 -o
|
454
|
+
1.49 /js/.pio/build/wasm/fastled.js
|
455
|
+
1.49
|
456
|
+
1.49 ##########################
|
457
|
+
1.49 # FastLED Library Flags: #
|
458
|
+
1.49 ##########################
|
459
|
+
1.49
|
460
|
+
1.49 --bind
|
461
|
+
1.49 -Wl,--whole-archive,-fuse-ld=lld
|
462
|
+
1.49 -Werror=bad-function-cast
|
463
|
+
1.49 -Werror=cast-function-type
|
464
|
+
1.49
|
465
|
+
1.49 ################
|
466
|
+
1.49 # End of Flags #
|
467
|
+
1.49 ################
|
468
|
+
1.49
|
469
|
+
2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
|
470
|
+
3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
|
471
|
+
```
|