See Good First Issues.
Create an issue with this form.
cd python pytest -v -s .
cd java mvn -T10 clean test
bazel test $(bazel query //...)
cd go/fury go test -v go test -v fury_xlang_test.go
cd rust
cargo test
Run all checks: bash ci/format.sh --all.
docker run --rm -v $(pwd):/github/workspace ghcr.io/korandoru/hawkeye-native:v3 format
cd java # code format mvn spotless:apply # code format check mvn spotless:check mvn checkstyle:check
cd python # install dependencies fro styling pip install black==22.1.0 flake8==3.9.1 flake8-quotes flake8-bugbear # format python code black pyfury
git ls-files -- '*.cc' '*.h' | xargs -P 5 clang-format -i
cd go/fury gofmt -s -w .
cd rust
cargo fmt
Fury supports dump jit generated code into local file for better debug by configuring environment variables:
FURY_CODE_DIR๏ผThe directory for fury to dump generated code. Set to empty by default to skip dump code.ENABLE_FURY_GENERATED_CLASS_UNIQUE_ID: Append an unique id for dynamically generated files by default to avoid serializer collision for different classes with same name. Set this to false to keep serializer name same for multiple execution or AOT codegen.By using those environment variables, we can generate code to source directory and debug the generated code in next run.
cd python python setup.py develop
cython --cplus -a pyfury/_serialization.pyx to produce an annotated HTML file of the source code. Then you can analyze interaction between Python objects and Python's C API.FURY_DEBUG=true python setup.py build_ext --inplace # For linux cygdb build
See the Debugging C++ doc.
Enable core dump on Macos Monterey 12.1:
/usr/libexec/PlistBuddy -c "Add :com.apple.security.get-task-allow bool true" tmp.entitlements codesign -s - -f --entitlements tmp.entitlements /Users/chaokunyang/anaconda3/envs/py3.8/bin/python ulimit -c unlimited
... then, run the code:
python fury_serializer.py ls -al /cores
# Dtrace sudo dtrace -x ustackframes=100 -n 'profile-99 /pid == 73485 && arg1/ { @[ustack()] = count(); } tick-60s { exit(0); }' -o out.stack sudo stackcollapse.pl out.stack > out.folded sudo flamegraph.pl out.folded > out.svg
Fury's website consists of static pages hosted at https://github.com/apache/incubator-fury-site.
All updates about docs under guide and benchmarks will be synced to the site repo automatically.
If you want write a blog, or update other contents about the website, please submit PR to the site repo.