tj90241 / n64chain Goto Github PK
View Code? Open in Web Editor NEWA (free) open-source N64 development toolchain.
License: GNU Lesser General Public License v3.0
A (free) open-source N64 development toolchain.
License: GNU Lesser General Public License v3.0
Occurs when compiling the LibN64 folder. not sure what this could be. saw it was asked a long while ago by another fellow but it got no answer. May try some tinkering with the asm.
Thanks!
Hi all!
I have a problem with n64chain specific libn64 compiling from Ubuntu 18.04.
The libn64/header.bin is present (this is copied from libdragon header file).
Compilation tools is successfully from tools/build-posix64-toolchain.sh
Libn64 compiling error logs:
cd libn64
make
Compiling: libn64/io/init.c
Compiling: libn64/io/filesystem.c
Compiling: libn64/io/pi_thread.c
Compiling: libn64/io/si_thread.c
Compiling: libn64/os/fbtext.c
Compiling: libn64/os/main.c
os/main.c: In function 'libn64_main':
os/main.c:25:47: warning: unused parameter 'bss_end' [-Wunused-parameter]
void libn64_main(uint32_t kernel_sp, uint32_t bss_end) {
Compiling: libn64/os/mm.c
Compiling: libn64/os/panic.c
Compiling: libn64/os/thread.c
Compiling: libn64/os/time.c
Compiling: libn64/rcp/vi.c
Compiling: libn64/sp/init.c
Compiling: libn64/sp/sp_thread.c
Assembling: libn64/os/asm/boot.s
Assembling: libn64/os/asm/context.s
Assembling: libn64/os/asm/exception.s
Assembling: libn64/os/asm/idle_thread.s
Assembling: libn64/os/asm/message.s
Assembling: libn64/os/asm/syscall.s
Assembling: /ucodes/init.o
Makefile:87: recipe for target 'ucodes/init.o' failed
make: *** [ucodes/init.o] Segmentation fault
Thank you very much
I'm trying to build the sample code in the helloworld directory, but I'm getting this error:
athorlton@linux-46if:~/hacks/n64/git/n64chain/helloworld> make
Building: helloworld/helloworld.elf
Building: helloworld/helloworld.z64
fopen: No such file or directory
Makefile:68: recipe for target 'helloworld.z64' failed
make: *** [helloworld.z64] Error 1
It looks like the error is coming from checksum
:
Makefile:
67 $(ROM_NAME).z64: $(ROM_NAME).elf
68 @echo $(call FIXPATH,"Building: $(ROM_NAME)/$@")
69 @$(OBJCOPY) -O binary $< $@
70 @$(CHECKSUM) $(call FIXPATH,../libn64/header.bin) $@
checksum.c:
127 // Open header, read it into memory, close.
128 if ((buffer = calloc(min_sz, 1)) == NULL) {
129 perror("calloc");
130
131 return EXIT_FAILURE;
132 }
133
134 if ((f = fopen(argv[1], "rb")) == NULL) {
135 perror("fopen");
136 free(buffer);
137
138 return EXIT_FAILURE;
139 }
From what I can tell, it's because the header.bin
file isn't in libn64
. I poked around, and didn't see a file like that anywhere, and don't see any code that looks like it's supposed to construct it.
Am I missing something or has that file just been left out?
I'm having an issue where the sp register gets a starting value of 0x80000000 then when a function gets called it subtracts 0x8 from that and tries to write the value, this fires the TLB Exception Handler. I had this problem with the included HelloWorld running on Cen64 and MAME and Console.
There might be other places or things going on but here is possibly a piece of the problem
n64chain/libn64/os/asm/syscall.s
Line 126 in 4c09848
Hey,
Been trying to get everything building for a while now. I've worked through a number of issues and am now stuck unable to configure libiberty.
My setup:
Output of build-win64-toolchain.sh
--2019-06-09 12:16:46-- ftp://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.bz2
=> ‘tarballs/binutils-2.30.tar.bz2’
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /gnu/binutils ... done.
==> SIZE binutils-2.30.tar.bz2 ... 29541188
==> PASV ... done. ==> RETR binutils-2.30.tar.bz2 ... done.
Length: 29541188 (28M) (unauthoritative)
binutils-2.30.tar.bz2 100%[==========================================================>] 28.17M 1.81MB/s in 9.1s
2019-06-09 12:16:57 (3.08 MB/s) - ‘tarballs/binutils-2.30.tar.bz2’ saved [29541188]
/mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools/binutils-build /mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking target system type... mips64-unknown-elf
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for x86_64-w64-mingw32-gcc... no
checking for gcc... gcc
configure: WARNING: using cross tools not prefixed with host triplet
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for x86_64-w64-mingw32-g++... no
checking for x86_64-w64-mingw32-c++... no
checking for x86_64-w64-mingw32-gpp... no
checking for x86_64-w64-mingw32-aCC... no
checking for x86_64-w64-mingw32-CC... no
checking for x86_64-w64-mingw32-cxx... no
checking for x86_64-w64-mingw32-cc++... no
checking for x86_64-w64-mingw32-cl.exe... no
checking for x86_64-w64-mingw32-FCC... no
checking for x86_64-w64-mingw32-KCC... no
checking for x86_64-w64-mingw32-RCC... no
checking for x86_64-w64-mingw32-xlC_r... no
checking for x86_64-w64-mingw32-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for x86_64-w64-mingw32-gnatbind... no
checking for gnatbind... no
checking for x86_64-w64-mingw32-gnatmake... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for isl 0.15 or later... no
required isl version is 0.15 or later
*** This configuration is not supported in the following subdirectories:
gprof
(Any other directories should still work fine.)
checking for default BUILD_CONFIG...
checking for --enable-vtable-verify... no
checking for bison... no
checking for byacc... no
checking for yacc... no
checking for bison... no
checking for gm4... no
checking for gnum4... no
checking for m4... m4
checking for flex... flex
checking for flex... flex
checking for makeinfo... makeinfo
checking for expect... no
checking for runtest... no
checking for x86_64-w64-mingw32-ar... no
checking for x86_64-w64-mingw32-as... no
checking for x86_64-w64-mingw32-dlltool... no
checking for x86_64-w64-mingw32-ld... no
checking for x86_64-w64-mingw32-lipo... no
checking for x86_64-w64-mingw32-nm... no
checking for x86_64-w64-mingw32-ranlib... no
checking for x86_64-w64-mingw32-strip... no
checking for x86_64-w64-mingw32-windres... no
checking for x86_64-w64-mingw32-windmc... no
checking for x86_64-w64-mingw32-objcopy... no
checking for x86_64-w64-mingw32-objdump... no
checking for x86_64-w64-mingw32-readelf... no
checking for mips64-elf-cc... no
checking for mips64-elf-gcc... no
checking for mips64-elf-c++... no
checking for mips64-elf-g++... no
checking for mips64-elf-cxx... no
checking for mips64-elf-gxx... no
checking for mips64-elf-gcc... no
checking for mips64-elf-gfortran... no
checking for mips64-elf-gccgo... no
checking for mips64-elf-ar... no
checking for mips64-elf-as... no
checking for mips64-elf-dlltool... no
checking for mips64-elf-ld... no
checking for mips64-elf-lipo... no
checking for mips64-elf-nm... no
checking for mips64-elf-objcopy... no
checking for mips64-elf-objdump... no
checking for mips64-elf-ranlib... no
checking for mips64-elf-readelf... no
checking for mips64-elf-strip... no
checking for mips64-elf-windres... no
checking for mips64-elf-windmc... no
checking where to find the target ar... pre-installed
checking where to find the target as... pre-installed
checking where to find the target cc... pre-installed
checking where to find the target c++... pre-installed
checking where to find the target c++ for libstdc++... pre-installed
checking where to find the target dlltool... pre-installed
checking where to find the target gcc... pre-installed
checking where to find the target gfortran... pre-installed
checking where to find the target gccgo... pre-installed
checking where to find the target ld... pre-installed
checking where to find the target lipo... pre-installed
checking where to find the target nm... pre-installed
checking where to find the target objcopy... pre-installed
checking where to find the target objdump... pre-installed
checking where to find the target ranlib... pre-installed
checking where to find the target readelf... pre-installed
checking where to find the target strip... pre-installed
checking where to find the target windres... pre-installed
checking where to find the target windmc... pre-installed
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
/mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools
/mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools/binutils-build /mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools
make[1]: Entering directory '/mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools/binutils-build'
mkdir -p -- ./libiberty
Configuring in ./libiberty
configure: creating cache ./config.cache
checking whether to enable maintainer-specific portions of Makefiles... no
checking for makeinfo... makeinfo --split-size=5000000
checking for perl... perl
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking for x86_64-w64-mingw32-ar... x86_64-w64-mingw32-ar
checking for x86_64-w64-mingw32-ranlib... true
checking whether to install libiberty headers and static library... no
configure: target_header_dir =
checking for x86_64-w64-mingw32-gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether gcc supports -W... yes
checking whether gcc supports -Wall... yes
checking whether gcc supports -Wwrite-strings... yes
checking whether gcc supports -Wc++-compat... yes
checking whether gcc supports -Wstrict-prototypes... yes
checking whether gcc supports -Wshadow=local... yes
checking whether gcc supports -pedantic ... yes
checking whether gcc and cc understand -c and -o together... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking whether byte ordering is bigendian... no
checking for a BSD-compatible install... /usr/bin/install -c
checking for sys/file.h... yes
checking for sys/param.h... yes
checking for limits.h... yes
checking for stdlib.h... (cached) yes
checking for malloc.h... yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for strings.h... (cached) yes
checking for sys/time.h... yes
checking for time.h... yes
checking for sys/resource.h... yes
checking for sys/stat.h... (cached) yes
checking for sys/mman.h... yes
checking for fcntl.h... yes
checking for alloca.h... yes
checking for sys/pstat.h... no
checking for sys/sysmp.h... no
checking for sys/sysinfo.h... yes
checking for machine/hal_sysinfo.h... no
checking for sys/table.h... no
checking for sys/sysctl.h... yes
checking for sys/systemcfg.h... no
checking for stdint.h... (cached) yes
checking for stdio_ext.h... yes
checking for process.h... no
checking for sys/prctl.h... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether errno must be declared... no
checking size of int... 4
checking size of long... 8
checking size of size_t... 8
checking for long long... yes
checking size of long long... 8
checking for a 64-bit type... uint64_t
checking for intptr_t... yes
checking for uintptr_t... yes
checking for ssize_t... yes
checking for pid_t... yes
checking for library containing strerror... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
Makefile:7638: recipe for target 'configure-libiberty' failed
make[1]: *** [configure-libiberty] Error 1
make[1]: Leaving directory '/mnt/c/Users/jared/OneDrive/N64/june8/n64chain-master/tools/binutils-build'
Makefile:856: recipe for target 'all' failed
make: *** [all] Error 2
Any help here would be greatly appreciated. Thanks.
plugin needed to handle lto object
i downloaded the tools folder and i found the plugin there
is there anything more i am meant to do or recompile to enable it
...
checking whether to avoid linking multiple front-ends at once... no
Links are now set up to build a cross-compiler
from x86_64-pc-linux-gnu to mips64-unknown-elf.
checking for exported symbols... objdump: conftest.exe: not a dynamic object
yes
checking for -rdynamic... objdump: conftest.exe: not a dynamic object
no
checking for library containing dlopen... (cached) none required
checking for -fPIC -shared... no
configure: error:
Building GCC with plugin support requires a host that supports
-fPIC, -shared, -ldl and -rdynamic.
make: *** [Makefile:4323: configure-gcc] Error 1
I'm attempting to compile the N64 chain under cygwin, however I'm running into the above error.
After spending some time searching online I was not able to find similar problems and I'm not sure how to fix the issue.
Did some other steps go wrong, or is GCC not getting configured correctly?
I am using the version on releases from https://github.com/tj90241/n64chain/releases/tag/9.1.0 , while I have managed to get libn64 and rdpdemo/helloworld to compile, neither seem to work properly, with helloworld.z64 just giving a black screen and rdpdemo.z64 giving a error.
If extra details are needed, i am using libdragon's header.bin for libn64 (as it would not compile without the file)
E:\n64chain>make -C rdpdemo make: Entering directory 'E:/n64chain/rdpdemo' "Building: rdpdemo\rdpdemo.elf" "Building: rdpdemo\rdpdemo.z64" make: Leaving directory 'E:/n64chain/rdpdemo'
and I am running it as
cen64-windows-x86_64.exe -multithread pifdata.bin "E:\n64chain\rdpdemo\rdpdemo.z64"
When doing certain built-in operations, like casting between float and long long, the compiler will emit calls to helper functions from libgcc (such as __floatdisf). For example, in the otherwise completely unmodified helloworld, I added:
volatile long long test; //Volatile to make sure it doesn't get removed by optimizer
volatile float test2;
test2 = (float) test;
Which won't link as a reference to __floatdisf
is generated to handle the cast, and that function is undefined.
It looks like libgcc was never built during the cross compiler make. That library is a little different than the rest of the standard C ones as it has the functions the compiler will emit automatically and is generally required for all platforms.
Everything works fine and compiles perfectly, however when I run the ROM in Cen64 it returns a segmentation fault immediately then closes, and when I run the ROM on debug-n64 it says the ROM is far too small to be a ROM then returns. Does anything spring to mind what this could be?
When doing make
in i.e /helloworld, it fails with;
...
Building: helloworld/helloworld.elf
Building: helloworld/helloworld.z64
fopen: No such file or directory
Makefile:67: recipe for target 'helloworld.z64' failed
make: *** [helloworld.z64] Error 1
The image helloworld.z64 is generated but I have not checked if it is running or not yet.
Hello 👋,
Just found this project today—looks promising!
I'm opening (and closing) this issue in order to share a particular hiccup I had when attempting to build on macOS Mojave—perhaps it will help others.
I was getting several errors in graphite.h
related to missing isl
symbols (isl_id_free
, isl_id_alloc
, et. al.). This, despite having all the prerequisite dependencies installed via brew install
, per the README
.
Eventually, when looking at the Homebrew formula for gcc
, I discovered that graphite.h
needs to be patched. The GNU GCC bug-tracker has more details, along with the exact fix, here.
diff --git a/gcc/graphite.h b/gcc/graphite.h
index 4e0e58c..be0a22b 100644
--- a/gcc/graphite.h
+++ b/gcc/graphite.h
@@ -37,6 +37,8 @@ along with GCC; see the file COPYING3. If not see
#include <isl/schedule.h>
#include <isl/ast_build.h>
#include <isl/schedule_node.h>
+#include <isl/id.h>
+#include <isl/space.h>
typedef struct poly_dr *poly_dr_p;
I apologize in advance if this wasn't the correct forum to highlight this, but seeing as gcc
is essential to the toolchain, I wanted to document it for future reference.
well i managed to the hello world to compile... but its buggy on cen64 and gopher64 (trash after the message)
well i was hoping this toolchain would be the simplest possible thing, to be easy to work on most emulators... but what looks like is almost the opposite of that... i know N64 is kinda weird in that regard, but... let me check some information i got
that this toolchain uses 64bit mode in N64 instead of 32bit mode like even the official did... and that it requires TLB usage instead of being a simple direct mapped FLAT addressing
also ok... it does not include the header.bin but it does not have talks about expetances about the address there... so for i only got it working with the libdragon one.... i guess the other boots to different places....
and last.... why even the hello world, does already use a filesystem, instead of a simple hello world... or a simple framebuffer random pixels?
Hey, when running build-posix64-toolchain.sh
I get the following output:
~/packs/n64chain/rspasm ~/packs/n64chain/tools
Cleaning rspasm...
Generating: rspasm/parser.c
Generating: rspasm/lexer.c
Compiling: rspasm/emitter.c
Compiling: rspasm/identifiers.c
Compiling: rspasm/lexer.c
Compiling: rspasm/main.c
Compiling: rspasm/parser.c
Compiling: rspasm/symbols.c
Linking: rspasm/rspasm
/usr/bin/ld: lexer.o:(.bss+0x0): multiple definition of `opcode_t'; emitter.o:(.bss+0x0): first defined here
/usr/bin/ld: main.o:(.bss+0x0): multiple definition of `opcode_t'; emitter.o:(.bss+0x0): first defined here
/usr/bin/ld: parser.o:(.bss+0x0): multiple definition of `opcode_t'; emitter.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:42: rspasm] Error 1
I couldn't find any reason this is happening, what's going on?
EDIT: this was fixed by wisk's PR.
Please can a readme for the build dependencies be stated (e.g. apt-get install...) as currently the build fails on a clean ubuntu machine (win64 but possibly Linux also). I am attempting to make a travis CI script to automate the builds so that there is a common download location for Altra64 (and others) https://github.com/n64-tools
the actual error I am getting is "error: C compiler cannot create executables"
Hi
I'm trying to build the n64chain using build-win64-toolchain.sh
inside the tools folder, but I make errors saying it cannot find x86_64-w64-mingw32-ar.
I'm using MSYS2 and installed mingw's gcc with pacman -S mingw-w64-x86_64-toolchain
.
I don't know if this helps, but here is the output.
$ ./build-win64-toolchain.sh
~/N64_TOOLCHAIN/binutils-build ~/N64_TOOLCHAIN
make[1]: Entering directory '/home/Utilizador/N64_TOOLCHAIN/binutils-build'
make[2]: Entering directory '/home/Utilizador/N64_TOOLCHAIN/binutils-build/libiberty'
rm -f ./libiberty.a pic/./libiberty.a noasan/./libiberty.a
x86_64-w64-mingw32-ar rc ./libiberty.a \
./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./d-demangle.o ./dwarfnames.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filedescriptor.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-win32.o ./vprintf-support.o ./rust-demangle.o ./safe-ctype.o ./simple-object.o ./simple-object-coff.o ./simple-object-elf.o ./simple-object-mach-o.o ./simple-object-xcoff.o ./sort.o ./spaces.o ./splay-tree.o ./stack-limit.o ./strerror.o ./strsignal.o ./timeval-utils.o ./unlink-if-ordinary.o ./xasprintf.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o ./xvasprintf.o ./bcmp.o ./bcopy.o ./bzero.o ./ffs.o ./index.o ./insque.o ./memmem.o ./mkstemps.o ./random.o ./rindex.o ./setenv.o ./sigsetmask.o ./stpcpy.o ./stpncpy.o ./strndup.o ./strverscmp.o ./waitpid.o ./setproctitle.o ./vfork.o
make[2]: x86_64-w64-mingw32-ar: No such file or directory
make[2]: *** [Makefile:251: libiberty.a] Error 127
make[2]: Leaving directory '/home/Utilizador/N64_TOOLCHAIN/binutils-build/libiberty'
make[1]: *** [Makefile:7744: all-libiberty] Error 2
make[1]: Leaving directory '/home/Utilizador/N64_TOOLCHAIN/binutils-build'
make: *** [Makefile:860: all] Error 2
The following line fails on MAME because they have not implemented any behavior involving bit 0x08 in the PI Status Register.
Line 102 in 1454d17
By commenting this line I was able to successfully run libn64 generated roms. Commenting this line changes the condition to wait until the PI status register is zero. It may not perform as well but it works safely.
Please consider a compatible change. Thanks.
I've downloaded the release version 2402c5e. The build fails with the following errors:
gcc -g -O2 -Wl,--export-dynamic -o make ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o guile.o implicit.o job.o load.o loadapi.o main.o misc.o posixos.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-stub.o glob/libglob.a
/usr/bin/ld: glob/libglob.a(glob.o): in function `glob_in_dir':
/home/mechmk1/Downloads/tools/make-build/glob/../../make-source/glob/glob.c:1269:(.text+0x803): undefined reference to `__stat'
/usr/bin/ld: glob/libglob.a(glob.o): in function `glob':
/home/mechmk1/Downloads/tools/make-build/glob/../../make-source/glob/glob.c:1036:(.text+0xe37): undefined reference to `__stat'
/usr/bin/ld: /home/mechmk1/Downloads/tools/make-build/glob/../../make-source/glob/glob.c:814:(.text+0x14e6): undefined reference to `__stat'
/usr/bin/ld: /home/mechmk1/Downloads/tools/make-build/glob/../../make-source/glob/glob.c:960:(.text+0x17f2): undefined reference to `__stat'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:656: make] Error 1
make[2]: Leaving directory '/home/mechmk1/Downloads/tools/make-build'
make[1]: *** [Makefile:798: all-recursive] Error 1
make[1]: Leaving directory '/home/mechmk1/Downloads/tools/make-build'
make: *** [Makefile:534: all] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.