stefansalewski / rust-chess Goto Github PK
View Code? Open in Web Editor NEWPort of salewski-chess from Nim to Rust
License: MIT License
Port of salewski-chess from Nim to Rust
License: MIT License
From
if !(in_check(&g, q[1] as i64, color) || in_check(&g, q[2] as i64, color)) {
kk.di = (q[0] + q[5]) as i8;
s.push(kk);
}
in function tag() it seems that we should test king position for check as well? We should investigate this issue.
The following code for testing repeating positions makes not much sense.
if cup > 5 || hash_res.pop_cnt > 20 || is_a_pawnelsf || el.df != VOID_ID as i8 {
// test dense populated board or deeper plys.
m = abeta(
g,
opp_color(color),
v_depth + v_depth_inc + sdi[el.sf.abs() as usize] + ddi[el.df.abs() as usize],
cup + 1,
-beta,
-alpha,
hash_res_kks_len,
nep_pos,
);
} else {
// deal with repetive positions
let new_state = encode_board(&g, color); // this is the new board state after a piece is moved
if g.history.contains_key(&new_state) && g.history[&new_state] >= 2 {
// this will be the third repetition, so draw can be requested
m.score = 0; // draw
} else {
g.history.insert(new_state, 1);
m = abeta(
g,
opp_color(color),
v_depth
+ v_depth_inc
+ sdi[el.sf.abs() as usize]
+ ddi[el.df.abs() as usize],
cup + 1,
-beta,
-alpha,
hash_res_kks_len,
nep_pos,
);
*g.history.get_mut(&new_state).unwrap() -= 1;
}
}
compiled in debug mode
--
Depth: 1 N_G8-F6 score -8 (0.02 s)
Depth: 2 N_G8-F6 score -4 (0.02 s)
Depth: 3 N_G8-F6 score -19 (0.02 s)
Depth: 4 N_G8-F6 score -5 (0.04 s)
Depth: 5 E7-E6 score -21 (0.36 s)
thread 'main' panicked at src/engine.rs:1990:13:
assertion failed: v_depth_inc + sdi[el.sf.abs() as usize] + ddi[el.df.abs() as usize] < 8
The following code is wrong, likely caused by bad cleanup attempts to save a single line. Function should only return in IF or ELSE branch, but not always (wrong zero default score.)
for i in (depth_0..(MAX_DEPTH + 1) as usize).rev() {
if hash_res.score[i].s != INVALID_SCORE {
// we have the exact score, so return it
if i == depth_0
|| hash_res.score[i].s.abs() < KING_VALUE_DIV_2 as i16
|| hash_res.score[i].s.abs() >= KING_VALUE as i16
{
// use of deeper knowledge in endgame can give wrong moves to mate reports
// or generate repeated moves.
result.score = pmq(hash_res.score[i].s as i64, -cup);
result.src = hash_res.score[i].si as i64; // these details are currently only needed for cup == 0
result.dst = hash_res.score[i].di as i64;
result.promote_to = hash_res.score[i].promote_to as i64;
result.state = hash_res.state;
debug_inc(&mut g.score_hash_succ);
} else if pmq(hash_res.score[i].s as i64, -cup) >= beta {
// at least we can use the score for a beta cutoff
result.score = beta;
}
return result;
}
as i stated in the Issue StefanSalewski/salewski-chess#4 of your "salewski-chess" project (=same engine in the Nim language) i was not able to compile your rust-chess engine on Linux (i'm on Xubuntu 22.04, called "Jammy Jellyfish") .. in one of the comments of this Issue you suggested to take a look at https://users.rust-lang.org/t/gtk4-example-graphics-code-please/109136/3 for a solution : indeed i have the same problem as user Austin .. he says my GTK4 version is 4.6.9 but 4.10 seems required .. so i did the same as he, i removed the option features = ["v4_12"]
from the Cargo.toml
file .. then compiling went well : i get a valid binary called rust-chess
of 474.6 Kb in /target/release
.
at https://gtk-rs.org/gtk4-rs/stable/latest/book/installation_linux.html i found what's needed to compile :
Debian and derivatives: (=also Xubuntu)
sudo apt install libgtk-4-dev build-essential
when i look into my Synaptic package manager, i see my libgtk-4-dev
version 4.6.9+ds-0ubuntu0.22.04.1
, which is also mentioned at https://launchpad.net/ubuntu/+source/gtk4 for Jammy Jellyfish (22.04).
Note: at first i got some errors and texts which suggested things to change and install .. i think i have all of them, but not the environment variable PKG_CONFIG_PATH
(on Linux we can show all environment variables by the command printenv
) : one of the error texts said that i had to set this environment variable to the "parent path" of the file gtk4.pc
, which i found in the folder /usr/lib/x86_64-linux-gnu/pkgconfig/
.. so i could do export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/
(which i tried at first) but this wasn't needed : without this the compiling also went OK : only removing the features option seems needed for me to solve the compile error(s).
[ this is not real Issue, it just gives some info and poses questions about Rust chess programming ]
hi,
i just found Liberty-Chess, see https://github.com/Mathmagician8191/Liberty-Chess , a complete chess application in Rust, with own GUI and even sound .. compiling on Linux went flawless .. it comes with the engine Oxidation (v0.6.2 now) which is UCI about 2200 ELO .. it has good code i guess, and uses a lot of modules, i've never seen that many .. also some specific chess / UCI related stuff .. maybe you'll get inspired or even contact the author for questions ?!
happy programming !
(i might dive into Rust myself, it seems nice..)
~/Compiled/Liberty-Chess-0.6.2$ cargo build --release -p liberty_chess_gui
Updating crates.io index
Updating git repository `https://github.com/Mathmagician8191/array2d`
Downloaded accesskit_winit v0.14.4
Downloaded piper v0.2.1
Downloaded parking_lot_core v0.9.9
Downloaded pico-args v0.5.0
Downloaded ordered-stream v0.2.0
Downloaded png v0.17.13
Downloaded percent-encoding v2.3.1
Downloaded parking v2.2.0
Downloaded ab_glyph_rasterizer v0.1.8
Downloaded accesskit_unix v0.5.2
Downloaded symphonia-utils-xiph v0.5.4
Downloaded waker-fn v1.1.1
Downloaded ab_glyph v0.2.24
Downloaded rctree v0.5.0
Downloaded sha1 v0.10.6
Downloaded simd-adler32 v0.3.7
Downloaded symphonia v0.5.4
Downloaded unicode-bidi-mirroring v0.1.0
Downloaded scoped-tls v1.0.1
Downloaded zvariant_utils v1.0.1
Downloaded xdg-home v1.1.0
Downloaded xcursor v0.3.5
Downloaded wayland-cursor v0.29.5
Downloaded accesskit_consumer v0.15.2
Downloaded accesskit v0.11.2
Downloaded serde_repr v0.1.19
Downloaded roxmltree v0.18.1
Downloaded toml_datetime v0.6.5
Downloaded symphonia-metadata v0.5.4
Downloaded siphasher v0.3.11
Downloaded svgfilters v0.4.0
Downloaded simplecss v0.2.1
Downloaded smithay-clipboard v0.6.6
Downloaded rgb v0.8.37
Downloaded symphonia-format-ogg v0.5.4
Downloaded zvariant_derive v3.15.2
Downloaded web-time v0.2.4
Downloaded wayland-scanner v0.29.5
Downloaded vec_map v0.8.2
Downloaded ahash v0.8.11
Downloaded zbus_names v2.6.1
Downloaded wayland-commons v0.29.5
Downloaded raw-window-handle v0.5.2
Downloaded wayland-sys v0.30.1
Downloaded wayland-sys v0.29.5
Downloaded strict-num v0.1.1
Downloaded svgtypes v0.10.0
Downloaded tracing-attributes v0.1.27
Downloaded unicode-ccc v0.1.2
Downloaded svgtypes v0.9.0
Downloaded socket2 v0.4.10
Downloaded polling v2.8.0
Downloaded xmlparser v0.13.6
Downloaded unicode-vo v0.1.0
Downloaded webbrowser v0.8.15
Downloaded rosvgtree v0.1.0
Downloaded symphonia-codec-vorbis v0.5.4
Downloaded ringbuf v0.3.3
Downloaded tiny-skia-path v0.8.4
Downloaded serde_derive v1.0.197
Downloaded roxmltree v0.19.0
Downloaded unicode-script v0.5.6
Downloaded zbus_macros v3.15.2
Downloaded xml-rs v0.8.20
Downloaded tracing-core v0.1.32
Downloaded slotmap v1.0.7
Downloaded dlib v0.5.2
Downloaded weezl v0.1.8
Downloaded enum-iterator v1.5.0
Downloaded glutin_egl_sys v0.5.1
Downloaded unicode-general-category v0.6.0
Downloaded ron v0.8.1
Downloaded zvariant v3.15.2
Downloaded x11-dl v2.21.0
Downloaded wayland-client v0.29.5
Downloaded glutin-winit v0.3.0
Downloaded url v2.5.0
Downloaded unicode-bidi v0.3.15
Downloaded unicode-normalization v0.1.23
Downloaded wayland-protocols v0.29.5
Downloaded zerocopy v0.7.32
Downloaded zbus v3.15.2
Downloaded atomic-waker v1.1.2
Downloaded ttf-parser v0.20.0
Downloaded x11rb v0.13.0
Downloaded home v0.5.9
Downloaded futures-sink v0.3.30
Downloaded rustix v0.37.27
Downloaded usvg-text-layout v0.29.0
Downloaded resvg v0.29.0
Downloaded winit v0.28.7
Downloaded x11rb-protocol v0.13.0
Downloaded libloading v0.8.3
Downloaded fdeflate v0.3.4
Downloaded event-listener v4.0.3
Downloaded enumn v0.1.13
Downloaded enumflags2 v0.7.9
Downloaded futures-lite v1.13.0
Downloaded crc32fast v1.4.0
Downloaded byteorder v1.5.0
Downloaded async-trait v0.1.80
Downloaded lock_api v0.4.11
Downloaded atspi v0.10.1
Downloaded async-lock v3.3.0
Downloaded async-lock v2.8.0
Downloaded async-io v1.13.0
Downloaded fontdb v0.12.0
Downloaded calloop v0.10.6
Downloaded log v0.4.21
Downloaded event-listener v5.3.0
Downloaded fontconfig-parser v0.5.6
Downloaded getrandom v0.2.14
Downloaded miniz_oxide v0.7.2
Downloaded bytemuck v1.15.0
Downloaded futures-lite v2.3.0
Downloaded arboard v3.3.2
Downloaded egui_glow v0.23.0
Downloaded derivative v2.2.0
Downloaded glutin v0.30.10
Downloaded symphonia-core v0.5.4
Downloaded alsa-sys v0.3.1
Downloaded regex-automata v0.4.6
Downloaded kurbo v0.8.3
Downloaded base64 v0.21.7
Downloaded flate2 v1.0.28
Downloaded mio v0.8.11
Downloaded kira v0.8.7
Downloaded cpal v0.15.3
Downloaded kurbo v0.9.5
Downloaded eframe v0.23.0
Downloaded aho-corasick v1.1.3
Downloaded glow v0.12.3
Downloaded alsa v0.9.0
Downloaded mint v0.5.9
Downloaded imagesize v0.11.0
Downloaded gl_generator v0.14.0
Downloaded fastrand v2.0.2
Downloaded emath v0.23.0
Downloaded downcast-rs v1.2.1
Downloaded data-url v0.2.0
Downloaded async-task v4.7.0
Downloaded async-executor v1.10.0
Downloaded egui-winit v0.23.0
Downloaded usvg v0.29.0
Downloaded rustix v0.38.32
Downloaded regex-syntax v0.8.3
Downloaded form_urlencoded v1.2.1
Downloaded float-cmp v0.9.0
Downloaded fastrand v1.9.0
Downloaded event-listener-strategy v0.4.0
Downloaded ecolor v0.23.0
Downloaded bytemuck_derive v1.6.0
Downloaded concurrent-queue v2.4.0
Downloaded event-listener-strategy v0.5.1
Downloaded event-listener v2.5.3
Downloaded errno v0.3.8
Downloaded enumflags2_derive v0.7.9
Downloaded dasp_sample v0.11.0
Downloaded rustybuzz v0.7.0
Downloaded directories-next v2.0.0
Downloaded blocking v1.5.1
Downloaded egui v0.23.0
Downloaded async-recursion v1.1.0
Downloaded async-fs v1.6.0
Downloaded async-channel v2.2.0
Downloaded tiny-skia v0.8.4
Downloaded regex v1.10.4
Downloaded idna v0.5.0
Downloaded async-broadcast v0.5.1
Downloaded nix v0.25.1
Downloaded ttf-parser v0.18.1
Downloaded atomic-arena v0.1.1
Downloaded async-channel v1.9.0
Downloaded arrayref v0.3.7
Downloaded smithay-client-toolkit v0.16.1
Downloaded glutin_glx_sys v0.4.0
Downloaded instant v0.1.12
Downloaded enum-iterator-derive v1.3.0
Downloaded tracing v0.1.40
Downloaded color_quant v1.1.0
Downloaded owned_ttf_parser v0.20.0
Downloaded sctk-adwaita v0.5.4
Downloaded atspi-macros v0.2.0
Downloaded glam v0.25.0
Downloaded gif v0.12.0
Downloaded khronos_api v3.1.0
Downloaded jpeg-decoder v0.3.1
Downloaded epaint v0.23.0
Downloaded encoding_rs v0.8.34
Downloaded linux-raw-sys v0.4.13
Downloaded image v0.24.9
Downloaded 191 crates (25.9 MB) in 3.60s (largest was `image` at 9.3 MB)
Compiling proc-macro2 v1.0.79
Compiling unicode-ident v1.0.12
Compiling cfg-if v1.0.0
Compiling libc v0.2.153
Compiling autocfg v1.2.0
Compiling bitflags v1.3.2
Compiling log v0.4.21
Compiling pkg-config v0.3.30
Compiling version_check v0.9.4
Compiling serde v1.0.197
Compiling quote v1.0.36
Compiling xml-rs v0.8.20
Compiling syn v2.0.58
Compiling once_cell v1.19.0
Compiling smallvec v1.13.2
Compiling lazy_static v1.4.0
Compiling crossbeam-utils v0.8.19
Compiling arrayvec v0.7.4
Compiling pin-project-lite v0.2.14
Compiling memoffset v0.6.5
Compiling wayland-scanner v0.29.5
Compiling futures-core v0.3.30
Compiling parking v2.2.0
Compiling concurrent-queue v2.4.0
Compiling libloading v0.8.3
Compiling crc32fast v1.4.0
Compiling dlib v0.5.2
Compiling simd-adler32 v0.3.7
Compiling syn v1.0.109
Compiling wayland-sys v0.29.5
Compiling adler v1.0.2
Compiling miniz_oxide v0.7.2
Compiling getrandom v0.2.14
Compiling hashbrown v0.14.3
Compiling float-cmp v0.9.0
Compiling equivalent v1.0.1
Compiling typenum v1.17.0
Compiling indexmap v2.2.6
Compiling flate2 v1.0.28
Compiling rand_core v0.6.4
Compiling wayland-client v0.29.5
Compiling nix v0.24.3
Compiling generic-array v0.14.7
Compiling lock_api v0.4.11
Compiling bytemuck_derive v1.6.0
Compiling serde_derive v1.0.197
Compiling winnow v0.5.40
Compiling bytemuck v1.15.0
Compiling parking_lot_core v0.9.9
Compiling khronos_api v3.1.0
Compiling thiserror v1.0.58
Compiling cfg_aliases v0.1.1
Compiling toml_datetime v0.6.5
Compiling ppv-lite86 v0.2.17
Compiling futures-io v0.3.30
Compiling wayland-commons v0.29.5
Compiling rand_chacha v0.3.1
Compiling toml_edit v0.19.15
Compiling thiserror-impl v1.0.58
Compiling strict-num v0.1.1
Compiling event-listener v4.0.3
Compiling memmap2 v0.5.10
Compiling slotmap v1.0.7
Compiling slab v0.4.9
Compiling ttf-parser v0.20.0
Compiling downcast-rs v1.2.1
Compiling scoped-tls v1.0.1
Compiling scopeguard v1.2.0
Compiling event-listener v2.5.3
Compiling bitflags v2.5.0
Compiling proc-macro-crate v1.3.1
Compiling event-listener-strategy v0.4.0
Compiling rand v0.8.5
Compiling owned_ttf_parser v0.20.0
Compiling zvariant_utils v1.0.1
Compiling wayland-protocols v0.29.5
Compiling fdeflate v0.3.4
Compiling event-listener v5.3.0
Compiling memchr v2.7.2
Compiling io-lifetimes v1.0.11
Compiling ab_glyph_rasterizer v0.1.8
Compiling fastrand v2.0.2
Compiling ab_glyph v0.2.24
Compiling gl_generator v0.14.0
Compiling aho-corasick v1.1.3
Compiling event-listener-strategy v0.5.1
Compiling png v0.17.13
Compiling parking_lot v0.12.1
Compiling async-lock v3.3.0
Compiling enumflags2_derive v0.7.9
Compiling tracing-attributes v0.1.27
Compiling nix v0.25.1
Compiling futures-lite v2.3.0
Compiling tracing-core v0.1.32
Compiling smithay-client-toolkit v0.16.1
Compiling x11-dl v2.21.0
Compiling memoffset v0.7.1
Compiling polling v2.8.0
Compiling rustix v0.37.27
Compiling fastrand v1.9.0
Compiling regex-syntax v0.8.3
Compiling atomic-waker v1.1.2
Compiling xcursor v0.3.5
Compiling async-task v4.7.0
Compiling arrayref v0.3.7
Compiling vec_map v0.8.2
Compiling waker-fn v1.1.1
Compiling byteorder v1.5.0
Compiling futures-lite v1.13.0
Compiling calloop v0.10.6
Compiling regex-automata v0.4.6
Compiling tiny-skia-path v0.8.4
Compiling wayland-cursor v0.29.5
Compiling piper v0.2.1
Compiling tracing v0.1.40
Compiling enumflags2 v0.7.9
Compiling async-channel v2.2.0
Compiling zvariant_derive v3.15.2
Compiling block-buffer v0.10.4
Compiling crypto-common v0.1.6
Compiling async-lock v2.8.0
Compiling enumn v0.1.13
Compiling async-io v1.13.0
Compiling async-fs v1.6.0
Compiling base64 v0.21.7
Compiling linux-raw-sys v0.3.8
Compiling static_assertions v1.1.0
Compiling percent-encoding v2.3.1
Compiling zvariant v3.15.2
Compiling accesskit v0.11.2
Compiling digest v0.10.7
Compiling blocking v1.5.1
Compiling regex v1.10.4
Compiling tiny-skia v0.8.4
Compiling symphonia-core v0.5.4
Compiling socket2 v0.4.10
Compiling ahash v0.8.11
Compiling encoding_rs v0.8.34
Compiling pin-utils v0.1.0
Compiling tinyvec_macros v0.1.1
Compiling cpufeatures v0.2.12
Compiling futures-sink v0.3.30
Compiling futures-task v0.3.30
Compiling unicode-bidi v0.3.15
Compiling futures-util v0.3.30
Compiling sha1 v0.10.6
Compiling tinyvec v1.6.0
Compiling symphonia-metadata v0.5.4
Compiling nix v0.26.4
Compiling zbus_macros v3.15.2
Compiling zbus_names v2.6.1
Compiling async-executor v1.10.0
Compiling async-broadcast v0.5.1
Compiling derivative v2.2.0
Compiling winit v0.28.7
Compiling async-recursion v1.1.0
Compiling serde_repr v0.1.19
Compiling async-trait v0.1.80
Compiling ordered-stream v0.2.0
Compiling xdg-home v1.1.0
Compiling alsa-sys v0.3.1
Compiling rustix v0.38.32
Compiling zerocopy v0.7.32
Compiling hex v0.4.3
Compiling siphasher v0.3.11
Compiling raw-window-handle v0.5.2
Compiling symphonia-utils-xiph v0.5.4
Compiling unicode-normalization v0.1.23
Compiling sctk-adwaita v0.5.4
Compiling glutin_glx_sys v0.4.0
Compiling zbus v3.15.2
Compiling glutin_egl_sys v0.5.1
Compiling ecolor v0.23.0
Compiling emath v0.23.0
Compiling atspi-macros v0.2.0
Compiling kurbo v0.8.3
Compiling mio v0.8.11
Compiling wayland-sys v0.30.1
Compiling instant v0.1.12
Compiling nohash-hasher v0.2.0
Compiling linux-raw-sys v0.4.13
Compiling xmlparser v0.13.6
Compiling unicode-general-category v0.6.0
Compiling roxmltree v0.18.1
Compiling epaint v0.23.0
Compiling atspi v0.10.1
Compiling svgtypes v0.9.0
Compiling idna v0.5.0
Compiling accesskit_consumer v0.15.2
Compiling ron v0.8.1
Compiling form_urlencoded v1.2.1
Compiling async-channel v1.9.0
Compiling glutin v0.30.10
Compiling enum-iterator-derive v1.3.0
Compiling kurbo v0.9.5
Compiling num-traits v0.2.18
Compiling simplecss v0.2.1
Compiling roxmltree v0.19.0
Compiling color_quant v1.1.0
Compiling ttf-parser v0.18.1
Compiling x11rb-protocol v0.13.0
Compiling cpal v0.15.3
Compiling x11rb v0.13.0
Compiling fontconfig-parser v0.5.6
Compiling rosvgtree v0.1.0
Compiling enum-iterator v1.5.0
Compiling accesskit_unix v0.5.2
Compiling url v2.5.0
Compiling egui v0.23.0
Compiling alsa v0.9.0
Compiling symphonia-format-ogg v0.5.4
Compiling symphonia-codec-vorbis v0.5.4
Compiling glutin-winit v0.3.0
Compiling libloading v0.7.4
Compiling mint v0.5.9
Compiling unicode-script v0.5.6
Compiling unicode-ccc v0.1.2
Compiling dasp_sample v0.11.0
Compiling rctree v0.5.0
Compiling data-url v0.2.0
Compiling home v0.5.9
Compiling unicode-bidi-mirroring v0.1.0
Compiling imagesize v0.11.0
Compiling array2d v0.2.0 (https://github.com/Mathmagician8191/array2d?branch=mutable_iteration#91233b56)
Compiling usvg v0.29.0
Compiling liberty_chess v0.17.1 (/home/roelof/Compiled/Liberty-Chess-0.6.2/liberty_chess)
Compiling rustybuzz v0.7.0
Compiling webbrowser v0.8.15
Compiling glam v0.25.0
Compiling symphonia v0.5.4
Compiling accesskit_winit v0.14.4
Compiling fontdb v0.12.0
Compiling arboard v3.3.2
Compiling smithay-clipboard v0.6.6
Compiling rgb v0.8.37
Compiling ringbuf v0.3.3
Compiling dirs-sys-next v0.1.2
Compiling atomic-arena v0.1.1
Compiling unicode-vo v0.1.0
Compiling weezl v0.1.8
Compiling glow v0.12.3
Compiling web-time v0.2.4
Compiling egui-winit v0.23.0
Compiling gif v0.12.0
Compiling usvg-text-layout v0.29.0
Compiling egui_glow v0.23.0
Compiling kira v0.8.7
Compiling directories-next v2.0.0
Compiling svgfilters v0.4.0
Compiling image v0.24.9
Compiling ulci v0.4.2 (/home/roelof/Compiled/Liberty-Chess-0.6.2/ulci)
Compiling svgtypes v0.10.0
Compiling pico-args v0.5.0
Compiling jpeg-decoder v0.3.1
Compiling eframe v0.23.0
Compiling oxidation v0.6.2 (/home/roelof/Compiled/Liberty-Chess-0.6.2/oxidation)
Compiling resvg v0.29.0
Compiling sound v0.6.0 (/home/roelof/Compiled/Liberty-Chess-0.6.2/sound)
Compiling liberty_chess_gui v0.20.1 (/home/roelof/Compiled/Liberty-Chess-0.6.2/liberty_chess_gui)
Finished release [optimized] target(s) in 10m 01s
Of course it should be
collector[bpos..(bpos + 8)].copy_from_slice(&buf.to_le_bytes()[0..8]);
in both cases. Because buf is 8 byte in size, not 4 :-)
That error lead to errors and sometimes gave crashes, as movelist matched not the board content. We should fix this issue soon.
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.