Comments (27)
as 0.6 is out now... when can we play with the grid again? :)
from monome-rack.
The 0.6
branch should be Rack 0.6-compatible now. It builds on OSX and appears to work, but I haven't done a lot of testing. I'm away from my hardware grid right now, so I can't confirm the serialosc communication still works, but I have no reason to believe that any of the Rack 0.6 changes affected that aspect. Windows and Linux are also untested; since Rack has changed plugin Makefiles a bit there might be additional changes necessary for those platforms.
from monome-rack.
@Dewb @phdsg Hi, I made some testing with the build on Windows, here my notes.
Checking out branch 0.6, the build completes both against Rack build and Rack-SDK, with the following adjustments:
- commented the
-o0
flag, as @phdsg already catched - moved the FLAGS macro set also to the CXXFLAGS macro
- changed a line to:
set DISTRIBUTABLES += $(wildcard LICENSE*) res build/firmware
Once the build compiled, the plugin works well when I start Rack with make run
from the Mingw64 shell.
Indeed, when I move the monome (or monome-rack) folder in the dist, to my {user_home}\Documents\Rack\plugins folder and launch the installed version of Rack, the modules load successfully, but the connection to the virtual grids don't work. I found that Rack looks for the firmware libraries in this path: plugins/monome-rack/build/firmware, relative to its execution folder (which is C:\Program Files\VCV\Rack in my system). If I recreate the above mentioned path and move there the dll's from the firmware folder of the distribution package, the grids connect and the plugin starts working fully.
from monome-rack.
Thanks for the feedback! I don't think it's necessary for the plugin Makefile to copy FLAGS to CXXFLAGS (the Rack compile.mk should handle that already.) And I've moved the firmware files into the res
folder to keep things tidy.
Aside from that, all of the above fixes have been applied, and the 0.6
branch of the plugin should build and run correctly with the current VCVRack 0.6 head on Windows, with either full Rack or Rack SDK builds. I'm going to test OSX as well, and if no problems are spotted over the weekend I'll merge the 0.6 branch to master.
from monome-rack.
I am editing the makefile on windows, it doesn't compile as is (Slug and Rack_Dir missing)
from monome-rack.
i don't have the problem with the Makefile.
win7 mingw64
but i'm getting a compile error:
g++ -Wsuggest-override -std=c++11 -o0 -Werror=implicit-function-declaration -Isrc -Isrc/common -Isrc/common/GridConnection -Isrc/virtualgrid -Isrc/whitewhale -Isrc/meadowphysics -Isrc/earthsea -Ilib/base64 -Ilib/oscpack -Ilib/serialosc -DSLUG=monome -fPIC -I../../include -I../../dep/include -DVERSION=0.6.0 -MMD -MP -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/lib/base64/base64.cpp.o lib/base64/base64.cpp
cc1plus.exe: fatal error: build/lib/base64/base64.cpp.d: No such file or directory
compilation terminated.
make: *** [../../compile.mk:62: build/lib/base64/base64.cpp.o] Error 1
from monome-rack.
Just pushed a change to the Makefile that restores the arch.mk
include. Can you see if that changes the Windows build experience at all?
from monome-rack.
not for me. getting the same error.
from monome-rack.
What happens if you remove the line FLAGS := $(filter-out -MMD,$(FLAGS))
?
from monome-rack.
same.
getting the feeling i might be on a different rack commit. been a few days since i last updated.
and i saw some changes on the build system...
lemme check.
from monome-rack.
mhh, now that i updated to latest on the rack 0.6 branch i can't build rack anymore.
rolling back... what commit of rack are you using?
from monome-rack.
I built Rack/v0.6 with commit 2985005c8d006de4369b3d116bb2088521c85899
. I do see some changes to plugin.mk in newer commits, I'll try building those.
from monome-rack.
i'm now on VCVRack/Rack@88be6a4
latest doesn't work for me.
from monome-rack.
I can build VCVRack/Rack@88be6a4 (but not the latest commit: https://github.com/VCVRack/Rack/issues/888)
Whenever I update the Rack tree, or switch branches, I tend to do the following to cut down on build issues:
make clean
cd dep
make clean
cd ..
git submodule sync
git submodule update --init --recursive
make
from monome-rack.
ditto, although most times i only clean and remake deps if i see a change there in the commits.
from monome-rack.
So with Rack 88be6a4
built, you're still getting the build/lib/base64/base64.cpp.d: No such file or directory
error on monome-rack? Does the build/lib/base64 directory exist?
from monome-rack.
yea, same error. directories exit but are empty. wanna see the complete make output?
from monome-rack.
Are you building inside VS Code? If you are, try removing the -j4
from the build command in .vscode/tasks.json
(or if you're building from the command line and providing the -j
flag, remove it there.)
from monome-rack.
nope, no vs, just make
on the msys2 terminal and i think -j
isn't set.
from monome-rack.
Okay, can you clone fresh copies of Rack and monome-rack and paste the full make
output for monome-rack?
from monome-rack.
as rack's 0.6
branch is still not working for me i went for the 0.6.0
tag.
result is the same as in all the previous tries.
here's the full log:
$ make
cd firmware && make -f whitewhale.mk
make[1]: Entering directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/whitewhale/src/main.c.o whitewhale/src/main.c
whitewhale/src/main.c: In function 'handler_PollADC':
whitewhale/src/main.c:655:14: warning: passing argument 1 of 'adc_convert' from incompatible pointer type [-Wincompatible-pointer-types]
adc_convert(&adc);
^
In file included from whitewhale/src/main.c:29:0:
mock_hardware/stubs/adc.h:4:6: note: expected 'u16 * {aka short unsigned int *}' but argument is of type 'u16 (*)[4] {aka short unsigned int (*)[4]}'
void adc_convert(u16* dst);
^~~~~~~~~~~
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/whitewhale/libavr32/src/events.c.o whitewhale/libavr32/src/events.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/whitewhale/libavr32/src/timers.c.o whitewhale/libavr32/src/timers.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/whitewhale/libavr32/src/monome.c.o whitewhale/libavr32/src/monome.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/whitewhale/libavr32/src/util.c.o whitewhale/libavr32/src/util.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/mock_hardware/adapter.c.o mock_hardware/adapter.c
mock_hardware/adapter.c: In function 'ftdi_read':
mock_hardware/adapter.c:239:67: warning: passing argument 3 of 'hardware_readSerial_internal' from incompatible pointer type [-Wincompatible-pointer-types]
hardware_readSerial_internal(FTDI_BUS, ¤t_ftdi_message, ¤t_ftdi_message_length);
^
In file included from mock_hardware/adapter.c:2:0:
mock_hardware/mock_hardware.h:32:6: note: expected 'uint32_t * {aka unsigned int *}' but argument is of type 'u8 * {aka unsigned char *}'
void hardware_readSerial_internal(serial_bus_t bus, uint8_t** pbuf, uint32_t* pcount);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iwhitewhale/libavr32/src -Iwhitewhale/libavr32/conf -Iwhitewhale/libavr32/conf/trilogy -c -o ../build/firmware/mock_hardware/mock_hardware.c.o mock_hardware/mock_hardware.c
mock_hardware/mock_hardware.c: In function 'hardware_declareNVRAM':
mock_hardware/mock_hardware.c:285:15: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
nvram_ptr = ptr;
^
mock_hardware/mock_hardware.c: In function 'hardware_declareVRAM':
mock_hardware/mock_hardware.c:302:14: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
vram_ptr = ptr;
^
g++ -o ../build/firmware/whitewhale.dll ../build/firmware/whitewhale/src/main.c.o ../build/firmware/whitewhale/libavr32/src/events.c.o ../build/firmware/whitewhale/libavr32/src/timers.c.o ../build/firmware/whitewhale/libavr32/src/monome.c.o ../build/firmware/whitewhale/libavr32/src/util.c.o ../build/firmware/mock_hardware/adapter.c.o ../build/firmware/mock_hardware/mock_hardware.c.o -shared
make[1]: Leaving directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
cd firmware && make -f meadowphysics.mk
make[1]: Entering directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Imeadowphysics/libavr32/src -Imeadowphysics/libavr32/conf -Imeadowphysics/libavr32/conf/trilogy -c -o ../build/firmware/meadowphysics/src/main.c.o meadowphysics/src/main.c
meadowphysics/src/main.c: In function 'handler_PollADC':
meadowphysics/src/main.c:421:14: warning: passing argument 1 of 'adc_convert' from incompatible pointer type [-Wincompatible-pointer-types]
adc_convert(&adc);
^
In file included from meadowphysics/src/main.c:23:0:
mock_hardware/stubs/adc.h:4:6: note: expected 'u16 * {aka short unsigned int *}' but argument is of type 'u16 (*)[4] {aka short unsigned int (*)[4]}'
void adc_convert(u16* dst);
^~~~~~~~~~~
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Imeadowphysics/libavr32/src -Imeadowphysics/libavr32/conf -Imeadowphysics/libavr32/conf/trilogy -c -o ../build/firmware/meadowphysics/libavr32/src/events.c.o meadowphysics/libavr32/src/events.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Imeadowphysics/libavr32/src -Imeadowphysics/libavr32/conf -Imeadowphysics/libavr32/conf/trilogy -c -o ../build/firmware/meadowphysics/libavr32/src/timers.c.o meadowphysics/libavr32/src/timers.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Imeadowphysics/libavr32/src -Imeadowphysics/libavr32/conf -Imeadowphysics/libavr32/conf/trilogy -c -o ../build/firmware/meadowphysics/libavr32/src/monome.c.o meadowphysics/libavr32/src/monome.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Imeadowphysics/libavr32/src -Imeadowphysics/libavr32/conf -Imeadowphysics/libavr32/conf/trilogy -c -o ../build/firmware/meadowphysics/libavr32/src/util.c.o meadowphysics/libavr32/src/util.c
g++ -o ../build/firmware/meadowphysics.dll ../build/firmware/meadowphysics/src/main.c.o ../build/firmware/meadowphysics/libavr32/src/events.c.o ../build/firmware/meadowphysics/libavr32/src/timers.c.o ../build/firmware/meadowphysics/libavr32/src/monome.c.o ../build/firmware/meadowphysics/libavr32/src/util.c.o ../build/firmware/mock_hardware/adapter.c.o ../build/firmware/mock_hardware/mock_hardware.c.o -shared
make[1]: Leaving directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
cd firmware && make -f earthsea.mk
make[1]: Entering directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/src/main.c.o earthsea/src/main.c
earthsea/src/main.c: In function 'handler_MonomeConnect':
earthsea/src/main.c:837:14: warning: passing argument 1 of 'adc_convert' from incompatible pointer type [-Wincompatible-pointer-types]
adc_convert(&adc);
^
In file included from earthsea/src/main.c:25:0:
mock_hardware/stubs/adc.h:4:6: note: expected 'u16 * {aka short unsigned int *}' but argument is of type 'u16 (*)[4] {aka short unsigned int (*)[4]}'
void adc_convert(u16* dst);
^~~~~~~~~~~
earthsea/src/main.c: In function 'handler_PollADC':
earthsea/src/main.c:871:14: warning: passing argument 1 of 'adc_convert' from incompatible pointer type [-Wincompatible-pointer-types]
adc_convert(&adc);
^
In file included from earthsea/src/main.c:25:0:
mock_hardware/stubs/adc.h:4:6: note: expected 'u16 * {aka short unsigned int *}' but argument is of type 'u16 (*)[4] {aka short unsigned int (*)[4]}'
void adc_convert(u16* dst);
^~~~~~~~~~~
earthsea/src/main.c: In function 'handler_MidiPollADC':
earthsea/src/main.c:2200:14: warning: passing argument 1 of 'adc_convert' from incompatible pointer type [-Wincompatible-pointer-types]
adc_convert(&adc);
^
In file included from earthsea/src/main.c:25:0:
mock_hardware/stubs/adc.h:4:6: note: expected 'u16 * {aka short unsigned int *}' but argument is of type 'u16 (*)[4] {aka short unsigned int (*)[4]}'
void adc_convert(u16* dst);
^~~~~~~~~~~
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/arp.c.o earthsea/libavr32/src/arp.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/euclidean/data.c.o earthsea/libavr32/src/euclidean/data.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/euclidean/euclidean.c.o earthsea/libavr32/src/euclidean/euclidean.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/events.c.o earthsea/libavr32/src/events.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/monome.c.o earthsea/libavr32/src/monome.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/notes.c.o earthsea/libavr32/src/notes.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/random.c.o earthsea/libavr32/src/random.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/timers.c.o earthsea/libavr32/src/timers.c
cc -DNULL=0 -o0 -D__AVR32_UC3B0256__ -fPIC -g -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iearthsea/libavr32/src -Iearthsea/libavr32/src/usb/midi -Iearthsea/libavr32/conf -Iearthsea/libavr32/conf/trilogy -c -o ../build/firmware/earthsea/libavr32/src/util.c.o earthsea/libavr32/src/util.c
g++ -o ../build/firmware/earthsea.dll ../build/firmware/earthsea/src/main.c.o ../build/firmware/earthsea/libavr32/src/arp.c.o ../build/firmware/earthsea/libavr32/src/euclidean/data.c.o ../build/firmware/earthsea/libavr32/src/euclidean/euclidean.c.o ../build/firmware/earthsea/libavr32/src/events.c.o ../build/firmware/earthsea/libavr32/src/monome.c.o ../build/firmware/earthsea/libavr32/src/notes.c.o ../build/firmware/earthsea/libavr32/src/random.c.o ../build/firmware/earthsea/libavr32/src/timers.c.o ../build/firmware/earthsea/libavr32/src/util.c.o ../build/firmware/mock_hardware/adapter.c.o ../build/firmware/mock_hardware/mock_hardware.c.o -shared
make[1]: Leaving directory '/h/devel/vcv/Rack-new/plugins/monome/firmware'
g++ -Wsuggest-override -std=c++11 -o0 -Werror=implicit-function-declaration -Isrc -Isrc/common -Isrc/common/GridConnection -Isrc/virtualgrid -Isrc/whitewhale -Isrc/meadowphysics -Isrc/earthsea -Ilib/base64 -Ilib/oscpack -Ilib/serialosc -DSLUG=monome -fPIC -I../../include -I../../dep/include -DVERSION=0.6.0 -MMD -MP -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/lib/base64/base64.cpp.o lib/base64/base64.cpp
cc1plus.exe: fatal error: build/lib/base64/base64.cpp.d: No such file or directory
compilation terminated.
make: *** [../../compile.mk:62: build/lib/base64/base64.cpp.o] Error 1
also getting the same error on debian9.
from monome-rack.
Ah, you might have out-of-sync submodules. Can you run and paste the output of git submodule status --recursive
and then try doing a git submodule sync && git submodule update --init --recursive
and see if that fixes it?
from monome-rack.
i'm sure i already did that.
did it again.
same result :(
tried again, using the Rack-SDK... same thing.
from monome-rack.
phew finally, after staring at the command line for a while i notice an odd option-flag -o0
and i removed it from the Makefile for another try.
and it builds and loads...
now for some run-tests :)
from monome-rack.
ok. with the rack-sdk i did make dist
and copied the content to my downloaded rack-0.6 installation.
modules load fine and i see the hardware-grid in the menu.
firmwares don't load though.
first thing i noticed in rack's log.txt was that the modules try to load the firmware from a plugin-dir called monome-rack
, which doesn't exit as i renamed the plugin-dir to monome
, matching the slug in the makefile (requirement for 0.6 plugins).
now, instead of renaming the plugin-dir i changed the slug to monome-rack and rebuilt...
still not loading the firmware although the paths match now.
a look at the dist folder shows that it included the firmware
instead of build/firmware
.
copying the .dll files from the build directory to the expected locations also didn't solve it.
from monome-rack.
Great! Iām home again and will have time to look at the Windows build later today. Good catch on the optimization flag. I would try to make it work with the old build process rather than the rack-SDK build first.
from monome-rack.
0.6 branch has been merged to master in #35.
from monome-rack.
Related Issues (20)
- Export teletype screen or virtual grid state as SVG
- Make USB port clickable to "focus" assigned grid to module
- Ansible as Teletype expander ? HOT 5
- Implement "pin" icon, decide final lock/pin UI strategy
- [BUG REPORT] Teletype starting up with blank or glitched screen HOT 13
- [BUG REPORT] Ansible and Meadowphysics crash VCV Rack 2.2.3 in Linux (EndeavourOS) HOT 5
- Make audio thread action queue thread safe
- [BUG REPORT] Crash when connecting grid on M1 ARM HOT 1
- Disable stderr messages from firmware
- (very minor!) unexpected Earthsea *shape* knob behavior HOT 4
- Ansible: 2016 arc not redrawing HOT 5
- Question Ansible-Kria and Virtual Grid HOT 1
- Feature: Writing a VCV Rack module which uses Grids HOT 4
- [BUILD ISSUE] Failure to build with Rack Plugin Toolchain HOT 2
- Support switchable firmware on modules, bundle Teletype 5.0.0 beta
- [BUG REPORT] plugin failed to load HOT 3
- [BUG REPORT] Firmware load fails on UTF-8 paths on Windows HOT 5
- Grid mirror mode
- white whale: crash when switching to CV A page in Curve mode HOT 3
- [BUG REPORT] Unintended Default Faderbank Voltage Range? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monome-rack.