Full Code of vlang/v for AI

master cdfc0bba9081 cached
10542 files
52.7 MB
4.6M tokens
7476 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (18,272K chars total). Download the full file to get everything.
Repository: vlang/v
Branch: master
Commit: cdfc0bba9081
Files: 10542
Total size: 52.7 MB

Directory structure:
gitextract_hyl3qslc/

├── .editorconfig
├── .git/
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks/
│   │   ├── applypatch-msg.sample
│   │   ├── commit-msg.sample
│   │   ├── fsmonitor-watchman.sample
│   │   ├── post-update.sample
│   │   ├── pre-applypatch.sample
│   │   ├── pre-commit.sample
│   │   ├── pre-merge-commit.sample
│   │   ├── pre-push.sample
│   │   ├── pre-rebase.sample
│   │   ├── pre-receive.sample
│   │   ├── prepare-commit-msg.sample
│   │   ├── push-to-checkout.sample
│   │   ├── sendemail-validate.sample
│   │   └── update.sample
│   ├── index
│   ├── info/
│   │   └── exclude
│   ├── logs/
│   │   ├── HEAD
│   │   └── refs/
│   │       ├── heads/
│   │       │   └── master
│   │       └── remotes/
│   │           └── origin/
│   │               └── HEAD
│   ├── objects/
│   │   └── pack/
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.idx
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.pack
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.promisor
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.rev
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.idx
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.pack
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.promisor
│   │       └── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.rev
│   ├── packed-refs
│   ├── refs/
│   │   ├── heads/
│   │   │   └── master
│   │   └── remotes/
│   │       └── origin/
│   │           └── HEAD
│   └── shallow
├── .gitattributes
├── .github/
│   ├── .prettierrc
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── config.yml
│   │   ├── documentation.yml
│   │   └── feature-request.yml
│   ├── PULL_REQUEST_TEMPLATE
│   ├── actions/
│   │   └── cache-apt-packages-action/
│   │       └── action.yml
│   ├── dependabot.yml
│   ├── problem-matchers/
│   │   ├── register_all.vsh
│   │   └── v.json
│   └── workflows/
│       ├── Dockerfile.ci_alpine_local
│       ├── add-voting-info.yml
│       ├── alpine.build.sh
│       ├── alpine.test.sh
│       ├── android_cross_compile.vsh
│       ├── benchmark_footprint_json_decode.yml
│       ├── benchmark_footprint_json_encode.yml
│       ├── bootstrapping_ci.yml
│       ├── build_on_ubuntu_25_ci.yml
│       ├── build_vinix_locally.sh
│       ├── c2v_ci.yml
│       ├── compare_pr_to_master.v
│       ├── compile_discordv.sh
│       ├── compile_herolib.sh
│       ├── compile_shaders_in_examples.sh
│       ├── compile_v_with_vtcc.sh
│       ├── compile_vlang_gui_examples.sh
│       ├── cross_ci.yml
│       ├── debug.yml
│       ├── disable_azure_mirror.sh
│       ├── docker_ci.yml
│       ├── docs_ci.yml
│       ├── download_full_toml_test_suites.sh
│       ├── find_openssl.bat
│       ├── freebsd_ci.yml
│       ├── gen_vc_ci.yml
│       ├── gg_regressions_ci.yml
│       ├── gh_restart_failed.v
│       ├── hub_docker_ci.yml
│       ├── linux_ci.yml
│       ├── macos_ci.yml
│       ├── make_sure_ci_run_with_32bit_compiler_test.v
│       ├── make_sure_ci_run_with_64bit_compiler_test.v
│       ├── module_docs_ci.yml
│       ├── module_docs_lint.yml
│       ├── more_extensive_but_slower_tests_ci.yml
│       ├── native_backend_ci.yml
│       ├── openbsd_ci.yml
│       ├── other_ci.yml
│       ├── paths_ci.yml
│       ├── periodic_ci.yml
│       ├── prebuilt.yml
│       ├── puzzle_vibes_ci.yml
│       ├── release_ci.yml
│       ├── retry.sh
│       ├── riscv64_linux_ci.yml
│       ├── run_sanitizers.sh
│       ├── run_sanitizers_leak.suppressions
│       ├── run_sanitizers_thread.suppressions
│       ├── run_sanitizers_undefined.suppressions
│       ├── s390x_linux_ci.yml
│       ├── sanitized_ci.yml
│       ├── sdl_ci.yml
│       ├── show_manual_release_cmd.vsh
│       ├── ssa_backends_ci.yml.disabled
│       ├── symlink_ci.yml
│       ├── termux_ci.yml
│       ├── time_ci.yml
│       ├── toml_ci.yml
│       ├── tools_ci.yml
│       ├── v_apps_and_modules_compile_ci.yml
│       ├── vab_ci.yml
│       ├── vinix_ci.yml
│       ├── vpm_ci.yml
│       ├── vsl_and_vtl_compile_ci.yml
│       ├── vup_works.yml
│       ├── wasm_backend_ci.yml
│       ├── websockets_ci.yml
│       ├── windows-install-sdl.bat
│       ├── windows-install-sqlite.bat
│       ├── windows_ci_gcc.yml
│       ├── windows_ci_msvc.yml
│       ├── windows_ci_tcc.yml
│       └── workflow_lint.yml
├── .gitignore
├── AGENTS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── Dockerfile.alpine
├── Dockerfile.cross
├── GNUmakefile
├── LICENSE
├── Makefile
├── README.md
├── ROADMAP.md
├── TESTS.md
├── bench/
│   ├── README.md
│   ├── bench_closure.v
│   ├── bench_gc.v
│   ├── bench_string_dedup.v
│   ├── crypto/
│   │   └── ecdsa/
│   │       ├── ecdsa.c
│   │       ├── ecdsa.go
│   │       └── ecdsa.v
│   └── vectors/
│       ├── README.md
│       ├── vectors.cs
│       ├── vectors.csproj
│       ├── vectors.runtimeconfig.json
│       └── vectors.v
├── changelogs0.x/
│   ├── 0.4.md
│   └── 0.5.md
├── ci/
│   ├── common/
│   │   └── runner.v
│   ├── freebsd_ci.vsh
│   ├── linux_ci.vsh
│   ├── macos_ci.vsh
│   └── openbsd_ci.vsh
├── cmd/
│   ├── tools/
│   │   ├── amalgamate.v
│   │   ├── bench/
│   │   │   ├── map_clear.v
│   │   │   ├── map_clear_runner.vsh
│   │   │   └── wyhash.v
│   │   ├── builders/
│   │   │   ├── c_builder.v
│   │   │   ├── golang_builder.v
│   │   │   ├── interpret_builder.v
│   │   │   ├── js_builder.v
│   │   │   ├── native_builder.v
│   │   │   └── wasm_builder.v
│   │   ├── cc_compilation_failed_non_windows.sh
│   │   ├── cc_compilation_failed_windows.sh
│   │   ├── changelog_helper.v
│   │   ├── check_os_api_parity.v
│   │   ├── check_retry.vsh
│   │   ├── detect_tcc.v
│   │   ├── find_doc_comments_with_no_dots.v
│   │   ├── fuzz/
│   │   │   ├── fuzz.sh
│   │   │   ├── fuzz_v_parser_with_radamsa.sh
│   │   │   └── map_fuzz.v
│   │   ├── gen1m.v
│   │   ├── gen_vc.v
│   │   ├── gg_split_memdump_to_frames.vsh
│   │   ├── git_pre_commit_hook.vsh
│   │   ├── install_binaryen.vsh
│   │   ├── install_wabt.vsh
│   │   ├── measure/
│   │   │   ├── file_lists/
│   │   │   │   └── expand.v
│   │   │   ├── fmt_speed.v
│   │   │   ├── parser_speed.v
│   │   │   └── scanner_speed.v
│   │   ├── modules/
│   │   │   ├── scripting/
│   │   │   │   └── scripting.v
│   │   │   ├── testing/
│   │   │   │   ├── common.v
│   │   │   │   ├── output.v
│   │   │   │   ├── output_dump.v
│   │   │   │   ├── output_normal.v
│   │   │   │   └── output_teamcity.v
│   │   │   └── vgit/
│   │   │       └── vgit.v
│   │   ├── oldv.v
│   │   ├── performance_compare.v
│   │   ├── regress.v
│   │   ├── report_v_module_folders_without_tests.v
│   │   ├── show_ancient_deprecations.v
│   │   ├── test_if_v_test_system_works.v
│   │   ├── test_os_args.v
│   │   ├── test_os_process.v
│   │   ├── translate.v
│   │   ├── vast/
│   │   │   ├── cjson.v
│   │   │   ├── test/
│   │   │   │   ├── .gitignore
│   │   │   │   └── demo.v
│   │   │   └── vast.v
│   │   ├── vast2/
│   │   │   └── vast2.v
│   │   ├── vbin2v.v
│   │   ├── vbug.v
│   │   ├── vbuild-examples.v
│   │   ├── vbuild-tools.v
│   │   ├── vbuild-vbinaries.v
│   │   ├── vbump.v
│   │   ├── vbump_test.v
│   │   ├── vcheck-md.v
│   │   ├── vcheck_test.v
│   │   ├── vcomplete.v
│   │   ├── vcomplete_test.v
│   │   ├── vcompress.v
│   │   ├── vcover/
│   │   │   ├── cover_test.v
│   │   │   ├── data.v
│   │   │   ├── main.v
│   │   │   └── testdata/
│   │   │       ├── example1/
│   │   │       │   ├── abc.v
│   │   │       │   ├── internal_abc01_test.v
│   │   │       │   ├── internal_abc10_abc30_test.v
│   │   │       │   ├── internal_abc20_abc25_test.v
│   │   │       │   └── v.mod
│   │   │       ├── example2/
│   │   │       │   ├── condition.v
│   │   │       │   ├── condition_test.v
│   │   │       │   ├── runtime_condition.v
│   │   │       │   ├── runtime_condition_test.v
│   │   │       │   └── v.mod
│   │   │       └── simple/
│   │   │           ├── simple.v
│   │   │           ├── t1_test.v
│   │   │           ├── t2_test.v
│   │   │           └── v.mod
│   │   ├── vcreate/
│   │   │   ├── project_model_bin.v
│   │   │   ├── project_model_lib.v
│   │   │   ├── project_model_web.v
│   │   │   ├── tests/
│   │   │   │   ├── init.expect
│   │   │   │   ├── init_in_dir_with_invalid_mod_name.expect
│   │   │   │   ├── init_with_model_arg.expect
│   │   │   │   ├── new_with_model_arg.expect
│   │   │   │   ├── new_with_name_arg.expect
│   │   │   │   └── new_with_no_arg.expect
│   │   │   ├── vcreate.v
│   │   │   ├── vcreate_init_test.v
│   │   │   ├── vcreate_new_test.v
│   │   │   └── vcreate_windows_sqlite_note_test.v
│   │   ├── vdiff.v
│   │   ├── vdoc/
│   │   │   ├── .gitattributes
│   │   │   ├── document/
│   │   │   │   ├── comment.v
│   │   │   │   ├── doc.v
│   │   │   │   ├── doc_private_fn_test.v
│   │   │   │   ├── doc_test.v
│   │   │   │   ├── module.v
│   │   │   │   ├── node.v
│   │   │   │   └── utils.v
│   │   │   ├── files.v
│   │   │   ├── highlight.v
│   │   │   ├── html.v
│   │   │   ├── main.v
│   │   │   ├── markdown.v
│   │   │   ├── run_examples.v
│   │   │   ├── testdata/
│   │   │   │   ├── basic/
│   │   │   │   │   ├── basic.comments.out
│   │   │   │   │   ├── basic.out
│   │   │   │   │   └── basic.v
│   │   │   │   ├── comments/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── multiline/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── newlines/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── output_formats/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── main.ansi
│   │   │   │   │   ├── main.html
│   │   │   │   │   ├── main.md
│   │   │   │   │   ├── main.text
│   │   │   │   │   └── main.v
│   │   │   │   ├── readme_in_project_root/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── main.comments.out
│   │   │   │   │   │   ├── main.readme.comments.out
│   │   │   │   │   │   └── main.v
│   │   │   │   │   └── v.mod
│   │   │   │   ├── run_examples_bad/
│   │   │   │   │   ├── .v.mod.stop
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── run_examples_good/
│   │   │   │   │   ├── .v.mod.stop
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   └── unsorted/
│   │   │   │       ├── main.out
│   │   │   │       ├── main.unsorted.out
│   │   │   │       └── main.v
│   │   │   ├── theme/
│   │   │   │   ├── .prettierrc
│   │   │   │   ├── dark-mode.js
│   │   │   │   ├── doc.css
│   │   │   │   ├── doc.js
│   │   │   │   ├── favicons/
│   │   │   │   │   ├── browserconfig.xml
│   │   │   │   │   └── site.webmanifest
│   │   │   │   ├── index.html
│   │   │   │   └── normalize.css
│   │   │   ├── utils.v
│   │   │   ├── v.mod
│   │   │   ├── vdoc.v
│   │   │   ├── vdoc_file_test.v
│   │   │   ├── vdoc_run_examples_test.v
│   │   │   └── vdoc_test.v
│   │   ├── vdoctor.v
│   │   ├── vdownload.v
│   │   ├── vfmt.v
│   │   ├── vgit-fmt-hook.v
│   │   ├── vgit-fmt-hook_test.v
│   │   ├── vgret.defaults.toml
│   │   ├── vgret.v
│   │   ├── vls.v
│   │   ├── vmissdoc.v
│   │   ├── vpm/
│   │   │   ├── args_test.v
│   │   │   ├── common.v
│   │   │   ├── dependency_test.v
│   │   │   ├── expect/
│   │   │   │   ├── accept_reinstall_mod_with_version_installation.expect
│   │   │   │   └── decline_reinstall_mod_with_version_installation.expect
│   │   │   ├── install.v
│   │   │   ├── install_local_test.v
│   │   │   ├── install_test.v
│   │   │   ├── install_version_input_test.v
│   │   │   ├── install_version_test.v
│   │   │   ├── link.v
│   │   │   ├── link_test.v
│   │   │   ├── outdated.v
│   │   │   ├── outdated_test.v
│   │   │   ├── parse.v
│   │   │   ├── remove_test.v
│   │   │   ├── search.v
│   │   │   ├── search_test.v
│   │   │   ├── settings.v
│   │   │   ├── settings_test.v
│   │   │   ├── test_utils/
│   │   │   │   └── utils.v
│   │   │   ├── update.v
│   │   │   ├── update_test.v
│   │   │   ├── vcs.v
│   │   │   ├── vcs_test.v
│   │   │   └── vpm.v
│   │   ├── vquest.v
│   │   ├── vreduce.v
│   │   ├── vrepeat.v
│   │   ├── vrepl.v
│   │   ├── vretry.v
│   │   ├── vretry_test.v
│   │   ├── vrun
│   │   ├── vscan.v
│   │   ├── vschannel_16kb_httpbin_probe.v
│   │   ├── vself.v
│   │   ├── vsetup-freetype.v
│   │   ├── vshader.v
│   │   ├── vshare.v
│   │   ├── vshould-compile-all.v
│   │   ├── vsymlink/
│   │   │   ├── vsymlink.v
│   │   │   ├── vsymlink_nix.c.v
│   │   │   └── vsymlink_windows.c.v
│   │   ├── vtest-all.v
│   │   ├── vtest-cleancode.v
│   │   ├── vtest-fmt.v
│   │   ├── vtest-parser.v
│   │   ├── vtest-self.v
│   │   ├── vtest.v
│   │   ├── vtest_test.v
│   │   ├── vtime.v
│   │   ├── vtimeout.v
│   │   ├── vtimeout_test.v
│   │   ├── vtracev.v
│   │   ├── vup.v
│   │   ├── vvet/
│   │   │   ├── analyze.v
│   │   │   ├── errors.v
│   │   │   ├── filter.v
│   │   │   ├── tests/
│   │   │   │   ├── accept_multi_expression_with_comments.out
│   │   │   │   ├── accept_multi_expression_with_comments.vv
│   │   │   │   ├── array_init_one_val.out
│   │   │   │   ├── array_init_one_val.vv
│   │   │   │   ├── brackets_in_documentation_comment_no_warn.out
│   │   │   │   ├── brackets_in_documentation_comment_no_warn.vv
│   │   │   │   ├── const_dynamic_array_notice.out
│   │   │   │   ├── const_dynamic_array_notice.vv
│   │   │   │   ├── documentation_for_generic_methods.out
│   │   │   │   ├── documentation_for_generic_methods.vv
│   │   │   │   ├── empty_fn_decl.out
│   │   │   │   ├── empty_fn_decl.vv
│   │   │   │   ├── empty_string.out
│   │   │   │   ├── empty_string.vv
│   │   │   │   ├── indent_with_space.out
│   │   │   │   ├── indent_with_space.vv
│   │   │   │   ├── module_file_test.out
│   │   │   │   ├── module_file_test.vv
│   │   │   │   ├── no_warn_about_missing.out
│   │   │   │   ├── no_warn_about_missing.vv
│   │   │   │   ├── prog_without_main_fn.out
│   │   │   │   ├── prog_without_main_fn.vv
│   │   │   │   ├── repeated_assign.out
│   │   │   │   ├── repeated_assign.vv
│   │   │   │   ├── repeated_code.out
│   │   │   │   ├── repeated_code.vv
│   │   │   │   ├── trailing_space.out
│   │   │   │   └── trailing_space.vv
│   │   │   ├── vet_test.v
│   │   │   └── vvet.v
│   │   ├── vwatch.v
│   │   ├── vwhere/
│   │   │   ├── finder.v
│   │   │   ├── finder_utils.v
│   │   │   ├── test/
│   │   │   │   ├── file_common.v
│   │   │   │   ├── file_one.v
│   │   │   │   ├── file_two.v
│   │   │   │   └── nested_mod/
│   │   │   │       └── nested_file.v
│   │   │   ├── vwhere.v
│   │   │   └── vwhere_test.v
│   │   └── vwipe-cache.v
│   ├── v/
│   │   ├── v.v
│   │   ├── vvm.v
│   │   └── vvm_test.v
│   └── v2/
│       ├── .gitignore
│       ├── README.md
│       ├── guiprof/
│       │   ├── draw.v
│       │   ├── events.v
│       │   ├── main.v
│       │   └── state.v
│       ├── test.v
│       ├── test_all.sh
│       ├── test_ssa_backends.v
│       ├── test_sumtype.v
│       ├── test_sumtype2.v
│       ├── test_sumtype3.v
│       ├── test_sumtype4.v
│       ├── test_sumtype_data.v
│       ├── test_sumtype_global.v
│       ├── test_sumtype_ifexpr.v
│       ├── test_sumtype_many.v
│       ├── test_sumtype_nested.v
│       ├── test_sumtype_pos.v
│       ├── test_v2_self.sh
│       └── v2.v
├── doc/
│   ├── c_and_v_type_interoperability.md
│   ├── docs.md
│   ├── packaging_v_for_distributions.md
│   ├── upcoming.md
│   └── vscode.md
├── editors/
│   └── vim/
│       ├── README.md
│       ├── ftdetect/
│       │   └── v.vim
│       ├── ftplugin/
│       │   └── v.vim
│       └── syntax/
│           └── v.vim
├── examples/
│   ├── .gitignore
│   ├── 1brc/
│   │   ├── README.md
│   │   ├── make-samples/
│   │   │   ├── cities.txt
│   │   │   └── main.v
│   │   └── solution/
│   │       └── main.v
│   ├── animated_help_text.v
│   ├── archive/
│   │   └── tar_gz_reader.v
│   ├── asm.v
│   ├── assets/
│   │   ├── fonts/
│   │   │   ├── LICENSE
│   │   │   └── OFL.txt
│   │   └── v.six
│   ├── binary_search_tree.v
│   ├── brainvuck.v
│   ├── bst_map.v
│   ├── buf_reader.v
│   ├── build_system/
│   │   ├── .gitignore
│   │   ├── build.vsh
│   │   └── main.v
│   ├── c_interop_wkhtmltopdf.v
│   ├── call_c_from_v/
│   │   └── main.c.v
│   ├── call_v_from_c/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── v_test_math.v
│   │   └── v_test_print.v
│   ├── call_v_from_python/
│   │   ├── README.md
│   │   ├── test.py
│   │   └── test.v
│   ├── call_v_from_ruby/
│   │   ├── README.md
│   │   ├── test.rb
│   │   └── test.v
│   ├── cli.v
│   ├── clock/
│   │   └── clock.v
│   ├── compiletime/
│   │   ├── d_compile_value.v
│   │   ├── methods.v
│   │   └── reflection.v
│   ├── concurrency/
│   │   ├── concurrency.v
│   │   ├── concurrency_http.v
│   │   └── concurrency_returns.v
│   ├── control_thread_stack_size.v
│   ├── coroutines/
│   │   ├── .skip_should_compile_all
│   │   ├── coroutines_bench.v
│   │   └── simple_coroutines.v
│   ├── cpu_features/
│   │   └── SSE_and_MMX_Extensions/
│   │       ├── README.md
│   │       ├── mmx.v
│   │       ├── sse.v
│   │       ├── sse2.v
│   │       ├── sse3.v
│   │       ├── sse4_1.v
│   │       └── ssse3.v
│   ├── custom_error.v
│   ├── database/
│   │   ├── mysql.v
│   │   ├── mysql_pool.v
│   │   ├── orm.v
│   │   ├── psql/
│   │   │   ├── .gitignore
│   │   │   ├── customer.v
│   │   │   └── mydb.sql
│   │   └── sqlite.v
│   ├── diff.v
│   ├── dump_factorial.v
│   ├── dynamic_library_loader/
│   │   ├── modules/
│   │   │   └── library/
│   │   │       └── library.v
│   │   ├── use_shared_library.v
│   │   └── use_test.v
│   ├── dynamic_library_loading/
│   │   ├── modules/
│   │   │   └── library/
│   │   │       └── library.v
│   │   ├── use_dl_module.v
│   │   └── use_library_test.v
│   ├── errors.v
│   ├── euler.v
│   ├── eventbus/
│   │   ├── eventbus.v
│   │   └── modules/
│   │       └── some_module/
│   │           └── some_module.v
│   ├── fasthttp/
│   │   ├── README.md
│   │   ├── controllers.v
│   │   ├── main.v
│   │   └── v.mod
│   ├── fetch.v
│   ├── fetch_ip.v
│   ├── fibonacci.v
│   ├── file_list.v
│   ├── fireworks/
│   │   ├── fireworks.v
│   │   └── modules/
│   │       └── objects/
│   │           ├── color.v
│   │           ├── constants.v
│   │           ├── particle.v
│   │           ├── rocket.v
│   │           └── vector.v
│   ├── fizz_buzz.v
│   ├── flag_layout_editor.v
│   ├── flappylearning/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── game.v
│   │   └── modules/
│   │       └── neuroevolution/
│   │           └── neuronevolution.v
│   ├── function_types.v
│   ├── game_of_life/
│   │   ├── README.md
│   │   ├── life.v
│   │   ├── life_gg.v
│   │   └── modules/
│   │       └── automaton/
│   │           └── automaton.v
│   ├── get_raw_line.v
│   ├── get_weather/
│   │   ├── README.md
│   │   └── get_weather.v
│   ├── gg/
│   │   ├── additive.v
│   │   ├── arcs_and_slices.v
│   │   ├── bezier.v
│   │   ├── bezier_anim.v
│   │   ├── bouncing_balls.v
│   │   ├── cursor.v
│   │   ├── digital_rain.v
│   │   ├── drag_n_drop.v
│   │   ├── draw_pixels.v
│   │   ├── draw_unicode_text_with_gg.v
│   │   ├── easing_animation.v
│   │   ├── expanding_rect.v
│   │   ├── fire.v
│   │   ├── grid_of_rectangles.v
│   │   ├── mandelbrot.v
│   │   ├── many_thousands_of_circles.v
│   │   ├── many_thousands_of_circles_overriding_max_vertices.v
│   │   ├── memory.v
│   │   ├── minesweeper.v
│   │   ├── minimal.v
│   │   ├── moving_square.v
│   │   ├── path_finding_algorithm_visualizer/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   └── aStar.v
│   │   ├── polygons.v
│   │   ├── pong/
│   │   │   ├── README.md
│   │   │   └── pong.v
│   │   ├── random.v
│   │   ├── random_stars.v
│   │   ├── raven_text_rendering.v
│   │   ├── raycaster.v
│   │   ├── rectangles.v
│   │   ├── rotating_textured_quad.v
│   │   ├── sample_count.v
│   │   ├── spirograph.v
│   │   ├── stars.v
│   │   ├── worker_thread.v
│   │   └── x_y_frame.v
│   ├── graphs/
│   │   ├── bellman-ford.v
│   │   ├── bfs.v
│   │   ├── bfs2.v
│   │   ├── bfs3.v
│   │   ├── dfs.v
│   │   ├── dfs2.v
│   │   ├── dijkstra.v
│   │   ├── minimal_spann_tree_prim.v
│   │   ├── topological_sorting_dfs.v
│   │   └── topological_sorting_greedy.v
│   ├── hanoi.v
│   ├── hello_world.v
│   ├── hot_reload/
│   │   ├── .gitignore
│   │   ├── bounce.v
│   │   ├── graph.v
│   │   ├── message.v
│   │   └── tunnel.v
│   ├── http_server.v
│   ├── js_dom_cube/
│   │   ├── README.md
│   │   ├── cube.js.v
│   │   └── index.html
│   ├── js_dom_draw/
│   │   ├── README.md
│   │   ├── draw.js.v
│   │   └── index.html
│   ├── js_dom_draw_benchmark_chart/
│   │   ├── README.md
│   │   ├── chart/
│   │   │   ├── .gitignore
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── draw.js.v
│   │   │   ├── main.v
│   │   │   └── templates/
│   │   │       └── controller/
│   │   │           └── get/
│   │   │               └── all/
│   │   │                   └── task.html
│   │   ├── typescript_vanilla_typeorm/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.ts
│   │   │   │   └── server.js
│   │   │   └── tsconfig.json
│   │   └── v_vweb_orm/
│   │       └── src/
│   │           └── main.v
│   ├── js_hello_world.v
│   ├── json.v
│   ├── jsonrpc/
│   │   ├── client.v
│   │   └── server.v
│   ├── lander.v
│   ├── linear_regression/
│   │   └── simple_linear_regression.v
│   ├── links_scraper.v
│   ├── log.v
│   ├── logfatal.v
│   ├── lorem.v
│   ├── macos_tray/
│   │   ├── .skip_should_compile_all
│   │   ├── tray.m
│   │   ├── tray.v
│   │   └── v.mod
│   ├── mini_calculator.v
│   ├── mini_calculator_recursive_descent.v
│   ├── minimal_c_like_program_using_puts.v
│   ├── native/
│   │   └── hello_world.v
│   ├── nbody.v
│   ├── net_failconnect.v
│   ├── net_peer_ip.v
│   ├── net_raw_http.v
│   ├── net_resolve.v
│   ├── net_t.v
│   ├── net_udp_server_and_client.v
│   ├── news_fetcher.v
│   ├── orm/
│   │   ├── orm_func.v
│   │   └── orm_sql.v
│   ├── password/
│   │   ├── password.v
│   │   ├── password_test.v
│   │   └── tests/
│   │       ├── correct.expect
│   │       ├── incorrect.expect
│   │       └── output_from_expect_arg.expect
│   ├── path_tracing.v
│   ├── pendulum-simulation/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── animation.v
│   │   ├── full.v
│   │   ├── modules/
│   │   │   └── sim/
│   │   │       ├── anim/
│   │   │       │   ├── app.v
│   │   │       │   └── worker.v
│   │   │       ├── args/
│   │   │       │   └── parser.v
│   │   │       ├── img/
│   │   │       │   ├── ppm.v
│   │   │       │   ├── worker.v
│   │   │       │   └── writer.v
│   │   │       ├── log.v
│   │   │       ├── params.v
│   │   │       ├── params_test.v
│   │   │       ├── runner.v
│   │   │       ├── sim.v
│   │   │       ├── sim_test.v
│   │   │       ├── vec.v
│   │   │       ├── vec_test.v
│   │   │       ├── worker.v
│   │   │       └── worker_test.v
│   │   ├── parallel.v
│   │   ├── parallel_with_iw.v
│   │   └── sequential.v
│   ├── pico/
│   │   ├── pico.v
│   │   └── raw_callback.v
│   ├── pidigits.v
│   ├── poll_coindesk_bitcoin_vs_usd_rate.v
│   ├── primes.v
│   ├── process/
│   │   ├── command.v
│   │   ├── execve.v
│   │   ├── monitor_for_file_changes_with_inotifywait.v
│   │   ├── process_script.v
│   │   ├── wrapping_interactive_python.v
│   │   └── write_and_read_from_a_bash_child_process.v
│   ├── quadtree_demo/
│   │   └── quadtree_demo.v
│   ├── quick_sort.v
│   ├── random_ips.v
│   ├── readdir.v
│   ├── readline/
│   │   ├── readline.v
│   │   ├── readline_test.v
│   │   └── tests/
│   │       ├── readline.expect
│   │       └── readline_from_expect_arg.expect
│   ├── regex/
│   │   ├── pcre.v
│   │   ├── readme.md
│   │   ├── regex_example.v
│   │   └── regex_with_memoization.v
│   ├── rule110.v
│   ├── rune.v
│   ├── sha256sum_with_io_cp.v
│   ├── smtp/
│   │   └── mail.v
│   ├── snek/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── snek.js.v
│   │   └── snek.v
│   ├── sokol/
│   │   ├── .gitignore
│   │   ├── 01_cubes/
│   │   │   └── cube.v
│   │   ├── 02_cubes_glsl/
│   │   │   ├── cube_glsl.glsl
│   │   │   ├── cube_glsl.v
│   │   │   └── v.mod
│   │   ├── 03_march_tracing_glsl/
│   │   │   ├── rt_glsl.glsl
│   │   │   ├── rt_glsl.v
│   │   │   └── v.mod
│   │   ├── 04_multi_shader_glsl/
│   │   │   ├── rt_glsl.v
│   │   │   ├── rt_glsl_march.glsl
│   │   │   ├── rt_glsl_puppy.glsl
│   │   │   └── v.mod
│   │   ├── 05_instancing_glsl/
│   │   │   ├── rt_glsl.v
│   │   │   ├── rt_glsl_instancing.glsl
│   │   │   └── v.mod
│   │   ├── 06_obj_viewer/
│   │   │   ├── assets/
│   │   │   │   └── models/
│   │   │   │       ├── apple.mtl
│   │   │   │       ├── donut.mtl
│   │   │   │       └── v.mtl
│   │   │   ├── gouraud.glsl
│   │   │   ├── modules/
│   │   │   │   └── obj/
│   │   │   │       ├── obj.v
│   │   │   │       ├── rend.v
│   │   │   │       ├── struct.v
│   │   │   │       └── util.v
│   │   │   ├── show_obj.v
│   │   │   └── v.mod
│   │   ├── 07_simple_shader_glsl/
│   │   │   ├── .gitignore
│   │   │   ├── simple_shader.glsl
│   │   │   ├── simple_shader.v
│   │   │   └── v.mod
│   │   ├── 08_sdf/
│   │   │   ├── .gitignore
│   │   │   ├── sdf.glsl
│   │   │   ├── sdf.v
│   │   │   └── v.mod
│   │   ├── clear.v
│   │   ├── drawing.v
│   │   ├── fonts.v
│   │   ├── freetype_raven.v
│   │   ├── particles/
│   │   │   ├── modules/
│   │   │   │   └── particle/
│   │   │   │       ├── LICENSE
│   │   │   │       ├── color.v
│   │   │   │       ├── particle.v
│   │   │   │       └── system.v
│   │   │   └── particles.v
│   │   └── sounds/
│   │       ├── melody.v
│   │       ├── ogg_player.v
│   │       ├── pickup.ogg
│   │       ├── simple_bytebeat.v
│   │       ├── simple_keyboard_synth.v
│   │       ├── simple_sin_tone_using_audio_push.v
│   │       ├── simple_sin_tones.v
│   │       └── wav_player.v
│   ├── spectral.v
│   ├── ssl_server/
│   │   ├── cert/
│   │   │   ├── ca.crt
│   │   │   ├── client.crt
│   │   │   ├── client.key
│   │   │   ├── makecerts.sh
│   │   │   ├── server.crt
│   │   │   └── server.key
│   │   ├── client.v
│   │   ├── server.v
│   │   ├── server_sni.v
│   │   └── server_sni_advanced.v
│   ├── submodule/
│   │   ├── main.v
│   │   ├── mymodules/
│   │   │   ├── main_functions.v
│   │   │   └── submodule/
│   │   │       └── sub_functions.v
│   │   └── v.mod
│   ├── sudoku.v
│   ├── sync_pool.v
│   ├── tcp_echo_server.v
│   ├── tcp_notify_echo_server.v
│   ├── templates/
│   │   ├── data.json
│   │   ├── readme.md
│   │   ├── template.md
│   │   └── templates.v
│   ├── term.ui/
│   │   ├── README.md
│   │   ├── cursor_chaser.v
│   │   ├── event_viewer.v
│   │   ├── pong.v
│   │   ├── rectangles.v
│   │   ├── term_drawing.v
│   │   ├── text_editor.v
│   │   └── vyper.v
│   ├── term_display_sixel.v
│   ├── term_key_pressed.v
│   ├── terminal_control.v
│   ├── thread_safety/
│   │   ├── .gitignore
│   │   ├── atomic_counter.v
│   │   ├── concurrent_shared_data.v
│   │   ├── queue.v
│   │   └── readme.md
│   ├── toml.v
│   ├── tree_of_nodes.v
│   ├── ttf_font/
│   │   ├── draw_static_text.txt
│   │   ├── draw_static_text.v
│   │   └── example_ttf.v
│   ├── v_script.vsh
│   ├── vascii.v
│   ├── vcasino/
│   │   ├── README.md
│   │   └── vcasino.v
│   ├── veb/
│   │   ├── cors/
│   │   │   └── veb_cors_example.v
│   │   ├── custom.html
│   │   ├── file_transform/
│   │   │   ├── file_transform.v
│   │   │   ├── index.html
│   │   │   ├── sample_input.txt
│   │   │   └── upload.html
│   │   ├── file_upload/
│   │   │   ├── file_uploading.v
│   │   │   ├── index.html
│   │   │   ├── submit.html
│   │   │   └── upload.html
│   │   ├── footer.html
│   │   ├── header.html
│   │   ├── index.html
│   │   ├── middleware/
│   │   │   ├── templates/
│   │   │   │   ├── base.html
│   │   │   │   ├── early.html
│   │   │   │   ├── index.html
│   │   │   │   └── secret.html
│   │   │   └── using_middleware.v
│   │   ├── server_sent_events/
│   │   │   ├── assets/
│   │   │   │   └── site.css
│   │   │   ├── index.html
│   │   │   └── server.v
│   │   ├── static_website/
│   │   │   ├── README.md
│   │   │   ├── dist/
│   │   │   │   ├── another.html
│   │   │   │   └── index.html
│   │   │   └── server.v
│   │   ├── todo/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── assets/
│   │   │   │   └── main.css
│   │   │   ├── main.v
│   │   │   └── templates/
│   │   │       └── index.html
│   │   ├── veb_assets/
│   │   │   ├── assets/
│   │   │   │   └── index.css
│   │   │   ├── index.html
│   │   │   └── vweb_assets.v
│   │   ├── veb_example.v
│   │   └── websocket/
│   │       ├── assets/
│   │       │   └── style.css
│   │       ├── index.html
│   │       └── server.v
│   ├── viewer/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── file_scan.v
│   │   ├── v.mod
│   │   ├── view.v
│   │   └── zip_container.v
│   ├── vmatrix.v
│   ├── vmod.v
│   ├── vpwgen.v
│   ├── vtail.v
│   ├── vwatch/
│   │   ├── cli_clock/
│   │   │   └── main.v
│   │   └── web_server/
│   │       ├── .gitignore
│   │       └── main.v
│   ├── vweb_fullstack/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── readme.md
│   │   └── src/
│   │       ├── auth_controllers.v
│   │       ├── auth_dto.v
│   │       ├── auth_services.v
│   │       ├── databases/
│   │       │   └── config_databases_sqlite.v
│   │       ├── index.html
│   │       ├── main.v
│   │       ├── product_controller.v
│   │       ├── product_entities.v
│   │       ├── product_service.v
│   │       ├── product_view.v
│   │       ├── product_view_api.v
│   │       ├── templates/
│   │       │   ├── header_component.html
│   │       │   ├── products.css
│   │       │   └── products.html
│   │       ├── user_controllers.v
│   │       ├── user_entities.v
│   │       ├── user_services.v
│   │       ├── user_view_api.v
│   │       └── v.mod
│   ├── vweb_orm_jwt/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   └── src/
│   │       ├── auth_controllers.v
│   │       ├── auth_dto.v
│   │       ├── auth_services.v
│   │       ├── databases/
│   │       │   └── config_databases_sqlite.v
│   │       ├── main.v
│   │       ├── user_controllers.v
│   │       ├── user_entities.v
│   │       ├── user_services.v
│   │       └── v.mod
│   ├── wasm/
│   │   ├── .gitignore
│   │   ├── change_color_by_id/
│   │   │   ├── README.md
│   │   │   ├── change_color_by_id.html
│   │   │   ├── change_color_by_id.wasm.v
│   │   │   └── serve_folder.v
│   │   ├── functions.v
│   │   ├── hello_world.v
│   │   └── mandelbrot/
│   │       ├── README.md
│   │       ├── mandelbrot.html
│   │       ├── mandelbrot.wasm.v
│   │       └── serve_folder.v
│   ├── wasm_codegen/
│   │   ├── add.v
│   │   ├── bf_compiler.v
│   │   ├── control_flow.v
│   │   ├── factorial.v
│   │   ├── functions.v
│   │   ├── hello_wasi.v
│   │   └── memory.v
│   ├── web_crawler/
│   │   ├── README.md
│   │   └── web_crawler.v
│   ├── websocket/
│   │   ├── client-server/
│   │   │   ├── client.v
│   │   │   └── server.v
│   │   └── ping.v
│   └── word_counter/
│       ├── README.md
│       ├── cinderella.txt
│       └── word_counter.v
├── make.bat
├── thirdparty/
│   ├── .gitignore
│   ├── android/
│   │   └── android.h
│   ├── build_scripts/
│   │   ├── README.md
│   │   ├── thirdparty-freebsd-amd64_bdwgc.sh
│   │   ├── thirdparty-freebsd-amd64_tcc.sh
│   │   ├── thirdparty-linux-amd64_bdwgc.sh
│   │   ├── thirdparty-linux-amd64_tcc.sh
│   │   ├── thirdparty-linux-armv7_bdwgc.sh
│   │   ├── thirdparty-macos-arm64_bdwgc.sh
│   │   ├── thirdparty-macos-arm64_tcc.sh
│   │   └── thirdparty-openbsd-amd64_tcc.sh
│   ├── cJSON/
│   │   ├── README.md
│   │   ├── cJSON.c
│   │   └── cJSON.h
│   ├── fontstash/
│   │   ├── fontstash.h
│   │   └── stb_truetype.h
│   ├── ios/
│   │   └── ios.m
│   ├── libatomic_ops/
│   │   ├── LICENSE
│   │   ├── atomic_ops/
│   │   │   ├── ao_version.h
│   │   │   ├── generalize-arithm.h
│   │   │   ├── generalize-arithm.template
│   │   │   ├── generalize-small.h
│   │   │   ├── generalize-small.template
│   │   │   ├── generalize.h
│   │   │   └── sysdeps/
│   │   │       ├── all_acquire_release_volatile.h
│   │   │       ├── all_aligned_atomic_load_store.h
│   │   │       ├── all_atomic_load_store.h
│   │   │       ├── all_atomic_only_load.h
│   │   │       ├── ao_t_is_int.h
│   │   │       ├── ao_t_is_int.template
│   │   │       ├── armcc/
│   │   │       │   └── arm_v6.h
│   │   │       ├── emul_cas.h
│   │   │       ├── gcc/
│   │   │       │   ├── aarch64.h
│   │   │       │   ├── alpha.h
│   │   │       │   ├── arm.h
│   │   │       │   ├── avr32.h
│   │   │       │   ├── cris.h
│   │   │       │   ├── e2k.h
│   │   │       │   ├── generic-arithm.h
│   │   │       │   ├── generic-arithm.template
│   │   │       │   ├── generic-small.h
│   │   │       │   ├── generic-small.template
│   │   │       │   ├── generic.h
│   │   │       │   ├── hexagon.h
│   │   │       │   ├── hppa.h
│   │   │       │   ├── ia64.h
│   │   │       │   ├── m68k.h
│   │   │       │   ├── mips.h
│   │   │       │   ├── powerpc.h
│   │   │       │   ├── riscv.h
│   │   │       │   ├── s390.h
│   │   │       │   ├── sh.h
│   │   │       │   ├── sparc.h
│   │   │       │   ├── tile.h
│   │   │       │   └── x86.h
│   │   │       ├── generic_pthread.h
│   │   │       ├── hpc/
│   │   │       │   ├── hppa.h
│   │   │       │   └── ia64.h
│   │   │       ├── ibmc/
│   │   │       │   └── powerpc.h
│   │   │       ├── icc/
│   │   │       │   └── ia64.h
│   │   │       ├── loadstore/
│   │   │       │   ├── acquire_release_volatile.h
│   │   │       │   ├── acquire_release_volatile.template
│   │   │       │   ├── atomic_load.h
│   │   │       │   ├── atomic_load.template
│   │   │       │   ├── atomic_store.h
│   │   │       │   ├── atomic_store.template
│   │   │       │   ├── char_acquire_release_volatile.h
│   │   │       │   ├── char_atomic_load.h
│   │   │       │   ├── char_atomic_store.h
│   │   │       │   ├── double_atomic_load_store.h
│   │   │       │   ├── int_acquire_release_volatile.h
│   │   │       │   ├── int_atomic_load.h
│   │   │       │   ├── int_atomic_store.h
│   │   │       │   ├── ordered_loads_only.h
│   │   │       │   ├── ordered_loads_only.template
│   │   │       │   ├── ordered_stores_only.h
│   │   │       │   ├── ordered_stores_only.template
│   │   │       │   ├── short_acquire_release_volatile.h
│   │   │       │   ├── short_atomic_load.h
│   │   │       │   └── short_atomic_store.h
│   │   │       ├── msftc/
│   │   │       │   ├── arm.h
│   │   │       │   ├── arm64.h
│   │   │       │   ├── common32_defs.h
│   │   │       │   ├── x86.h
│   │   │       │   └── x86_64.h
│   │   │       ├── ordered.h
│   │   │       ├── ordered_except_wr.h
│   │   │       ├── read_ordered.h
│   │   │       ├── standard_ao_double_t.h
│   │   │       ├── sunc/
│   │   │       │   ├── sparc.S
│   │   │       │   ├── sparc.h
│   │   │       │   └── x86.h
│   │   │       ├── test_and_set_t_is_ao_t.h
│   │   │       └── test_and_set_t_is_char.h
│   │   ├── atomic_ops.c
│   │   ├── atomic_ops.h
│   │   ├── atomic_ops_malloc.c
│   │   ├── atomic_ops_malloc.h
│   │   └── atomic_ops_sysdeps.S
│   ├── libbacktrace/
│   │   ├── amalgamation.txt
│   │   ├── backtrace.c
│   │   ├── backtrace.h
│   │   ├── base.c
│   │   ├── darwin.c
│   │   ├── linux.c
│   │   └── windows.c
│   ├── libgc/
│   │   ├── amalgamation.txt
│   │   ├── gc.c
│   │   └── include/
│   │       ├── gc/
│   │       │   ├── cord.h
│   │       │   ├── cord_pos.h
│   │       │   ├── ec.h
│   │       │   ├── gc.h
│   │       │   ├── gc_allocator.h
│   │       │   ├── gc_backptr.h
│   │       │   ├── gc_config_macros.h
│   │       │   ├── gc_disclaim.h
│   │       │   ├── gc_gcj.h
│   │       │   ├── gc_inline.h
│   │       │   ├── gc_mark.h
│   │       │   ├── gc_pthread_redirects.h
│   │       │   ├── gc_tiny_fl.h
│   │       │   ├── gc_typed.h
│   │       │   ├── gc_version.h
│   │       │   ├── javaxfc.h
│   │       │   └── leak_detector.h
│   │       └── gc.h
│   ├── mbedtls/
│   │   ├── 3rdparty/
│   │   │   ├── everest/
│   │   │   │   ├── README.md
│   │   │   │   ├── include/
│   │   │   │   │   └── everest/
│   │   │   │   │       ├── Hacl_Curve25519.h
│   │   │   │   │       ├── everest.h
│   │   │   │   │       ├── kremlib/
│   │   │   │   │       │   ├── FStar_UInt128.h
│   │   │   │   │       │   └── FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h
│   │   │   │   │       ├── kremlib.h
│   │   │   │   │       ├── kremlin/
│   │   │   │   │       │   ├── c_endianness.h
│   │   │   │   │       │   └── internal/
│   │   │   │   │       │       ├── builtin.h
│   │   │   │   │       │       ├── callconv.h
│   │   │   │   │       │       ├── compat.h
│   │   │   │   │       │       ├── debug.h
│   │   │   │   │       │       ├── target.h
│   │   │   │   │       │       ├── types.h
│   │   │   │   │       │       └── wasmsupport.h
│   │   │   │   │       ├── vs2013/
│   │   │   │   │       │   └── Hacl_Curve25519.h
│   │   │   │   │       └── x25519.h
│   │   │   │   └── library/
│   │   │   │       ├── Hacl_Curve25519.c
│   │   │   │       ├── Hacl_Curve25519_joined.c
│   │   │   │       ├── everest.c
│   │   │   │       ├── kremlib/
│   │   │   │       │   ├── FStar_UInt128_extracted.c
│   │   │   │       │   └── FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c
│   │   │   │       ├── legacy/
│   │   │   │       │   └── Hacl_Curve25519.c
│   │   │   │       └── x25519.c
│   │   │   └── p256-m/
│   │   │       ├── README.md
│   │   │       ├── p256-m/
│   │   │       │   ├── README.md
│   │   │       │   ├── p256-m.c
│   │   │       │   └── p256-m.h
│   │   │       ├── p256-m_driver_entrypoints.c
│   │   │       └── p256-m_driver_entrypoints.h
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── fix.md
│   │   ├── include/
│   │   │   ├── mbedtls/
│   │   │   │   ├── aes.h
│   │   │   │   ├── aria.h
│   │   │   │   ├── asn1.h
│   │   │   │   ├── asn1write.h
│   │   │   │   ├── base64.h
│   │   │   │   ├── bignum.h
│   │   │   │   ├── block_cipher.h
│   │   │   │   ├── build_info.h
│   │   │   │   ├── camellia.h
│   │   │   │   ├── ccm.h
│   │   │   │   ├── chacha20.h
│   │   │   │   ├── chachapoly.h
│   │   │   │   ├── check_config.h
│   │   │   │   ├── cipher.h
│   │   │   │   ├── cmac.h
│   │   │   │   ├── compat-2.x.h
│   │   │   │   ├── config_adjust_legacy_crypto.h
│   │   │   │   ├── config_adjust_legacy_from_psa.h
│   │   │   │   ├── config_adjust_psa_from_legacy.h
│   │   │   │   ├── config_adjust_psa_superset_legacy.h
│   │   │   │   ├── config_adjust_ssl.h
│   │   │   │   ├── config_adjust_x509.h
│   │   │   │   ├── config_psa.h
│   │   │   │   ├── constant_time.h
│   │   │   │   ├── ctr_drbg.h
│   │   │   │   ├── debug.h
│   │   │   │   ├── des.h
│   │   │   │   ├── dhm.h
│   │   │   │   ├── ecdh.h
│   │   │   │   ├── ecdsa.h
│   │   │   │   ├── ecjpake.h
│   │   │   │   ├── ecp.h
│   │   │   │   ├── entropy.h
│   │   │   │   ├── error.h
│   │   │   │   ├── gcm.h
│   │   │   │   ├── hkdf.h
│   │   │   │   ├── hmac_drbg.h
│   │   │   │   ├── lms.h
│   │   │   │   ├── mbedtls_config.h
│   │   │   │   ├── md.h
│   │   │   │   ├── md5.h
│   │   │   │   ├── memory_buffer_alloc.h
│   │   │   │   ├── net_sockets.h
│   │   │   │   ├── nist_kw.h
│   │   │   │   ├── oid.h
│   │   │   │   ├── pem.h
│   │   │   │   ├── pk.h
│   │   │   │   ├── pkcs12.h
│   │   │   │   ├── pkcs5.h
│   │   │   │   ├── pkcs7.h
│   │   │   │   ├── platform.h
│   │   │   │   ├── platform_time.h
│   │   │   │   ├── platform_util.h
│   │   │   │   ├── poly1305.h
│   │   │   │   ├── private_access.h
│   │   │   │   ├── psa_util.h
│   │   │   │   ├── ripemd160.h
│   │   │   │   ├── rsa.h
│   │   │   │   ├── sha1.h
│   │   │   │   ├── sha256.h
│   │   │   │   ├── sha3.h
│   │   │   │   ├── sha512.h
│   │   │   │   ├── ssl.h
│   │   │   │   ├── ssl_cache.h
│   │   │   │   ├── ssl_ciphersuites.h
│   │   │   │   ├── ssl_cookie.h
│   │   │   │   ├── ssl_ticket.h
│   │   │   │   ├── threading.h
│   │   │   │   ├── timing.h
│   │   │   │   ├── version.h
│   │   │   │   ├── x509.h
│   │   │   │   ├── x509_crl.h
│   │   │   │   ├── x509_crt.h
│   │   │   │   └── x509_csr.h
│   │   │   └── psa/
│   │   │       ├── build_info.h
│   │   │       ├── crypto.h
│   │   │       ├── crypto_adjust_auto_enabled.h
│   │   │       ├── crypto_adjust_config_dependencies.h
│   │   │       ├── crypto_adjust_config_key_pair_types.h
│   │   │       ├── crypto_adjust_config_synonyms.h
│   │   │       ├── crypto_builtin_composites.h
│   │   │       ├── crypto_builtin_key_derivation.h
│   │   │       ├── crypto_builtin_primitives.h
│   │   │       ├── crypto_compat.h
│   │   │       ├── crypto_config.h
│   │   │       ├── crypto_driver_common.h
│   │   │       ├── crypto_driver_contexts_composites.h
│   │   │       ├── crypto_driver_contexts_key_derivation.h
│   │   │       ├── crypto_driver_contexts_primitives.h
│   │   │       ├── crypto_extra.h
│   │   │       ├── crypto_legacy.h
│   │   │       ├── crypto_platform.h
│   │   │       ├── crypto_se_driver.h
│   │   │       ├── crypto_sizes.h
│   │   │       ├── crypto_struct.h
│   │   │       ├── crypto_types.h
│   │   │       └── crypto_values.h
│   │   ├── library/
│   │   │   ├── aes.c
│   │   │   ├── aesce.c
│   │   │   ├── aesce.h
│   │   │   ├── aesni.c
│   │   │   ├── aesni.h
│   │   │   ├── alignment.h
│   │   │   ├── aria.c
│   │   │   ├── asn1parse.c
│   │   │   ├── asn1write.c
│   │   │   ├── base64.c
│   │   │   ├── base64_internal.h
│   │   │   ├── bignum.c
│   │   │   ├── bignum_core.c
│   │   │   ├── bignum_core.h
│   │   │   ├── bignum_core_invasive.h
│   │   │   ├── bignum_internal.h
│   │   │   ├── bignum_mod.c
│   │   │   ├── bignum_mod.h
│   │   │   ├── bignum_mod_raw.c
│   │   │   ├── bignum_mod_raw.h
│   │   │   ├── bignum_mod_raw_invasive.h
│   │   │   ├── block_cipher.c
│   │   │   ├── block_cipher_internal.h
│   │   │   ├── bn_mul.h
│   │   │   ├── camellia.c
│   │   │   ├── ccm.c
│   │   │   ├── chacha20.c
│   │   │   ├── chachapoly.c
│   │   │   ├── check_crypto_config.h
│   │   │   ├── cipher.c
│   │   │   ├── cipher_invasive.h
│   │   │   ├── cipher_wrap.c
│   │   │   ├── cipher_wrap.h
│   │   │   ├── cmac.c
│   │   │   ├── common.h
│   │   │   ├── constant_time.c
│   │   │   ├── constant_time_impl.h
│   │   │   ├── constant_time_internal.h
│   │   │   ├── ctr.h
│   │   │   ├── ctr_drbg.c
│   │   │   ├── debug.c
│   │   │   ├── debug_internal.h
│   │   │   ├── des.c
│   │   │   ├── dhm.c
│   │   │   ├── ecdh.c
│   │   │   ├── ecdsa.c
│   │   │   ├── ecjpake.c
│   │   │   ├── ecp.c
│   │   │   ├── ecp_curves.c
│   │   │   ├── ecp_curves_new.c
│   │   │   ├── ecp_internal_alt.h
│   │   │   ├── ecp_invasive.h
│   │   │   ├── entropy.c
│   │   │   ├── entropy_poll.c
│   │   │   ├── entropy_poll.h
│   │   │   ├── error.c
│   │   │   ├── gcm.c
│   │   │   ├── hkdf.c
│   │   │   ├── hmac_drbg.c
│   │   │   ├── lmots.c
│   │   │   ├── lmots.h
│   │   │   ├── lms.c
│   │   │   ├── md.c
│   │   │   ├── md5.c
│   │   │   ├── md_psa.h
│   │   │   ├── md_wrap.h
│   │   │   ├── memory_buffer_alloc.c
│   │   │   ├── mps_common.h
│   │   │   ├── mps_error.h
│   │   │   ├── mps_reader.c
│   │   │   ├── mps_reader.h
│   │   │   ├── mps_trace.c
│   │   │   ├── mps_trace.h
│   │   │   ├── net_sockets.c
│   │   │   ├── nist_kw.c
│   │   │   ├── oid.c
│   │   │   ├── padlock.c
│   │   │   ├── padlock.h
│   │   │   ├── pem.c
│   │   │   ├── pk.c
│   │   │   ├── pk_ecc.c
│   │   │   ├── pk_internal.h
│   │   │   ├── pk_wrap.c
│   │   │   ├── pk_wrap.h
│   │   │   ├── pkcs12.c
│   │   │   ├── pkcs5.c
│   │   │   ├── pkcs7.c
│   │   │   ├── pkparse.c
│   │   │   ├── pkwrite.c
│   │   │   ├── pkwrite.h
│   │   │   ├── platform.c
│   │   │   ├── platform_util.c
│   │   │   ├── poly1305.c
│   │   │   ├── psa_crypto.c
│   │   │   ├── psa_crypto_aead.c
│   │   │   ├── psa_crypto_aead.h
│   │   │   ├── psa_crypto_cipher.c
│   │   │   ├── psa_crypto_cipher.h
│   │   │   ├── psa_crypto_client.c
│   │   │   ├── psa_crypto_core.h
│   │   │   ├── psa_crypto_core_common.h
│   │   │   ├── psa_crypto_driver_wrappers.h
│   │   │   ├── psa_crypto_driver_wrappers_no_static.c
│   │   │   ├── psa_crypto_driver_wrappers_no_static.h
│   │   │   ├── psa_crypto_ecp.c
│   │   │   ├── psa_crypto_ecp.h
│   │   │   ├── psa_crypto_ffdh.c
│   │   │   ├── psa_crypto_ffdh.h
│   │   │   ├── psa_crypto_hash.c
│   │   │   ├── psa_crypto_hash.h
│   │   │   ├── psa_crypto_invasive.h
│   │   │   ├── psa_crypto_its.h
│   │   │   ├── psa_crypto_mac.c
│   │   │   ├── psa_crypto_mac.h
│   │   │   ├── psa_crypto_pake.c
│   │   │   ├── psa_crypto_pake.h
│   │   │   ├── psa_crypto_random_impl.h
│   │   │   ├── psa_crypto_rsa.c
│   │   │   ├── psa_crypto_rsa.h
│   │   │   ├── psa_crypto_se.c
│   │   │   ├── psa_crypto_se.h
│   │   │   ├── psa_crypto_slot_management.c
│   │   │   ├── psa_crypto_slot_management.h
│   │   │   ├── psa_crypto_storage.c
│   │   │   ├── psa_crypto_storage.h
│   │   │   ├── psa_its_file.c
│   │   │   ├── psa_util.c
│   │   │   ├── psa_util_internal.h
│   │   │   ├── ripemd160.c
│   │   │   ├── rsa.c
│   │   │   ├── rsa_alt_helpers.c
│   │   │   ├── rsa_alt_helpers.h
│   │   │   ├── rsa_internal.h
│   │   │   ├── sha1.c
│   │   │   ├── sha256.c
│   │   │   ├── sha3.c
│   │   │   ├── sha512.c
│   │   │   ├── ssl_cache.c
│   │   │   ├── ssl_ciphersuites.c
│   │   │   ├── ssl_ciphersuites_internal.h
│   │   │   ├── ssl_client.c
│   │   │   ├── ssl_client.h
│   │   │   ├── ssl_cookie.c
│   │   │   ├── ssl_debug_helpers.h
│   │   │   ├── ssl_debug_helpers_generated.c
│   │   │   ├── ssl_misc.h
│   │   │   ├── ssl_msg.c
│   │   │   ├── ssl_ticket.c
│   │   │   ├── ssl_tls.c
│   │   │   ├── ssl_tls12_client.c
│   │   │   ├── ssl_tls12_server.c
│   │   │   ├── ssl_tls13_client.c
│   │   │   ├── ssl_tls13_generic.c
│   │   │   ├── ssl_tls13_invasive.h
│   │   │   ├── ssl_tls13_keys.c
│   │   │   ├── ssl_tls13_keys.h
│   │   │   ├── ssl_tls13_server.c
│   │   │   ├── threading.c
│   │   │   ├── threading_internal.h
│   │   │   ├── timing.c
│   │   │   ├── version.c
│   │   │   ├── version_features.c
│   │   │   ├── x509.c
│   │   │   ├── x509_create.c
│   │   │   ├── x509_crl.c
│   │   │   ├── x509_crt.c
│   │   │   ├── x509_csr.c
│   │   │   ├── x509_internal.h
│   │   │   ├── x509write.c
│   │   │   ├── x509write_crt.c
│   │   │   └── x509write_csr.c
│   │   ├── mbedtls.patch
│   │   └── update.vsh
│   ├── mssql/
│   │   └── include/
│   │       ├── .gitignore
│   │       └── mssql.h
│   ├── photon/
│   │   └── photonwrapper.h
│   ├── picoev/
│   │   ├── picoev.c
│   │   └── src/
│   │       ├── README.md
│   │       ├── picoev.h
│   │       ├── picoev_epoll.c
│   │       ├── picoev_kqueue.c
│   │       ├── picoev_select.c
│   │       └── picoev_w32.h
│   ├── picohttpparser/
│   │   ├── README.md
│   │   ├── picohttpparser.c
│   │   ├── picohttpparser.h
│   │   └── src/
│   │       ├── README.md
│   │       ├── picohttpparser.c
│   │       └── picohttpparser.h
│   ├── sokol/
│   │   ├── README.md
│   │   ├── cursor-shape-v1-client-protocol.h
│   │   ├── cursor-shape-v1-protocol.c
│   │   ├── fractional-scale-v1-client-protocol.h
│   │   ├── fractional-scale-v1-protocol.c
│   │   ├── gen_wayland_protocols.vsh
│   │   ├── pointer-constraints-unstable-v1-client-protocol.h
│   │   ├── pointer-constraints-unstable-v1-protocol.c
│   │   ├── relative-pointer-unstable-v1-client-protocol.h
│   │   ├── relative-pointer-unstable-v1-protocol.c
│   │   ├── sokol_app.h
│   │   ├── sokol_app2.h
│   │   ├── sokol_audio.h
│   │   ├── sokol_gfx.h
│   │   ├── sokol_log.h
│   │   ├── sokol_v.post.h
│   │   ├── tablet-unstable-v2-client-protocol.h
│   │   ├── tablet-unstable-v2-protocol.c
│   │   ├── util/
│   │   │   ├── sokol_fontstash.h
│   │   │   └── sokol_gl.h
│   │   ├── viewporter-client-protocol.h
│   │   ├── viewporter-protocol.c
│   │   ├── xdg-decoration-unstable-v1-client-protocol.h
│   │   ├── xdg-decoration-unstable-v1-protocol.c
│   │   ├── xdg-shell-client-protocol.h
│   │   ├── xdg-shell-protocol.c
│   │   ├── xdg-toplevel-icon-v1-client-protocol.h
│   │   └── xdg-toplevel-icon-v1-protocol.c
│   ├── stb_image/
│   │   ├── README.md
│   │   ├── stb_image.h
│   │   ├── stb_image_resize2.h
│   │   ├── stb_image_write.h
│   │   ├── stb_v_header.h
│   │   └── stbi.c
│   ├── stb_vorbis/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── stb_vorbis.c
│   │   └── stb_vorbis.h
│   ├── stdatomic/
│   │   ├── nix/
│   │   │   ├── atomic.S
│   │   │   ├── atomic.h
│   │   │   ├── atomic_cpp.h
│   │   │   └── cpp/
│   │   │       └── gen.v
│   │   └── win/
│   │       └── atomic.h
│   ├── vgc/
│   │   └── vgc_platform.h
│   ├── vschannel/
│   │   ├── vschannel.c
│   │   └── vschannel.h
│   ├── walloc/
│   │   └── walloc.c
│   ├── zip/
│   │   ├── README.md
│   │   ├── miniz.h
│   │   ├── zip.c
│   │   └── zip.h
│   └── zstd/
│       ├── README.md
│       ├── fix.md
│       ├── update.vsh
│       ├── zstd.c
│       └── zstd_v.patch
├── tutorials/
│   ├── C2V_translating_simple_programs_and_DOOM/
│   │   └── README.md
│   └── building_a_simple_web_blog_with_veb/
│       ├── README.md
│       └── code/
│           └── blog/
│               ├── .gitignore
│               ├── article.v
│               ├── blog.v
│               ├── index.html
│               └── new.html
├── v.mod
└── vlib/
    ├── .vdocignore
    ├── README.md
    ├── archive/
    │   ├── README.md
    │   └── tar/
    │       ├── README.md
    │       ├── reader.v
    │       ├── reader_test.v
    │       ├── tar.v
    │       └── untar.v
    ├── arrays/
    │   ├── README.md
    │   ├── arrays.v
    │   ├── arrays_fold_test.v
    │   ├── arrays_test.v
    │   ├── diff/
    │   │   ├── diff.v
    │   │   └── diff_test.v
    │   ├── index_of.v
    │   ├── map_of.v
    │   ├── parallel/
    │   │   ├── parallel.v
    │   │   └── parallel_test.v
    │   ├── reverse_iterator.v
    │   ├── reverse_iterator_test.v
    │   ├── uniq.v
    │   └── uniq_test.v
    ├── benchmark/
    │   ├── README.md
    │   ├── benchmark.v
    │   └── benchmark_test.v
    ├── bitfield/
    │   ├── README.md
    │   ├── bitfield.v
    │   └── bitfield_test.v
    ├── build/
    │   ├── README.md
    │   └── build.v
    ├── builtin/
    │   ├── README.md
    │   ├── allocation.c.v
    │   ├── array.v
    │   ├── array_d_gcboehm_opt.v
    │   ├── array_flags_test.v
    │   ├── array_notd_gcboehm_opt.v
    │   ├── array_test.v
    │   ├── backtraces.c.v
    │   ├── backtraces_nix.c.v
    │   ├── backtraces_windows.c.v
    │   ├── builtin.c.v
    │   ├── builtin.v
    │   ├── builtin_android_outside_termux.c.v
    │   ├── builtin_backtraces_d_musl.c.v
    │   ├── builtin_backtraces_nix.c.v
    │   ├── builtin_d_gcboehm.c.v
    │   ├── builtin_d_use_libbacktrace.c.v
    │   ├── builtin_d_vgc.c.v
    │   ├── builtin_ios.c.v
    │   ├── builtin_nix.c.v
    │   ├── builtin_notd_gcboehm.c.v
    │   ├── builtin_notd_use_libbacktrace.c.v
    │   ├── builtin_test.c.v
    │   ├── builtin_unbuffer_stdout_test.v
    │   ├── builtin_windows.c.v
    │   ├── byte_test.v
    │   ├── cfns.c.v
    │   ├── cfns_wrapper.c.v
    │   ├── chan_option_result.v
    │   ├── character_inout.c.v
    │   ├── character_inout_test.v
    │   ├── closure/
    │   │   ├── README.md
    │   │   ├── closure.c.v
    │   │   ├── closure.v
    │   │   ├── closure_nix.c.v
    │   │   └── closure_windows.c.v
    │   ├── fixed_array_test.v
    │   ├── float.c.v
    │   ├── float_test.v
    │   ├── gated_array_string_test.v
    │   ├── hex_test.v
    │   ├── input_rune_iterator.v
    │   ├── input_rune_iterator_test.v
    │   ├── int.v
    │   ├── int_notd_new_int.v
    │   ├── int_test.v
    │   ├── isnil_test.v
    │   ├── js/
    │   │   ├── array.js.v
    │   │   ├── array_test.js.v
    │   │   ├── builtin.js.v
    │   │   ├── builtin.v
    │   │   ├── byte.js.v
    │   │   ├── float.js.v
    │   │   ├── int.js.v
    │   │   ├── int_test.js.v
    │   │   ├── jsfns.js.v
    │   │   ├── jsfns_browser.js.v
    │   │   ├── jsfns_node.js.v
    │   │   ├── map.js.v
    │   │   ├── map_test.js.v
    │   │   ├── promise.js.v
    │   │   ├── rune.js.v
    │   │   ├── string.js.v
    │   │   ├── string_test.js.v
    │   │   └── utf8.js.v
    │   ├── lambda_expr_array_test.v
    │   ├── linux_bare/
    │   │   ├── libc_impl.v
    │   │   ├── linux_syscalls.v
    │   │   ├── memory_managment.v
    │   │   └── old/
    │   │       ├── .checks/
    │   │       │   ├── .gitignore
    │   │       │   ├── checks.v
    │   │       │   ├── consts/
    │   │       │   │   └── consts.v
    │   │       │   ├── forkedtest/
    │   │       │   │   └── forkedtest.v
    │   │       │   ├── linuxsys/
    │   │       │   │   └── linuxsys.v
    │   │       │   ├── readme.md
    │   │       │   ├── sample_text1.txt
    │   │       │   ├── string/
    │   │       │   │   └── string.v
    │   │       │   └── structs/
    │   │       │       └── structs.v
    │   │       ├── array_bare.v
    │   │       ├── builtin_bare.v
    │   │       ├── linuxsys_bare.v
    │   │       ├── mm_bare.v
    │   │       ├── string_bare.v
    │   │       └── syscallwrapper_test.v
    │   ├── map.c.v
    │   ├── map.v
    │   ├── map_d_gcboehm_opt.v
    │   ├── map_notd_gcboehm_opt.v
    │   ├── map_of_floats_test.v
    │   ├── map_test.v
    │   ├── meta_assert.v
    │   ├── meta_attribute.v
    │   ├── meta_enum.v
    │   ├── meta_function.v
    │   ├── meta_struct.v
    │   ├── meta_variant.v
    │   ├── option.c.v
    │   ├── overflow/
    │   │   └── overflow.v
    │   ├── panicing.c.v
    │   ├── prealloc.c.v
    │   ├── printing.c.v
    │   ├── reuse.v
    │   ├── reuse_test.v
    │   ├── rune.v
    │   ├── rune_map.v
    │   ├── rune_test.v
    │   ├── sorted_lambda_expr_test.v
    │   ├── sorted_map.v
    │   ├── sorting_test.v
    │   ├── string.v
    │   ├── string_charptr_byteptr_helpers.v
    │   ├── string_int_test.v
    │   ├── string_interpolation.v
    │   ├── string_iterator_test.v
    │   ├── string_match_glob_test.v
    │   ├── string_strip_margin_test.v
    │   ├── string_test.v
    │   ├── string_trim_indent_test.v
    │   ├── utf8.c.v
    │   ├── utf8.v
    │   ├── utf8_test.v
    │   ├── vgc_d_vgc.c.v
    │   ├── vgc_gc_d_vgc.c.v
    │   ├── vgc_notd_vgc.c.v
    │   ├── wasm/
    │   │   ├── alloc.v
    │   │   ├── browser/
    │   │   │   └── builtin_notd_no_imports.v
    │   │   ├── builtin.v
    │   │   ├── string.v
    │   │   └── wasi/
    │   │       ├── builtin_notd_no_imports.v
    │   │       ├── int_notd_no_imports.v
    │   │       ├── string_notd_no_imports.v
    │   │       └── wasi_notd_no_imports.v
    │   ├── wasm_bare/
    │   │   ├── libc_impl.c.v
    │   │   └── memory_management.v
    │   └── wchar/
    │       ├── wchar.c.v
    │       └── wchar_test.v
    ├── cli/
    │   ├── README.md
    │   ├── cli_test.v
    │   ├── command.v
    │   ├── command_test.v
    │   ├── flag.v
    │   ├── flag_test.v
    │   ├── help.v
    │   ├── help_test.v
    │   ├── man.v
    │   ├── man_test.v
    │   ├── testdata/
    │   │   ├── default_command_flag.out
    │   │   ├── default_command_flag.vv
    │   │   ├── default_command_no_flag_err.out
    │   │   ├── default_command_no_flag_err.vv
    │   │   ├── default_help.out
    │   │   ├── default_help.vv
    │   │   ├── default_help_flag_no_command.out
    │   │   ├── default_help_flag_no_command.vv
    │   │   ├── default_version_flag_no_command.out
    │   │   ├── default_version_flag_no_command.vv
    │   │   ├── long_description.out
    │   │   ├── long_description.vv
    │   │   ├── no_execute.out
    │   │   └── no_execute.vv
    │   └── version.v
    ├── clipboard/
    │   ├── README.md
    │   ├── clipboard.v
    │   ├── clipboard_android.c.v
    │   ├── clipboard_darwin.c.v
    │   ├── clipboard_darwin.m
    │   ├── clipboard_default.c.v
    │   ├── clipboard_solaris.c.v
    │   ├── clipboard_test.v
    │   ├── clipboard_windows.c.v
    │   ├── dummy/
    │   │   └── dummy_clipboard.v
    │   └── x11/
    │       └── clipboard.c.v
    ├── compress/
    │   ├── README.md
    │   ├── compress.c.v
    │   ├── deflate/
    │   │   ├── README.md
    │   │   ├── deflate.v
    │   │   └── deflate_test.v
    │   ├── gzip/
    │   │   ├── README.md
    │   │   ├── gzip.v
    │   │   ├── gzip_test.v
    │   │   └── read_gz_files_test.v
    │   ├── szip/
    │   │   ├── README.md
    │   │   ├── szip.c.v
    │   │   └── szip_test.v
    │   ├── zlib/
    │   │   ├── README.md
    │   │   ├── zlib.v
    │   │   ├── zlib_miniz_compat_names_collision.h
    │   │   ├── zlib_miniz_compat_names_collision_test.c.v
    │   │   └── zlib_test.v
    │   └── zstd/
    │       ├── README.md
    │       ├── read_zstd_files_test.v
    │       ├── samples/
    │       │   ├── known.zst
    │       │   ├── readme_level_1.zst
    │       │   ├── readme_level_10.zst
    │       │   ├── readme_level_11.zst
    │       │   ├── readme_level_12.zst
    │       │   ├── readme_level_13.zst
    │       │   ├── readme_level_14.zst
    │       │   ├── readme_level_15.zst
    │       │   ├── readme_level_16.zst
    │       │   ├── readme_level_17.zst
    │       │   ├── readme_level_18.zst
    │       │   ├── readme_level_19.zst
    │       │   ├── readme_level_2.zst
    │       │   ├── readme_level_3.zst
    │       │   ├── readme_level_4.zst
    │       │   ├── readme_level_5.zst
    │       │   ├── readme_level_6.zst
    │       │   ├── readme_level_7.zst
    │       │   ├── readme_level_8.zst
    │       │   └── readme_level_9.zst
    │       ├── zstd.c.v
    │       ├── zstd_d_musl.c.v
    │       └── zstd_test.v
    ├── context/
    │   ├── README.md
    │   ├── cancel.v
    │   ├── cancel_test.v
    │   ├── context.v
    │   ├── deadline.v
    │   ├── deadline_test.v
    │   ├── empty.v
    │   ├── empty_test.v
    │   ├── onecontext/
    │   │   ├── README.md
    │   │   ├── onecontext.v
    │   │   └── onecontext_test.v
    │   ├── value.v
    │   └── value_test.v
    ├── coroutines/
    │   ├── README.md
    │   ├── coroutines.c.v
    │   └── sp_corrector.c
    ├── crypto/
    │   ├── README.md
    │   ├── aes/
    │   │   ├── aes.v
    │   │   ├── aes_cbc.v
    │   │   ├── aes_test.v
    │   │   ├── block_generic.v
    │   │   ├── const.v
    │   │   └── cypher_generic.v
    │   ├── bcrypt/
    │   │   ├── base64.v
    │   │   ├── bcrypt.v
    │   │   └── bcrypt_test.v
    │   ├── blake2b/
    │   │   ├── blake2b.v
    │   │   ├── blake2b_block_generic.v
    │   │   ├── blake2b_block_test.v
    │   │   ├── blake2b_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       ├── blake2b.awk
    │   │       ├── blake2b_test_vectors.json
    │   │       └── test_vectors.v
    │   ├── blake2s/
    │   │   ├── blake2s.v
    │   │   ├── blake2s_block_generic.v
    │   │   ├── blake2s_block_test.v
    │   │   ├── blake2s_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       ├── blake2s.awk
    │   │       ├── blake2s_test_vectors.json
    │   │       └── test_vectors.v
    │   ├── blake3/
    │   │   ├── blake3.v
    │   │   ├── blake3_block_generic.v
    │   │   ├── blake3_block_test.v
    │   │   ├── blake3_chunk.v
    │   │   ├── blake3_chunk_test.v
    │   │   ├── blake3_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       └── test_vectors.json
    │   ├── blowfish/
    │   │   ├── block.v
    │   │   ├── blowfish.v
    │   │   ├── blowfish_test.v
    │   │   └── const.v
    │   ├── cipher/
    │   │   ├── aes_cbc_test.v
    │   │   ├── aes_cfb_test.v
    │   │   ├── aes_ctr_test.v
    │   │   ├── aes_ofb_test.v
    │   │   ├── cbc.v
    │   │   ├── cfb.v
    │   │   ├── cfb_test.v
    │   │   ├── cipher.v
    │   │   ├── ctr.v
    │   │   ├── ctr_test.v
    │   │   ├── des_cbc_test.v
    │   │   ├── des_cfb_test.v
    │   │   ├── des_ctr_test.v
    │   │   ├── des_ofb_test.v
    │   │   ├── ofb.v
    │   │   ├── ofb_test.v
    │   │   └── xor_generic.v
    │   ├── crypto.v
    │   ├── des/
    │   │   ├── block.v
    │   │   ├── const.v
    │   │   ├── des.v
    │   │   └── des_test.v
    │   ├── ecdsa/
    │   │   ├── README.md
    │   │   ├── ecdsa.c.v
    │   │   ├── ecdsa.v
    │   │   ├── ecdsa_test.v
    │   │   ├── example/
    │   │   │   ├── ecdsa_seed_test.v
    │   │   │   ├── ensure_compatibility_with_net_openssl_test.v
    │   │   │   └── example1.v
    │   │   ├── util.v
    │   │   └── util_test.v
    │   ├── ed25519/
    │   │   ├── LICENSE
    │   │   ├── README.md
    │   │   ├── ed25519.v
    │   │   ├── examples/
    │   │   │   └── example.v
    │   │   └── internal/
    │   │       ├── ed25519_test.v
    │   │       └── edwards25519/
    │   │           ├── README.md
    │   │           ├── edwards25519.v
    │   │           ├── element.v
    │   │           ├── element_test.v
    │   │           ├── extra.v
    │   │           ├── extra_test.v
    │   │           ├── point.v
    │   │           ├── point_test.v
    │   │           ├── scalar.v
    │   │           ├── scalar_alias_test.v
    │   │           ├── scalar_test.v
    │   │           ├── scalarmult.v
    │   │           ├── scalarmult_test.v
    │   │           ├── table.v
    │   │           └── table_test.v
    │   ├── hmac/
    │   │   ├── hmac.v
    │   │   └── hmac_test.v
    │   ├── internal/
    │   │   └── subtle/
    │   │       ├── aliasing.v
    │   │       ├── comparison.v
    │   │       └── comparison_test.v
    │   ├── md5/
    │   │   ├── md5.v
    │   │   ├── md5_test.v
    │   │   └── md5block_generic.v
    │   ├── pbkdf2/
    │   │   ├── pbkdf2.v
    │   │   └── pbkdf2_test.v
    │   ├── pem/
    │   │   ├── decode.v
    │   │   ├── encode.v
    │   │   ├── pem.v
    │   │   └── pem_test.v
    │   ├── rand/
    │   │   ├── crypto_rand_bytes_test.v
    │   │   ├── rand.v
    │   │   ├── rand_darwin.c.v
    │   │   ├── rand_default.c.v
    │   │   ├── rand_freebsd.c.v
    │   │   ├── rand_linux.c.v
    │   │   ├── rand_openbsd.c.v
    │   │   ├── rand_solaris.c.v
    │   │   ├── rand_windows.c.v
    │   │   ├── utils.v
    │   │   └── utils_test.v
    │   ├── rc4/
    │   │   ├── rc4.v
    │   │   └── rc4_test.v
    │   ├── ripemd160/
    │   │   ├── ripemd160.v
    │   │   ├── ripemd160_test.v
    │   │   └── ripemd160block.v
    │   ├── scrypt/
    │   │   ├── scrypt.v
    │   │   └── scrypt_test.v
    │   ├── sha1/
    │   │   ├── sha1.v
    │   │   ├── sha1_shavs_monte_test.v
    │   │   ├── sha1_shavs_test.v
    │   │   ├── sha1_test.v
    │   │   └── sha1block_generic.v
    │   ├── sha256/
    │   │   ├── sha224_shavs_monte_test.v
    │   │   ├── sha224_shavs_test.v
    │   │   ├── sha256.v
    │   │   ├── sha256_shavs_monte_test.v
    │   │   ├── sha256_shavs_test.v
    │   │   ├── sha256_test.v
    │   │   └── sha256block_generic.v
    │   ├── sha3/
    │   │   ├── sha3.v
    │   │   ├── sha3_state_generic.v
    │   │   ├── sha3_state_test.v
    │   │   ├── sha3_test.v
    │   │   ├── usage_test.v
    │   │   ├── xof.v
    │   │   └── xof_test.v
    │   └── sha512/
    │       ├── sha384_shavs_monte_test.v
    │       ├── sha384_shavs_test.v
    │       ├── sha512.v
    │       ├── sha512_224_shavs_monte_test.v
    │       ├── sha512_224_shavs_test.v
    │       ├── sha512_256_shavs_monte_test.v
    │       ├── sha512_256_shavs_test.v
    │       ├── sha512_shavs_monte_test.v
    │       ├── sha512_shavs_test.v
    │       ├── sha512_test.v
    │       └── sha512block_generic.v
    ├── datatypes/
    │   ├── README.md
    │   ├── bloom_filter.v
    │   ├── bloom_filter_test.v
    │   ├── bstree.v
    │   ├── bstree_test.v
    │   ├── doubly_linked_list.v
    │   ├── doubly_linked_list_test.v
    │   ├── fsm/
    │   │   ├── README.md
    │   │   ├── fsm.v
    │   │   ├── fsm_test.v
    │   │   └── tools/
    │   │       └── fsm_graph.v
    │   ├── heap.v
    │   ├── heap_test.v
    │   ├── linked_list.v
    │   ├── linked_list_test.v
    │   ├── lockfree/
    │   │   ├── README.md
    │   │   ├── bench/
    │   │   │   ├── bench_channel.v
    │   │   │   └── bench_ringbuffer.v
    │   │   ├── counter.v
    │   │   ├── counter_test.v
    │   │   ├── lockfree.v
    │   │   ├── ringbuffer.v
    │   │   └── ringbuffer_test.v
    │   ├── quadtree.v
    │   ├── quadtree_test.v
    │   ├── queue.v
    │   ├── queue_test.v
    │   ├── ringbuffer.v
    │   ├── ringbuffer_test.v
    │   ├── set.v
    │   ├── set_test.v
    │   ├── stack.v
    │   └── stack_test.v
    ├── db/
    │   ├── README.md
    │   ├── mssql/
    │   │   ├── README.md
    │   │   ├── _cdef_nix.c.v
    │   │   ├── _cdef_windows.c.v
    │   │   ├── _cdefs.c.v
    │   │   ├── config.v
    │   │   ├── mssql.c.v
    │   │   ├── result.v
    │   │   └── stmt_handle.c.v
    │   ├── mysql/
    │   │   ├── README.md
    │   │   ├── _cdefs.c.v
    │   │   ├── _cdefs_nix.c.v
    │   │   ├── _cdefs_windows.c.v
    │   │   ├── consts.c.v
    │   │   ├── enums.v
    │   │   ├── mysql.c.v
    │   │   ├── mysql_orm_test.v
    │   │   ├── mysql_test.v
    │   │   ├── orm.c.v
    │   │   ├── pool.v
    │   │   ├── prepared_stmt_test.v
    │   │   ├── result.c.v
    │   │   ├── stmt.c.v
    │   │   └── utils.c.v
    │   ├── pg/
    │   │   ├── README.md
    │   │   ├── compatibility.h
    │   │   ├── oid.v
    │   │   ├── orm.v
    │   │   ├── pg.c.v
    │   │   ├── pg_double_test.v
    │   │   ├── pg_orm_test.v
    │   │   ├── pg_result_test.v
    │   │   ├── pg_test.v
    │   │   └── pool.v
    │   ├── redis/
    │   │   ├── README.md
    │   │   ├── redis.v
    │   │   └── redis_test.v
    │   └── sqlite/
    │       ├── README.md
    │       ├── install_thirdparty_sqlite.vsh
    │       ├── orm.v
    │       ├── parent_child_test.v
    │       ├── pool.v
    │       ├── result_code.v
    │       ├── sqlite.c.v
    │       ├── sqlite_comptime_field_test.v
    │       ├── sqlite_f32_test.v
    │       ├── sqlite_orm_option_field_test.v
    │       ├── sqlite_orm_test.v
    │       ├── sqlite_test.v
    │       ├── sqlite_vfs_lowlevel_test.v
    │       ├── stmt.c.v
    │       └── vfs_lowlevel.c.v
    ├── dl/
    │   ├── README.md
    │   ├── dl.v
    │   ├── dl_nix.c.v
    │   ├── dl_test.v
    │   ├── dl_windows.c.v
    │   ├── loader/
    │   │   ├── README.md
    │   │   ├── loader.v
    │   │   └── loader_test.v
    │   └── rtld_next_test.v
    ├── dlmalloc/
    │   ├── dlmalloc.v
    │   ├── dlmalloc_sys_nix.c.v
    │   ├── dlmalloc_sys_windows.c.v
    │   └── global.v
    ├── encoding/
    │   ├── README.md
    │   ├── base32/
    │   │   ├── base32.v
    │   │   └── base32_test.v
    │   ├── base58/
    │   │   ├── alphabet.v
    │   │   ├── base58.v
    │   │   ├── base58_test.v
    │   │   └── base58_usage_test.v
    │   ├── base64/
    │   │   ├── base64.c.v
    │   │   ├── base64.v
    │   │   ├── base64_memory_test.v
    │   │   └── base64_test.v
    │   ├── binary/
    │   │   ├── README.md
    │   │   ├── big_endian.v
    │   │   ├── big_endian_fixed.v
    │   │   ├── big_endian_fixed_test.v
    │   │   ├── big_endian_test.v
    │   │   ├── little_endian.v
    │   │   ├── little_endian_fixed.v
    │   │   ├── little_endian_fixed_test.v
    │   │   ├── little_endian_test.v
    │   │   ├── serialize.v
    │   │   ├── serialize_test.v
    │   │   └── unions.v
    │   ├── csv/
    │   │   ├── README.md
    │   │   ├── README_csv_reader.md
    │   │   ├── csv_reader_eol_test.v
    │   │   ├── csv_reader_random_access.v
    │   │   ├── csv_reader_sequential.v
    │   │   ├── csv_reader_test.v
    │   │   ├── reader.v
    │   │   ├── reader_test.v
    │   │   ├── to_struct_arr.v
    │   │   ├── utils.v
    │   │   ├── utils_test.v
    │   │   ├── writer.v
    │   │   └── writer_test.v
    │   ├── hex/
    │   │   ├── hex.v
    │   │   └── hex_test.v
    │   ├── html/
    │   │   ├── escape.v
    │   │   ├── escape_test.v
    │   │   └── named_references.v
    │   ├── iconv/
    │   │   ├── iconv.v
    │   │   ├── iconv_nix.c.v
    │   │   ├── iconv_test.v
    │   │   └── iconv_windows.c.v
    │   ├── leb128/
    │   │   ├── leb128.v
    │   │   └── leb128_test.v
    │   ├── txtar/
    │   │   ├── README.md
    │   │   ├── pack_unpack.v
    │   │   ├── txtar.v
    │   │   └── txtar_test.v
    │   ├── utf8/
    │   │   ├── east_asian/
    │   │   │   ├── east_asian_width.v
    │   │   │   └── east_asian_width_test.v
    │   │   ├── utf8.v
    │   │   ├── utf8_is_punct_test.v
    │   │   ├── utf8_tables.v
    │   │   ├── utf8_util.v
    │   │   ├── utf8_util_test.v
    │   │   └── validate/
    │   │       ├── encoding_utf8_test.v
    │   │       └── validate_utf8.v
    │   ├── vorbis/
    │   │   ├── README.md
    │   │   ├── link_to_libm.c.v
    │   │   ├── version.v
    │   │   ├── vorbis.c.v
    │   │   ├── vorbis.v
    │   │   └── vorbis_test.v
    │   └── xml/
    │       ├── README.md
    │       ├── encoding.v
    │       ├── encoding_test.v
    │       ├── entity.v
    │       ├── entity_test.v
    │       ├── newline_test.v
    │       ├── parser.v
    │       ├── parser_test.v
    │       ├── query.v
    │       ├── query_test.v
    │       ├── reader_util.v
    │       ├── test/
    │       │   ├── gtk/
    │       │   │   └── gtk_test.v
    │       │   ├── local/
    │       │   │   ├── 01_mdn_example/
    │       │   │   │   ├── hello_world.xml
    │       │   │   │   └── hello_world_test.v
    │       │   │   ├── 02_note_message/
    │       │   │   │   ├── note.xml
    │       │   │   │   └── note_test.v
    │       │   │   ├── 03_cd_catalogue/
    │       │   │   │   ├── cd_catalog.xml
    │       │   │   │   └── cd_test.v
    │       │   │   ├── 04_empty_file/
    │       │   │   │   ├── empty.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 05_single_element/
    │       │   │   │   ├── root.xml
    │       │   │   │   └── root_test.v
    │       │   │   ├── 06_nested_elements/
    │       │   │   │   ├── nested.xml
    │       │   │   │   └── nested_test.v
    │       │   │   ├── 07_mixed_contents/
    │       │   │   │   ├── mixed.xml
    │       │   │   │   └── mixed_test.v
    │       │   │   ├── 08_comments/
    │       │   │   │   ├── comment.xml
    │       │   │   │   └── comment_test.v
    │       │   │   ├── 09_malformed/
    │       │   │   │   ├── expected_error.txt
    │       │   │   │   └── malformed.xml
    │       │   │   ├── 10_missing_tag/
    │       │   │   │   ├── expected_error.txt
    │       │   │   │   └── malformed.xml
    │       │   │   ├── 11_cdata_content/
    │       │   │   │   ├── cdata.xml
    │       │   │   │   └── cdata_test.v
    │       │   │   ├── 12_doctype_entity/
    │       │   │   │   ├── entity.xml
    │       │   │   │   ├── entity_expected.xml
    │       │   │   │   └── spec_entity_test.v
    │       │   │   ├── 13_doctype_element/
    │       │   │   │   ├── doctype_test.v
    │       │   │   │   └── element.xml
    │       │   │   ├── 14_attributes/
    │       │   │   │   ├── attributes.xml
    │       │   │   │   └── attributes_test.v
    │       │   │   ├── 15_incomplete_entity_1/
    │       │   │   │   ├── entity.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 16_incomplete_entity_2/
    │       │   │   │   ├── entity.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 17_incomplete_element_1/
    │       │   │   │   ├── element.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 18_incomplete_element_2/
    │       │   │   │   ├── element.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 19_single_letter_tag/
    │       │   │   │   ├── shared.xml
    │       │   │   │   └── shared_test.v
    │       │   │   └── 20_bom_file/
    │       │   │       └── bom_test.v
    │       │   └── spec_test.v
    │       ├── types.v
    │       └── validation.v
    ├── eventbus/
    │   ├── README.md
    │   ├── eventbus.v
    │   └── eventbus_test.v
    ├── fasthttp/
    │   ├── README.md
    │   ├── fasthttp.v
    │   ├── fasthttp_darwin.v
    │   ├── fasthttp_linux.v
    │   ├── fasthttp_test.v
    │   ├── fasthttp_windows.v
    │   ├── request_parser.v
    │   └── request_parser_test.v
    ├── flag/
    │   ├── README.md
    │   ├── cmd_exe_style_flags_test.v
    │   ├── default_flag_options_test.v
    │   ├── flag.v
    │   ├── flag_autofree_test.v
    │   ├── flag_from_test.v
    │   ├── flag_parse_test.v
    │   ├── flag_test.v
    │   ├── flag_to.v
    │   ├── flag_to_bool_test.v
    │   ├── flag_to_doc_test.v
    │   ├── flag_to_edge_case_1_test.v
    │   ├── flag_to_misc_test.v
    │   ├── flag_to_relaxed_test.v
    │   ├── flag_to_tail_bool_test.v
    │   ├── flag_to_tail_test.v
    │   ├── gnu_style_flags_test.v
    │   ├── go_flag_style_flags_test.v
    │   ├── posix_style_flags_test.v
    │   ├── testdata/
    │   │   ├── simplest_flag_program.dashdash.help.out
    │   │   ├── simplest_flag_program.dashdash.version.out
    │   │   ├── simplest_flag_program.help.out
    │   │   ├── simplest_flag_program.out
    │   │   ├── simplest_flag_program.v
    │   │   ├── simplest_flag_program.version.out
    │   │   ├── usage_example.help.out
    │   │   ├── usage_example.out
    │   │   ├── usage_example.v
    │   │   └── usage_example.version.out
    │   ├── usage_example_test.v
    │   ├── v_flag_parser_style_flags_test.v
    │   └── v_style_flags_test.v
    ├── fontstash/
    │   ├── README.md
    │   ├── a_d_use_freetype.v
    │   ├── fontstash.c.v
    │   ├── fontstash_enums.v
    │   ├── fontstash_funcs.c.v
    │   └── fontstash_structs.c.v
    ├── gg/
    │   ├── README.md
    │   ├── bezier.c.v
    │   ├── color.v
    │   ├── color_test.v
    │   ├── draw.c.v
    │   ├── draw_fns_api_test.v
    │   ├── enums.v
    │   ├── gg.c.v
    │   ├── gg.js.v
    │   ├── gg.v
    │   ├── gg_android_outside_termux.c.v
    │   ├── gg_darwin.c.v
    │   ├── gg_darwin.m
    │   ├── gg_ui.c.v
    │   ├── image.c.v
    │   ├── image.js.v
    │   ├── image.v
    │   ├── image_test.v
    │   ├── keyboard.v
    │   ├── m4/
    │   │   ├── graphic.v
    │   │   ├── m4_test.v
    │   │   ├── matrix.v
    │   │   └── vector.v
    │   ├── recorder.c.v
    │   ├── recorder.js.v
    │   ├── recorder.v
    │   ├── testdata/
    │   │   ├── draw_arcs.vv
    │   │   ├── draw_circles.vv
    │   │   ├── draw_elipses.vv
    │   │   ├── draw_polygons.vv
    │   │   ├── draw_rectangles.vv
    │   │   ├── draw_rounded_rect_empty.vv
    │   │   ├── draw_rounded_rect_filled.vv
    │   │   ├── draw_simple_polygons.vv
    │   │   ├── draw_text.vv
    │   │   ├── remove_image_from_cache.vv
    │   │   └── tweak_circles.vv
    │   ├── text_rendering.c.v
    │   ├── text_rendering.js.v
    │   └── text_rendering.v
    ├── goroutines/
    │   ├── README.md
    │   ├── atomic_ops.c.v
    │   ├── chan.v
    │   ├── context_nix.c.v
    │   ├── context_nix.h
    │   ├── context_windows.c.v
    │   ├── examples/
    │   │   ├── basic_goroutine.v
    │   │   ├── goroutine_benchmark.go
    │   │   ├── goroutine_benchmark.v
    │   │   └── spawn_benchmark.v
    │   ├── goroutines.v
    │   ├── goroutines_test.v
    │   ├── goroutines_tls.h
    │   ├── init.v
    │   ├── park.v
    │   ├── scheduler.v
    │   └── tls.c
    ├── gx/
    │   ├── README.md
    │   ├── color.v
    │   ├── image.v
    │   ├── text.c.v
    │   ├── text.js.v
    │   └── text.v
    ├── hash/
    │   ├── README.md
    │   ├── crc32/
    │   │   ├── crc32.v
    │   │   └── crc32_test.v
    │   ├── fnv1a/
    │   │   ├── fnv1a.v
    │   │   └── fnv1a_test.v
    │   ├── hash.v
    │   ├── hash_compiles_test.v
    │   ├── wyhash.c.v
    │   ├── wyhash.js.v
    │   └── wyhash.v
    ├── io/
    │   ├── README.md
    │   ├── buffered_reader.v
    │   ├── buffered_writer.v
    │   ├── buffered_writer_test.v
    │   ├── custom_string_reading_test.v
    │   ├── io.v
    │   ├── io_cp_test.v
    │   ├── io_test.v
    │   ├── multi_writer.v
    │   ├── multi_writer_test.v
    │   ├── os_file_reader_test.v
    │   ├── reader.v
    │   ├── reader_test.v
    │   ├── readerwriter.v
    │   ├── string_reader/
    │   │   ├── string_reader.v
    │   │   └── string_reader_test.v
    │   ├── util/
    │   │   ├── util.v
    │   │   └── util_test.v
    │   └── writer.v
    ├── js/
    │   ├── README.md
    │   ├── dom/
    │   │   ├── dom.js.v
    │   │   └── dom.v
    │   ├── js.js.v
    │   └── js.v
    ├── json/
    │   ├── README.md
    │   ├── cjson/
    │   │   ├── cjson_test.v
    │   │   └── cjson_wrapper.c.v
    │   ├── json_primitives.c.v
    │   └── tests/
    │       ├── json_alias_test.v
    │       ├── json_decode_anon_struct_test.v
    │       ├── json_decode_arr_ref_test.v
    │       ├── json_decode_embed_test.v
    │       ├── json_decode_option_alias_field_test.v
    │       ├── json_decode_option_alias_test.v
    │       ├── json_decode_option_enum_test.v
    │       ├── json_decode_struct_default_test.v
    │       ├── json_decode_struct_ptr_test.v
    │       ├── json_decode_struct_with_default_test.v
    │       ├── json_decode_sumtype_option_test.v
    │       ├── json_decode_test.v
    │       ├── json_decode_with_encode_arg_test.v
    │       ├── json_decode_with_generic_array_test.v
    │       ├── json_decode_with_generic_test.v
    │       ├── json_decode_with_option_arg_test.v
    │       ├── json_decode_with_sumtype_test.v
    │       ├── json_embed_test.v
    │       ├── json_encode_default_option_none_test.v
    │       ├── json_encode_embed_test.v
    │       ├── json_encode_enum_test.v
    │       ├── json_encode_map_test.v
    │       ├── json_encode_primite_test.v
    │       ├── json_encode_ptr_test.v
    │       ├── json_encode_recursive_ptr_test.v
    │       ├── json_encode_struct_with_option_field_test.v
    │       ├── json_encode_sumtype_test.v
    │       ├── json_encode_with_mut_test.v
    │       ├── json_encode_with_ptr_test.v
    │       ├── json_fixed_array_test.v
    │       ├── json_generic_array_test.v
    │       ├── json_i32_test.v
    │       ├── json_is_null_attr_test.v
    │       ├── json_mut_map_test.v
    │       ├── json_omitempty_test.v
    │       ├── json_omitempty_types_test.v
    │       ├── json_option_alias_test.v
    │       ├── json_option_none_test.v
    │       ├── json_option_raw_test.v
    │       ├── json_option_struct_test.v
    │       ├── json_option_test.v
    │       ├── json_prim_type_validation_test.v
    │       ├── json_raw_test.v
    │       ├── json_struct_option_test.v
    │       ├── json_sumtype_test.v
    │       └── json_test.v
    ├── log/
    │   ├── README.md
    │   ├── common.v
    │   ├── default.c.v
    │   ├── default.v
    │   ├── default_test.v
    │   ├── file_log_test.v
    │   ├── log.v
    │   ├── log_test.v
    │   ├── logger_interface.v
    │   └── safe_log.v
    ├── macos/
    │   ├── macos_darwin.c.v
    │   └── objc_bridge.h
    ├── maps/
    │   ├── README.md
    │   ├── maps.v
    │   ├── maps_clone_test.v
    │   └── maps_test.v
    ├── math/
    │   ├── README.md
    │   ├── ROADMAP.md
    │   ├── abs.js.v
    │   ├── big/
    │   │   ├── array_ops.v
    │   │   ├── array_ops_test.v
    │   │   ├── bench/
    │   │   │   └── bench_big_dividing_big_numbers_big_pow.v
    │   │   ├── big.js.v
    │   │   ├── big.v
    │   │   ├── big_division_test.v
    │   │   ├── big_test.v
    │   │   ├── consts_test.v
    │   │   ├── division_array_ops.v
    │   │   ├── division_array_ops_test.v
    │   │   ├── exponentiation.v
    │   │   ├── integer.v
    │   │   ├── json_custom.v
    │   │   ├── large_number_power_and_string_conversion_test.v
    │   │   ├── min_max.v
    │   │   ├── special_array_ops.v
    │   │   └── special_array_ops_test.v
    │   ├── bits/
    │   │   ├── bits.amd64.v
    │   │   ├── bits.arm64.v
    │   │   ├── bits.c.v
    │   │   ├── bits.v
    │   │   ├── bits_tables.v
    │   │   ├── bits_test.v
    │   │   ├── unsafe_bits.js.v
    │   │   └── unsafe_bits.v
    │   ├── bits.js.v
    │   ├── bits.v
    │   ├── cbrt.js.v
    │   ├── cbrt.v
    │   ├── complex/
    │   │   ├── complex.v
    │   │   └── complex_test.v
    │   ├── const.v
    │   ├── div.v
    │   ├── easing/
    │   │   ├── easing.v
    │   │   └── easing_test.v
    │   ├── erf.v
    │   ├── erf_test.v
    │   ├── exp.c.v
    │   ├── exp.js.v
    │   ├── exp.v
    │   ├── factorial.v
    │   ├── factorial_tables.v
    │   ├── factorial_test.v
    │   ├── floor.js.v
    │   ├── floor.v
    │   ├── floor_test.v
    │   ├── fractions/
    │   │   ├── approximations.v
    │   │   ├── approximations_test.v
    │   │   ├── fraction.v
    │   │   └── fraction_test.v
    │   ├── gamma.v
    │   ├── gamma_tables.v
    │   ├── hypot.v
    │   ├── internal/
    │   │   └── machine.v
    │   ├── interpolation.v
    │   ├── interpolation_bezier.v
    │   ├── interpolation_test.v
    │   ├── invhyp.v
    │   ├── invhyp_test.v
    │   ├── invtrig.js.v
    │   ├── invtrig.v
    │   ├── limit.v
    │   ├── log.c.v
    │   ├── log.v
    │   ├── log_test.v
    │   ├── math.c.v
    │   ├── math.v
    │   ├── math_bench_test.v
    │   ├── math_test.v
    │   ├── min_max_abs.v
    │   ├── min_max_abs_test.v
    │   ├── modf.v
    │   ├── modulo.v
    │   ├── modulo_test.v
    │   ├── nextafter.v
    │   ├── poly.v
    │   ├── pow.c.v
    │   ├── pow.v
    │   ├── q_rsqrt.v
    │   ├── scalbn.v
    │   ├── sin.c.v
    │   ├── sin.js.v
    │   ├── sin.v
    │   ├── sinh.js.v
    │   ├── sinh.v
    │   ├── sqrt.c.v
    │   ├── sqrt.v
    │   ├── square.v
    │   ├── square_test.v
    │   ├── stats/
    │   │   ├── stats.v
    │   │   └── stats_test.v
    │   ├── tan.c.v
    │   ├── tan.js.v
    │   ├── tan.v
    │   ├── tanh.js.v
    │   ├── tanh.v
    │   ├── unsafe.js.v
    │   ├── unsafe.v
    │   ├── unsigned/
    │   │   ├── uint128.v
    │   │   ├── uint128_test.v
    │   │   ├── uint256.v
    │   │   └── uint256_test.v
    │   └── vec/
    │       ├── vec2.v
    │       ├── vec2_test.v
    │       ├── vec3.v
    │       ├── vec3_test.v
    │       ├── vec4.v
    │       └── vec4_test.v
    ├── net/
    │   ├── README.md
    │   ├── aasocket.c.v
    │   ├── address.c.v
    │   ├── address_android.c.v
    │   ├── address_darwin.c.v
    │   ├── address_default.c.v
    │   ├── address_dragonfly.c.v
    │   ├── address_freebsd.c.v
    │   ├── address_linux.c.v
    │   ├── address_netbsd.c.v
    │   ├── address_openbsd.c.v
    │   ├── address_test.c.v
    │   ├── address_windows.c.v
    │   ├── afunix.h
    │   ├── common.c.v
    │   ├── connection.v
    │   ├── conv/
    │   │   ├── README.md
    │   │   ├── conv.v
    │   │   └── conv_test.v
    │   ├── dial_tcp_with_bind_test.v
    │   ├── dialer.v
    │   ├── errors.c.v
    │   ├── ftp/
    │   │   ├── ftp.v
    │   │   └── ftp_test.v
    │   ├── html/
    │   │   ├── README.md
    │   │   ├── data_structures.v
    │   │   ├── dom.v
    │   │   ├── dom_test.v
    │   │   ├── html.v
    │   │   ├── html_test.v
    │   │   ├── parser.v
    │   │   ├── parser_test.v
    │   │   ├── tag.v
    │   │   └── tag_test.v
    │   ├── http/
    │   │   ├── backend.c.v
    │   │   ├── backend_vschannel_windows.c.v
    │   │   ├── build_request_headers_test.v
    │   │   ├── chunked/
    │   │   │   ├── dechunk.v
    │   │   │   └── dechunk_test.v
    │   │   ├── cookie.v
    │   │   ├── cookie_test.v
    │   │   ├── download.v
    │   │   ├── download_nix.c.v
    │   │   ├── download_progress.v
    │   │   ├── download_silent_downloader.v
    │   │   ├── download_terminal_downloader.v
    │   │   ├── download_windows.c.v
    │   │   ├── file/
    │   │   │   ├── entity.v
    │   │   │   ├── folder_index.v
    │   │   │   └── static_server.v
    │   │   ├── header.v
    │   │   ├── header_test.v
    │   │   ├── http.v
    │   │   ├── http_httpbin_test.v
    │   │   ├── http_proxy.v
    │   │   ├── http_proxy_test.v
    │   │   ├── http_test.v
    │   │   ├── method.v
    │   │   ├── mime/
    │   │   │   ├── build.vsh
    │   │   │   ├── db.v
    │   │   │   ├── mime.v
    │   │   │   └── mime_test.v
    │   │   ├── request.v
    │   │   ├── request_receive_test.v
    │   │   ├── request_test.v
    │   │   ├── response.v
    │   │   ├── response_test.v
    │   │   ├── server.v
    │   │   ├── server_test.v
    │   │   ├── status.v
    │   │   ├── status_test.v
    │   │   ├── util.v
    │   │   └── version.v
    │   ├── ipv6_v6only.h
    │   ├── jsonrpc/
    │   │   ├── README.md
    │   │   ├── client.v
    │   │   ├── interceptors.v
    │   │   ├── jsonrpc.v
    │   │   ├── jsonrpc_test.v
    │   │   ├── logging.v
    │   │   ├── server.v
    │   │   └── server_test.v
    │   ├── mbedtls/
    │   │   ├── mbedtls.c.v
    │   │   ├── mbedtls_compiles_test.v
    │   │   ├── mbedtls_sslconn_shutdown_does_not_panic_test.v
    │   │   └── ssl_connection.c.v
    │   ├── net_nix.c.v
    │   ├── net_windows.c.v
    │   ├── openssl/
    │   │   ├── openssl.c.v
    │   │   ├── openssl_compiles_test.c.v
    │   │   ├── openssl_import_tcp_accept_test.c.v
    │   │   ├── openssl_openbsd.c.v
    │   │   └── ssl_connection.c.v
    │   ├── raw.c.v
    │   ├── raw_test.v
    │   ├── smtp/
    │   │   ├── smtp.v
    │   │   └── smtp_test.v
    │   ├── socket.c.v
    │   ├── socket_options.c.v
    │   ├── socks/
    │   │   ├── socks5.v
    │   │   └── socks5_test.v
    │   ├── ssl/
    │   │   ├── dialer.v
    │   │   ├── ssl_compiles_test.v
    │   │   ├── ssl_d_use_openssl.v
    │   │   └── ssl_notd_use_openssl.v
    │   ├── tcp.c.v
    │   ├── tcp_non_blocking_test.v
    │   ├── tcp_read_line.c.v
    │   ├── tcp_self_dial_from_many_clients_test.v
    │   ├── tcp_simple_client_server_test.v
    │   ├── tcp_test.v
    │   ├── udp.c.v
    │   ├── udp_test.v
    │   ├── unix/
    │   │   ├── aasocket.c.v
    │   │   ├── common.c.v
    │   │   ├── stream.c.v
    │   │   ├── unix_socket_test.v
    │   │   └── use_net_and_net_unix_together_test.v
    │   ├── urllib/
    │   │   ├── urllib.v
    │   │   ├── urllib_test.v
    │   │   ├── values.v
    │   │   └── values_test.v
    │   ├── util.v
    │   ├── utils_test.v
    │   └── websocket/
    │       ├── events.v
    │       ├── handshake.v
    │       ├── io.v
    │       ├── message.v
    │       ├── tests/
    │       │   └── autobahn/
    │       │       ├── README.md
    │       │       ├── autobahn_client.v
    │       │       ├── autobahn_client_wss.v
    │       │       ├── autobahn_server.v
    │       │       ├── docker-compose.yml
    │       │       ├── fuzzing_server/
    │       │       │   ├── Dockerfile
    │       │       │   ├── check_results.py
    │       │       │   └── config/
    │       │       │       ├── fuzzingclient.json
    │       │       │       └── fuzzingserver.json
    │       │       ├── fuzzing_server_wss/
    │       │       │   ├── Dockerfile
    │       │       │   ├── check_results.py
    │       │       │   └── config/
    │       │       │       ├── fuzzingserver.json
    │       │       │       ├── server.crt
    │       │       │       ├── server.csr
    │       │       │       ├── server.key
    │       │       │       └── server.pem
    │       │       ├── local_run/
    │       │       │   ├── Dockerfile
    │       │       │   ├── autobahn_client.v
    │       │       │   └── autobahn_client_wss.v
    │       │       └── ws_test/
    │       │           └── Dockerfile
    │       ├── uri.v
    │       ├── utils.v
    │       ├── websocket_client.v
    │       ├── websocket_nix.c.v
    │       ├── websocket_server.v
    │       ├── websocket_test.v
    │       └── websocket_windows.c.v
    ├── orm/
    │   ├── README.md
    │   ├── orm.v
    │   ├── orm_aggregate_test.v
    │   ├── orm_complex_where_test.v
    │   ├── orm_create_and_drop_test.v
    │   ├── orm_custom_operators_test.v
    │   ├── orm_embed_test.v
    │   ├── orm_fk_test.v
    │   ├── orm_fn_calls_test.v
    │   ├── orm_fn_test.v
    │   ├── orm_func.v
    │   ├── orm_func_test.v
    │   ├── orm_generic_struct_field_test.v
    │   ├── orm_generic_test.v
    │   ├── orm_generic_where_shadow_test.v
    │   ├── orm_insert_reserved_name_test.v
    │   ├── orm_insert_test.v
    │   ├── orm_interface_test.v
    │   ├── orm_join_test.v
    │   ├── orm_last_id_test.v
    │   ├── orm_mut_connection_test.v
    │   ├── orm_mut_db_test.v
    │   ├── orm_nested_struct_test.v
    │   ├── orm_null_test.v
    │   ├── orm_option_array_test.v
    │   ├── orm_option_subselect_test.v
    │   ├── orm_option_time_test.v
    │   ├── orm_order_by_custom_field_test.v
    │   ├── orm_references_test.v
    │   ├── orm_result_test.v
    │   ├── orm_serial_attribute_test.v
    │   ├── orm_sql_or_blocks_test.v
    │   ├── orm_string_interpolation_in_where_test.v
    │   ├── orm_sum_type_insert_test.v
    │   ├── orm_test.v
    │   ├── orm_transaction_test.v
    │   ├── orm_where_in_test.v
    │   └── transaction.v
    ├── os/
    │   ├── README.md
    │   ├── args.v
    │   ├── asset/
    │   │   ├── README.md
    │   │   └── asset.v
    │   ├── bare/
    │   │   └── bare_example_linux.v
    │   ├── cmdline/
    │   │   ├── cmdline.v
    │   │   └── cmdline_test.v
    │   ├── command.c.v
    │   ├── command_test.v
    │   ├── const.v
    │   ├── const_nix.c.v
    │   ├── const_windows.c.v
    │   ├── debugger_darwin.c.v
    │   ├── debugger_default.c.v
    │   ├── debugger_freebsd.c.v
    │   ├── debugger_linux.c.v
    │   ├── debugger_openbsd.c.v
    │   ├── debugger_windows.c.v
    │   ├── dir_expansions_test.v
    │   ├── environment.c.v
    │   ├── environment.js.v
    │   ├── environment_test.v
    │   ├── fd.c.v
    │   ├── file.c.v
    │   ├── file.js.v
    │   ├── file_buffering.c.v
    │   ├── file_buffering_test.v
    │   ├── file_le_be.c.v
    │   ├── file_le_be_test.v
    │   ├── file_test.v
    │   ├── filelock/
    │   │   ├── filelock_test.v
    │   │   ├── lib.v
    │   │   ├── lib_nix.c.v
    │   │   └── lib_windows.c.v
    │   ├── filepath.v
    │   ├── filepath_test.v
    │   ├── filepath_windows.v
    │   ├── find_abs_path_of_executable_test.v
    │   ├── font/
    │   │   └── font.v
    │   ├── glob_test.v
    │   ├── inode.c.v
    │   ├── inode_test.v
    │   ├── join_path_test.v
    │   ├── notify/
    │   │   ├── backend_darwin.c.v
    │   │   ├── backend_default.c.v
    │   │   ├── backend_linux.c.v
    │   │   ├── kqueue.h
    │   │   ├── notify.v
    │   │   └── notify_test.c.v
    │   ├── open_and_read_from_file_test.js.v
    │   ├── open_uri_default.c.v
    │   ├── open_uri_windows.c.v
    │   ├── os.c.v
    │   ├── os.js.v
    │   ├── os.v
    │   ├── os_android_outside_termux.c.v
    │   ├── os_args_autofree_test.v
    │   ├── os_darwin.c.v
    │   ├── os_js.js.v
    │   ├── os_linux.c.v
    │   ├── os_nix.c.v
    │   ├── os_stat_default.c.v
    │   ├── os_stat_test.v
    │   ├── os_stat_windows.c.v
    │   ├── os_structs_dirent_default.c.v
    │   ├── os_structs_sigaction_default.c.v
    │   ├── os_structs_stat_default.c.v
    │   ├── os_structs_stat_linux.c.v
    │   ├── os_structs_stat_windows.c.v
    │   ├── os_structs_utsname_default.c.v
    │   ├── os_test.c.v
    │   ├── os_windows.c.v
    │   ├── password_nix.c.v
    │   ├── password_windows.c.v
    │   ├── pipe.c.v
    │   ├── pipe_test.c.v
    │   ├── process.c.v
    │   ├── process.js.v
    │   ├── process.v
    │   ├── process_args_test.v
    │   ├── process_nix.c.v
    │   ├── process_test.v
    │   ├── process_windows.c.v
    │   ├── signal.c.v
    │   ├── signal.js.v
    │   ├── signal.v
    │   ├── signal_darwin.c.v
    │   ├── signal_default.c.v
    │   ├── signal_linux.c.v
    │   ├── signal_test.v
    │   ├── signal_windows.c.v
    │   ├── sleeping.c.v
    │   ├── sleeping.js.v
    │   ├── util/
    │   │   └── util.v
    │   └── xdg_test.v
    ├── picoev/
    │   ├── README.md
    │   ├── constants_default.c.v
    │   ├── constants_windows.c.v
    │   ├── logging.v
    │   ├── loop_default.c.v
    │   ├── loop_freebsd.c.v
    │   ├── loop_linux.c.v
    │   ├── loop_macos.c.v
    │   ├── loop_openbsd.c.v
    │   ├── loop_termux.c.v
    │   ├── picoev.v
    │   ├── picoev_test.v
    │   └── socket_util.c.v
    ├── picohttpparser/
    │   ├── README.md
    │   ├── misc.v
    │   ├── misc_test.v
    │   ├── picohttpparser.v
    │   ├── request.v
    │   ├── request_test.v
    │   └── response.c.v
    ├── pool/
    │   ├── README.md
    │   ├── connection.v
    │   └── connection_test.v
    ├── rand/
    │   ├── README.md
    │   ├── buffer/
    │   │   └── buffer.v
    │   ├── config/
    │   │   └── config.v
    │   ├── cuid2/
    │   │   ├── cuid2.v
    │   │   └── cuid2_test.v
    │   ├── dist_test.v
    │   ├── fp_test.v
    │   ├── mini_math.v
    │   ├── mt19937/
    │   │   ├── mt19937.v
    │   │   └── mt19937_test.v
    │   ├── musl/
    │   │   ├── musl_rng.v
    │   │   └── musl_rng_test.v
    │   ├── pcg32/
    │   │   ├── pcg32.v
    │   │   └── pcg32_test.v
    │   ├── rand.c.v
    │   ├── rand.js.v
    │   ├── rand.v
    │   ├── rand_test.js.v
    │   ├── random_bytes_test.v
    │   ├── random_identifiers_test.v
    │   ├── random_numbers_test.v
    │   ├── seed/
    │   │   └── seed.v
    │   ├── splitmix64/
    │   │   ├── splitmix64.v
    │   │   └── splitmix64_test.v
    │   ├── sys/
    │   │   ├── system_rng.c.v
    │   │   ├── system_rng.js.v
    │   │   └── system_rng_test.v
    │   ├── wyrand/
    │   │   ├── wyrand.js.v
    │   │   ├── wyrand.v
    │   │   ├── wyrand_test.v
    │   │   └── z_wyrand.c.v
    │   └── xoroshiro128pp/
    │       ├── xoros128pp.v
    │       └── xoros128pp_test.v
    ├── readline/
    │   ├── README.md
    │   ├── readline.v
    │   ├── readline_default.c.v
    │   ├── readline_js.js.v
    │   ├── readline_nix.c.v
    │   ├── readline_test.v
    │   └── readline_windows.c.v
    ├── regex/
    │   ├── README.md
    │   ├── pcre/
    │   │   ├── README.md
    │   │   ├── regex.v
    │   │   └── regex_test.v
    │   ├── regex.v
    │   ├── regex_anchor_test.v
    │   ├── regex_complex_test.v
    │   ├── regex_opt.v
    │   ├── regex_test.v
    │   └── regex_util.v
    ├── runtime/
    │   ├── README.md
    │   ├── free_memory_impl_darwin.c.v
    │   ├── free_memory_impl_default.c.v
    │   ├── free_memory_impl_freebsd.c.v
    │   ├── free_memory_impl_linux.c.v
    │   ├── free_memory_impl_openbsd.c.v
    │   ├── runtime.v
    │   ├── runtime_nix.c.v
    │   ├── runtime_test.v
    │   ├── runtime_windows.c.v
    │   ├── used_memory_darwin.c.v
    │   ├── used_memory_default.c.v
    │   ├── used_memory_freebsd.c.v
    │   ├── used_memory_linux.c.v
    │   ├── used_memory_openbsd.c.v
    │   ├── used_memory_test.v
    │   └── used_memory_windows.c.v
    ├── semver/
    │   ├── LICENSE.md
    │   ├── README.md
    │   ├── compare.v
    │   ├── parse.v
    │   ├── range.v
    │   ├── semver.v
    │   ├── semver_test.v
    │   └── util.v
    ├── sokol/
    │   ├── README.md
    │   ├── audio/
    │   │   └── audio.c.v
    │   ├── c/
    │   │   └── declaration.c.v
    │   ├── gfx/
    │   │   ├── enums.v
    │   │   ├── gfx.c.v
    │   │   ├── gfx_allocator_and_logger.c.v
    │   │   ├── gfx_funcs.c.v
    │   │   ├── gfx_structs.c.v
    │   │   └── gfx_utils.c.v
    │   ├── memory/
    │   │   └── memory.c.v
    │   ├── sapp/
    │   │   ├── enums.v
    │   │   ├── sapp.v
    │   │   ├── sapp_egl_linux.v
    │   │   ├── sapp_funcs.c.v
    │   │   ├── sapp_linux.c.v
    │   │   ├── sapp_state.v
    │   │   ├── sapp_state_linux.v
    │   │   ├── sapp_structs.c.v
    │   │   ├── sapp_v.v
    │   │   ├── sapp_wayland_linux.v
    │   │   ├── sapp_x11_linux.v
    │   │   └── screenshot.v
    │   ├── sfons/
    │   │   └── sfons.v
    │   ├── sgl/
    │   │   ├── enums.v
    │   │   ├── matrix.v
    │   │   ├── sgl.v
    │   │   ├── sgl_structs.v
    │   │   └── shaders.v
    │   └── sokol.v
    ├── stbi/
    │   ├── README.md
    │   ├── link_to_libm.c.v
    │   ├── stbi.c.v
    │   └── stbi_test.v
    ├── strconv/
    │   ├── README.md
    │   ├── atof.c.v
    │   ├── atof.js.v
    │   ├── atof_test.c.v
    │   ├── atofq.c.v
    │   ├── atoi.v
    │   ├── atoi_test.v
    │   ├── atou.v
    │   ├── atou_test.v
    │   ├── bare/
    │   │   └── str_array_example.v
    │   ├── converter_test.v
    │   ├── f32_f64_to_string_test.v
    │   ├── f32_str.c.v
    │   ├── f32_str.js.v
    │   ├── f32_str_should_be_different_test.v
    │   ├── f32_ten_pow_table_range_test.v
    │   ├── f64_str.c.v
    │   ├── f64_str.js.v
    │   ├── f64_str.v
    │   ├── format.md
    │   ├── format.v
    │   ├── format_mem.c.v
    │   ├── format_mem.js.v
    │   ├── format_test.v
    │   ├── ftoa.c.v
    │   ├── number_to_base.c.v
    │   ├── number_to_base_test.v
    │   ├── structs.v
    │   ├── tables.v
    │   ├── utilities.c.v
    │   ├── utilities.v
    │   └── vprintf.c.v
    ├── strings/
    │   ├── README.md
    │   ├── builder.c.v
    │   ├── builder.js.v
    │   ├── builder_test.js.v
    │   ├── builder_test.v
    │   ├── lorem/
    │   │   ├── lorem.v
    │   │   └── lorem_test.v
    │   ├── similarity.v
    │   ├── similarity_test.js.v
    │   ├── similarity_test.v
    │   ├── strings.c.v
    │   ├── strings.js.v
    │   ├── strings.v
    │   ├── strings_test.js.v
    │   ├── strings_test.v
    │   └── textscanner/
    │       ├── textscanner.v
    │       ├── textscanner_test.js.v
    │       └── textscanner_test.v
    ├── sync/
    │   ├── README.md
    │   ├── array_rlock_test.v
    │   ├── bench/
    │   │   ├── channel_bench_go.go
    │   │   ├── channel_bench_v.v
    │   │   ├── many_writers_and_receivers_on_1_channel.v
    │   │   ├── results.md
    │   │   └── run_bench.v
    │   ├── chan_mod_sync_test.v
    │   ├── channel_1_test.v
    │   ├── channel_2_test.v
    │   ├── channel_3_test.v
    │   ├── channel_4_test.v
    │   ├── channel_array_mut_test.v
    │   ├── channel_close_test.v
    │   ├── channel_fill_test.v
    │   ├── channel_opt_propagate_test.v
    │   ├── channel_polling_test.v
    │   ├── channel_push_or_1_test.v
    │   ├── channel_push_or_2_test.v
    │   ├── channel_select_2_test.v
    │   ├── channel_select_3_test.v
    │   ├── channel_select_4_test.v
    │   ├── channel_select_5_test.v
    │   ├── channel_select_6_test.v
    │   ├── channel_select_test.v
    │   ├── channel_try_buf_test.v
    │   ├── channel_try_unbuf_test.v
    │   ├── channels.c.v
    │   ├── channels.js.v
    │   ├── common_mutex.v
    │   ├── cond.v
    │   ├── cond_test.v
    │   ├── empty_struct_chan_init_test.v
    │   ├── many_times.v
    │   ├── many_times_test.v
    │   ├── mutex_test.v
    │   ├── once.v
    │   ├── once_test.v
    │   ├── once_with_param_test.v
    │   ├── pool/
    │   │   ├── README.md
    │   │   ├── pool.c.v
    │   │   └── pool_test.v
    │   ├── rwmutex_test.v
    │   ├── select_close_test.v
    │   ├── spinlock_test.v
    │   ├── stdatomic/
    │   │   ├── 1.declarations.c.v
    │   │   ├── atomic.c.v
    │   │   └── atomic_test.v
    │   ├── struct_chan_init_test.v
    │   ├── sync.c.v
    │   ├── sync_darwin.c.v
    │   ├── sync_default.c.v
    │   ├── sync_freebsd.c.v
    │   ├── sync_windows.c.v
    │   ├── thread_default.c.v
    │   ├── thread_test.v
    │   ├── thread_windows.c.v
    │   ├── threads/
    │   │   ├── threads.c.v
    │   │   └── threads.v
    │   ├── tls.v
    │   ├── tls_default.c.v
    │   ├── tls_test.v
    │   ├── tls_windows.c.v
    │   ├── waitgroup.c.v
    │   └── waitgroup_test.v
    ├── term/
    │   ├── README.md
    │   ├── colors.v
    │   ├── control.v
    │   ├── declarations_default.c.v
    │   ├── declarations_linux.c.v
    │   ├── term.js.v
    │   ├── term.v
    │   ├── term_nix.c.v
    │   ├── term_test.v
    │   ├── term_windows.c.v
    │   ├── termios/
    │   │   ├── termios_android.c.v
    │   │   ├── termios_darwin.c.v
    │   │   ├── termios_default.c.v
    │   │   ├── termios_dragonfly.c.v
    │   │   ├── termios_freebsd.c.v
    │   │   ├── termios_linux.c.v
    │   │   ├── termios_netbsd.c.v
    │   │   ├── termios_openbsd.c.v
    │   │   ├── termios_qnx.c.v
    │   │   ├── termios_solaris.c.v
    │   │   ├── termios_test.c.v
    │   │   └── termios_windows.c.v
    │   ├── ui/
    │   │   ├── 1_term_and_ui_compilation_test.v
    │   │   ├── 2_term_and_ui_compilation_test.v
    │   │   ├── README.md
    │   │   ├── color.v
    │   │   ├── consoleapi_windows.c.v
    │   │   ├── input.v
    │   │   ├── input_nix.c.v
    │   │   ├── input_windows.c.v
    │   │   ├── termios_nix.c.v
    │   │   ├── termios_nix_test.v
    │   │   ├── ui.c.v
    │   │   └── ui_test.v
    │   └── utf8.v
    ├── time/
    │   ├── README.md
    │   ├── Y2K38_test.v
    │   ├── bare/
    │   │   └── time_now_example.v
    │   ├── chrono.c.v
    │   ├── chrono.v
    │   ├── chrono_test.v
    │   ├── custom_format_test.v
    │   ├── date_time_parser.v
    │   ├── duration.v
    │   ├── duration_test.v
    │   ├── format.v
    │   ├── json_custom.c.v
    │   ├── misc/
    │   │   ├── misc.v
    │   │   └── misc_test.v
    │   ├── operator.v
    │   ├── operator_test.v
    │   ├── parse.c.v
    │   ├── parse.js.v
    │   ├── parse.v
    │   ├── parse_autofree_test.v
    │   ├── parse_test.v
    │   ├── relative_test.v
    │   ├── stopwatch.v
    │   ├── stopwatch_test.v
    │   ├── time.c.v
    │   ├── time.js.v
    │   ├── time.v
    │   ├── time_addition_test.v
    │   ├── time_darwin.c.v
    │   ├── time_format_test.v
    │   ├── time_js.js.v
    │   ├── time_linux.c.v
    │   ├── time_nix.c.v
    │   ├── time_solaris.c.v
    │   ├── time_test.c.v
    │   ├── time_test.v
    │   ├── time_windows.c.v
    │   ├── unix.v
    │   ├── unix_test.v
    │   └── utc_vs_local_time_test.v
    ├── toml/
    │   ├── README.md
    │   ├── any.v
    │   ├── ast/
    │   │   ├── ast.v
    │   │   ├── types.v
    │   │   └── walker/
    │   │       └── walker.v
    │   ├── checker/
    │   │   └── checker.v
    │   ├── decoder/
    │   │   └── decoder.v
    │   ├── input/
    │   │   └── input.v
    │   ├── parser/
    │   │   └── parser.v
    │   ├── scanner/
    │   │   ├── scanner.v
    │   │   └── scanner_test.v
    │   ├── tests/
    │   │   ├── array_of_tables_1_level_test.v
    │   │   ├── array_of_tables_2_level_test.v
    │   │   ├── array_of_tables_array_test.v
    │   │   ├── array_of_tables_edge_case_1_test.v
    │   │   ├── array_of_tables_edge_case_2_test.v
    │   │   ├── compact_test.v
    │   │   ├── crlf_test.v
    │   │   ├── datetime_test.v
    │   │   ├── default_to_test.v
    │   │   ├── default_value_test.v
    │   │   ├── encode_and_decode_test.v
    │   │   ├── iarna_toml_spec_test.v
    │   │   ├── inline_test.v
    │   │   ├── json_encoding_test.v
    │   │   ├── json_test.v
    │   │   ├── key_test.v
    │   │   ├── large_toml_file_test.v
    │   │   ├── nested_test.v
    │   │   ├── quoted_keys_test.v
    │   │   ├── quoted_string_crlf_test.v
    │   │   ├── reflect_test.v
    │   │   ├── spaced_keys_test.v
    │   │   ├── strings_test.v
    │   │   ├── table_test.v
    │   │   ├── testdata/
    │   │   │   ├── .gitignore
    │   │   │   ├── array_of_tables_1_level_test.out
    │   │   │   ├── array_of_tables_2_level_test.out
    │   │   │   ├── array_of_tables_array_test.out
    │   │   │   ├── array_of_tables_edge_case_1_test.out
    │   │   │   ├── array_of_tables_edge_case_1_test.toml
    │   │   │   ├── array_of_tables_edge_case_2_test.out
    │   │   │   ├── array_of_tables_edge_case_2_test.toml
    │   │   │   ├── json_encoding_test.out
    │   │   │   ├── json_encoding_test.toml
    │   │   │   ├── json_test.out
    │   │   │   ├── json_test.toml
    │   │   │   ├── key_test.out
    │   │   │   ├── key_test.toml
    │   │   │   ├── strings_test.toml
    │   │   │   ├── toml_test.out
    │   │   │   ├── toml_test.toml
    │   │   │   ├── toml_with_utf16_bom.toml
    │   │   │   ├── toml_with_utf32_bom.toml
    │   │   │   └── toml_with_utf8_bom.toml
    │   │   ├── toml_attrs_test.v
    │   │   ├── toml_bom_test.v
    │   │   ├── toml_lang_test.v
    │   │   ├── toml_memory_corruption_test.v
    │   │   ├── toml_rs_test.v
    │   │   ├── toml_test.v
    │   │   ├── toml_types_test.v
    │   │   └── value_query_test.v
    │   ├── to/
    │   │   └── to.v
    │   ├── token/
    │   │   ├── pos.v
    │   │   └── token.v
    │   ├── toml.v
    │   └── util/
    │       └── util.v
    ├── v/
    │   ├── README.md
    │   ├── TEMPLATES.md
    │   ├── ast/
    │   │   ├── ast.v
    │   │   ├── attr.v
    │   │   ├── cflags.v
    │   │   ├── cflags_test.v
    │   │   ├── comptime_const_values.v
    │   │   ├── comptime_valid_idents.v
    │   │   ├── embed_file.v
    │   │   ├── init.v
    │   │   ├── native.v
    │   │   ├── scope.v
    │   │   ├── str.v
    │   │   ├── table.v
    │   │   ├── table_test.v
    │   │   ├── type_size_test.v
    │   │   ├── types.v
    │   │   ├── types_test.v
    │   │   └── walker/
    │   │       ├── walker.v
    │   │       └── walker_test.v
    │   ├── build_constraint/
    │   │   ├── ast.v
    │   │   ├── constraint_test.v
    │   │   ├── evaluating.v
    │   │   ├── lexing.v
    │   │   ├── parsing.v
    │   │   └── public.v
    │   ├── builder/
    │   │   ├── builder.v
    │   │   ├── builder_test.v
    │   │   ├── cbuilder/
    │   │   │   ├── cbuilder.v
    │   │   │   └── parallel_cc.v
    │   │   ├── cc.v
    │   │   ├── cc_tcc_retry_test.v
    │   │   ├── cc_test.v
    │   │   ├── cc_windows.v
    │   │   ├── cflags.v
    │   │   ├── compile.v
    │   │   ├── dump_lists.v
    │   │   ├── golangbuilder/
    │   │   │   └── golangbuilder.v
    │   │   ├── interpreterbuilder/
    │   │   │   ├── ibuilder.v
    │   │   │   └── v_interpret_test.v
    │   │   ├── jsbuilder/
    │   │   │   └── jsbuilder.v
    │   │   ├── msvc.v
    │   │   ├── msvc_windows.v
    │   │   ├── nativebuilder/
    │   │   │   └── nativebuilder.v
    │   │   ├── rebuilding.v
    │   │   └── wasmbuilder/
    │   │       └── wasmbuilder.v
    │   ├── callgraph/
    │   │   └── callgraph.v
    │   ├── cflag/
    │   │   └── cflags.v
    │   ├── checker/
    │   │   ├── assign.v
    │   │   ├── autocomplete.v
    │   │   ├── check_types.v
    │   │   ├── checker.v
    │   │   ├── comptime.v
    │   │   ├── containers.v
    │   │   ├── errors.v
    │   │   ├── fn.v
    │   │   ├── for.v
    │   │   ├── if.v
    │   │   ├── infix.v
    │   │   ├── interface.v
    │   │   ├── lambda_expr.v
    │   │   ├── match.v
    │   │   ├── orm.v
    │   │   ├── postfix.v
    │   │   ├── return.v
    │   │   ├── str.v
    │   │   ├── struct.v
    │   │   ├── tests/
    │   │   │   ├── .gitattributes
    │   │   │   ├── .gitignore
    │   │   │   ├── a_test_file_with_0_test_fns_test.out
    │   │   │   ├── a_test_file_with_0_test_fns_test.vv
    │   │   │   ├── add_op_wrong_type_err.out
    │   │   │   ├── add_op_wrong_type_err.vv
    │   │   │   ├── addr.out
    │   │   │   ├── addr.vv
    │   │   │   ├── addr_of_invalid_expr.out
    │   │   │   ├── addr_of_invalid_expr.vv
    │   │   │   ├── alias_array_unknown_op_overloading_err.out
    │   │   │   ├── alias_array_unknown_op_overloading_err.vv
    │   │   │   ├── alias_map_unknown_op_overloading_err.out
    │   │   │   ├── alias_map_unknown_op_overloading_err.vv
    │   │   │   ├── alias_to_generic_err.out
    │   │   │   ├── alias_to_generic_err.vv
    │   │   │   ├── alias_to_option_err.out
    │   │   │   ├── alias_to_option_err.vv
    │   │   │   ├── alias_type_cast_option_result_unhandled_err.out
    │   │   │   ├── alias_type_cast_option_result_unhandled_err.vv
    │   │   │   ├── alias_type_unknown.out
    │   │   │   ├── alias_type_unknown.vv
    │   │   │   ├── always_true_false_branch.out
    │   │   │   ├── always_true_false_branch.vv
    │   │   │   ├── ambiguous_field_method_err.out
    │   │   │   ├── ambiguous_field_method_err.vv
    │   │   │   ├── ambiguous_function_call.out
    │   │   │   ├── ambiguous_function_call.vv
    │   │   │   ├── amod/
    │   │   │   │   └── amod.v
    │   │   │   ├── anon_arg_redefinition_err.out
    │   │   │   ├── anon_arg_redefinition_err.vv
    │   │   │   ├── anon_fn_arg_type_err.out
    │   │   │   ├── anon_fn_arg_type_err.vv
    │   │   │   ├── anon_fn_without_body.out
    │   │   │   ├── anon_fn_without_body.vv
    │   │   │   ├── anon_missing_generic_err.out
    │   │   │   ├── anon_missing_generic_err.vv
    │   │   │   ├── anon_struct_assign_err.out
    │   │   │   ├── anon_struct_assign_err.vv
    │   │   │   ├── anon_structs_visibility/
    │   │   │   │   ├── amod/
    │   │   │   │   │   └── amod.v
    │   │   │   │   └── main.v
    │   │   │   ├── anon_structs_visibility.out
    │   │   │   ├── any_int_float_ban_err.out
    │   │   │   ├── any_int_float_ban_err.vv
    │   │   │   ├── any_return_type_err.out
    │   │   │   ├── any_return_type_err.vv
    │   │   │   ├── any_type_err.out
    │   │   │   ├── any_type_err.vv
    │   │   │   ├── append_err.out
    │   │   │   ├── append_err.vv
    │   │   │   ├── array_append_array_type_mismatch_err.out
    │   │   │   ├── array_append_array_type_mismatch_err.vv
    │   │   │   ├── array_assign_err.out
    │   │   │   ├── array_assign_err.vv
    │   │   │   ├── array_builtin_method_args_err.out
    │   │   │   ├── array_builtin_method_args_err.vv
    │   │   │   ├── array_builtin_redefinition.out
    │   │   │   ├── array_builtin_redefinition.vv
    │   │   │   ├── array_cmp_err.out
    │   │   │   ├── array_cmp_err.vv
    │   │   │   ├── array_contains_args_err.out
    │   │   │   ├── array_contains_args_err.vv
    │   │   │   ├── array_count_err.out
    │   │   │   ├── array_count_err.vv
    │   │   │   ├── array_declare_element_a.out
    │   │   │   ├── array_declare_element_a.vv
    │   │   │   ├── array_declare_element_b.out
    │   │   │   ├── array_declare_element_b.vv
    │   │   │   ├── array_declare_element_c.out
    │   │   │   ├── array_declare_element_c.vv
    │   │   │   ├── array_delete_arg_mismatch_err.out
    │   │   │   ├── array_delete_arg_mismatch_err.vv
    │   │   │   ├── array_delete_imut_err.out
    │   │   │   ├── array_delete_imut_err.vv
    │   │   │   ├── array_delete_print_err.out
    │   │   │   ├── array_delete_print_err.vv
    │   │   │   ├── array_element_type.out
    │   │   │   ├── array_element_type.vv
    │   │   │   ├── array_fancy_sort_err.out
    │   │   │   ├── array_fancy_sort_err.vv
    │   │   │   ├── array_filter_arg_mismatch_err.out
    │   │   │   ├── array_filter_arg_mismatch_err.vv
    │   │   │   ├── array_filter_fn_err.out
    │   │   │   ├── array_filter_fn_err.vv
    │   │   │   ├── array_filter_map_array_expression_as_argument_err.out
    │   │   │   ├── array_filter_map_array_expression_as_argument_err.vv
    │   │   │   ├── array_filter_map_option_function_err.out
    │   │   │   ├── array_filter_map_option_function_err.vv
    │   │   │   ├── array_fixed_no_free_method_call_err.out
    │   │   │   ├── array_fixed_no_free_method_call_err.vv
    │   │   │   ├── array_generic_methods_err.out
    │   │   │   ├── array_generic_methods_err.vv
    │   │   │   ├── array_index.out
    │   │   │   ├── array_index.vv
    │   │   │   ├── array_index_args_err.out
    │   │   │   ├── array_index_args_err.vv
    │   │   │   ├── array_init_decompose_extra_params.out
    │   │   │   ├── array_init_decompose_extra_params.vv
    │   │   │   ├── array_init_element_option_mismatch_err.out
    │   │   │   ├── array_init_element_option_mismatch_err.vv
    │   │   │   ├── array_init_option_err.out
    │   │   │   ├── array_init_option_err.vv
    │   │   │   ├── array_init_ptr_non_ptr_elem_err.out
    │   │   │   ├── array_init_ptr_non_ptr_elem_err.vv
    │   │   │   ├── array_init_with_len_cap_err.out
    │   │   │   ├── array_init_with_len_cap_err.vv
    │   │   │   ├── array_init_with_void_value_err.out
    │   │   │   ├── array_init_with_void_value_err.vv
    │   │   │   ├── array_init_without_init_value_err.out
    │   │   │   ├── array_init_without_init_value_err.vv
    │   │   │   ├── array_insert_prepend_args_err.out
    │   │   │   ├── array_insert_prepend_args_err.vv
    │   │   │   ├── array_insert_type_mismatch.out
    │   │   │   ├── array_insert_type_mismatch.vv
    │   │   │   ├── array_insert_val_err.out
    │   │   │   ├── array_insert_val_err.vv
    │   │   │   ├── array_literal_modify_err.out
    │   │   │   ├── array_literal_modify_err.vv
    │   │   │   ├── array_map_arg_mismatch.out
    │   │   │   ├── array_map_arg_mismatch.vv
    │   │   │   ├── array_map_elements_ref_fields_uninitialized_err.out
    │   │   │   ├── array_map_elements_ref_fields_uninitialized_err.vv
    │   │   │   ├── array_map_fn_err.out
    │   │   │   ├── array_map_fn_err.vv
    │   │   │   ├── array_map_void_fn_err.out
    │   │   │   ├── array_map_void_fn_err.vv
    │   │   │   ├── array_method_call_immutable_err.out
    │   │   │   ├── array_method_call_immutable_err.vv
    │   │   │   ├── array_method_invalid_expr.out
    │   │   │   ├── array_method_invalid_expr.vv
    │   │   │   ├── array_none_element_err.out
    │   │   │   ├── array_none_element_err.vv
    │   │   │   ├── array_of_generic_struct_init_err.out
    │   │   │   ├── array_of_generic_struct_init_err.vv
    │   │   │   ├── array_of_refs_insert_non_ref.out
    │   │   │   ├── array_of_refs_insert_non_ref.vv
    │   │   │   ├── array_of_refs_mutability.out
    │   │   │   ├── array_of_refs_mutability.vv
    │   │   │   ├── array_of_sumtype_append_err.out
    │   │   │   ├── array_of_sumtype_append_err.vv
    │   │   │   ├── array_or_map_assign_err.out
    │   │   │   ├── array_or_map_assign_err.vv
    │   │   │   ├── array_plus_assign_err.out
    │   │   │   ├── array_plus_assign_err.vv
    │   │   │   ├── array_prepend_type_mismatch.out
    │   │   │   ├── array_prepend_type_mismatch.vv
    │   │   │   ├── array_sort_err.out
    │   │   │   ├── array_sort_err.vv
    │   │   │   ├── array_sort_struct_no_body_err.out
    │   │   │   ├── array_sort_struct_no_body_err.vv
    │   │   │   ├── array_sort_with_compare_err.out
    │   │   │   ├── array_sort_with_compare_err.vv
    │   │   │   ├── array_sort_with_compare_ref_elem_err.out
    │   │   │   ├── array_sort_with_compare_ref_elem_err.vv
    │   │   │   ├── array_sorted_with_compare_err.out
    │   │   │   ├── array_sorted_with_compare_err.vv
    │   │   │   ├── array_voidptr_assign_err.out
    │   │   │   ├── array_voidptr_assign_err.vv
    │   │   │   ├── arraydecompose_arg2_err.out
    │   │   │   ├── arraydecompose_arg2_err.vv
    │   │   │   ├── arraydecompose_arg_err.out
    │   │   │   ├── arraydecompose_arg_err.vv
    │   │   │   ├── arrow_op_wrong_left_type_err_a.out
    │   │   │   ├── arrow_op_wrong_left_type_err_a.vv
    │   │   │   ├── arrow_op_wrong_left_type_err_b.out
    │   │   │   ├── arrow_op_wrong_left_type_err_b.vv
    │   │   │   ├── arrow_op_wrong_right_type_err_a.out
    │   │   │   ├── arrow_op_wrong_right_type_err_a.vv
    │   │   │   ├── arrow_op_wrong_right_type_err_b.out
    │   │   │   ├── arrow_op_wrong_right_type_err_b.vv
    │   │   │   ├── as_cast_option_result_unhandled_err.out
    │   │   │   ├── as_cast_option_result_unhandled_err.vv
    │   │   │   ├── as_cast_selector_expr_err.out
    │   │   │   ├── as_cast_selector_expr_err.vv
    │   │   │   ├── asm_immutable_err.out
    │   │   │   ├── asm_immutable_err.vv
    │   │   │   ├── assert_extra_message.out
    │   │   │   ├── assert_extra_message.vv
    │   │   │   ├── assert_option_err.out
    │   │   │   ├── assert_option_err.vv
    │   │   │   ├── assign_anon_struct_to_typed_struct_err.out
    │   │   │   ├── assign_anon_struct_to_typed_struct_err.vv
    │   │   │   ├── assign_any_err.out
    │   │   │   ├── assign_any_err.vv
    │   │   │   ├── assign_array_init_to_fixed_array_var.out
    │   │   │   ├── assign_array_init_to_fixed_array_var.vv
    │   │   │   ├── assign_array_init_with_no_type.out
    │   │   │   ├── assign_array_init_with_no_type.vv
    │   │   │   ├── assign_blank_none_err.out
    │   │   │   ├── assign_blank_none_err.vv
    │   │   │   ├── assign_const_ptr_int_literal_err.out
    │   │   │   ├── assign_const_ptr_int_literal_err.vv
    │   │   │   ├── assign_deref_fn_call_on_left_side_err.out
    │   │   │   ├── assign_deref_fn_call_on_left_side_err.vv
    │   │   │   ├── assign_enum_at_comptime.out
    │   │   │   ├── assign_enum_at_comptime.vv
    │   │   │   ├── assign_expr_channel_push.out
    │   │   │   ├── assign_expr_channel_push.vv
    │   │   │   ├── assign_expr_type_err_a.out
    │   │   │   ├── assign_expr_type_err_a.vv
    │   │   │   ├── assign_expr_type_err_b.out
    │   │   │   ├── assign_expr_type_err_b.vv
    │   │   │   ├── assign_expr_type_err_c.out
    │   │   │   ├── assign_expr_type_err_c.vv
    │   │   │   ├── assign_expr_type_err_d.out
    │   │   │   ├── assign_expr_type_err_d.vv
    │   │   │   ├── assign_expr_type_err_e.out
    │   │   │   ├── assign_expr_type_err_e.vv
    │   │   │   ├── assign_expr_type_err_f.out
    │   │   │   ├── assign_expr_type_err_f.vv
    │   │   │   ├── assign_expr_type_err_g.out
    │   │   │   ├── assign_expr_type_err_g.vv
    │   │   │   ├── assign_expr_type_err_h.out
    │   │   │   ├── assign_expr_type_err_h.vv
    │   │   │   ├── assign_expr_type_err_i.out
    │   │   │   ├── assign_expr_type_err_i.vv
    │   │   │   ├── assign_expr_undefined_err_a.out
    │   │   │   ├── assign_expr_undefined_err_a.vv
    │   │   │   ├── assign_expr_undefined_err_b.out
    │   │   │   ├── assign_expr_undefined_err_b.vv
    │   │   │   ├── assign_expr_undefined_err_c.out
    │   │   │   ├── assign_expr_undefined_err_c.vv
    │   │   │   ├── assign_expr_undefined_err_d.out
    │   │   │   ├── assign_expr_undefined_err_d.vv
    │   │   │   ├── assign_expr_undefined_err_e.out
    │   │   │   ├── assign_expr_undefined_err_e.vv
    │   │   │   ├── assign_expr_undefined_err_f.out
    │   │   │   ├── assign_expr_undefined_err_f.vv
    │   │   │   ├── assign_expr_undefined_err_g.out
    │   │   │   ├── assign_expr_undefined_err_g.vv
    │   │   │   ├── assign_expr_undefined_err_h.out
    │   │   │   ├── assign_expr_undefined_err_h.vv
    │   │   │   ├── assign_expr_undefined_err_i.out
    │   │   │   ├── assign_expr_undefined_err_i.vv
    │   │   │   ├── assign_expr_undefined_err_j.out
    │   │   │   ├── assign_expr_undefined_err_j.vv
    │   │   │   ├── assign_expr_undefined_err_k.out
    │   │   │   ├── assign_expr_undefined_err_k.vv
    │   │   │   ├── assign_expr_undefined_err_l.out
    │   │   │   ├── assign_expr_undefined_err_l.vv
    │   │   │   ├── assign_expr_undefined_err_m.out
    │   │   │   ├── assign_expr_undefined_err_m.vv
    │   │   │   ├── assign_expr_undefined_err_n.out
    │   │   │   ├── assign_expr_undefined_err_n.vv
    │   │   │   ├── assign_expr_unresolved_variables_err_chain.out
    │   │   │   ├── assign_expr_unresolved_variables_err_chain.vv
    │   │   │   ├── assign_fn_call_on_left_side_err.out
    │   │   │   ├── assign_fn_call_on_left_side_err.vv
    │   │   │   ├── assign_generic_fn_err.out
    │   │   │   ├── assign_generic_fn_err.vv
    │   │   │   ├── assign_immutable_reference_struct_field_err.out
    │   │   │   ├── assign_immutable_reference_struct_field_err.vv
    │   │   │   ├── assign_immutable_reference_var_err.out
    │   │   │   ├── assign_immutable_reference_var_err.vv
    │   │   │   ├── assign_immutable_reference_var_with_parenthesis_err.out
    │   │   │   ├── assign_immutable_reference_var_with_parenthesis_err.vv
    │   │   │   ├── assign_multi_immutable_err.out
    │   │   │   ├── assign_multi_immutable_err.vv
    │   │   │   ├── assign_multi_mismatch.out
    │   │   │   ├── assign_multi_mismatch.vv
    │   │   │   ├── assign_mut.out
    │   │   │   ├── assign_mut.vv
    │   │   │   ├── assign_none.out
    │   │   │   ├── assign_none.vv
    │   │   │   ├── assign_ref_call_expr_with_ref_return_err.out
    │   │   │   ├── assign_ref_call_expr_with_ref_return_err.vv
    │   │   │   ├── assign_sumtype2_err.out
    │   │   │   ├── assign_sumtype2_err.vv
    │   │   │   ├── assign_sumtype_err.out
    │   │   │   ├── assign_sumtype_err.vv
    │   │   │   ├── assign_to_typeless_variable_err.out
    │   │   │   ├── assign_to_typeless_variable_err.vv
    │   │   │   ├── assign_type_mismatch_with_generics_err.out
    │   │   │   ├── assign_type_mismatch_with_generics_err.vv
    │   │   │   ├── assign_var_redefinition_err.out
    │   │   │   ├── assign_var_redefinition_err.vv
    │   │   │   ├── assign_with_dump_multireturn_value.out
    │   │   │   ├── assign_with_dump_multireturn_value.vv
    │   │   │   ├── auto_deref_assign_err.out
    │   │   │   ├── auto_deref_assign_err.vv
    │   │   │   ├── auto_ref_voidptr.out
    │   │   │   ├── auto_ref_voidptr.vv
    │   │   │   ├── bad_types_in_string_inter_lit.out
    │   │   │   ├── bad_types_in_string_inter_lit.vv
    │   │   │   ├── ban_const_ref_mutation.out
    │   │   │   ├── ban_const_ref_mutation.vv
    │   │   │   ├── bin_lit_without_digit_err.out
    │   │   │   ├── bin_lit_without_digit_err.vv
    │   │   │   ├── bin_lit_wrong_digit_err.out
    │   │   │   ├── bin_lit_wrong_digit_err.vv
    │   │   │   ├── bit_op_wrong_left_type_err.out
    │   │   │   ├── bit_op_wrong_left_type_err.vv
    │   │   │   ├── bit_op_wrong_right_type_err.out
    │   │   │   ├── bit_op_wrong_right_type_err.vv
    │   │   │   ├── blank_ident_const_ptr_int_literal_err.out
    │   │   │   ├── blank_ident_const_ptr_int_literal_err.vv
    │   │   │   ├── blank_ident_invalid_use.out
    │   │   │   ├── blank_ident_invalid_use.vv
    │   │   │   ├── blank_ident_select_branch_send_err.out
    │   │   │   ├── blank_ident_select_branch_send_err.vv
    │   │   │   ├── blank_modify.out
    │   │   │   ├── blank_modify.vv
    │   │   │   ├── bool_string_cast_err.out
    │   │   │   ├── bool_string_cast_err.vv
    │   │   │   ├── break_anon_fn_err.out
    │   │   │   ├── break_anon_fn_err.vv
    │   │   │   ├── c_fn_surplus_args.out
    │   │   │   ├── c_fn_surplus_args.vv
    │   │   │   ├── c_js_struct_and_fn_as_generics_error.out
    │   │   │   ├── c_js_struct_and_fn_as_generics_error.vv
    │   │   │   ├── c_struct_cast.out
    │   │   │   ├── c_struct_cast.vv
    │   │   │   ├── call_arg_multi_return_err.out
    │   │   │   ├── call_arg_multi_return_err.vv
    │   │   │   ├── call_empty_or_block_err.out
    │   │   │   ├── call_empty_or_block_err.vv
    │   │   │   ├── cannot_assign_array.out
    │   │   │   ├── cannot_assign_array.vv
    │   │   │   ├── cannot_cast_to_alias.out
    │   │   │   ├── cannot_cast_to_alias.vv
    │   │   │   ├── cannot_cast_to_struct.out
    │   │   │   ├── cannot_cast_to_struct.vv
    │   │   │   ├── cannot_dereference_if_different_muls.out
    │   │   │   ├── cannot_dereference_if_different_muls.vv
    │   │   │   ├── cast_array_to_number_err.out
    │   │   │   ├── cast_array_to_number_err.vv
    │   │   │   ├── cast_err.out
    │   │   │   ├── cast_err.vv
    │   │   │   ├── cast_expr_T_type_err.out
    │   │   │   ├── cast_expr_T_type_err.vv
    │   │   │   ├── cast_fn_err.out
    │   │   │   ├── cast_fn_err.vv
    │   │   │   ├── cast_function_to_string_err.out
    │   │   │   ├── cast_function_to_string_err.vv
    │   │   │   ├── cast_generic_err.out
    │   │   │   ├── cast_generic_err.vv
    │   │   │   ├── cast_integer_with_overflow_err.out
    │   │   │   ├── cast_integer_with_overflow_err.vv
    │   │   │   ├── cast_string_err.out
    │   │   │   ├── cast_string_err.vv
    │   │   │   ├── cast_string_to_char_err.out
    │   │   │   ├── cast_string_to_char_err.vv
    │   │   │   ├── cast_string_to_int_err.out
    │   │   │   ├── cast_string_to_int_err.vv
    │   │   │   ├── cast_string_to_ptr_err.out
    │   │   │   ├── cast_string_to_ptr_err.vv
    │   │   │   ├── cast_string_to_rune_err.out
    │   │   │   ├── cast_string_to_rune_err.vv
    │   │   │   ├── cast_string_with_byte_err.out
    │   │   │   ├── cast_string_with_byte_err.vv
    │   │   │   ├── cast_sumtype_as_generic_err.out
    │   │   │   ├── cast_sumtype_as_generic_err.vv
    │   │   │   ├── cast_sumtype_err.out
    │   │   │   ├── cast_sumtype_err.vv
    │   │   │   ├── cast_to_byte_err.out
    │   │   │   ├── cast_to_byte_err.vv
    │   │   │   ├── cast_to_concrete_mut_err.out
    │   │   │   ├── cast_to_concrete_mut_err.vv
    │   │   │   ├── cast_to_interface_err.out
    │   │   │   ├── cast_to_interface_err.vv
    │   │   │   ├── cast_to_ref_struct_err.out
    │   │   │   ├── cast_to_ref_struct_err.vv
    │   │   │   ├── cast_void.out
    │   │   │   ├── cast_void.vv
    │   │   │   ├── cast_voidptr_to_struct_alias_err.out
    │   │   │   ├── cast_voidptr_to_struct_alias_err.vv
    │   │   │   ├── cast_voidptr_to_struct_err.out
    │   │   │   ├── cast_voidptr_to_struct_err.vv
    │   │   │   ├── casting_numbers_to_enums_outside_unsafe_err.out
    │   │   │   ├── casting_numbers_to_enums_outside_unsafe_err.vv
    │   │   │   ├── chan_args.out
    │   │   │   ├── chan_args.vv
    │   │   │   ├── chan_elem_type_unknown.out
    │   │   │   ├── chan_elem_type_unknown.vv
    │   │   │   ├── chan_incompatible_type_err.out
    │   │   │   ├── chan_incompatible_type_err.vv
    │   │   │   ├── chan_mut.out
    │   │   │   ├── chan_mut.vv
    │   │   │   ├── chan_ref.out
    │   │   │   ├── chan_ref.vv
    │   │   │   ├── chan_unknown_err.out
    │   │   │   ├── chan_unknown_err.vv
    │   │   │   ├── char_str.out
    │   │   │   ├── char_str.vv
    │   │   │   ├── check_err_msg_with_generics.out
    │   │   │   ├── check_err_msg_with_generics.vv
    │   │   │   ├── check_fn_init_as_mutable.out
    │   │   │   ├── check_fn_init_as_mutable.vv
    │   │   │   ├── check_incompatible_struct.out
    │   │   │   ├── check_incompatible_struct.vv
    │   │   │   ├── check_wrong_usage_of_break_and_continue.out
    │   │   │   ├── check_wrong_usage_of_break_and_continue.vv
    │   │   │   ├── checker_comparison_between_obj_and_int.out
    │   │   │   ├── checker_comparison_between_obj_and_int.vv
    │   │   │   ├── clash_ident_module_name_prefix.out
    │   │   │   ├── clash_ident_module_name_prefix.vv
    │   │   │   ├── closure_copy_immutable_var_err.out
    │   │   │   ├── closure_copy_immutable_var_err.vv
    │   │   │   ├── closure_immutable.out
    │   │   │   ├── closure_immutable.vv
    │   │   │   ├── closure_undefined_ident_err.out
    │   │   │   ├── closure_undefined_ident_err.vv
    │   │   │   ├── cmp_between_struct.out
    │   │   │   ├── cmp_between_struct.vv
    │   │   │   ├── compare_unsigned_signed.out
    │   │   │   ├── compare_unsigned_signed.vv
    │   │   │   ├── comparing_typesymbol_to_a_type_should_not_compile.out
    │   │   │   ├── comparing_typesymbol_to_a_type_should_not_compile.vv
    │   │   │   ├── compile_error.out
    │   │   │   ├── compile_error.vv
    │   │   │   ├── compile_error_call_position.out
    │   │   │   ├── compile_error_call_position.vv
    │   │   │   ├── compile_error_explicit_type.out
    │   │   │   ├── compile_error_explicit_type.vv
    │   │   │   ├── comptime_assign_missing_mut_err.out
    │   │   │   ├── comptime_assign_missing_mut_err.vv
    │   │   │   ├── comptime_branching_working_with_a_custom_compile_error.out
    │   │   │   ├── comptime_branching_working_with_a_custom_compile_error.vv
    │   │   │   ├── comptime_call_method.out
    │   │   │   ├── comptime_call_method.vv
    │   │   │   ├── comptime_call_method_args_err.out
    │   │   │   ├── comptime_call_method_args_err.vv
    │   │   │   ├── comptime_call_method_void_err.out
    │   │   │   ├── comptime_call_method_void_err.vv
    │   │   │   ├── comptime_call_no_unused_var.out
    │   │   │   ├── comptime_call_no_unused_var.vv
    │   │   │   ├── comptime_compile_warn_with_string_interp_test.out
    │   │   │   ├── comptime_compile_warn_with_string_interp_test.vv
    │   │   │   ├── comptime_defer_err.out
    │   │   │   ├── comptime_defer_err.vv
    │   │   │   ├── comptime_dump_fields_var_test.out
    │   │   │   ├── comptime_dump_fields_var_test.vv
    │   │   │   ├── comptime_else_compile_error_no_return.out
    │   │   │   ├── comptime_else_compile_error_no_return.vv
    │   │   │   ├── comptime_env/
    │   │   │   │   ├── env_parser_errors_1.run.out
    │   │   │   │   ├── env_parser_errors_1.vv
    │   │   │   │   ├── env_parser_errors_2.run.out
    │   │   │   │   ├── env_parser_errors_2.vv
    │   │   │   │   ├── env_parser_errors_3.run.out
    │   │   │   │   ├── env_parser_errors_3.vv
    │   │   │   │   ├── using_comptime_env.run.out
    │   │   │   │   ├── using_comptime_env.var.run.out
    │   │   │   │   ├── using_comptime_env.var_invalid.run.out
    │   │   │   │   └── using_comptime_env.vv
    │   │   │   ├── comptime_field_name_assign_incorrect_type_err.out
    │   │   │   ├── comptime_field_name_assign_incorrect_type_err.vv
    │   │   │   ├── comptime_field_name_not_exist.out
    │   │   │   ├── comptime_field_name_not_exist.vv
    │   │   │   ├── comptime_field_selector_not_in_for_err.out
    │   │   │   ├── comptime_field_selector_not_in_for_err.vv
    │   │   │   ├── comptime_field_selector_not_name_err.out
    │   │   │   ├── comptime_field_selector_not_name_err.vv
    │   │   │   ├── comptime_for.out
    │   │   │   ├── comptime_for.vv
    │   │   │   ├── comptime_if_option_string_test.out
    │   │   │   ├── comptime_if_option_string_test.vv
    │   │   │   ├── comptime_insert_err.cc
    │   │   │   ├── comptime_insert_err.out
    │   │   │   ├── comptime_insert_err.vv
    │   │   │   ├── comptime_match_cond_cannot_mut.out
    │   │   │   ├── comptime_match_cond_cannot_mut.vv
    │   │   │   ├── comptime_match_value_different_type.out
    │   │   │   ├── comptime_match_value_different_type.vv
    │   │   │   ├── comptime_match_value_type_mix_check.out
    │   │   │   ├── comptime_match_value_type_mix_check.vv
    │   │   │   ├── comptime_param_not_fn_err.out
    │   │   │   ├── comptime_param_not_fn_err.vv
    │   │   │   ├── comptime_selector_assign.out
    │   │   │   ├── comptime_selector_assign.vv
    │   │   │   ├── comptime_selector_expr_type_err.out
    │   │   │   ├── comptime_selector_expr_type_err.vv
    │   │   │   ├── comptime_value_d_in_include_errors.out
    │   │   │   ├── comptime_value_d_in_include_errors.vv
    │   │   │   ├── comptime_value_d_only_d_in_fixed_size_array.out
    │   │   │   ├── comptime_value_d_only_d_in_fixed_size_array.vv
    │   │   │   ├── comptime_value_d_values_can_only_be_pure_literals.out
    │   │   │   ├── comptime_value_d_values_can_only_be_pure_literals.vv
    │   │   │   ├── comptime_veb_vweb_call_err.out
    │   │   │   ├── comptime_veb_vweb_call_err.vv
    │   │   │   ├── const_array_unknown_type_err.out
    │   │   │   ├── const_array_unknown_type_err.vv
    │   │   │   ├── const_blank_ident_as_name_err.out
    │   │   │   ├── const_blank_ident_as_name_err.vv
    │   │   │   ├── const_cycle_decl_err.out
    │   │   │   ├── const_cycle_decl_err.vv
    │   │   │   ├── const_decl_multi_return_err.out
    │   │   │   ├── const_decl_multi_return_err.vv
    │   │   │   ├── const_define_in_function_err.out
    │   │   │   ├── const_define_in_function_err.vv
    │   │   │   ├── const_expr_match_range_invalid_err.out
    │   │   │   ├── const_expr_match_range_invalid_err.vv
    │   │   │   ├── const_field_add_err.out
    │   │   │   ├── const_field_add_err.vv
    │   │   │   ├── const_field_dec_err.out
    │   │   │   ├── const_field_dec_err.vv
    │   │   │   ├── const_field_inc_err.out
    │   │   │   ├── const_field_inc_err.vv
    │   │   │   ├── const_field_name_duplicate_err.out
    │   │   │   ├── const_field_name_duplicate_err.vv
    │   │   │   ├── const_field_name_snake_case.out
    │   │   │   ├── const_field_name_snake_case.vv
    │   │   │   ├── const_field_sub_err.out
    │   │   │   ├── const_field_sub_err.vv
    │   │   │   ├── const_int_overflow_err.out
    │   │   │   ├── const_int_overflow_err.vv
    │   │   │   ├── const_match_invalid_type_range_err.out
    │   │   │   ├── const_match_invalid_type_range_err.vv
    │   │   │   ├── const_match_mismatch_end_range_err.out
    │   │   │   ├── const_match_mismatch_end_range_err.vv
    │   │   │   ├── const_match_range_duplicate_case_err.out
    │   │   │   ├── const_match_range_duplicate_case_err.vv
    │   │   │   ├── const_match_range_invalid_err.out
    │   │   │   ├── const_match_range_invalid_err.vv
    │   │   │   ├── const_match_type_mismatch_range_err.out
    │   │   │   ├── const_match_type_mismatch_range_err.vv
    │   │   │   ├── const_name_for_loop_duplicate_name_err.out
    │   │   │   ├── const_name_for_loop_duplicate_name_err.vv
    │   │   │   ├── const_reference_write_err.out
    │   │   │   ├── const_reference_write_err.vv
    │   │   │   ├── crystallib_struct_init_result_err.out
    │   │   │   ├── crystallib_struct_init_result_err.vv
    │   │   │   ├── ctdefine.out
    │   │   │   ├── ctdefine.vv
    │   │   │   ├── custom_comptime_define_error.mysymbol.run.out
    │   │   │   ├── custom_comptime_define_error.out
    │   │   │   ├── custom_comptime_define_error.vv
    │   │   │   ├── custom_comptime_define_if_debug.cg.run.out
    │   │   │   ├── custom_comptime_define_if_debug.debug.bar.run.out
    │   │   │   ├── custom_comptime_define_if_debug.debug.run.out
    │   │   │   ├── custom_comptime_define_if_debug.g.run.out
    │   │   │   ├── custom_comptime_define_if_debug.out
    │   │   │   ├── custom_comptime_define_if_debug.run.out
    │   │   │   ├── custom_comptime_define_if_debug.vv
    │   │   │   ├── custom_comptime_define_if_flag.mydebug.run.out
    │   │   │   ├── custom_comptime_define_if_flag.nodebug.run.out
    │   │   │   ├── custom_comptime_define_if_flag.out
    │   │   │   ├── custom_comptime_define_if_flag.vv
    │   │   │   ├── dec_lit_wrong_digit_err.out
    │   │   │   ├── dec_lit_wrong_digit_err.vv
    │   │   │   ├── decompose_interface_err.out
    │   │   │   ├── decompose_interface_err.vv
    │   │   │   ├── decompose_type_err.out
    │   │   │   ├── decompose_type_err.vv
    │   │   │   ├── defer_fn_inside_fn_scope.out
    │   │   │   ├── defer_fn_inside_fn_scope.vv
    │   │   │   ├── defer_fn_inside_lock_stmt_err.out
    │   │   │   ├── defer_fn_inside_lock_stmt_err.vv
    │   │   │   ├── defer_in_for.out
    │   │   │   ├── defer_in_for.vv
    │   │   │   ├── defer_use_multi_return_value_with_index_out_of_bounds.out
    │   │   │   ├── defer_use_multi_return_value_with_index_out_of_bounds.vv
    │   │   │   ├── defer_use_multi_return_value_without_index.out
    │   │   │   ├── defer_use_multi_return_value_without_index.vv
    │   │   │   ├── defer_use_returned_value_when_nothing_is_returned.out
    │   │   │   ├── defer_use_returned_value_when_nothing_is_returned.vv
    │   │   │   ├── defer_use_returned_value_when_result_is_returned.out
    │   │   │   ├── defer_use_returned_value_when_result_is_returned.vv
    │   │   │   ├── deference_nil_ptr_err.out
    │   │   │   ├── deference_nil_ptr_err.vv
    │   │   │   ├── deprecate_any.out
    │   │   │   ├── deprecate_any.vv
    │   │   │   ├── deprecations.out
    │   │   │   ├── deprecations.vv
    │   │   │   ├── deprecations_consts.out
    │   │   │   ├── deprecations_consts.vv
    │   │   │   ├── diff_type_map_value_err.out
    │   │   │   ├── diff_type_map_value_err.vv
    │   │   │   ├── disallow_pointer_arithmetic_err.out
    │   │   │   ├── disallow_pointer_arithmetic_err.vv
    │   │   │   ├── discard_import_usage.out
    │   │   │   ├── discard_import_usage.vv
    │   │   │   ├── div_mod_by_cast_zero_int_err.out
    │   │   │   ├── div_mod_by_cast_zero_int_err.vv
    │   │   │   ├── div_op_wrong_type_err.out
    │   │   │   ├── div_op_wrong_type_err.vv
    │   │   │   ├── division_by_cast_zero_float_err.out
    │   │   │   ├── division_by_cast_zero_float_err.vv
    │   │   │   ├── division_by_zero_float_err.out
    │   │   │   ├── division_by_zero_float_err.vv
    │   │   │   ├── division_by_zero_int_err.out
    │   │   │   ├── division_by_zero_int_err.vv
    │   │   │   ├── dump_char.out
    │   │   │   ├── dump_char.vv
    │   │   │   ├── dump_of_void_expr.out
    │   │   │   ├── dump_of_void_expr.vv
    │   │   │   ├── duplicate_field_method_err.out
    │   │   │   ├── duplicate_field_method_err.vv
    │   │   │   ├── embed_unknown_compress_type.out
    │   │   │   ├── embed_unknown_compress_type.vv
    │   │   │   ├── empty_arr_to_generic_param_err.out
    │   │   │   ├── empty_arr_to_generic_param_err.vv
    │   │   │   ├── empty_arr_to_generic_param_sum_like_err.out
    │   │   │   ├── empty_arr_to_generic_param_sum_like_err.vv
    │   │   │   ├── empty_fn_noreturn_err.out
    │   │   │   ├── empty_fn_noreturn_err.vv
    │   │   │   ├── enum_as_int_err.out
    │   │   │   ├── enum_as_int_err.vv
    │   │   │   ├── enum_cast.out
    │   │   │   ├── enum_cast.vv
    │   │   │   ├── enum_empty.out
    │   │   │   ├── enum_empty.vv
    │   │   │   ├── enum_err.out
    │   │   │   ├── enum_err.vv
    │   │   │   ├── enum_error_module.out
    │   │   │   ├── enum_error_module.vv
    │   │   │   ├── enum_field_name_duplicate_err.out
    │   │   │   ├── enum_field_name_duplicate_err.vv
    │   │   │   ├── enum_field_overflow.out
    │   │   │   ├── enum_field_overflow.vv
    │   │   │   ├── enum_field_value_duplicate_a.out
    │   │   │   ├── enum_field_value_duplicate_a.vv
    │   │   │   ├── enum_field_value_duplicate_b.out
    │   │   │   ├── enum_field_value_duplicate_b.vv
    │   │   │   ├── enum_field_value_duplicate_c.out
    │   │   │   ├── enum_field_value_duplicate_c.vv
    │   │   │   ├── enum_field_value_duplicate_d.out
    │   │   │   ├── enum_field_value_duplicate_d.vv
    │   │   │   ├── enum_field_value_duplicate_e.out
    │   │   │   ├── enum_field_value_duplicate_e.vv
    │   │   │   ├── enum_field_value_overflow.out
    │   │   │   ├── enum_field_value_overflow.vv
    │   │   │   ├── enum_from_string_args_err.out
    │   │   │   ├── enum_from_string_args_err.vv
    │   │   │   ├── enum_init_err.out
    │   │   │   ├── enum_init_err.vv
    │   │   │   ├── enum_op_err.out
    │   │   │   ├── enum_op_err.vv
    │   │   │   ├── enum_op_flag_err.out
    │   │   │   ├── enum_op_flag_err.vv
    │   │   │   ├── enum_redeclare_err.out
    │   │   │   ├── enum_redeclare_err.vv
    │   │   │   ├── enum_self_reference.out
    │   │   │   ├── enum_self_reference.vv
    │   │   │   ├── enum_single_letter.out
    │   │   │   ├── enum_single_letter.vv
    │   │   │   ├── enum_value_used_before_decl_err.out
    │   │   │   ├── enum_value_used_before_decl_err.vv
    │   │   │   ├── eq_ne_op_wrong_type_err.out
    │   │   │   ├── eq_ne_op_wrong_type_err.vv
    │   │   │   ├── error_fn_with_0_args.out
    │   │   │   ├── error_fn_with_0_args.vv
    │   │   │   ├── error_with_comment_with_crlf_ending.out
    │   │   │   ├── error_with_comment_with_crlf_ending.vv
    │   │   │   ├── error_with_comment_with_lf_ending.out
    │   │   │   ├── error_with_comment_with_lf_ending.vv
    │   │   │   ├── error_with_several_comments_with_crlf_ending.out
    │   │   │   ├── error_with_several_comments_with_crlf_ending.vv
    │   │   │   ├── error_with_unicode.out
    │   │   │   ├── error_with_unicode.vv
    │   │   │   ├── expr_evaluated_but_not_used.out
    │   │   │   ├── expr_evaluated_but_not_used.vv
    │   │   │   ├── expression_should_return_an_option.out
    │   │   │   ├── expression_should_return_an_option.vv
    │   │   │   ├── field_can_not_be_from_the_same_type_as_containing_struct.out
    │   │   │   ├── field_can_not_be_from_the_same_type_as_containing_struct.vv
    │   │   │   ├── field_deprecations.out
    │   │   │   ├── field_deprecations.vv
    │   │   │   ├── filter_func_return_nonbool_err.out
    │   │   │   ├── filter_func_return_nonbool_err.vv
    │   │   │   ├── filter_on_non_arr_err.out
    │   │   │   ├── filter_on_non_arr_err.vv
    │   │   │   ├── fixed_array_builtin_method_args_err.out
    │   │   │   ├── fixed_array_builtin_method_args_err.vv
    │   │   │   ├── fixed_array_conv.out
    │   │   │   ├── fixed_array_conv.vv
    │   │   │   ├── fixed_array_decompose_err.out
    │   │   │   ├── fixed_array_decompose_err.vv
    │   │   │   ├── fixed_array_init_with_default.out
    │   │   │   ├── fixed_array_init_with_default.vv
    │   │   │   ├── fixed_array_non_const_size_err.out
    │   │   │   ├── fixed_array_non_const_size_err.vv
    │   │   │   ├── fixed_array_size_err.out
    │   │   │   ├── fixed_array_size_err.vv
    │   │   │   ├── fixed_array_sort_err.out
    │   │   │   ├── fixed_array_sort_err.vv
    │   │   │   ├── flag_enum_exhaustive_else_branch.out
    │   │   │   ├── flag_enum_exhaustive_else_branch.vv
    │   │   │   ├── float_lit_exp_not_integer_err.out
    │   │   │   ├── float_lit_exp_not_integer_err.vv
    │   │   │   ├── float_lit_exp_without_digit_err.out
    │   │   │   ├── float_lit_exp_without_digit_err.vv
    │   │   │   ├── float_lit_too_many_points_err.out
    │   │   │   ├── float_lit_too_many_points_err.vv
    │   │   │   ├── float_modulo_err.out
    │   │   │   ├── float_modulo_err.vv
    │   │   │   ├── fn_args.out
    │   │   │   ├── fn_args.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_a.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_a.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_b.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_b.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_c.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_c.vv
    │   │   │   ├── fn_call_arg_array_mismatch_err.out
    │   │   │   ├── fn_call_arg_array_mismatch_err.vv
    │   │   │   ├── fn_call_arg_fn_mismatch_err.out
    │   │   │   ├── fn_call_arg_fn_mismatch_err.vv
    │   │   │   ├── fn_call_arg_mismatch_err_a.out
    │   │   │   ├── fn_call_arg_mismatch_err_a.vv
    │   │   │   ├── fn_call_arg_mismatch_err_b.out
    │   │   │   ├── fn_call_arg_mismatch_err_b.vv
    │   │   │   ├── fn_call_arg_mismatch_err_c.out
    │   │   │   ├── fn_call_arg_mismatch_err_c.vv
    │   │   │   ├── fn_call_arg_mismatch_err_d.out
    │   │   │   ├── fn_call_arg_mismatch_err_d.vv
    │   │   │   ├── fn_call_arg_mismatch_err_e.out
    │   │   │   ├── fn_call_arg_mismatch_err_e.vv
    │   │   │   ├── fn_call_arg_multi_err.out
    │   │   │   ├── fn_call_arg_multi_err.vv
    │   │   │   ├── fn_call_arg_ptr_mismatch_err.out
    │   │   │   ├── fn_call_arg_ptr_mismatch_err.vv
    │   │   │   ├── fn_call_mismatch_alias_type_err.out
    │   │   │   ├── fn_call_mismatch_alias_type_err.vv
    │   │   │   ├── fn_call_mut_arg_mismatch_err.out
    │   │   │   ├── fn_call_mut_arg_mismatch_err.vv
    │   │   │   ├── fn_call_no_body.out
    │   │   │   ├── fn_call_no_body.vv
    │   │   │   ├── fn_call_or_block_err.out
    │   │   │   ├── fn_call_or_block_err.vv
    │   │   │   ├── fn_call_ref_incompatible_u8_test.out
    │   │   │   ├── fn_call_ref_incompatible_u8_test.vv
    │   │   │   ├── fn_call_using_none_arg_err.out
    │   │   │   ├── fn_call_using_none_arg_err.vv
    │   │   │   ├── fn_call_with_extra_parenthesis.out
    │   │   │   ├── fn_call_with_extra_parenthesis.vv
    │   │   │   ├── fn_check_for_matching_option_result_in_fields.out
    │   │   │   ├── fn_check_for_matching_option_result_in_fields.vv
    │   │   │   ├── fn_duplicate.out
    │   │   │   ├── fn_duplicate.vv
    │   │   │   ├── fn_init_sig.out
    │   │   │   ├── fn_init_sig.vv
    │   │   │   ├── fn_mismatch_option_return_err.out
    │   │   │   ├── fn_mismatch_option_return_err.vv
    │   │   │   ├── fn_param_import_sym_conflict.out
    │   │   │   ├── fn_param_import_sym_conflict.vv
    │   │   │   ├── fn_ptr_undereferenced_err.out
    │   │   │   ├── fn_ptr_undereferenced_err.vv
    │   │   │   ├── fn_ref_arg_mismatch_err.out
    │   │   │   ├── fn_ref_arg_mismatch_err.vv
    │   │   │   ├── fn_result_option_call_infix_err.out
    │   │   │   ├── fn_result_option_call_infix_err.vv
    │   │   │   ├── fn_return_array_sort_err.out
    │   │   │   ├── fn_return_array_sort_err.vv
    │   │   │   ├── fn_return_fixed_array_sort_err.out
    │   │   │   ├── fn_return_fixed_array_sort_err.vv
    │   │   │   ├── fn_return_fn_type_mismatch_err.out
    │   │   │   ├── fn_return_fn_type_mismatch_err.vv
    │   │   │   ├── fn_return_or_err.out
    │   │   │   ├── fn_return_or_err.vv
    │   │   │   ├── fn_return_type_mismatch.out
    │   │   │   ├── fn_return_type_mismatch.vv
    │   │   │   ├── fn_return_unsign_type_mismatch.out
    │   │   │   ├── fn_return_unsign_type_mismatch.vv
    │   │   │   ├── fn_return_void_fn_call_err.out
    │   │   │   ├── fn_return_void_fn_call_err.vv
    │   │   │   ├── fn_selector_expr_err.out
    │   │   │   ├── fn_selector_expr_err.vv
    │   │   │   ├── fn_type_exists.out
    │   │   │   ├── fn_type_exists.vv
    │   │   │   ├── fn_type_mismatch.out
    │   │   │   ├── fn_type_mismatch.vv
    │   │   │   ├── fn_var.out
    │   │   │   ├── fn_var.vv
    │   │   │   ├── fn_variadic.out
    │   │   │   ├── fn_variadic.vv
    │   │   │   ├── fn_variadic_arg_err.out
    │   │   │   ├── fn_variadic_arg_err.vv
    │   │   │   ├── for_c_stmt_with_var_declaration_in_post_stmt.out
    │   │   │   ├── for_c_stmt_with_var_declaration_in_post_stmt.vv
    │   │   │   ├── for_comptime_enum_fields_err.out
    │   │   │   ├── for_comptime_enum_fields_err.vv
    │   │   │   ├── for_comptime_struct_values_err.out
    │   │   │   ├── for_comptime_struct_values_err.vv
    │   │   │   ├── for_in_index_option.out
    │   │   │   ├── for_in_index_option.vv
    │   │   │   ├── for_in_index_type.out
    │   │   │   ├── for_in_index_type.vv
    │   │   │   ├── for_in_invalid_identifier.out
    │   │   │   ├── for_in_invalid_identifier.vv
    │   │   │   ├── for_in_iterator_returning_multiple_values_err.out
    │   │   │   ├── for_in_iterator_returning_multiple_values_err.vv
    │   │   │   ├── for_in_key_redefinition.out
    │   │   │   ├── for_in_key_redefinition.vv
    │   │   │   ├── for_in_map_one_variable_err.out
    │   │   │   ├── for_in_map_one_variable_err.vv
    │   │   │   ├── for_in_mut_string.out
    │   │   │   ├── for_in_mut_string.vv
    │   │   │   ├── for_in_mut_val_type.out
    │   │   │   ├── for_in_mut_val_type.vv
    │   │   │   ├── for_in_range_not_match_type.out
    │   │   │   ├── for_in_range_not_match_type.vv
    │   │   │   ├── for_in_range_result_optional_err.out
    │   │   │   ├── for_in_range_result_optional_err.vv
    │   │   │   ├── for_in_range_string_type.out
    │   │   │   ├── for_in_range_string_type.vv
    │   │   │   ├── for_in_same_var_err.out
    │   │   │   ├── for_in_same_var_err.vv
    │   │   │   ├── for_in_value_redefinition.out
    │   │   │   ├── for_in_value_redefinition.vv
    │   │   │   ├── for_in_with_reserved_type_names.out
    │   │   │   ├── for_in_with_reserved_type_names.vv
    │   │   │   ├── for_loop_range_inclusive_err.out
    │   │   │   ├── for_loop_range_inclusive_err.vv
    │   │   │   ├── for_match_err.out
    │   │   │   ├── for_match_err.vv
    │   │   │   ├── for_mut_compare_rune_string_err.out
    │   │   │   ├── for_mut_compare_rune_string_err.vv
    │   │   │   ├── free_method_errors.out
    │   │   │   ├── free_method_errors.vv
    │   │   │   ├── from_string_on_non_enum_err.out
    │   │   │   ├── from_string_on_non_enum_err.vv
    │   │   │   ├── func_with_static_keyword_err.out
    │   │   │   ├── func_with_static_keyword_err.vv
    │   │   │   ├── function_arg_mutable_err.out
    │   │   │   ├── function_arg_mutable_err.vv
    │   │   │   ├── function_arg_redefinition.out
    │   │   │   ├── function_arg_redefinition.vv
    │   │   │   ├── function_cast_outside_unsafe_err.out
    │   │   │   ├── function_cast_outside_unsafe_err.vv
    │   │   │   ├── function_count_of_args_mismatch_err.out
    │   │   │   ├── function_count_of_args_mismatch_err.vv
    │   │   │   ├── function_missing_return_type.out
    │   │   │   ├── function_missing_return_type.vv
    │   │   │   ├── function_variadic_arg_array_decompose.out
    │   │   │   ├── function_variadic_arg_array_decompose.vv
    │   │   │   ├── function_wrong_arg_type.out
    │   │   │   ├── function_wrong_arg_type.vv
    │   │   │   ├── function_wrong_return_type.out
    │   │   │   ├── function_wrong_return_type.vv
    │   │   │   ├── generic_array_init_err.out
    │   │   │   ├── generic_array_init_err.vv
    │   │   │   ├── generic_closure_fn_decl_err_a.out
    │   │   │   ├── generic_closure_fn_decl_err_a.vv
    │   │   │   ├── generic_closure_fn_decl_err_b.out
    │   │   │   ├── generic_closure_fn_decl_err_b.vv
    │   │   │   ├── generic_eq_wrong_type.err.out
    │   │   │   ├── generic_eq_wrong_type.err.vv
    │   │   │   ├── generic_field_init_with_call_err.out
    │   │   │   ├── generic_field_init_with_call_err.vv
    │   │   │   ├── generic_fn_call_arg_mismatch_err.out
    │   │   │   ├── generic_fn_call_arg_mismatch_err.vv
    │   │   │   ├── generic_fn_decl_err.out
    │   │   │   ├── generic_fn_decl_err.vv
    │   │   │   ├── generic_fn_decl_without_generic_names_err.out
    │   │   │   ├── generic_fn_decl_without_generic_names_err.vv
    │   │   │   ├── generic_fn_generic_name_unresolved_err.out
    │   │   │   ├── generic_fn_generic_name_unresolved_err.vv
    │   │   │   ├── generic_fn_infinite_loop_limit_err.out
    │   │   │   ├── generic_fn_infinite_loop_limit_err.vv
    │   │   │   ├── generic_fn_var_unresolved_err.out
    │   │   │   ├── generic_fn_var_unresolved_err.vv
    │   │   │   ├── generic_fntype_err.out
    │   │   │   ├── generic_fntype_err.vv
    │   │   │   ├── generic_infix_plus_err.out
    │   │   │   ├── generic_infix_plus_err.vv
    │   │   │   ├── generic_interface_err.out
    │   │   │   ├── generic_interface_err.vv
    │   │   │   ├── generic_interface_method_decl_err.out
    │   │   │   ├── generic_interface_method_decl_err.vv
    │   │   │   ├── generic_interface_missing_type_names_err.out
    │   │   │   ├── generic_interface_missing_type_names_err.vv
    │   │   │   ├── generic_mut_struct_index_err.out
    │   │   │   ├── generic_mut_struct_index_err.vv
    │   │   │   ├── generic_sumtype_decl_err_a.out
    │   │   │   ├── generic_sumtype_decl_err_a.vv
    │   │   │   ├── generic_sumtype_decl_err_b.out
    │   │   │   ├── generic_sumtype_decl_err_b.vv
    │   │   │   ├── generic_sumtype_decl_err_c.out
    │   │   │   ├── generic_sumtype_decl_err_c.vv
    │   │   │   ├── generic_sumtype_decl_err_d.out
    │   │   │   ├── generic_sumtype_decl_err_d.vv
    │   │   │   ├── generic_sumtype_decl_err_e.out
    │   │   │   ├── generic_sumtype_decl_err_e.vv
    │   │   │   ├── generic_sumtype_invalid_variant.out
    │   │   │   ├── generic_sumtype_invalid_variant.vv
    │   │   │   ├── generic_type_inference.out
    │   │   │   ├── generic_type_inference.vv
    │   │   │   ├── generic_type_name_in_non_generic_function.out
    │   │   │   ├── generic_type_name_in_non_generic_function.vv
    │   │   │   ├── generics_field_struct_arr_err.out
    │   │   │   ├── generics_field_struct_arr_err.vv
    │   │   │   ├── generics_fn_arg_type_err.out
    │   │   │   ├── generics_fn_arg_type_err.vv
    │   │   │   ├── generics_fn_arguments_count_err.out
    │   │   │   ├── generics_fn_arguments_count_err.vv
    │   │   │   ├── generics_fn_called_arg_mismatch.out
    │   │   │   ├── generics_fn_called_arg_mismatch.vv
    │   │   │   ├── generics_fn_called_fntype_arg_mismatch.out
    │   │   │   ├── generics_fn_called_fntype_arg_mismatch.vv
    │   │   │   ├── generics_fn_called_multi_args_mismatch.out
    │   │   │   ├── generics_fn_called_multi_args_mismatch.vv
    │   │   │   ├── generics_fn_called_no_arg_err.out
    │   │   │   ├── generics_fn_called_no_arg_err.vv
    │   │   │   ├── generics_fn_called_outside_of_generic_fn.out
    │   │   │   ├── generics_fn_called_outside_of_generic_fn.vv
    │   │   │   ├── generics_fn_called_variadic_arg_mismatch.out
    │   │   │   ├── generics_fn_called_variadic_arg_mismatch.vv
    │   │   │   ├── generics_fn_param_wrong_arg_type_err.out
    │   │   │   ├── generics_fn_param_wrong_arg_type_err.vv
    │   │   │   ├── generics_fn_return_generic_closure_err.out
    │   │   │   ├── generics_fn_return_generic_closure_err.vv
    │   │   │   ├── generics_fn_return_generic_struct_err.out
    │   │   │   ├── generics_fn_return_generic_struct_err.vv
    │   │   │   ├── generics_inst_non_generic_struct_err.out
    │   │   │   ├── generics_inst_non_generic_struct_err.vv
    │   │   │   ├── generics_interface_decl_no_mention_err.out
    │   │   │   ├── generics_interface_decl_no_mention_err.vv
    │   │   │   ├── generics_interface_declaration_err.out
    │   │   │   ├── generics_interface_declaration_err.vv
    │   │   │   ├── generics_interface_field_type_err.out
    │   │   │   ├── generics_interface_field_type_err.vv
    │   │   │   ├── generics_method_arg_type_err.out
    │   │   │   ├── generics_method_arg_type_err.vv
    │   │   │   ├── generics_method_called_arg_mismatch.out
    │   │   │   ├── generics_method_called_arg_mismatch.vv
    │   │   │   ├── generics_method_called_variadic_arg_mismatch.out
    │   │   │   ├── generics_method_called_variadic_arg_mismatch.vv
    │   │   │   ├── generics_method_receiver_type_err_a.out
    │   │   │   ├── generics_method_receiver_type_err_a.vv
    │   │   │   ├── generics_method_receiver_type_err_b.out
    │   │   │   ├── generics_method_receiver_type_err_b.vv
    │   │   │   ├── generics_method_sumtype_arg_mismatch.out
    │   │   │   ├── generics_method_sumtype_arg_mismatch.vv
    │   │   │   ├── generics_non_generic_fn_called_like_a_generic_one.out
    │   │   │   ├── generics_non_generic_fn_called_like_a_generic_one.vv
    │   │   │   ├── generics_non_generic_struct_used_like_a_generic_one.out
    │   │   │   ├── generics_non_generic_struct_used_like_a_generic_one.vv
    │   │   │   ├── generics_struct_decl_no_mention_err.out
    │   │   │   ├── generics_struct_decl_no_mention_err.vv
    │   │   │   ├── generics_struct_declaration_err.out
    │   │   │   ├── generics_struct_declaration_err.vv
    │   │   │   ├── generics_struct_field_fn_args_err.out
    │   │   │   ├── generics_struct_field_fn_args_err.vv
    │   │   │   ├── generics_struct_field_type_err.out
    │   │   │   ├── generics_struct_field_type_err.vv
    │   │   │   ├── generics_struct_in_non_generic_fn_err.out
    │   │   │   ├── generics_struct_in_non_generic_fn_err.vv
    │   │   │   ├── generics_struct_infer_err.out
    │   │   │   ├── generics_struct_infer_err.vv
    │   │   │   ├── generics_struct_init_err.out
    │   │   │   ├── generics_struct_init_err.vv
    │   │   │   ├── generics_struct_init_type_parameter_err.out
    │   │   │   ├── generics_struct_init_type_parameter_err.vv
    │   │   │   ├── generics_struct_init_with_inconsistent_generic_types_3_err.out
    │   │   │   ├── generics_struct_init_with_inconsistent_generic_types_3_err.vv
    │   │   │   ├── generics_struct_nokeys_init_err.out
    │   │   │   ├── generics_struct_nokeys_init_err.vv
    │   │   │   ├── generics_struct_type_mismatch_err.out
    │   │   │   ├── generics_struct_type_mismatch_err.vv
    │   │   │   ├── generics_too_many_parameters.out
    │   │   │   ├── generics_too_many_parameters.vv
    │   │   │   ├── generics_type_ambiguous.out
    │   │   │   ├── generics_type_ambiguous.vv
    │   │   │   ├── generics_undefined_operation.out
    │   │   │   ├── generics_undefined_operation.vv
    │   │   │   ├── generics_undefined_operation_2.out
    │   │   │   ├── generics_undefined_operation_2.vv
    │   │   │   ├── globals/
    │   │   │   │   ├── assign_global_to_shared_err.out
    │   │   │   │   ├── assign_global_to_shared_err.vv
    │   │   │   │   ├── assign_no_value.out
    │   │   │   │   ├── assign_no_value.vv
    │   │   │   │   ├── cast_expr_T_type_err.out
    │   │   │   │   ├── cast_expr_T_type_err.vv
    │   │   │   │   ├── closure_capture_global_var.out
    │   │   │   │   ├── closure_capture_global_var.vv
    │   │   │   │   ├── global_anon_fn_without_body.out
    │   │   │   │   ├── global_anon_fn_without_body.vv
    │   │   │   │   ├── global_blank_ident_as_name_err.out
    │   │   │   │   ├── global_blank_ident_as_name_err.vv
    │   │   │   │   ├── global_receiver_var_name_err.out
    │   │   │   │   ├── global_receiver_var_name_err.vv
    │   │   │   │   ├── global_var_redeclare.out
    │   │   │   │   ├── global_var_redeclare.vv
    │   │   │   │   ├── incorrect_name_global.out
    │   │   │   │   ├── incorrect_name_global.vv
    │   │   │   │   ├── name_conflict_with_const.out
    │   │   │   │   ├── name_conflict_with_const.vv
    │   │   │   │   ├── nested_unknown_typ.out
    │   │   │   │   ├── nested_unknown_typ.vv
    │   │   │   │   ├── no_type.out
    │   │   │   │   ├── no_type.vv
    │   │   │   │   ├── redefine_main.out
    │   │   │   │   ├── redefine_main.vv
    │   │   │   │   ├── unexpected_eof.out
    │   │   │   │   ├── unexpected_eof.vv
    │   │   │   │   ├── unknown_typ.out
    │   │   │   │   └── unknown_typ.vv
    │   │   │   ├── globals_error.out
    │   │   │   ├── globals_error.run.out
    │   │   │   ├── globals_error.vv
    │   │   │   ├── globals_run/
    │   │   │   │   ├── function_stored_in_global.run.out
    │   │   │   │   ├── function_stored_in_global.vv
    │   │   │   │   ├── global_array_indexed_by_global_fn.run.out
    │   │   │   │   ├── global_array_indexed_by_global_fn.vv
    │   │   │   │   ├── global_fixed_array_initialisation.run.out
    │   │   │   │   ├── global_fixed_array_initialisation.vv
    │   │   │   │   ├── global_nested_struct_test.run.out
    │   │   │   │   ├── global_nested_struct_test.vv
    │   │   │   │   ├── global_var_in_anon_fn.run.out
    │   │   │   │   └── global_var_in_anon_fn.vv
    │   │   │   ├── go_append_option_to_threads_err.out
    │   │   │   ├── go_append_option_to_threads_err.vv
    │   │   │   ├── go_expr.out
    │   │   │   ├── go_expr.vv
    │   │   │   ├── go_mut_arg.out
    │   │   │   ├── go_mut_arg.vv
    │   │   │   ├── go_mut_receiver.out
    │   │   │   ├── go_mut_receiver.vv
    │   │   │   ├── go_wait_or.out
    │   │   │   ├── go_wait_or.vv
    │   │   │   ├── goto_label.out
    │   │   │   ├── goto_label.vv
    │   │   │   ├── hex_lit_without_digit_err.out
    │   │   │   ├── hex_lit_without_digit_err.vv
    │   │   │   ├── hex_lit_wrong_digit_err.out
    │   │   │   ├── hex_lit_wrong_digit_err.vv
    │   │   │   ├── hex_literal_overflow.out
    │   │   │   ├── hex_literal_overflow.vv
    │   │   │   ├── i64_to_f64_implicit_cast_err.out
    │   │   │   ├── i64_to_f64_implicit_cast_err.vv
    │   │   │   ├── ierror_in_return_tuple.out
    │   │   │   ├── ierror_in_return_tuple.vv
    │   │   │   ├── if_diff_expected_type_err.out
    │   │   │   ├── if_diff_expected_type_err.vv
    │   │   │   ├── if_expr_last_branch_stmt_err.out
    │   │   │   ├── if_expr_last_branch_stmt_err.vv
    │   │   │   ├── if_expr_last_stmt.out
    │   │   │   ├── if_expr_last_stmt.vv
    │   │   │   ├── if_expr_mismatch.out
    │   │   │   ├── if_expr_mismatch.vv
    │   │   │   ├── if_expr_no_else.out
    │   │   │   ├── if_expr_no_else.vv
    │   │   │   ├── if_expr_option_err.out
    │   │   │   ├── if_expr_option_err.vv
    │   │   │   ├── if_expr_result_err.out
    │   │   │   ├── if_expr_result_err.vv
    │   │   │   ├── if_expr_with_none_only.out
    │   │   │   ├── if_expr_with_none_only.vv
    │   │   │   ├── if_guard_expr_err.out
    │   │   │   ├── if_guard_expr_err.vv
    │   │   │   ├── if_guard_variables_err.out
    │   │   │   ├── if_guard_variables_err.vv
    │   │   │   ├── if_match_expr_err.out
    │   │   │   ├── if_match_expr_err.vv
    │   │   │   ├── if_match_result.out
    │   │   │   ├── if_match_result.vv
    │   │   │   ├── if_mismatch_muls_err.out
    │   │   │   ├── if_mismatch_muls_err.vv
    │   │   │   ├── if_mismatch_option_err.out
    │   │   │   ├── if_mismatch_option_err.vv
    │   │   │   ├── if_mut_with_immutable_var_err.out
    │   │   │   ├── if_mut_with_immutable_var_err.vv
    │   │   │   ├── if_non_bool_cond.out
    │   │   │   ├── if_non_bool_cond.vv
    │   │   │   ├── if_smartcast_mut_var_interface_err.out
    │   │   │   ├── if_smartcast_mut_var_interface_err.vv
    │   │   │   ├── immutable_arg.out
    │   │   │   ├── immutable_arg.vv
    │   │   │   ├── immutable_array_field_assign.out
    │   │   │   ├── immutable_array_field_assign.vv
    │   │   │   ├── immutable_array_field_shift.out
    │   │   │   ├── immutable_array_field_shift.vv
    │   │   │   ├── immutable_array_in_if_expr_index.out
    │   │   │   ├── immutable_array_in_if_expr_index.vv
    │   │   │   ├── immutable_array_struct_assign.out
    │   │   │   ├── immutable_array_struct_assign.vv
    │   │   │   ├── immutable_array_struct_shift.out
    │   │   │   ├── immutable_array_struct_shift.vv
    │   │   │   ├── immutable_array_var.out
    │   │   │   ├── immutable_array_var.vv
    │   │   │   ├── immutable_builtin_modify.out
    │   │   │   ├── immutable_builtin_modify.vv
    │   │   │   ├── immutable_deref.out
    │   │   │   ├── immutable_deref.vv
    │   │   │   ├── immutable_field.out
    │   │   │   ├── immutable_field.vv
    │   │   │   ├── immutable_field_postfix.out
    │   │   │   ├── immutable_field_postfix.vv
    │   │   │   ├── immutable_interface_field.out
    │   │   │   ├── immutable_interface_field.vv
    │   │   │   ├── immutable_map.out
    │   │   │   ├── immutable_map.vv
    │   │   │   ├── immutable_rec.out
    │   │   │   ├── immutable_rec.vv
    │   │   │   ├── immutable_struct_postfix.out
    │   │   │   ├── immutable_struct_postfix.vv
    │   │   │   ├── immutable_to_mutable_err.out
    │   │   │   ├── immutable_to_mutable_err.vv
    │   │   │   ├── immutable_var.out
    │   │   │   ├── immutable_var.vv
    │   │   │   ├── immutable_var_postfix.out
    │   │   │   ├── immutable_var_postfix.vv
    │   │   │   ├── implements_generic_err.out
    │   │   │   ├── implements_generic_err.vv
    │   │   │   ├── implements_keyword.out
    │   │   │   ├── implements_keyword.vv
    │   │   │   ├── import_duplicate_err.out
    │   │   │   ├── import_duplicate_err.vv
    │   │   │   ├── import_middle_err.out
    │   │   │   ├── import_middle_err.vv
    │   │   │   ├── import_mod_as_duplicate_err.out
    │   │   │   ├── import_mod_as_duplicate_err.vv
    │   │   │   ├── import_mod_as_import_alias_duplicate_err.out
    │   │   │   ├── import_mod_as_import_alias_duplicate_err.vv
    │   │   │   ├── import_mod_as_import_duplicate_err.out
    │   │   │   ├── import_mod_as_import_duplicate_err.vv
    │   │   │   ├── import_mod_as_mod_err.out
    │   │   │   ├── import_mod_as_mod_err.vv
    │   │   │   ├── import_mod_duplicate_as_alias_err.out
    │   │   │   ├── import_mod_duplicate_as_alias_err.vv
    │   │   │   ├── import_mod_duplicate_err.out
    │   │   │   ├── import_mod_duplicate_err.vv
    │   │   │   ├── import_mod_sub_as_duplicate_err.out
    │   │   │   ├── import_mod_sub_as_duplicate_err.vv
    │   │   │   ├── import_mod_sub_as_sub_err.out
    │   │   │   ├── import_mod_sub_as_sub_err.vv
    │   │   │   ├── import_mod_sub_duplicate_as_mod.out
    │   │   │   ├── import_mod_sub_duplicate_as_mod.vv
    │   │   │   ├── import_mod_sub_duplicate_err.out
    │   │   │   ├── import_mod_sub_duplicate_err.vv
    │   │   │   ├── import_multiple_modules_err.out
    │   │   │   ├── import_multiple_modules_err.vv
    │   │   │   ├── import_not_found_err.out
    │   │   │   ├── import_not_found_err.vv
    │   │   │   ├── import_not_same_line_err.out
    │   │   │   ├── import_not_same_line_err.vv
    │   │   │   ├── import_sym_builtin_override_err.out
    │   │   │   ├── import_sym_builtin_override_err.vv
    │   │   │   ├── import_symbol_empty.out
    │   │   │   ├── import_symbol_empty.vv
    │   │   │   ├── import_symbol_fn_err.out
    │   │   │   ├── import_symbol_fn_err.vv
    │   │   │   ├── import_symbol_invalid.out
    │   │   │   ├── import_symbol_invalid.vv
    │   │   │   ├── import_symbol_private_err.out
    │   │   │   ├── import_symbol_private_err.vv
    │   │   │   ├── import_symbol_type_err.out
    │   │   │   ├── import_symbol_type_err.vv
    │   │   │   ├── import_symbol_unclosed.out
    │   │   │   ├── import_symbol_unclosed.vv
    │   │   │   ├── import_syntax_err.out
    │   │   │   ├── import_syntax_err.vv
    │   │   │   ├── import_unused_warning.out
    │   │   │   ├── import_unused_warning.vv
    │   │   │   ├── in_mismatch_type.out
    │   │   │   ├── in_mismatch_type.vv
    │   │   │   ├── in_range_expr_err.out
    │   │   │   ├── in_range_expr_err.vv
    │   │   │   ├── inc_dec_fun_call.out
    │   │   │   ├── inc_dec_fun_call.vv
    │   │   │   ├── inc_num_literal.out
    │   │   │   ├── inc_num_literal.vv
    │   │   │   ├── inc_ok.out
    │   │   │   ├── inc_ok.vv
    │   │   │   ├── inc_paren_expr.out
    │   │   │   ├── inc_paren_expr.vv
    │   │   │   ├── incorrect_for_in_name_variable.out
    │   │   │   ├── incorrect_for_in_name_variable.vv
    │   │   │   ├── incorrect_name_alias_type.out
    │   │   │   ├── incorrect_name_alias_type.vv
    │   │   │   ├── incorrect_name_const.out
    │   │   │   ├── incorrect_name_const.vv
    │   │   │   ├── incorrect_name_enum.out
    │   │   │   ├── incorrect_name_enum.vv
    │   │   │   ├── incorrect_name_enum_field.out
    │   │   │   ├── incorrect_name_enum_field.vv
    │   │   │   ├── incorrect_name_fn_type.out
    │   │   │   ├── incorrect_name_fn_type.vv
    │   │   │   ├── incorrect_name_function.out
    │   │   │   ├── incorrect_name_function.vv
    │   │   │   ├── incorrect_name_interface.out
    │   │   │   ├── incorrect_name_interface.vv
    │   │   │   ├── incorrect_name_interface_method.out
    │   │   │   ├── incorrect_name_interface_method.vv
    │   │   │   ├── incorrect_name_module.out
    │   │   │   ├── incorrect_name_module.vv
    │   │   │   ├── incorrect_name_struct.out
    │   │   │   ├── incorrect_name_struct.vv
    │   │   │   ├── incorrect_name_struct_field.out
    │   │   │   ├── incorrect_name_struct_field.vv
    │   │   │   ├── incorrect_name_sum_type.out
    │   │   │   ├── incorrect_name_sum_type.vv
    │   │   │   ├── incorrect_name_variable.out
    │   │   │   ├── incorrect_name_variable.vv
    │   │   │   ├── incorrect_smartcast2_err.out
    │   │   │   ├── incorrect_smartcast2_err.vv
    │   │   │   ├── incorrect_smartcast3_err.out
    │   │   │   ├── incorrect_smartcast3_err.vv
    │   │   │   ├── incorrect_smartcast_err.out
    │   │   │   ├── incorrect_smartcast_err.vv
    │   │   │   ├── index_expr.out
    │   │   │   ├── index_expr.vv
    │   │   │   ├── index_invalid_call.out
    │   │   │   ├── index_invalid_call.vv
    │   │   │   ├── index_of_option_err.out
    │   │   │   ├── index_of_option_err.vv
    │   │   │   ├── index_sumtype_interface_struct_params_err.out
    │   │   │   ├── index_sumtype_interface_struct_params_err.vv
    │   │   │   ├── infix_and_op_expr_err.out
    │   │   │   ├── infix_and_op_expr_err.vv
    │   │   │   ├── infix_compare_option_err.out
    │   │   │   ├── infix_compare_option_err.vv
    │   │   │   ├── infix_dup_in_err.out
    │   │   │   ├── infix_dup_in_err.vv
    │   │   │   ├── infix_err.out
    │   │   │   ├── infix_err.vv
    │   │   │   ├── infix_expr_left_side_assogn_err.out
    │   │   │   ├── infix_expr_left_side_assogn_err.vv
    │   │   │   ├── infix_is_notis_interface_unimplemented_err.out
    │   │   │   ├── infix_is_notis_interface_unimplemented_err.vv
    │   │   │   ├── infix_is_unknown_module_no_panic.out
    │   │   │   ├── infix_is_unknown_module_no_panic.vv
    │   │   │   ├── infix_sumtype_in_array_err.out
    │   │   │   ├── infix_sumtype_in_array_err.vv
    │   │   │   ├── inner_functions_call_before_define.out
    │   │   │   ├── inner_functions_call_before_define.vv
    │   │   │   ├── int_modulo_by_zero_err.out
    │   │   │   ├── int_modulo_by_zero_err.vv
    │   │   │   ├── int_ptr_array_index_err.out
    │   │   │   ├── int_ptr_array_index_err.vv
    │   │   │   ├── int_signess_call_arg_test.out
    │   │   │   ├── int_signess_call_arg_test.vv
    │   │   │   ├── interface_field_name_err.out
    │   │   │   ├── interface_field_name_err.vv
    │   │   │   ├── interface_generic_err.out
    │   │   │   ├── interface_generic_err.vv
    │   │   │   ├── interface_implemented_by_function.out
    │   │   │   ├── interface_implemented_by_function.vv
    │   │   │   ├── interface_implementing_interface.out
    │   │   │   ├── interface_implementing_interface.vv
    │   │   │   ├── interface_implementing_own_interface_method.out
    │   │   │   ├── interface_implementing_own_interface_method.vv
    │   │   │   ├── interface_init_err.out
    │   │   │   ├── interface_init_err.vv
    │   │   │   ├── interface_method_name_err.out
    │   │   │   ├── interface_method_name_err.vv
    │   │   │   ├── interface_option_cast_err.out
    │   │   │   ├── interface_option_cast_err.vv
    │   │   │   ├── interface_return_parameter_err.out
    │   │   │   ├── interface_return_parameter_err.vv
    │   │   │   ├── interface_sameness_check_for_mutable_methods.out
    │   │   │   ├── interface_sameness_check_for_mutable_methods.vv
    │   │   │   ├── interface_too_many_embedding_levels.out
    │   │   │   ├── interface_too_many_embedding_levels.vv
    │   │   │   ├── interpolation_recursive_str_err.out
    │   │   │   ├── interpolation_recursive_str_err.vv
    │   │   │   ├── invalid_alias_ptr_cast_on_map_err.out
    │   │   │   ├── invalid_alias_ptr_cast_on_map_err.vv
    │   │   │   ├── invalid_char_err.out
    │   │   │   ├── invalid_char_err.vv
    │   │   │   ├── invalid_comptime_test.out
    │   │   │   ├── invalid_comptime_test.vv
    │   │   │   ├── invalid_const_expr_match_range_err.out
    │   │   │   ├── invalid_const_expr_match_range_err.vv
    │   │   │   ├── invalid_defer_mode_err.out
    │   │   │   ├── invalid_defer_mode_err.vv
    │   │   │   ├── invalid_generic_field_err.out
    │   │   │   ├── invalid_generic_field_err.vv
    │   │   │   ├── invalid_insert_references_test.out
    │   │   │   ├── invalid_insert_references_test.vv
    │   │   │   ├── invalid_literal_assign_err.out
    │   │   │   ├── invalid_literal_assign_err.vv
    │   │   │   ├── invalid_mismatch_for_range_type_err.out
    │   │   │   ├── invalid_mismatch_for_range_type_err.vv
    │   │   │   ├── invalid_multi_return_operations_err.out
    │   │   │   ├── invalid_multi_return_operations_err.vv
    │   │   │   ├── invalid_mut.out
    │   │   │   ├── invalid_mut.vv
    │   │   │   ├── invalid_nilref_err.out
    │   │   │   ├── invalid_nilref_err.vv
    │   │   │   ├── invalid_none_operations_err.out
    │   │   │   ├── invalid_none_operations_err.vv
    │   │   │   ├── invalid_op_ptr_err.out
    │   │   │   ├── invalid_op_ptr_err.vv
    │   │   │   ├── invalid_parameter_name_err.out
    │   │   │   ├── invalid_parameter_name_err.vv
    │   │   │   ├── invalid_prefix_left_side_assign_stmt_err.out
    │   │   │   ├── invalid_prefix_left_side_assign_stmt_err.vv
    │   │   │   ├── invalid_property.out
    │   │   │   ├── invalid_property.vv
    │   │   │   ├── invalid_recursive_struct_err.out
    │   │   │   ├── invalid_recursive_struct_err.vv
    │   │   │   ├── invalid_string_cast_to_pointers_err.out
    │   │   │   ├── invalid_string_cast_to_pointers_err.vv
    │   │   │   ├── invalid_utf8_string.out
    │   │   │   ├── invalid_utf8_string.vv
    │   │   │   ├── invalid_variable_err.out
    │   │   │   ├── invalid_variable_err.vv
    │   │   │   ├── invalid_variable_name_err.out
    │   │   │   ├── invalid_variable_name_err.vv
    │   │   │   ├── invalid_vweb_param_type.out
    │   │   │   ├── invalid_vweb_param_type.vv
    │   │   │   ├── invert_other_types_bits_error.out
    │   │   │   ├── invert_other_types_bits_error.vv
    │   │   │   ├── is_type_invalid.out
    │   │   │   ├── is_type_invalid.vv
    │   │   │   ├── is_type_not_exist.out
    │   │   │   ├── is_type_not_exist.vv
    │   │   │   ├── js_with_non_js_backend_too_many_arguments.out
    │   │   │   ├── js_with_non_js_backend_too_many_arguments.vv
    │   │   │   ├── json_decode.out
    │   │   │   ├── json_decode.vv
    │   │   │   ├── json_decode_shared_err.out
    │   │   │   ├── json_decode_shared_err.vv
    │   │   │   ├── labelled_break_continue.out
    │   │   │   ├── labelled_break_continue.vv
    │   │   │   ├── lambda_expression_in_map.out
    │   │   │   ├── lambda_expression_in_map.vv
    │   │   │   ├── lambda_expression_invalid.out
    │   │   │   ├── lambda_expression_invalid.vv
    │   │   │   ├── lambda_or_block_err.out
    │   │   │   ├── lambda_or_block_err.vv
    │   │   │   ├── lambda_undefined_variables_err.out
    │   │   │   ├── lambda_undefined_variables_err.vv
    │   │   │   ├── like_operator_outside_orm_1_error.out
    │   │   │   ├── like_operator_outside_orm_1_error.vv
    │   │   │   ├── like_operator_outside_orm_2_error.out
    │   │   │   ├── like_operator_outside_orm_2_error.vv
    │   │   │   ├── like_operator_with_non_string_type_error.out
    │   │   │   ├── like_operator_with_non_string_type_error.vv
    │   │   │   ├── lock_already_locked.out
    │   │   │   ├── lock_already_locked.vv
    │   │   │   ├── lock_already_rlocked.out
    │   │   │   ├── lock_already_rlocked.vv
    │   │   │   ├── lock_const.out
    │   │   │   ├── lock_const.vv
    │   │   │   ├── lock_needed.out
    │   │   │   ├── lock_needed.vv
    │   │   │   ├── lock_nonshared.out
    │   │   │   ├── lock_nonshared.vv
    │   │   │   ├── lockexpr_missing_return_err.out
    │   │   │   ├── lockexpr_missing_return_err.vv
    │   │   │   ├── main_args_err.out
    │   │   │   ├── main_args_err.vv
    │   │   │   ├── main_called_err.out
    │   │   │   ├── main_called_err.vv
    │   │   │   ├── main_no_body_err.out
    │   │   │   ├── main_no_body_err.vv
    │   │   │   ├── main_return_err.out
    │   │   │   ├── main_return_err.vv
    │   │   │   ├── map_builtin_method_args_err.out
    │   │   │   ├── map_builtin_method_args_err.vv
    │   │   │   ├── map_def_err.out
    │   │   │   ├── map_def_err.vv
    │   │   │   ├── map_delete.out
    │   │   │   ├── map_delete.vv
    │   │   │   ├── map_func_return_multiple_values_err.out
    │   │   │   ├── map_func_return_multiple_values_err.vv
    │   │   │   ├── map_func_void_return_err.out
    │   │   │   ├── map_func_void_return_err.vv
    │   │   │   ├── map_index_or_block_type_mismatch_err.out
    │   │   │   ├── map_index_or_block_type_mismatch_err.vv
    │   │   │   ├── map_index_reference_value.out
    │   │   │   ├── map_index_reference_value.vv
    │   │   │   ├── map_init_invalid_syntax.out
    │   │   │   ├── map_init_invalid_syntax.vv
    │   │   │   ├── map_init_invalid_update.out
    │   │   │   ├── map_init_invalid_update.vv
    │   │   │   ├── map_init_key_duplicate_err.out
    │   │   │   ├── map_init_key_duplicate_err.vv
    │   │   │   ├── map_init_wrong_expected_type.out
    │   │   │   ├── map_init_wrong_expected_type.vv
    │   │   │   ├── map_init_wrong_type.out
    │   │   │   ├── map_init_wrong_type.vv
    │   │   │   ├── map_init_wrong_update_type.out
    │   │   │   ├── map_init_wrong_update_type.vv
    │   │   │   ├── map_key_val_or_not_progagate_err.out
    │   │   │   ├── map_key_val_or_not_progagate_err.vv
    │   │   │   ├── map_lambda_void_return_err.out
    │   │   │   ├── map_lambda_void_return_err.vv
    │   │   │   ├── map_of_generic_struct_init_err.out
    │   │   │   ├── map_of_generic_struct_init_err.vv
    │   │   │   ├── map_ops.out
    │   │   │   ├── map_ops.vv
    │   │   │   ├── map_repeated_float_key_err.out
    │   │   │   ├── map_repeated_float_key_err.vv
    │   │   │   ├── map_result_callback_fn_err.out
    │   │   │   ├── map_result_callback_fn_err.vv
    │   │   │   ├── map_unknown_value.out
    │   │   │   ├── map_unknown_value.vv
    │   │   │   ├── map_with_none_err.out
    │   │   │   ├── map_with_none_err.vv
    │   │   │   ├── map_with_result_value_err.out
    │   │   │   ├── map_with_result_value_err.vv
    │   │   │   ├── match_alias_type_err.out
    │   │   │   ├── match_alias_type_err.vv
    │   │   │   ├── match_branch_call_expr_arg_mismatch.out
    │   │   │   ├── match_branch_call_expr_arg_mismatch.vv
    │   │   │   ├── match_cast_cond_not_same_range_cast_type_err.out
    │   │   │   ├── match_cast_cond_not_same_range_cast_type_err.vv
    │   │   │   ├── match_cond_with_parenthesis_err.out
    │   │   │   ├── match_cond_with_parenthesis_err.vv
    │   │   │   ├── match_duplicate_branch.out
    │   │   │   ├── match_duplicate_branch.vv
    │   │   │   ├── match_else_last_expr.out
    │   │   │   ├── match_else_last_expr.vv
    │   │   │   ├── match_enum_ref.out
    │   │   │   ├── match_enum_ref.vv
    │   │   │   ├── match_expr_and_expected_type_error.out
    │   │   │   ├── match_expr_and_expected_type_error.vv
    │   │   │   ├── match_expr_else.out
    │   │   │   ├── match_expr_else.vv
    │   │   │   ├── match_expr_empty_branch.out
    │   │   │   ├── match_expr_empty_branch.vv
    │   │   │   ├── match_expr_range_low_higher_than_high.out
    │   │   │   ├── match_expr_range_low_higher_than_high.vv
    │   │   │   ├── match_expr_with_none_only.out
    │   │   │   ├── match_expr_with_none_only.vv
    │   │   │   ├── match_generic_case_err.out
    │   │   │   ├── match_generic_case_err.vv
    │   │   │   ├── match_incorrect_cast_branch_err.out
    │   │   │   ├── match_incorrect_cast_branch_err.vv
    │   │   │   ├── match_invalid_type.out
    │   │   │   ├── match_invalid_type.vv
    │   │   │   ├── match_last_branch_only_casted.out
    │   │   │   ├── match_last_branch_only_casted.vv
    │   │   │   ├── match_missing.out
    │   │   │   ├── match_missing.vv
    │   │   │   ├── match_mut_with_immutable_var_err.out
    │   │   │   ├── match_mut_with_immutable_var_err.vv
    │   │   │   ├── match_no_branch_cast_rest_casted_err.out
    │   │   │   ├── match_no_branch_cast_rest_casted_err.vv
    │   │   │   ├── match_option_without_none_err.out
    │   │   │   ├── match_option_without_none_err.vv
    │   │   │   ├── match_range_mismatch_type_err.out
    │   │   │   ├── match_range_mismatch_type_err.vv
    │   │   │   ├── match_ranges_not_same_cast_err.out
    │   │   │   ├── match_ranges_not_same_cast_err.vv
    │   │   │   ├── match_return_mismatch_type_err.out
    │   │   │   ├── match_return_mismatch_type_err.vv
    │   │   │   ├── match_return_sumtype_mismatch_err.out
    │   │   │   ├── match_return_sumtype_mismatch_err.vv
    │   │   │   ├── match_sumtype_multiple_types.out
    │   │   │   ├── match_sumtype_multiple_types.vv
    │   │   │   ├── match_type_node_with_non_sum_type_err.out
    │   │   │   ├── match_type_node_with_non_sum_type_err.vv
    │   │   │   ├── match_undefined_cond.out
    │   │   │   ├── match_undefined_cond.vv
    │   │   │   ├── method_array_slice.out
    │   │   │   ├── method_array_slice.vv
    │   │   │   ├── method_call_arg_mismatch.out
    │   │   │   ├── method_call_arg_mismatch.vv
    │   │   │   ├── method_call_arg_no_mut_err.out
    │   │   │   ├── method_call_arg_no_mut_err.vv
    │   │   │   ├── method_call_on_undefined_err.out
    │   │   │   ├── method_call_on_undefined_err.vv
    │   │   │   ├── method_call_with_empty_struct_init.out
    │   │   │   ├── method_call_with_empty_struct_init.vv
    │   │   │   ├── method_generic_infer_err.out
    │   │   │   ├── method_generic_infer_err.vv
    │   │   │   ├── method_op_alias_err.out
    │   │   │   ├── method_op_alias_err.vv
    │   │   │   ├── method_op_err.out
    │   │   │   ├── method_op_err.vv
    │   │   │   ├── method_ptr_used_as_argument_err.out
    │   │   │   ├── method_ptr_used_as_argument_err.vv
    │   │   │   ├── method_wrong_arg_type.out
    │   │   │   ├── method_wrong_arg_type.vv
    │   │   │   ├── minus_op_wrong_type_err.out
    │   │   │   ├── minus_op_wrong_type_err.vv
    │   │   │   ├── mismatch_bool_assign_err.out
    │   │   │   ├── mismatch_bool_assign_err.vv
    │   │   │   ├── mismatched_ptr_op_ptr.out
    │   │   │   ├── mismatched_ptr_op_ptr.vv
    │   │   │   ├── missing_c_lib_header_1.out
    │   │   │   ├── missing_c_lib_header_1.vv
    │   │   │   ├── missing_c_lib_header_with_explanation_2.out
    │   │   │   ├── missing_c_lib_header_with_explanation_2.vv
    │   │   │   ├── missing_concrete_type_err.out
    │   │   │   ├── missing_concrete_type_err.vv
    │   │   │   ├── missing_export_attr_arg_err.out
    │   │   │   ├── missing_export_attr_arg_err.vv
    │   │   │   ├── misspelled_mod_const_should_have_suggestion.out
    │   │   │   ├── misspelled_mod_const_should_have_suggestion.vv
    │   │   │   ├── misspelled_mod_fn_name_should_have_suggestion.out
    │   │   │   ├── misspelled_mod_fn_name_should_have_suggestion.vv
    │   │   │   ├── mod_name_duplicate_const_err.out
    │   │   │   ├── mod_name_duplicate_const_err.vv
    │   │   │   ├── mod_name_duplicate_param_err.out
    │   │   │   ├── mod_name_duplicate_param_err.vv
    │   │   │   ├── mod_name_duplicate_var_err.out
    │   │   │   ├── mod_name_duplicate_var_err.vv
    │   │   │   ├── mod_op_wrong_type_err.out
    │   │   │   ├── mod_op_wrong_type_err.vv
    │   │   │   ├── module_not_at_same_line_err.out
    │   │   │   ├── module_not_at_same_line_err.vv
    │   │   │   ├── module_selector_decl_assign_err.out
    │   │   │   ├── module_selector_decl_assign_err.vv
    │   │   │   ├── module_with_deprecated_structs/
    │   │   │   │   └── module.v
    │   │   │   ├── modules/
    │   │   │   │   ├── anon_fn_name_across_files/
    │   │   │   │   │   ├── a.v
    │   │   │   │   │   ├── b.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── anon_fn_name_across_files.out
    │   │   │   │   ├── deprecated_consts/
    │   │   │   │   │   └── consts.v
    │   │   │   │   ├── deprecated_consts.out
    │   │   │   │   ├── deprecated_module/
    │   │   │   │   │   ├── bbb/
    │   │   │   │   │   │   └── ccc/
    │   │   │   │   │   │       └── ccc.v
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   ├── v.mod
    │   │   │   │   │   ├── www/
    │   │   │   │   │   │   └── ttt/
    │   │   │   │   │   │       └── ttt.v
    │   │   │   │   │   └── xxx/
    │   │   │   │   │       └── yyy/
    │   │   │   │   │           └── yyy.v
    │   │   │   │   ├── deprecated_module.out
    │   │   │   │   ├── embedded_private_method_visibility/
    │   │   │   │   │   ├── drawlib.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── embedded_private_method_visibility.out
    │   │   │   │   ├── enum_from_string_in_different_mods/
    │   │   │   │   │   ├── src/
    │   │   │   │   │   │   ├── main.v
    │   │   │   │   │   │   └── mod.v
    │   │   │   │   │   └── v.mod
    │   │   │   │   ├── enum_from_string_in_different_mods.out
    │   │   │   │   ├── implement_private_interface/
    │   │   │   │   │   ├── baz.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── implement_private_interface.out
    │   │   │   │   ├── module_alias_started_with_underscore/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── underscore.v
    │   │   │   │   ├── module_alias_started_with_underscore.out
    │   │   │   │   ├── module_struct_noinit/
    │   │   │   │   │   └── src/
    │   │   │   │   │       ├── main.v
    │   │   │   │   │       └── mod.v
    │   │   │   │   ├── module_struct_noinit.out
    │   │   │   │   ├── module_with_redeclaration/
    │   │   │   │   │   ├── redeclare_time_structs.c.v
    │   │   │   │   │   └── v.mod
    │   │   │   │   ├── module_with_redeclaration.out
    │   │   │   │   ├── overload_return_type/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── point.v
    │   │   │   │   ├── overload_return_type.out
    │   │   │   │   ├── private_symbol/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── priv_sym.v
    │   │   │   │   └── private_symbol.out
    │   │   │   ├── mul_op_wrong_type_err.out
    │   │   │   ├── mul_op_wrong_type_err.vv
    │   │   │   ├── multi_const_field_name_duplicate_err.out
    │   │   │   ├── multi_const_field_name_duplicate_err.vv
    │   │   │   ├── multi_names_err.out
    │   │   │   ├── multi_names_err.vv
    │   │   │   ├── multi_return_arg_missing_err.out
    │   │   │   ├── multi_return_arg_missing_err.vv
    │   │   │   ├── multi_return_err.out
    │   │   │   ├── multi_return_err.vv
    │   │   │   ├── multi_return_use_void_type_err.out
    │   │   │   ├── multi_return_use_void_type_err.vv
    │   │   │   ├── multi_value_method_err.out
    │   │   │   ├── multi_value_method_err.vv
    │   │   │   ├── multiple_pointer_yield_err.out
    │   │   │   ├── multiple_pointer_yield_err.vv
    │   │   │   ├── multireturn_mix_err.out
    │   │   │   ├── multireturn_mix_err.vv
    │   │   │   ├── must_use.out
    │   │   │   ├── must_use.vv
    │   │   │   ├── mut_arg.out
    │   │   │   ├── mut_arg.vv
    │   │   │   ├── mut_arg_different_muls_err.out
    │   │   │   ├── mut_arg_different_muls_err.vv
    │   │   │   ├── mut_array_get_element_address_err.out
    │   │   │   ├── mut_array_get_element_address_err.vv
    │   │   │   ├── mut_assign_ref.out
    │   │   │   ├── mut_assign_ref.vv
    │   │   │   ├── mut_int.out
    │   │   │   ├── mut_int.vv
    │   │   │   ├── mut_interface_param_err.out
    │   │   │   ├── mut_interface_param_err.vv
    │   │   │   ├── mut_map_get_value_address_err.out
    │   │   │   ├── mut_map_get_value_address_err.vv
    │   │   │   ├── mut_parms_struct_param_err.out
    │   │   │   ├── mut_parms_struct_param_err.vv
    │   │   │   ├── mut_receiver.out
    │   │   │   ├── mut_receiver.vv
    │   │   │   ├── mut_receiver_lit.out
    │   │   │   ├── mut_receiver_lit.vv
    │   │   │   ├── mut_receiver_wrong_return_type.out
    │   │   │   ├── mut_receiver_wrong_return_type.vv
    │   │   │   ├── negative_assign_to_unsigned.out
    │   │   │   ├── negative_assign_to_unsigned.vv
    │   │   │   ├── nested_aliases.out
    │   │   │   ├── nested_aliases.vv
    │   │   │   ├── nested_fn_alias_err.out
    │   │   │   ├── nested_fn_alias_err.vv
    │   │   │   ├── nested_struct_with_required_attr_err.out
    │   │   │   ├── nested_struct_with_required_attr_err.vv
    │   │   │   ├── nil.out
    │   │   │   ├── nil.vv
    │   │   │   ├── nil_compare_err.out
    │   │   │   ├── nil_compare_err.vv
    │   │   │   ├── nil_to_option_err.out
    │   │   │   ├── nil_to_option_err.vv
    │   │   │   ├── no_arrays_of_references_in_translated.out
    │   │   │   ├── no_arrays_of_references_in_translated.vv
    │   │   │   ├── no_assign_0_to_a_reference_field_notice_in_translated.out
    │   │   │   ├── no_assign_0_to_a_reference_field_notice_in_translated.vv
    │   │   │   ├── no_cannot_cast_a_fixed_array_in_translated.out
    │   │   │   ├── no_cannot_cast_a_fixed_array_in_translated.vv
    │   │   │   ├── no_function_must_be_called_from_unsafe_in_translated.out
    │   │   │   ├── no_function_must_be_called_from_unsafe_in_translated.vv
    │   │   │   ├── no_goto_requires_unsafe_in_translated.out
    │   │   │   ├── no_goto_requires_unsafe_in_translated.vv
    │   │   │   ├── no_heap_struct.out
    │   │   │   ├── no_heap_struct.vv
    │   │   │   ├── no_interface_instantiation_a.out
    │   │   │   ├── no_interface_instantiation_a.vv
    │   │   │   ├── no_interface_instantiation_b.out
    │   │   │   ├── no_interface_instantiation_b.vv
    │   │   │   ├── no_interface_instantiation_c.out
    │   │   │   ├── no_interface_instantiation_c.vv
    │   │   │   ├── no_interface_str.out
    │   │   │   ├── no_interface_str.vv
    │   │   │   ├── no_main_mod.out
    │   │   │   ├── no_main_mod.vv
    │   │   │   ├── no_main_println_err.out
    │   │   │   ├── no_main_println_err.vv
    │   │   │   ├── no_method_must_be_called_from_unsafe_in_translated.out
    │   │   │   ├── no_method_must_be_called_from_unsafe_in_translated.vv
    │   │   │   ├── no_method_on_interface_propagation.out
    │   │   │   ├── no_method_on_interface_propagation.vv
    │   │   │   ├── no_operator_can_only_be_used_as_a_statement_in_translated.out
    │   │   │   ├── no_operator_can_only_be_used_as_a_statement_in_translated.vv
    │   │   │   ├── no_pointer_arithmetic_is_only_allowed_in_translated.out
    │   │   │   ├── no_pointer_arithmetic_is_only_allowed_in_translated.vv
    │   │   │   ├── no_pub_in_main.out
    │   │   │   ├── no_reading_a_union_field_in_translated.out
    │   │   │   ├── no_reading_a_union_field_in_translated.vv
    │   │   │   ├── no_sign_notice_in_translated.out
    │   │   │   ├── no_sign_notice_in_translated.vv
    │   │   │   ├── no_uninitialized_fn_struct_field_notice_in_translated.out
    │   │   │   ├── no_uninitialized_fn_struct_field_notice_in_translated.vv
    │   │   │   ├── no_unused_variable_in_translated.out
    │   │   │   ├── no_unused_variable_in_translated.vv
    │   │   │   ├── no_warning_for_in_mut_var_unused.out
    │   │   │   ├── no_warning_for_in_mut_var_unused.vv
    │   │   │   ├── non_const_match_range_err.out
    │   │   │   ├── non_const_match_range_err.vv
    │   │   │   ├── non_lvalue_as_voidptr.out
    │   │   │   ├── non_lvalue_as_voidptr.vv
    │   │   │   ├── non_matching_functional_args.out
    │   │   │   ├── non_matching_functional_args.vv
    │   │   │   ├── non_nil_array_with_nil_element_err.out
    │   │   │   ├── non_nil_array_with_nil_element_err.vv
    │   │   │   ├── non_optional_array_append_optional_type_err.out
    │   │   │   ├── non_optional_array_append_optional_type_err.vv
    │   │   │   ├── none_match_cond_err.out
    │   │   │   ├── none_match_cond_err.vv
    │   │   │   ├── none_type_cast_err.out
    │   │   │   ├── none_type_cast_err.vv
    │   │   │   ├── noreturn_with_non_empty_loop_at_end.out
    │   │   │   ├── noreturn_with_non_empty_loop_at_end.vv
    │   │   │   ├── noreturn_with_return.out
    │   │   │   ├── noreturn_with_return.vv
    │   │   │   ├── noreturn_without_loop_or_another_noreturn_at_end.out
    │   │   │   ├── noreturn_without_loop_or_another_noreturn_at_end.vv
    │   │   │   ├── number_literal_overflows_known_type_range_warn.out
    │   │   │   ├── number_literal_overflows_known_type_range_warn.vv
    │   │   │   ├── oct_lit_without_digit_err.out
    │   │   │   ├── oct_lit_without_digit_err.vv
    │   │   │   ├── oct_lit_wrong_digit_err.out
    │   │   │   ├── oct_lit_wrong_digit_err.vv
    │   │   │   ├── operator_overloading_return_type_option_or_result.out
    │   │   │   ├── operator_overloading_return_type_option_or_result.vv
    │   │   │   ├── opt_is_op_check_err.out
    │   │   │   ├── opt_is_op_check_err.vv
    │   │   │   ├── option_alias_result_type_err.out
    │   │   │   ├── option_alias_result_type_err.vv
    │   │   │   ├── option_and_result_err.out
    │   │   │   ├── option_and_result_err.vv
    │   │   │   ├── option_array_push.out
    │   │   │   ├── option_array_push.vv
    │   │   │   ├── option_as_cast_err.out
    │   │   │   ├── option_as_cast_err.vv
    │   │   │   ├── option_concrete_type_err.out
    │   │   │   ├── option_concrete_type_err.vv
    │   │   │   ├── option_fields_addr_err.out
    │   │   │   ├── option_fields_addr_err.vv
    │   │   │   ├── option_fn_err.out
    │   │   │   ├── option_fn_err.vv
    │   │   │   ├── option_fn_field_err.out
    │   │   │   ├── option_fn_field_err.vv
    │   │   │   ├── option_fn_return_error.out
    │   │   │   ├── option_fn_return_error.vv
    │   │   │   ├── option_fn_var_err.out
    │   │   │   ├── option_fn_var_err.vv
    │   │   │   ├── option_in_operator_err.out
    │   │   │   ├── option_in_operator_err.vv
    │   │   │   ├── option_in_println_mismatch.out
    │   │   │   ├── option_in_println_mismatch.vv
    │   │   │   ├── option_in_receiver_err.out
    │   │   │   ├── option_in_receiver_err.vv
    │   │   │   ├── option_interface_mismatch.out
    │   │   │   ├── option_interface_mismatch.vv
    │   │   │   ├── option_map_err.out
    │   │   │   ├── option_map_err.vv
    │   │   │   ├── option_multi_return_err.out
    │   │   │   ├── option_multi_return_err.vv
    │   │   │   ├── option_mut_non_mut_err.out
    │   │   │   ├── option_mut_non_mut_err.vv
    │   │   │   ├── option_or_block_mismatch.out
    │   │   │   ├── option_or_block_mismatch.vv
    │   │   │   ├── option_or_block_returns_value_of_incompatible_type.out
    │   │   │   ├── option_or_block_returns_value_of_incompatible_type.vv
    │   │   │   ├── option_propagate_nested.out
    │   │   │   ├── option_propagate_nested.vv
    │   │   │   ├── option_ptr_err.out
    │   │   │   ├── option_ptr_err.vv
    │   │   │   ├── option_ptr_without_unwrapp_err.out
    │   │   │   ├── option_ptr_without_unwrapp_err.vv
    │   │   │   ├── option_receive_ptr_err.out
    │   │   │   ├── option_receive_ptr_err.vv
    │   │   │   ├── option_ref_init_err.out
    │   │   │   ├── option_ref_init_err.vv
    │   │   │   ├── option_return_call_non_opt_err.out
    │   │   │   ├── option_return_call_non_opt_err.vv
    │   │   │   ├── option_return_selector_non_opt_err.out
    │   │   │   ├── option_return_selector_non_opt_err.vv
    │   │   │   ├── option_selector_fn_unwrap_err.out
    │   │   │   ├── option_selector_fn_unwrap_err.vv
    │   │   │   ├── option_selector_or_block_err.out
    │   │   │   ├── option_selector_or_block_err.vv
    │   │   │   ├── option_str_call.out
    │   │   │   ├── option_str_call.vv
    │   │   │   ├── option_type_call_err.out
    │   │   │   ├── option_type_call_err.vv
    │   │   │   ├── option_var_assign_err.out
    │   │   │   ├── option_var_assign_err.vv
    │   │   │   ├── option_var_unwrap_err.out
    │   │   │   ├── option_var_unwrap_err.vv
    │   │   │   ├── option_with_match_err.out
    │   │   │   ├── option_with_match_err.vv
    │   │   │   ├── option_wrapped_cmp_op_err.out
    │   │   │   ├── option_wrapped_cmp_op_err.vv
    │   │   │   ├── or_block_assert_err.out
    │   │   │   ├── or_block_assert_err.vv
    │   │   │   ├── or_block_check_err.out
    │   │   │   ├── or_block_check_err.vv
    │   │   │   ├── or_block_non_option_err.out
    │   │   │   ├── or_block_non_option_err.vv
    │   │   │   ├── or_err.out
    │   │   │   ├── or_err.vv
    │   │   │   ├── orm_aggregate_avg_time_error.out
    │   │   │   ├── orm_aggregate_avg_time_error.vv
    │   │   │   ├── orm_aggregate_expr_error.out
    │   │   │   ├── orm_aggregate_expr_error.vv
    │   │   │   ├── orm_aggregate_sum_string_error.out
    │   │   │   ├── orm_aggregate_sum_string_error.vv
    │   │   │   ├── orm_db_expr_option_error.out
    │   │   │   ├── orm_db_expr_option_error.vv
    │   │   │   ├── orm_empty_struct.out
    │   │   │   ├── orm_empty_struct.vv
    │   │   │   ├── orm_fkey_attribute.out
    │   │   │   ├── orm_fkey_attribute.vv
    │   │   │   ├── orm_fkey_has_pkey.out
    │   │   │   ├── orm_fkey_has_pkey.vv
    │   │   │   ├── orm_fkey_update.out
    │   │   │   ├── orm_fkey_update.vv
    │   │   │   ├── orm_fn_call_with_wrong_return_type.out
    │   │   │   ├── orm_fn_call_with_wrong_return_type.vv
    │   │   │   ├── orm_insert_object_with_mismatched_type_error.out
    │   │   │   ├── orm_insert_object_with_mismatched_type_error.vv
    │   │   │   ├── orm_invalid_recursive_structs_err_1.out
    │   │   │   ├── orm_invalid_recursive_structs_err_1.vv
    │   │   │   ├── orm_invalid_recursive_structs_err_2.out
    │   │   │   ├── orm_invalid_recursive_structs_err_2.vv
    │   │   │   ├── orm_left_side_expr_in_infix_expr_has_no_struct_field_error.out
    │   │   │   ├── orm_left_side_expr_in_infix_expr_has_no_struct_field_error.vv
    │   │   │   ├── orm_limit_less_than_zero_error.out
    │   │   │   ├── orm_limit_less_than_zero_error.vv
    │   │   │   ├── orm_multidim_array.out
    │   │   │   ├── orm_multidim_array.vv
    │   │   │   ├── orm_multiple_pkeys.out
    │   │   │   ├── orm_multiple_pkeys.vv
    │   │   │   ├── orm_no_default_value.out
    │   │   │   ├── orm_no_default_value.vv
    │   │   │   ├── orm_not_a_struct.out
    │   │   │   ├── orm_not_a_struct.vv
    │   │   │   ├── orm_op_with_option_and_none.out
    │   │   │   ├── orm_op_with_option_and_none.vv
    │   │   │   ├── orm_sub_struct_primary_key.out
    │   │   │   ├── orm_sub_struct_primary_key.vv
    │   │   │   ├── orm_table_attributes.out
    │   │   │   ├── orm_table_attributes.vv
    │   │   │   ├── orm_unused_var.out
    │   │   │   ├── orm_unused_var.vv
    │   │   │   ├── orm_update_anon_fn_option_infix_err.out
    │   │   │   ├── orm_update_anon_fn_option_infix_err.vv
    │   │   │   ├── orm_using_non_struct_field_in_order_by_error.out
    │   │   │   ├── orm_using_non_struct_field_in_order_by_error.vv
    │   │   │   ├── orm_using_undefined_object_in_insert_error.out
    │   │   │   ├── orm_using_undefined_object_in_insert_error.vv
    │   │   │   ├── orm_using_undefined_var_in_where_err.out
    │   │   │   ├── orm_using_undefined_var_in_where_err.vv
    │   │   │   ├── orm_where_clause_unsupported_field_types_err.out
    │   │   │   ├── orm_where_clause_unsupported_field_types_err.vv
    │   │   │   ├── orm_wrong_where_expr_error.out
    │   │   │   ├── orm_wrong_where_expr_error.vv
    │   │   │   ├── os_prefix.out
    │   │   │   ├── os_prefix.vv
    │   │   │   ├── overflow_int_err.out
    │   │   │   ├── overflow_int_err.vv
    │   │   │   ├── overflow_int_signed_err.out
    │   │   │   ├── overflow_int_signed_err.vv
    │   │   │   ├── overload_operator_difference_in_operand_types.out
    │   │   │   ├── overload_operator_difference_in_operand_types.vv
    │   │   │   ├── overload_return_type.out
    │   │   │   ├── overload_return_type.vv
    │   │   │   ├── oversized_int_lit.out
    │   │   │   ├── oversized_int_lit.vv
    │   │   │   ├── par_expr_assign_void_right_type_err.out
    │   │   │   ├── par_expr_assign_void_right_type_err.vv
    │   │   │   ├── par_expr_decl_assign_err.out
    │   │   │   ├── par_expr_decl_assign_err.vv
    │   │   │   ├── pass_mut_lit.out
    │   │   │   ├── pass_mut_lit.vv
    │   │   │   ├── passing_expr_to_fn_expecting_voidptr.out
    │   │   │   ├── passing_expr_to_fn_expecting_voidptr.vv
    │   │   │   ├── pointer_ops.out
    │   │   │   ├── pointer_ops.vv
    │   │   │   ├── prefix_addr_err.out
    │   │   │   ├── prefix_addr_err.vv
    │   │   │   ├── prefix_err.out
    │   │   │   ├── prefix_err.vv
    │   │   │   ├── prefix_expr_decl_assign_err.out
    │   │   │   ├── prefix_expr_decl_assign_err.vv
    │   │   │   ├── print_char.out
    │   │   │   ├── print_char.vv
    │   │   │   ├── println_can_not_print_void_expressions.out
    │   │   │   ├── println_can_not_print_void_expressions.vv
    │   │   │   ├── propagate_option_with_result_err.out
    │   │   │   ├── propagate_option_with_result_err.vv
    │   │   │   ├── propagate_result_with_option.out
    │   │   │   ├── propagate_result_with_option.vv
    │   │   │   ├── ptr_assign.out
    │   │   │   ├── ptr_assign.vv
    │   │   │   ├── ptr_slice.out
    │   │   │   ├── ptr_slice.vv
    │   │   │   ├── qsort_external_variable_err.out
    │   │   │   ├── qsort_external_variable_err.vv
    │   │   │   ├── receiver_unknown_type_single_letter.out
    │   │   │   ├── receiver_unknown_type_single_letter.vv
    │   │   │   ├── recursive_alias_type_err.out
    │   │   │   ├── recursive_alias_type_err.vv
    │   │   │   ├── recursive_interface_err.out
    │   │   │   ├── recursive_interface_err.vv
    │   │   │   ├── recursive_struct_inited_array_err

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{v,js,css}]
indent_style = tab

[*.{bat,cmd}]
# BAT/CMD ~ DOS/Win requires BAT/CMD files to have CRLF EOLNs
end_of_line = crlf

[*.{yml,yaml}]
indent_style = space
indent_size = 2

[*.md]
trim_trailing_whitespace = false
# lines that are too long will trigger an error in cmd/tools/vcheck-md.v
# run v check-md [folder/file] to test markdown files
# the longest normal line is specified with this constant:
# `too_long_line_length_other     = 100`
max_line_length = 100

[*.{txt,out}]
insert_final_newline = false

[{Makefile,GNUmakefile}]
indent_style = tab


================================================
FILE: .git/HEAD
================================================
ref: refs/heads/master


================================================
FILE: .git/config
================================================
[core]
	repositoryformatversion = 1
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = https://github.com/vlang/v
	tagOpt = --no-tags
	fetch = +refs/heads/master:refs/remotes/origin/master
	promisor = true
	partialclonefilter = blob:limit=1048576
[branch "master"]
	remote = origin
	merge = refs/heads/master


================================================
FILE: .git/description
================================================
Unnamed repository; edit this file 'description' to name the repository.


================================================
FILE: .git/hooks/applypatch-msg.sample
================================================
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.  The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".

. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:


================================================
FILE: .git/hooks/commit-msg.sample
================================================
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message.  The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit.  The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".

# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"

# This example catches duplicate Signed-off-by lines.

test "" = "$(grep '^Signed-off-by: ' "$1" |
	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {
	echo >&2 Duplicate Signed-off-by lines.
	exit 1
}


================================================
FILE: .git/hooks/fsmonitor-watchman.sample
================================================
#!/usr/bin/perl

use strict;
use warnings;
use IPC::Open2;

# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;

# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";

# Check the hook interface version
if ($version ne 2) {
	die "Unsupported query-fsmonitor hook version '$version'.\n" .
	    "Falling back to scanning...\n";
}

my $git_work_tree = get_working_dir();

my $retry = 1;

my $json_pkg;
eval {
	require JSON::XS;
	$json_pkg = "JSON::XS";
	1;
} or do {
	require JSON::PP;
	$json_pkg = "JSON::PP";
};

launch_watchman();

sub launch_watchman {
	my $o = watchman_query();
	if (is_work_tree_watched($o)) {
		output_result($o->{clock}, @{$o->{files}});
	}
}

sub output_result {
	my ($clockid, @files) = @_;

	# Uncomment for debugging watchman output
	# open (my $fh, ">", ".git/watchman-output.out");
	# binmode $fh, ":utf8";
	# print $fh "$clockid\n@files\n";
	# close $fh;

	binmode STDOUT, ":utf8";
	print $clockid;
	print "\0";
	local $, = "\0";
	print @files;
}

sub watchman_clock {
	my $response = qx/watchman clock "$git_work_tree"/;
	die "Failed to get clock id on '$git_work_tree'.\n" .
		"Falling back to scanning...\n" if $? != 0;

	return $json_pkg->new->utf8->decode($response);
}

sub watchman_query {
	my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
	or die "open2() failed: $!\n" .
	"Falling back to scanning...\n";

	# In the query expression below we're asking for names of files that
	# changed since $last_update_token but not from the .git folder.
	#
	# To accomplish this, we're using the "since" generator to use the
	# recency index to select candidate nodes and "fields" to limit the
	# output to file names only. Then we're using the "expression" term to
	# further constrain the results.
	my $last_update_line = "";
	if (substr($last_update_token, 0, 1) eq "c") {
		$last_update_token = "\"$last_update_token\"";
		$last_update_line = qq[\n"since": $last_update_token,];
	}
	my $query = <<"	END";
		["query", "$git_work_tree", {$last_update_line
			"fields": ["name"],
			"expression": ["not", ["dirname", ".git"]]
		}]
	END

	# Uncomment for debugging the watchman query
	# open (my $fh, ">", ".git/watchman-query.json");
	# print $fh $query;
	# close $fh;

	print CHLD_IN $query;
	close CHLD_IN;
	my $response = do {local $/; <CHLD_OUT>};

	# Uncomment for debugging the watch response
	# open ($fh, ">", ".git/watchman-response.json");
	# print $fh $response;
	# close $fh;

	die "Watchman: command returned no output.\n" .
	"Falling back to scanning...\n" if $response eq "";
	die "Watchman: command returned invalid output: $response\n" .
	"Falling back to scanning...\n" unless $response =~ /^\{/;

	return $json_pkg->new->utf8->decode($response);
}

sub is_work_tree_watched {
	my ($output) = @_;
	my $error = $output->{error};
	if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
		$retry--;
		my $response = qx/watchman watch "$git_work_tree"/;
		die "Failed to make watchman watch '$git_work_tree'.\n" .
		    "Falling back to scanning...\n" if $? != 0;
		$output = $json_pkg->new->utf8->decode($response);
		$error = $output->{error};
		die "Watchman: $error.\n" .
		"Falling back to scanning...\n" if $error;

		# Uncomment for debugging watchman output
		# open (my $fh, ">", ".git/watchman-output.out");
		# close $fh;

		# Watchman will always return all files on the first query so
		# return the fast "everything is dirty" flag to git and do the
		# Watchman query just to get it over with now so we won't pay
		# the cost in git to look up each individual file.
		my $o = watchman_clock();
		$error = $output->{error};

		die "Watchman: $error.\n" .
		"Falling back to scanning...\n" if $error;

		output_result($o->{clock}, ("/"));
		$last_update_token = $o->{clock};

		eval { launch_watchman() };
		return 0;
	}

	die "Watchman: $error.\n" .
	"Falling back to scanning...\n" if $error;

	return 1;
}

sub get_working_dir {
	my $working_dir;
	if ($^O =~ 'msys' || $^O =~ 'cygwin') {
		$working_dir = Win32::GetCwd();
		$working_dir =~ tr/\\/\//;
	} else {
		require Cwd;
		$working_dir = Cwd::cwd();
	}

	return $working_dir;
}


================================================
FILE: .git/hooks/post-update.sample
================================================
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

exec git update-server-info


================================================
FILE: .git/hooks/pre-applypatch.sample
================================================
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".

. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:


================================================
FILE: .git/hooks/pre-commit.sample
================================================
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments.  The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

if git rev-parse --verify HEAD >/dev/null 2>&1
then
	against=HEAD
else
	# Initial commit: diff against an empty tree object
	against=$(git hash-object -t tree /dev/null)
fi

# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool hooks.allownonascii)

# Redirect output to stderr.
exec 1>&2

# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
	# Note that the use of brackets around a tr range is ok here, (it's
	# even required, for portability to Solaris 10's /usr/bin/tr), since
	# the square bracket bytes happen to fall in the designated range.
	test $(git diff-index --cached --name-only --diff-filter=A -z $against |
	  LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
	cat <<\EOF
Error: Attempt to add a non-ASCII file name.

This can cause problems if you want to work with people on other platforms.

To be portable it is advisable to rename the file.

If you know what you are doing you can disable this check using:

  git config hooks.allownonascii true
EOF
	exit 1
fi

# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --


================================================
FILE: .git/hooks/pre-merge-commit.sample
================================================
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments.  The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".

. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
        exec "$GIT_DIR/hooks/pre-commit"
:


================================================
FILE: .git/hooks/pre-push.sample
================================================
#!/bin/sh

# An example hook script to verify what is about to be pushed.  Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed.  If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
#   <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).

remote="$1"
url="$2"

zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')

while read local_ref local_oid remote_ref remote_oid
do
	if test "$local_oid" = "$zero"
	then
		# Handle delete
		:
	else
		if test "$remote_oid" = "$zero"
		then
			# New branch, examine all commits
			range="$local_oid"
		else
			# Update to existing branch, examine new commits
			range="$remote_oid..$local_oid"
		fi

		# Check for WIP commit
		commit=$(git rev-list -n 1 --grep '^WIP' "$range")
		if test -n "$commit"
		then
			echo >&2 "Found WIP commit in $local_ref, not pushing"
			exit 1
		fi
	fi
done

exit 0


================================================
FILE: .git/hooks/pre-rebase.sample
================================================
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.

publish=next
basebranch="$1"
if test "$#" = 2
then
	topic="refs/heads/$2"
else
	topic=`git symbolic-ref HEAD` ||
	exit 0 ;# we do not interrupt rebasing detached HEAD
fi

case "$topic" in
refs/heads/??/*)
	;;
*)
	exit 0 ;# we do not interrupt others.
	;;
esac

# Now we are dealing with a topic branch being rebased
# on top of master.  Is it OK to rebase it?

# Does the topic really exist?
git show-ref -q "$topic" || {
	echo >&2 "No such branch $topic"
	exit 1
}

# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
	echo >&2 "$topic is fully merged to master; better remove it."
	exit 1 ;# we could allow it, but there is no point.
fi

# Is topic ever merged to next?  If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master           ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
	not_in_topic=`git rev-list "^$topic" master`
	if test -z "$not_in_topic"
	then
		echo >&2 "$topic is already up to date with master"
		exit 1 ;# we could allow it, but there is no point.
	else
		exit 0
	fi
else
	not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
	/usr/bin/perl -e '
		my $topic = $ARGV[0];
		my $msg = "* $topic has commits already merged to public branch:\n";
		my (%not_in_next) = map {
			/^([0-9a-f]+) /;
			($1 => 1);
		} split(/\n/, $ARGV[1]);
		for my $elem (map {
				/^([0-9a-f]+) (.*)$/;
				[$1 => $2];
			} split(/\n/, $ARGV[2])) {
			if (!exists $not_in_next{$elem->[0]}) {
				if ($msg) {
					print STDERR $msg;
					undef $msg;
				}
				print STDERR " $elem->[1]\n";
			}
		}
	' "$topic" "$not_in_next" "$not_in_master"
	exit 1
fi

<<\DOC_END

This sample hook safeguards topic branches that have been
published from being rewound.

The workflow assumed here is:

 * Once a topic branch forks from "master", "master" is never
   merged into it again (either directly or indirectly).

 * Once a topic branch is fully cooked and merged into "master",
   it is deleted.  If you need to build on top of it to correct
   earlier mistakes, a new topic branch is created by forking at
   the tip of the "master".  This is not strictly necessary, but
   it makes it easier to keep your history simple.

 * Whenever you need to test or publish your changes to topic
   branches, merge them into "next" branch.

The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.

With this workflow, you would want to know:

(1) ... if a topic branch has ever been merged to "next".  Young
    topic branches can have stupid mistakes you would rather
    clean up before publishing, and things that have not been
    merged into other branches can be easily rebased without
    affecting other people.  But once it is published, you would
    not want to rewind it.

(2) ... if a topic branch has been fully merged to "master".
    Then you can delete it.  More importantly, you should not
    build on top of it -- other people may already want to
    change things related to the topic as patches against your
    "master", so if you need further changes, it is better to
    fork the topic (perhaps with the same name) afresh from the
    tip of "master".

Let's look at this example:

		   o---o---o---o---o---o---o---o---o---o "next"
		  /       /           /           /
		 /   a---a---b A     /           /
		/   /               /           /
	       /   /   c---c---c---c B         /
	      /   /   /             \         /
	     /   /   /   b---b C     \       /
	    /   /   /   /             \     /
    ---o---o---o---o---o---o---o---o---o---o---o "master"


A, B and C are topic branches.

 * A has one fix since it was merged up to "next".

 * B has finished.  It has been fully merged up to "master" and "next",
   and is ready to be deleted.

 * C has not merged to "next" at all.

We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.

To compute (1):

	git rev-list ^master ^topic next
	git rev-list ^master        next

	if these match, topic has not merged in next at all.

To compute (2):

	git rev-list master..topic

	if this is empty, it is fully merged to "master".

DOC_END


================================================
FILE: .git/hooks/pre-receive.sample
================================================
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".

if test -n "$GIT_PUSH_OPTION_COUNT"
then
	i=0
	while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
	do
		eval "value=\$GIT_PUSH_OPTION_$i"
		case "$value" in
		echoback=*)
			echo "echo from the pre-receive-hook: ${value#*=}" >&2
			;;
		reject)
			exit 1
		esac
		i=$((i + 1))
	done
fi


================================================
FILE: .git/hooks/prepare-commit-msg.sample
================================================
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source.  The hook's purpose is to edit the commit
# message file.  If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".

# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output.  It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited.  This is rarely a good idea.

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3

/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"

# case "$COMMIT_SOURCE,$SHA1" in
#  ,|template,)
#    /usr/bin/perl -i.bak -pe '
#       print "\n" . `git diff --cached --name-status -r`
# 	 if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
#  *) ;;
# esac

# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
#   /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi


================================================
FILE: .git/hooks/push-to-checkout.sample
================================================
#!/bin/sh

# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1

# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
	echo >&2 "$*"
	exit 1
}

# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.

# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.

if ! git update-index -q --ignore-submodules --refresh
then
	die "Up-to-date check failed"
fi

if ! git diff-files --quiet --ignore-submodules --
then
	die "Working directory has unstaged changes"
fi

# This is a rough translation of:
#
#   head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
	head=HEAD
else
	head=$(git hash-object -t tree --stdin </dev/null)
fi

if ! git diff-index --quiet --cached --ignore-submodules $head --
then
	die "Working directory has staged changes"
fi

if ! git read-tree -u -m "$commit"
then
	die "Could not update working tree to new HEAD"
fi


================================================
FILE: .git/hooks/sendemail-validate.sample
================================================
#!/bin/sh

# An example hook script to validate a patch (and/or patch series) before
# sending it via email.
#
# The hook should exit with non-zero status after issuing an appropriate
# message if it wants to prevent the email(s) from being sent.
#
# To enable this hook, rename this file to "sendemail-validate".
#
# By default, it will only check that the patch(es) can be applied on top of
# the default upstream branch without conflicts in a secondary worktree. After
# validation (successful or not) of the last patch of a series, the worktree
# will be deleted.
#
# The following config variables can be set to change the default remote and
# remote ref that are used to apply the patches against:
#
#   sendemail.validateRemote (default: origin)
#   sendemail.validateRemoteRef (default: HEAD)
#
# Replace the TODO placeholders with appropriate checks according to your
# needs.

validate_cover_letter () {
	file="$1"
	# TODO: Replace with appropriate checks (e.g. spell checking).
	true
}

validate_patch () {
	file="$1"
	# Ensure that the patch applies without conflicts.
	git am -3 "$file" || return
	# TODO: Replace with appropriate checks for this patch
	# (e.g. checkpatch.pl).
	true
}

validate_series () {
	# TODO: Replace with appropriate checks for the whole series
	# (e.g. quick build, coding style checks, etc.).
	true
}

# main -------------------------------------------------------------------------

if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
then
	remote=$(git config --default origin --get sendemail.validateRemote) &&
	ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
	worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
	git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
	git config --replace-all sendemail.validateWorktree "$worktree"
else
	worktree=$(git config --get sendemail.validateWorktree)
fi || {
	echo "sendemail-validate: error: failed to prepare worktree" >&2
	exit 1
}

unset GIT_DIR GIT_WORK_TREE
cd "$worktree" &&

if grep -q "^diff --git " "$1"
then
	validate_patch "$1"
else
	validate_cover_letter "$1"
fi &&

if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
then
	git config --unset-all sendemail.validateWorktree &&
	trap 'git worktree remove -ff "$worktree"' EXIT &&
	validate_series
fi


================================================
FILE: .git/hooks/update.sample
================================================
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
#   This boolean sets whether unannotated tags will be allowed into the
#   repository.  By default they won't be.
# hooks.allowdeletetag
#   This boolean sets whether deleting tags will be allowed in the
#   repository.  By default they won't be.
# hooks.allowmodifytag
#   This boolean sets whether a tag may be modified after creation. By default
#   it won't be.
# hooks.allowdeletebranch
#   This boolean sets whether deleting branches will be allowed in the
#   repository.  By default they won't be.
# hooks.denycreatebranch
#   This boolean sets whether remotely creating branches will be denied
#   in the repository.  By default this is allowed.
#

# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"

# --- Safety check
if [ -z "$GIT_DIR" ]; then
	echo "Don't run this script from the command line." >&2
	echo " (if you want, you could supply GIT_DIR then run" >&2
	echo "  $0 <ref> <oldrev> <newrev>)" >&2
	exit 1
fi

if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
	echo "usage: $0 <ref> <oldrev> <newrev>" >&2
	exit 1
fi

# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)

# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
	echo "*** Project description file hasn't been set" >&2
	exit 1
	;;
esac

# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
	newrev_type=delete
else
	newrev_type=$(git cat-file -t $newrev)
fi

case "$refname","$newrev_type" in
	refs/tags/*,commit)
		# un-annotated tag
		short_refname=${refname##refs/tags/}
		if [ "$allowunannotated" != "true" ]; then
			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
			exit 1
		fi
		;;
	refs/tags/*,delete)
		# delete tag
		if [ "$allowdeletetag" != "true" ]; then
			echo "*** Deleting a tag is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/tags/*,tag)
		# annotated tag
		if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
		then
			echo "*** Tag '$refname' already exists." >&2
			echo "*** Modifying a tag is not allowed in this repository." >&2
			exit 1
		fi
		;;
	refs/heads/*,commit)
		# branch
		if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
			echo "*** Creating a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/heads/*,delete)
		# delete branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/remotes/*,commit)
		# tracking branch
		;;
	refs/remotes/*,delete)
		# delete tracking branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a tracking branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	*)
		# Anything else (is there anything else?)
		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
		exit 1
		;;
esac

# --- Finished
exit 0


================================================
FILE: .git/info/exclude
================================================
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


================================================
FILE: .git/logs/HEAD
================================================
0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> 1773985664 +0000	clone: from https://github.com/vlang/v


================================================
FILE: .git/logs/refs/heads/master
================================================
0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> 1773985664 +0000	clone: from https://github.com/vlang/v


================================================
FILE: .git/logs/refs/remotes/origin/HEAD
================================================
0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> 1773985664 +0000	clone: from https://github.com/vlang/v


================================================
FILE: .git/objects/pack/pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.pack
================================================
[File too large to display: 12.1 MB]

================================================
FILE: .git/objects/pack/pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.promisor
================================================
cdfc0bba9081099a0a6a62fcbbe7f364ba38231b refs/heads/master


================================================
FILE: .git/objects/pack/pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.promisor
================================================


================================================
FILE: .git/packed-refs
================================================
# pack-refs with: peeled fully-peeled sorted 
cdfc0bba9081099a0a6a62fcbbe7f364ba38231b refs/remotes/origin/master


================================================
FILE: .git/refs/heads/master
================================================
cdfc0bba9081099a0a6a62fcbbe7f364ba38231b


================================================
FILE: .git/refs/remotes/origin/HEAD
================================================
ref: refs/remotes/origin/master


================================================
FILE: .git/shallow
================================================
cdfc0bba9081099a0a6a62fcbbe7f364ba38231b


================================================
FILE: .gitattributes
================================================
* text=auto eol=lf
*.bat eol=crlf

*.v linguist-language=V
*.vv linguist-language=V
*.vsh linguist-language=V
v.mod linguist-language=V
.vdocignore linguist-language=ignore

Dockerfile.* linguist-language=Dockerfile


================================================
FILE: .github/.prettierrc
================================================
{
  "singleQuote": true
}


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

open_collective: vlang
patreon: vlang
github: [medvednikov]


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: true
contact_links:
  - name: 💬 General Questions and Answers about V
    url: https://github.com/vlang/v/discussions/categories/questions-and-answers
    about: You can ask and answer questions about V in the discussions forum.

  - name: 💬 Discord Server
    url: https://discord.gg/vlang
    about: You can join our Discord server for real time discussion and support


================================================
FILE: .github/ISSUE_TEMPLATE/documentation.yml
================================================
name: 📕 Documentation Issue
description: Report an issue in the Reference documentation or Developer Guide
labels: ['Unit: Documentation']
body:
  - type: textarea
    id: description
    attributes:
      label: Describe the issue
      description: A clear and concise description of the issue.
    validations:
      required: true

  - type: textarea
    id: links
    attributes:
      label: Links
      description: Include links to affected documentation page(s).
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.yml
================================================
name: 🚀 Feature Request
description: Suggest an idea for this project
labels: [Feature Request]
body:
  - type: textarea
    id: description
    attributes:
      label: Describe the feature
      description: A clear and concise description of the feature you are proposing.
    validations:
      required: true

  - type: textarea
    id: use-case
    attributes:
      label: Use Case
      description: |
        Why do you need this feature? For example: "I'm always frustrated when..."
    validations:
      required: true

  - type: textarea
    id: solution
    attributes:
      label: Proposed Solution
      description: Suggest how to implement the addition or change. Please include prototype/workaround/sketch/reference implementation.
    validations:
      required: false

  - type: textarea
    id: other
    attributes:
      label: Other Information
      description: Any alternative solutions or features you considered, a more detailed explanation, stack traces, related issues, links for context, etc.
    validations:
      required: false

  - type: checkboxes
    id: ack
    attributes:
      label: Acknowledgements
      options:
        - label: I may be able to implement this feature request
          required: false

        - label: This feature might incur a breaking change
          required: false

  - type: input
    id: version
    attributes:
      label: Version used
      description: Please provide the version of the repository or tool you are using.
    validations:
      required: true

  - type: textarea
    id: environment
    attributes:
      label: Environment details (OS name and version, etc.)
      description: You can use `v doctor` to fill up this section.
    validations:
      required: true


================================================
FILE: .github/PULL_REQUEST_TEMPLATE
================================================

<!--

Please title your PR as follows: `module: description` (e.g. `time: fix date format`).
Always start with the thing you are fixing, then describe the fix.
Don't use past tense (e.g. "fixed foo bar").

Explain what your PR does and why.

If you are adding a new function, please document it and add tests:

```
// foo does foo and bar
fn foo() {

// file_test.v
fn test_foo() {
    assert foo() == ...
    ...
}
```

If you are fixing a bug, please add a test that covers it.

Before submitting a PR, please run `v test-all` .
See also `TESTS.md`.

I try to process PRs as soon as possible. They should be handled within 24 hours.

Applying labels to PRs is not needed.

Thanks a lot for your contribution!

-->


================================================
FILE: .github/actions/cache-apt-packages-action/action.yml
================================================
name: 'Cache Apt Packages'
description: 'Cache all commonly used apt packages to speed up CI jobs'

# imagemagick              : convert, mogrify
# xvfb                     : xvfb
# openimageio-tools        : idiff
# libxcursor-dev libxi-dev : V gfx deps
# libgl1-mesa-dri          : For headless rendering on the CI / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
# freeglut3-dev            : Fixes graphic apps compilation with tcc
# sdl2                     : needed for Puzzle Vibes & Chocolate Doom
# libsodium-dev            : needed for Gitly and C2V

runs:
  using: 'composite'
  steps:
    - uses: awalsh128/cache-apt-pkgs-action@v1.5.3
      with:
        version: 1.0
        packages: expect binutils postgresql sqlite3 clang valgrind \
          imagemagick openimageio-tools xvfb xsel xclip \
          libsodium-dev libpq-dev libssl-dev libsqlite3-dev \
          libfreetype6-dev libxi-dev libxcursor-dev \
          libgl-dev libxrandr-dev libasound2-dev \
          libx11-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev libgl1-mesa-dri \
          libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-net-dev \
          libpng-dev libsamplerate0-dev \
          xfonts-75dpi xfonts-base
    - name: Install common packages
      run: echo "done installing packages"
      shell: bash


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'daily'


================================================
FILE: .github/problem-matchers/register_all.vsh
================================================
// The task of this program, is to register all available .json files
// in this folder with Github Actions, so that it can make annotations
// for all found notices/warnings/errors produced by the V compiler
// while running the CI jobs.
// Those annotations provide a way to get a quick overview for failures,
// without having to scroll into the detailed logs produced by each job.

const github_job = getenv('GITHUB_JOB')

if github_job == '' {
	exit(0)
}

dump(github_job)
chdir(@VEXEROOT)!
for f in walk_ext('.github/problem-matchers/', '.json').sorted() {
	println('::add-matcher::${real_path(f)}')
	println('registered matcher: `${f}`')
}


================================================
FILE: .github/problem-matchers/v.json
================================================
{
    "__comment": "Based on https://github.com/python/cpython/blob/main/.github/problem-matchers/gcc.json",
    "problemMatcher": [
        {
            "owner": "v-problem-matcher",
            "pattern": [
                {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(?:fatal\\s+)?(warning|error|notice):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            ]
        }
    ]
}


================================================
FILE: .github/workflows/Dockerfile.ci_alpine_local
================================================
#######################################################################################
## The goal of this file, is to provide an easy and reproducible way to check *locally*
## the CI job `docker-alpine-musl-gcc`
## Building the docker image:
##    docker build -t ci_alpine_local - < .github/workflows/Dockerfile.ci_alpine_local
## Running the docker image, after building it:
##    docker run --rm -it -v .:/opt/vlang -w /opt/vlang ci_alpine_local
## Once it is running, inside the container you can:
##    make && v -e 'println(2+2)'
## ... then do whatever you need to reproduce the CI test failure.
## Note: after you are finished, and exit the container, run `make` again, otherwise 
## you will be using V (and potentially V tools) that were compiled with musl.
#######################################################################################
FROM thevlang/vlang:alpine-build

LABEL maintainer="spytheman <spytheman@bulsynt.org>"

WORKDIR /opt/vlang

ENV PATH /opt/vlang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

## install development packages
RUN apk --no-cache add \
  musl-dev libc-dev libc6-compat gcompat \
  libunwind-dev libunwind-static \
  gc gc-dev \
  binutils diffutils elfutils \
  strace gdb \
  pcre bash fzf fzf-vim tmux less file colordiff \
  vim vim-editorconfig \
  nano nano-syntax \
  micro

RUN git config --global --add safe.directory /opt/vlang &&\
    git config --global --add safe.directory /opt/vlang/vc &&\
    git config --global --add safe.directory /opt/vlang/thirdparty/tcc &&\
    find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc &&\
    micro -plugin install detectindent &&\
    micro -plugin install editorconfig &&\
    micro -plugin install monokai-dark &&\
    micro -plugin install quickfix &&\
    micro -plugin install runit &&\
    micro -plugin install cheat &&\
    micro -plugin install jump &&\
    true

## setup runtime environment for v and bash:
ENV VTMP     /tmp/v
ENV VMODULES /tmp/vmodules
ENV VFLAGS  "-d dynamic_boehm"

CMD ["bash"]


================================================
FILE: .github/workflows/add-voting-info.yml
================================================
name: Add voting info to new issue

on:
  issues:
    types:
      - opened

jobs:
  add-voting-info:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Append voting info to issue body
        uses: julien-deramond/update-issue-body@v1
        with:
          issue-number: ${{ github.event.issue.number }}
          body: |
            > [!NOTE]
            > You can use the 👍 reaction to increase the issue's priority for developers.
            >
            > Please note that only the 👍 reaction to the issue itself counts as a vote.
            > Other reactions and those to comments will not be taken into account.
          edit-mode: append
          append-separator: newline


================================================
FILE: .github/workflows/alpine.build.sh
================================================
#!/bin/sh -l

set -e

pwd

uname -a

make -j4

./v version

du -s .

echo "DONE"


================================================
FILE: .github/workflows/alpine.test.sh
================================================
#!/bin/sh -l

set -e

pwd

uname -a

du -s .

ls -lat 

##./v -silent test-all

## try running the known failing tests first to get faster feedback
./v vlib/builtin/string_test.v
./v vlib/strings/builder_test.v

./v -silent test-cleancode

./v -silent test-self

./v build-vbinaries

echo "DONE"


================================================
FILE: .github/workflows/android_cross_compile.vsh
================================================
#!/usr/bin/env -S v

module main

import os
import vab.vxt
import vab.android.ndk

fn main() {
	assert ndk.found()
	assert vxt.found()

	work_dir := os.join_path(os.vtmp_dir(), 'android_cross_compile_test')
	os.rm(work_dir) or {}
	os.mkdir_all(work_dir) or { panic(err) }
	vexe := vxt.vexe()

	examples_dir := os.join_path(vxt.home(), 'examples')
	v_example := os.join_path(examples_dir, 'toml.v')

	ndk_version := ndk.default_version()

	sysroot_path := ndk.sysroot_path(ndk_version) or { panic(err) }
	include_path := os.join_path(sysroot_path, 'usr', 'include')
	android_include_path := os.join_path(include_path, 'android')

	//'-I"${include_path}"'
	cflags := ['-I"${android_include_path}"', '-Wno-unused-value', '-Wno-implicit-function-declaration',
		'-Wno-int-conversion']
	for arch in ndk.supported_archs {
		for level in ['min', 'max'] {
			compiler_api := match level {
				'min' {
					ndk.compiler_min_api(.c, ndk_version, arch) or { panic(err) }
				}
				'max' {
					ndk.compiler_max_api(.c, ndk_version, arch) or { panic(err) }
				}
				else {
					panic('invalid min/max level')
				}
			}

			os.setenv('VCROSS_COMPILER_NAME', compiler_api, true)
			c_file := os.join_path(work_dir, arch + '-' + level + '.c')
			o_file := os.join_path(work_dir, arch + '-' + level + '.o')

			// x.v -> x.c
			v_compile_cmd := '${vexe} -o ${c_file} -os android -gc none ${v_example}'
			vres := os.execute(v_compile_cmd)
			if vres.exit_code != 0 {
				panic('"${v_compile_cmd}" failed: ${vres.output}')
			}
			assert os.exists(c_file)

			// x.c -> x.o
			compile_cmd := '${compiler_api} ${cflags.join(' ')} -c ${c_file} -o ${o_file}'
			cres := os.execute(compile_cmd)
			if cres.exit_code != 0 {
				panic('"${compile_cmd}" failed: ${cres.output}')
			}
			assert os.exists(o_file)
			compiler_exe_name := os.file_name(compiler_api)
			println('Compiled examples/toml.v successfully for (${level}) ${arch} ${compiler_exe_name}')
		}
	}
}


================================================
FILE: .github/workflows/benchmark_footprint_json_decode.yml
================================================
name: json decoder benchmark CI

on:
  push:
    paths:
      - 'vlib/x/json2/**' # Trigger on changes in this folder

jobs:
  json-encode-benchmark:
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Build V
        run: make -j4 && ./v symlink

      - name: Run V benchmark and save output
        run: (echo '```txt'; v -prod crun vlib/x/json2/tests/bench.v; echo '```') > vlib/x/json2/tests/bench_out.md

      - name: Upload result file
        uses: actions/upload-artifact@v7
        with:
          name: program-output
          path: vlib/x/json2/tests/bench_out.md


================================================
FILE: .github/workflows/benchmark_footprint_json_encode.yml
================================================
name: json encoder benchmark CI

on:
  push:
    paths:
      - 'vlib/x/json2/**' # Trigger on changes in this folder
      - '!vlib/x/json2/strict/**' # Ignore
      - '!vlib/x/json2/tests/**' # Ignore

jobs:
  json-encode-benchmark:
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Build V
        run: make -j4 && ./v symlink

      - name: Run V benchmark and save output
        run: (echo '```sh'; v -prod crun vlib/v/tests/bench/bench_json_vs_json2.v; echo '```') > vlib/v/tests/bench/bench_json_vs_json2_out.md

      - name: Upload result file
        uses: actions/upload-artifact@v7
        with:
          name: program-output
          path: vlib/v/tests/bench/bench_json_vs_json2_out.md


================================================
FILE: .github/workflows/bootstrapping_ci.yml
================================================
name: Bootstrapping CI

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.yml'
      - '**.md'
      - '**.vv'
      - '**.out'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
      - '!cmd/tools/vup.v'
      - '!**/bootstrapping_ci.yml'
  pull_request:
    paths-ignore:
      - '**.yml'
      - '**.md'
      - '**.vv'
      - '**.out'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
      - '!cmd/tools/vup.v'
      - '!**/bootstrapping_ci.yml'

concurrency:
  group: bootstrapping-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  bootstrap-v:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-14]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    timeout-minutes: 20
    env:
      VFLAGS: -no-parallel
      B_LFLAGS: -lm -lpthread
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - name: Build V
        run: make -j4
      - name: Test bootstrapping (v.c can be compiled and run with -os cross)
        run: |
          ls -la v vc/v.c
          ./v -os cross -o vc/v.c cmd/v
          # shellcheck disable=SC2086
          cc -o v_from_vc vc/v.c $B_LFLAGS
          ls -lart v_from_vc
          ./v_from_vc version
          ./v_from_vc run examples/hello_world.v
          ./v_from_vc -o v_from_vc_produced_native_v cmd/v
          ./v_from_vc_produced_native_v run examples/hello_world.v
          ### the next make invocation will simulate building V from scratch
          make local=1
          ls -la v vc/v.c v_from_vc v_from_vc_produced_native_v
          ./v_from_vc_produced_native_v -os cross -o vc/v.c cmd/v
          ### do it a second time, just in case:
          # shellcheck disable=SC2086
          clang -o v_from_vc2 vc/v.c $B_LFLAGS
          ls -lart v_from_vc2
          ./v_from_vc2 version
          ./v_from_vc2 run examples/hello_world.v
          ./v_from_vc2 -o v_from_vc_produced_native_v2 cmd/v
          ./v_from_vc_produced_native_v2 run examples/hello_world.v
          make local=1
          ls -la v vc/v.c
          ls -la v_from_vc v_from_vc_produced_native_v
          ls -la v_from_vc2 v_from_vc_produced_native_v2
      - name: Ensure V master is available
        if: github.ref_name != 'master'
        run: git branch master remotes/origin/master
      - name: Test `v up`
        run: |
          # Derive a commit sha from an older successful fast workflow on master that was able to build V.
          # The workflow used below is `Path Testing CI` (18477644).
          recent_good_commit=$(curl -L \
            -H "Accept: application/vnd.github+json" \
            -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
            -H "X-GitHub-Api-Version: 2022-11-28" \
            "https://api.github.com/repos/vlang/v/actions/workflows/18477644/runs?branch=master&status=success&event=push&per_page=5&page=2" \
            | jq -r '.workflow_runs[4].head_sha')
          echo "recent_good_commit=$recent_good_commit"
          # Build oldv at recent_good_commit.
          ./v run cmd/tools/oldv.v -v "$recent_good_commit"
          cd "$HOME/.cache/oldv/v_at_$recent_good_commit"
          # Test updating
          ./v version && ./v -v up && ./v version
          ./v -o v2 cmd/v && ./v2 -o v3 cmd/v


================================================
FILE: .github/workflows/build_on_ubuntu_25_ci.yml
================================================
name: CI Ubuntu 25 GCC 14.2

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/build_on_ubuntu_25_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/build_on_ubuntu_25_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

jobs:
  ubuntu-25-gcc-14-2-build:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Build and test in Ubuntu 25.04 with GCC 14.2
        run: |
          set -o xtrace
          echo "$PWD"
          whoami
          touch outside_docker.txt
          git log -n4
          echo "running docker ..."
          docker run --rm \
            --mount type=bind,source=/home/runner/work/v/v,destination=/src \
            -w /src ubuntu:25.04 bash -c '
            set -o xtrace
            echo "running inside docker"
            whoami
            cp -r /src ~/vproject; cd ~/vproject
            touch inside_docker.txt
            ls -la
            git log -n4
            apt update -y -qq
            apt install -y -qq git build-essential make
            git config --global --add safe.directory /src/vc
            git config --global --add safe.directory /src/thirdparty/tcc
            make
            ./v symlink
            v run examples/hello_world.v
            v run examples/primes.v
          '


================================================
FILE: .github/workflows/build_vinix_locally.sh
================================================
#!/usr/bin/env bash

set -e

V=$PWD/v

if [[ -x "$V" ]]
then
	echo "The v executable exists."
else
	echo "This script should be run from the top level folder of a V repository"
	echo "i.e. the folder where your V executable is."
	exit 1
fi

BUILD=$PWD/vinix_build

echo "Creating $BUILD folder..."
rm -rf $BUILD
mkdir -p $BUILD

cd $BUILD
echo "Clone current Vinix"
./v retry -- git clone --depth=1 https://github.com/vlang/vinix.git

cd $BUILD
echo "Clone current mlibc"
./v retry -- git clone --depth=1 https://github.com/managarm/mlibc.git

cd $BUILD
echo "Patch mlibc for Vinix"
cd mlibc
patch -p3 < ../vinix/patches/mlibc/mlibc.patch

cd $BUILD
echo "Install mlibc headers"
mkdir mlibc-build
cd mlibc-build
meson --cross-file ../vinix/cross_file.txt --prefix=/ -Dheaders_only=true ../mlibc
ninja
mkdir ../mlibc-headers
DESTDIR=`realpath ../mlibc-headers` ninja install

cd $BUILD
echo "Attempt to build the Vinix kernel (debug)"
cd vinix/kernel
make PROD=false CFLAGS="-D__vinix__ -O2 -g -pipe -I../../mlibc-headers/include"
make clean

cd $BUILD
echo "Attempt to build the Vinix kernel (prod)"
cd vinix/kernel
make PROD=true  CFLAGS="-D__vinix__ -O2 -g -pipe -I../../mlibc-headers/include"
make clean

rm -rf $BUILD


================================================
FILE: .github/workflows/c2v_ci.yml
================================================
name: C2V apps

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/c2v_ci.yml'
      - 'doc/**'
      - 'examples/**'
      - 'tutorials/**'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/c2v_ci.yml'
      - 'doc/**'
      - 'examples/**'
      - 'tutorials/**'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: c2v-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  build-doom:
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v symlink

      - name: Set 8.8.8.8 as dns server
        run: |
          sudo sed -i 's/#DNS=/DNS=8.8.8.8 8.8.4.4/g' /etc/systemd/resolved.conf
          sudo systemctl daemon-reload
          sudo systemctl restart systemd-networkd
          sudo systemctl restart systemd-resolved
          dig distro.ibiblio.org

      - name: Install C2V
        run: |
          v retry -- v install --git https://github.com/vlang/c2v
          v -g ~/.vmodules/c2v/ || true
      - name: Install dependencies
        run: |
          if [ "${{ runner.os }}" == "Linux" ]; then
            .github/workflows/disable_azure_mirror.sh
            v retry -- sudo apt update -y -qq
            v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
          else
            v retry -- brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate
          fi
      - name: Build original Chocolate Doom
        run: |
          v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
          cd ~/code/doom/chocolate-doom
          cmake -DCMAKE_BUILD_TYPE=Debug .
          make chocolate-doom
      - name: Translate the whole game in project/folder mode and compile it
        run: |
          touch ~/DOOM1.WAD
          WAD_FILE=~/DOOM1.WAD ~/code/doom/build_whole_project.sh

  test-regression:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc tcc
      DISPLAY: :99
      LIBGL_ALWAYS_SOFTWARE: true
      VTMP: /tmp
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v symlink

      - name: Set 8.8.8.8 as dns server
        run: |
          sudo sed -i 's/#DNS=/DNS=8.8.8.8 8.8.4.4/g' /etc/systemd/resolved.conf
          sudo systemctl daemon-reload
          sudo systemctl restart systemd-networkd
          sudo systemctl restart systemd-resolved
          dig distro.ibiblio.org

      - name: Install C2V
        run: |
          v retry -- v install --git https://github.com/vlang/c2v
          v -g ~/.vmodules/c2v/ || true
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh		  
          v retry -- sudo apt update -y -qq
          v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
          # c2v / DOOM dependencies
          # vgret dependencies
          # imagemagick              : convert, mogrify, import
          # xvfb                     : For starting X11 Virtual FrameBuffers
          # openimageio-tools        : idiff
          # libgl1-mesa-dri          : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
          # freeglut3-dev            : Fixes graphic apps compilation with tcc
          v retry -- sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip
      - name: Setup test tools
        run: |
          # Fetch the free ~4MB DOOM1.WAD from the link at https://doomwiki.org/wiki/DOOM1.WAD
          v retry -- v download https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad
          mv doom1.wad ~/doom1.wad
          # Get imgur upload script
          v retry -- v download https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
          chmod +x ./imgur.sh
          # Get regression images to test against
          v retry -- git clone https://github.com/Larpon/doom-regression-images
      - name: Build original Chocolate Doom
        run: |
          v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
          cd ~/code/doom/chocolate-doom
          cmake -DCMAKE_BUILD_TYPE=Debug .
          make chocolate-doom
      - name: Translate the whole game in project/folder mode
        run: WAD_FILE=~/doom1.wad ~/code/doom/build_whole_project.sh
      - name: Sample and compare with vgret
        id: compare
        continue-on-error: true
        run: |
          Xvfb "$DISPLAY" -screen 0 800x600x24 -fbdir /var/tmp/ &
          sleep 2; while [ ! -f /var/tmp/Xvfb_screen0 ]; do sleep 0.5; done # give xvfb time to start, even on slow CI runs
          sleep 5; v gret -r ~/code/doom -t ./doom-regression-images/vgret.doom.toml -v ./doom-sample_images ./doom-regression-images
      - name: Upload regression to imgur
        if: steps.compare.outcome != 'success'
        run: |
          ./imgur.sh /tmp/fail.png
          ./imgur.sh /tmp/diff.png
          exit 1


================================================
FILE: .github/workflows/compare_pr_to_master.v
================================================
import os
import time

const compare_prod = '-prod' in os.args

const cleanup_tmp = '-no-cleanup' !in os.args

const fetch_remote = '-no-fetch' !in os.args

fn gbranch() string {
	return os.execute(r'git branch --list|grep ^\*').output.trim_left('* ').trim_space()
}

fn gcommit() string {
	return os.execute(r'git rev-parse --short=7 HEAD').output.trim_left('* ').trim_space()
}

fn r(cmd string) {
	res := os.system(cmd)
	if res != 0 {
		eprintln('> failed running: `${cmd}`')
		exit(1)
	}
}

fn xtime(cmd string) {
	$if linux {
		r('/usr/bin/time -f "CPU: %Us\tReal: %es\tElapsed: %E\tRAM: %MKB\t%C" ${cmd}')
		return
	}
	$if macos {
		r('/opt/homebrew/bin/gtime -f "CPU: %Us\tReal: %es\tElapsed: %E\tRAM: %MKB\t%C" ${cmd}')
		return
	}
	// Pure V fallback - no memory stats, but better than nothing ...
	before := time.now()
	r(cmd)
	after := time.now()
	delta_time := after - before
	println('> Elapsed time: ${delta_time.milliseconds()} ms, for cmd: ${cmd}')
}

fn show_size(fpath string) {
	println('>Size of ${fpath:20s}: ${os.file_size(fpath):10}')
}

fn compare_size(fpath1 string, fpath2 string) {
	size1 := os.file_size(fpath1)
	size2 := os.file_size(fpath2)
	diff_ := i64(size2) - i64(size1)
	println('>>>>>> size("${fpath2:17}") - size("${fpath1:17}") = ${size2:10} - ${size1:10} = ${diff_:10}')
}

fn vcompare(vold string, vnew string) {
	r("v repeat --nmaxs 7 -R 3 '${vold} -check-syntax           examples/hello_world.v' '${vnew} -check-syntax           examples/hello_world.v'")
	r("v repeat --nmaxs 7 -R 3 '${vold} -check                  examples/hello_world.v' '${vnew} -check                  examples/hello_world.v'")
	r("v repeat --nmaxs 7 -R 3 '${vold} -no-parallel -o ohw.c   examples/hello_world.v' '${vnew} -no-parallel -o nhw.c   examples/hello_world.v'")
	compare_size('ohw.c', 'nhw.c')
	r("v repeat --nmaxs 7 -R 3 '${vold} -no-parallel -o ohw.exe examples/hello_world.v' '${vnew} -no-parallel -o nhw.exe examples/hello_world.v'")
	compare_size('ohw.exe', 'nhw.exe')

	r("v repeat --nmaxs 7 -R 3 '${vold} -check-syntax           cmd/v' '${vnew} -check-syntax           cmd/v'")
	r("v repeat --nmaxs 7 -R 3 '${vold} -check                  cmd/v' '${vnew} -check                  cmd/v'")
	r("v repeat --nmaxs 7 -R 3 '${vold} -no-parallel -o ov.c    cmd/v' '${vnew} -no-parallel -o nv.c    cmd/v'")
	compare_size('ov.c', 'nv.c')
	r("v repeat --nmaxs 7 -R 3 '${vold} -no-parallel -o ov.exe  cmd/v' '${vnew} -no-parallel -o nv.exe  cmd/v'")
	compare_size('ov.exe', 'nv.exe')
}

fn hline(header_message string) {
	println('='.repeat(98))
	println(header_message)
}

fn main() {
	// The starting point, when this program should be started, is just after `gh pr checkout NUMBER`.
	start := time.now()
	pr_branch := gbranch()
	pr_commit := gcommit()
	hline('Current git branch: ${pr_branch}, commit: ${pr_commit}')
	println('    Compiling new V executables from PR branch: ${pr_branch}, commit: ${pr_commit} ...')
	// *not* using v self here is deliberate, so that the `v` executable itself, is not changed after running this script
	xtime('./v     -o vnew1 cmd/v')
	xtime('./vnew1 -o vnew2 cmd/v')
	xtime('./vnew2 -no-parallel -o vnew cmd/v')
	xtime('./vnew -no-parallel -o nhw_current.c examples/hello_world.v')
	xtime('./vnew -no-parallel -o nhw_current_gcc.c -cc gcc examples/hello_world.v')
	xtime('./vnew -no-parallel -o nv_current.c cmd/v')
	if compare_prod {
		xtime('./vnew -no-parallel -prod -o vnew_prod cmd/v')
	}
	show_size('nhw_current.c')
	show_size('nhw_current_gcc.c')
	show_size('nv_current.c')
	show_size('vnew')
	if compare_prod {
		show_size('vnew_prod')
	}
	r('rm -rf vnew1 vnew2')

	if fetch_remote {
		// make sure to always compare against the main V repo's master branch by default:
		os.execute('git -C . remote add V_REPO https://github.com/vlang/v.git')
		os.execute('git -C . fetch V_REPO')
		os.execute('git branch -D v_repo_master')
		os.execute('git branch -f --track v_repo_master V_REPO/master')
	}

	r('git checkout v_repo_master')
	master_branch := gbranch()
	hline('    Compiling old V executables from branch: ${master_branch}, commit: ${gcommit()} ...')
	xtime('./v     -o vold1 cmd/v')
	xtime('./vold1 -o vold2 cmd/v')
	xtime('./vold2 -no-parallel -o vold cmd/v')
	xtime('./vold -no-parallel -o ohw_master.c examples/hello_world.v')
	xtime('./vold -no-parallel -o ohw_master_gcc.c -cc gcc examples/hello_world.v')
	xtime('./vold -no-parallel -o ov_master.c  cmd/v')
	if compare_prod {
		xtime('./vold -no-parallel -prod -o vold_prod cmd/v')
		show_size('vold_prod')
	}
	show_size('ohw_master.c')
	show_size('ohw_master_gcc.c')
	show_size('ov_master.c')
	show_size('vold')
	if compare_prod {
		show_size('vold_prod')
	}
	r('rm -rf vold1 vold2')

	hline('File sizes so far ...')
	compare_size('ohw_master.c', 'nhw_current.c')
	compare_size('ohw_master_gcc.c', 'nhw_current_gcc.c')
	compare_size('ov_master.c', 'nv_current.c')
	compare_size('vold', 'vnew')

	r('git checkout ${pr_branch}')
	// we are on the PR branch again
	hline('    Measuring at PR branch: ${pr_branch}, commit: ${gcommit()} ...')
	if compare_prod {
		vcompare('./vold_prod', './vnew_prod')
	} else {
		vcompare('./vold', './vnew')
	}
	println('Done. Total time: ${(time.now() - start).seconds()} s.')

	hline('Final summary for file diff sizes on their own branches:')
	compare_size('ohw_master.c', 'nhw_current.c')
	compare_size('ohw_master_gcc.c', 'nhw_current_gcc.c')
	compare_size('ov_master.c', 'nv_current.c')
	compare_size('vold', 'vnew')
	if compare_prod {
		compare_size('vold_prod', 'vnew_prod')
	}

	hline('Final summary for file diff sizes for generated files on the *current* branch:')
	compare_size('ohw.c', 'nhw.c')
	compare_size('ov.c', 'nv.c')
	compare_size('ohw.exe', 'nhw.exe')
	compare_size('ov.exe', 'nv.exe')

	// After all the measurements are done, delete all the generated temporary files,
	// except the `vold` and `vnew` compilers, so that they can be used later in manual
	// experiments:
	if cleanup_tmp {
		r('rm -rf ohw* nhw* nv* ov*')
	}
}


================================================
FILE: .github/workflows/compile_discordv.sh
================================================
#!/usr/bin/env bash

set -e

function show() {
	printf "\u001b[35m$1\u001b[0m\n"
}

rm -rf discord/

show "Clone https://github.com/vcv88/discord.v"
v retry -- git clone --filter=blob:none --quiet https://github.com/vcv88/discord.v discord/
cd discord/
show "Checkout last known good commit"
git checkout ce9ff457fce92d5bb15df2974440cd8292457ee0
show "Execute Tests"
v test .
cd ..
rm -rf discord/


================================================
FILE: .github/workflows/compile_herolib.sh
================================================
#!/usr/bin/env bash

set -e

function show() {
	printf "\u001b[35m$1\u001b[0m\n"
}

rm -rf herolib/

show "Clone https://github.com/freeflowuniverse/herolib"
v retry -- git clone --filter=blob:none --quiet https://github.com/freeflowuniverse/herolib herolib
cd herolib
git checkout development

mkdir -p ~/.vmodules/freeflowuniverse
ln -s $(pwd)/lib ~/.vmodules/freeflowuniverse/herolib
cd cli

show "Checkout last known good commit"
git checkout ca8799af39228a5678a7be81128c5b0c342c9efc

v wipe-cache
show "Build project no parallel (gcc)"
v -cc gcc -cg -enable-globals -w -n hero.v 
show "Checking build"
ls -l ./hero

v wipe-cache
show "Build project no parallel (clang)"
v -cc clang -cg -enable-globals -w -n hero.v 
show "Checking build"
ls -l ./hero

v wipe-cache
show "Build project with -parallel-cc (clang)"
v -cc clang -cg -enable-globals -parallel-cc -w -n hero.v 
show "Checking gcc build"
ls -l ./hero

v wipe-cache
show "Build project with -parallel-cc (gcc)"
v -cc gcc -cg -enable-globals -parallel-cc -w -n hero.v 
show "Checking clang build"
ls -l ./hero

rm -rf ../../herolib


================================================
FILE: .github/workflows/compile_shaders_in_examples.sh
================================================
#!/usr/bin/env bash

for f in examples/sokol/*/ ; do
	echo "compiling shaders for $f ...";
	time ./v shader $f;
	echo "done";
done;


================================================
FILE: .github/workflows/compile_v_with_vtcc.sh
================================================
#!/usr/bin/env bash

set -ex

function show() {
	printf "\u001b[35m$1\u001b[0m\n"
}

show "Prepare"
rm -rf vtcc/

show "Clone vtcc"
.github/workflows/retry.sh git clone https://github.com/felipensp/vtcc --branch stable --quiet vtcc/
du -s vtcc/
## TODO: just `./v vtcc`, later will cause V, to detect the compiler as tcc (which it is), and add `-fwrapv`, which causes the vtcc compiler to panic currently
show "Compile vtcc"
cd vtcc/
v run make.vsh
cd ..

ls -la vtcc/vtcc
./vtcc/vtcc --version

show "Generate the C file, for the current V version"
./v -o vlang.c cmd/v
ls -la vlang.c

show "Compile the C file with vtcc"
./vtcc/vtcc -o v_compiled_with_vtcc vlang.c -lpthread
ls -la v_compiled_with_vtcc

show "Test the resulting V compiler"
./v_compiled_with_vtcc version

show "Compile and run hello with vtcc"
./v_compiled_with_vtcc -cc vtcc/vtcc -showcc run examples/hello_world.v

show "Remove the generated temporary files, so the script can be re-run cleanly"
rm -rf v_compiled_with_vtcc vlang.c vtcc/


================================================
FILE: .github/workflows/compile_vlang_gui_examples.sh
================================================
#!/usr/bin/env bash

set -e

function show() {
	printf "\u001b[35m$1\u001b[0m\n"
}

rm -rf ~/.vmodules/gui/

export VJOBS=1
show "Clone https://github.com/vlang/gui"
v retry -- git clone --filter=blob:none --quiet https://github.com/vlang/gui ~/.vmodules/gui/
show "Checkout last known good commit"
git -C ~/.vmodules/gui/ checkout b4e3716b042ee6352efedff64c5b92cbf0e81ded
show "Check module for syntax and semantic errors"
v -shared -check ~/.vmodules/gui
show "Execute Tests"
v test ~/.vmodules/gui/
show "Compile Examples"
v should-compile-all -no-parallel ~/.vmodules/gui/examples/
rm -rf ~/.vmodules/gui/


================================================
FILE: .github/workflows/cross_ci.yml
================================================
name: Cross CI

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/cross_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/cross_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: cross-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  cross-macos:
    runs-on: macos-latest
    timeout-minutes: 20
    env:
      VFLAGS: -cc clang
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 10
      - name: Build V
        run: make -j4 && ./v symlink

      - name: Install dependencies
        run: |
          ./v retry -- brew install mingw-w64
          export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"

      - name: Test symlink
        run: ./v symlink

      - name: Cross-compilation to Linux
        run: |
          ./v -os linux cmd/v
          # TODO: fix this: ./v -os linux examples/2048/2048.v

      - name: Cross-compilation of veb app to Linux with -d use_openssl
        run: ./v -d use_openssl -os linux examples/veb/veb_example.v

      - name: Cross-compilation to Windows
        run: |
          ./v -os windows cmd/v
          ./v -os windows examples/2048/2048.v

  cross-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc tcc -no-retry-compilation
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 10
      - name: Build v
        run: make -j4 && ./v symlink

      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update -y -qq
          ./v retry -- sudo apt install --quiet -y mingw-w64 wine wine64 winetricks libssl-dev sqlite3 libsqlite3-dev

      - name: Show diagnostics for wine
        run: |
          which wine
          # shellcheck disable=SC2046
          ls -la $(realpath $(which wine))

      - name: v.c can be compiled and run with -os cross
        run: |
          ./v -os cross -o /tmp/v.c cmd/v
          gcc  -g -std=gnu11 -w -o v_from_vc /tmp/v.c  -lm -lpthread
          ls -lart v_from_vc
          ./v_from_vc version

      - name: v_win.c can be compiled and run with -os windows
        run: |
          ./v -cc msvc -os windows -o /tmp/v_win.c cmd/v
          x86_64-w64-mingw32-gcc /tmp/v_win.c -std=c99 -w -municode -o v_from_vc.exe -lws2_32
          ls -lart v_from_vc.exe
          wine ./v_from_vc.exe version

      - name: hello_world.v can be cross compiled to hello_world.exe
        run: |
          ./v -os windows examples/hello_world.v
          ls -lart examples/hello_world.exe
          wine examples/hello_world.exe

      - name: 2048.v can be cross compiled to 2048.exe
        run: |
          ./v -os windows examples/2048/2048.v
          ls -lart examples/2048/2048.exe

  cross-windows:
    runs-on: windows-2025
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: |
          echo %VFLAGS%
          echo $VFLAGS
          .\make.bat -msvc
      - name: TODO v_win.c can be compiled and run with -os windows
        run: |
          .\v.exe -os windows -cc msvc -showcc -o v2.exe cmd\v
          .\v.exe -os windows -cc msvc -o v_win.c cmd\v
          dir v2.exe
          dir v_win.c
          .\v2.exe version


================================================
FILE: .github/workflows/debug.yml
================================================
name: Debug CI

on: [workflow_dispatch]

jobs:
  debug-msvc:
    runs-on: windows-2025
    timeout-minutes: 121
    env:
      VFLAGS: -cc msvc
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: |
          echo %VFLAGS%
          echo $VFLAGS
          .\make.bat -msvc
          .\v.exe -cflags /WX self
      - name: Install dependencies
        run: |
          .\v.exe setup-freetype
          .\.github\workflows\windows-install-sqlite.bat
      - name: v doctor
        run: ./v doctor
      - name: Verify `v test` works
        run: |
          ./v cmd/tools/test_if_v_test_system_works.v
          ./cmd/tools/test_if_v_test_system_works
      - name: All code is formatted
        run: ./v -silent test-cleancode
      - name: Self tests
        run: ./v -silent test-self
      - name: Test v->js
        run: ./v -o hi.js examples/js_hello_world.v && node hi.js
      - name: Test v binaries
        run: ./v build-vbinaries
      - name: Build examples
        run: ./v -silent build-examples
      - name: v2 self compilation
        run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v


================================================
FILE: .github/workflows/disable_azure_mirror.sh
================================================
#!/bin/bash
echo "APT MIRRORS BEFORE:"; cat /etc/apt/apt-mirrors.txt
sudo sed -i 's@http://azure.archive.ubuntu.com@http://archive.ubuntu.com@gm' /etc/apt/apt-mirrors.txt
echo "APT MIRRORS  AFTER:"; cat /etc/apt/apt-mirrors.txt

echo "ls -la /etc/apt/sources.list.d/"; ls -la /etc/apt/sources.list.d/
for f in /etc/apt/sources.list.d/*; do echo "####### $f ######"; cat $f; done

echo "APT SOURCES BEFORE:"; echo "ls -la /etc/apt/sources.list"; ls -la /etc/apt/sources.list; cat /etc/apt/sources.list
sudo sed -i 's@http://azure.archive.ubuntu.com@http://archive.ubuntu.com@gm' /etc/apt/sources.list
echo "APT SOURCES  AFTER:"; echo "ls -la /etc/apt/sources.list"; ls -la /etc/apt/sources.list; cat /etc/apt/sources.list


================================================
FILE: .github/workflows/docker_ci.yml
================================================
name: Docker CI

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/docker_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/docker_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: docker-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

env:
  V_CI_MUSL: 1

jobs:
  docker-alpine-musl-gcc:
    runs-on: ubuntu-24.04
    timeout-minutes: 241
    container:
      image: thevlang/vlang:alpine-build
      env:
        VFLAGS: -cc gcc
      volumes:
        - ${{github.workspace}}:/opt/vlang
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Show Environment
        run: |
          echo "PWD:"
          pwd
          echo "ENVIRONMENT:"
          env
          echo "C Compiler:"
          gcc --version
      - name: Add dependencies
        run: apk add libc6-compat gcompat gc gc-dev binutils diffutils elfutils
      - name: Build V
        run: CC=gcc make
      - name: All code is formatted
        run: ./v -silent test-cleancode
      - name: Run only essential tests
        run: VTEST_JUST_ESSENTIAL=1 ./v -silent test-self

  docker-alpine-musl-tcc:
    runs-on: ubuntu-24.04
    timeout-minutes: 241
    container:
      image: thevlang/vlang:alpine-build
      volumes:
        - ${{github.workspace}}:/opt/vlang
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Add dependencies
        run: apk add musl-dev libatomic_ops-dev libatomic openssl libc6-compat gcompat gc gc-dev binutils diffutils elfutils
      - name: Build V
        run: make
      - name: Check if vpm compiles with tcc
        run: ./v -show-c-output -showcc -no-retry-compilation -cc tcc cmd/tools/vpm
      - name: Run only builtin and math tests
        run: ./v test vlib/builtin

  docker-ubuntu-musl:
    runs-on: ubuntu-24.04
    timeout-minutes: 121
    container:
      image: thevlang/vlang:ubuntu-build
      env:
        V_CI_UBUNTU_MUSL: 1
        VFLAGS: -cc musl-gcc -gc none
      volumes:
        - ${{github.workspace}}:/opt/vlang
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Build V
        run: echo "$VFLAGS" && make -j4 && ./v -cg -o v cmd/v
      - name: Verify `v test` works
        run: |
          echo "$VFLAGS"
          ./v cmd/tools/test_if_v_test_system_works.v
          ./cmd/tools/test_if_v_test_system_works
      - name: Add dependencies
        run: apt install libsqlite3-dev
      - name: All code is formatted
        run: ./v -silent test-cleancode
      - name: Test V fixed tests
        run: ./v -silent test-self vlib


================================================
FILE: .github/workflows/docs_ci.yml
================================================
name: Docs CI

### Run on *EVERY* .v or .md related commit.
### The documentation *SHOULD* stay valid, and the developers should receive
### early warning, if they break it.

on:
  push:
    paths-ignore:
      - '**.yml'
      - '!**/docs_ci.yml'
      - 'cmd/tools/vrepl.v'
  pull_request:
    paths-ignore:
      - '**.yml'
      - '!**/docs_ci.yml'
      - 'cmd/tools/vrepl.v'

concurrency:
  group: docs-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  check-markdown:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make
      - name: Install dependencies (some examples show how to use sqlite and the x11 clipboard)
        run: ./v retry -- sudo apt install --quiet -y libx11-dev libssl-dev sqlite3 libsqlite3-dev
      - name: Check markdown line length & code examples
        run: ./v check-md -hide-warnings .
        ## NB: -hide-warnings is used here, so that the output is less noisy,
        ## thus real errors are easier to spot.

  report-missing-fn-doc:
    runs-on: ubuntu-24.04
    timeout-minutes: 5
    env:
      MOPTIONS: --diff --deprecated --relative-paths --exclude /vlib/v/ --exclude /vlib/v2/ --exclude /builtin/linux_bare/ --exclude /testdata/ --exclude /tests/ --exclude /vlib/sokol/ --exclude /vlib/x/
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make

      - name: Checkout previous v
        uses: actions/checkout@v6
        with:
          repository: vlang/v
          ref: master
          path: pv

      - name: Check against parent commit
        run: |
          # shellcheck disable=SC2086
          ./v missdoc $MOPTIONS pv/vlib vlib

  report-missing-dots-in-doc-comments:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make
      - name: Check doc comment dots for some key modules
        run: ./v run cmd/tools/find_doc_comments_with_no_dots.v \
          vlib/builtin/ vlib/arrays/ vlib/flag/ \
          vlib/bitfield/ vlib/term/ vlib/strings/ \
          vlib/rand/ vlib/compress/ vlib/clipboard/ \
          vlib/time/ \
          vlib/os

  report-wrong-examples-in-doc-comments:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make
      - name: Check examples in the doc comments for all vlib modules
        run: VJOBS=1 ./v doc -check-examples -f none vlib/


================================================
FILE: .github/workflows/download_full_toml_test_suites.sh
================================================
#!/usr/bin/env bash

set -ex

rm -rf vlib/toml/tests/testdata/iarna vlib/toml/tests/testdata/toml_rs vlib/toml/tests/testdata/toml_lang vlib/toml/tests/testdata/large_toml_file_test.toml

./v retry -- ./v download -o vlib/toml/tests/testdata/large_toml_file_test.toml https://gist.githubusercontent.com/Larpon/89b0e3d94c6903851ff15559e5df7a05/raw/62a1f87a4e37bf157f2e0bfb32d85d840c98e422/large_toml_file_test.toml

./v retry -- git clone -n https://github.com/iarna/toml-spec-tests.git vlib/toml/tests/testdata/iarna
git -C vlib/toml/tests/testdata/iarna checkout 1880b1a

./v retry -- git clone -n https://github.com/toml-lang/toml-test.git vlib/toml/tests/testdata/toml_lang
git -C vlib/toml/tests/testdata/toml_lang checkout 229ce2e

# A few history notes of toml-rs (previously alexcrichton):
#  commit 7f5472c the test-suite dir moves to the crates/ sub-directory
#  commit 8461f7c *a lot* of test files are removed in *hope* that they are covered by the compliance test suite (assumed to be BurntSushi/toml-test, later toml-lang/toml-test)
#  commit 9bd454c the last known good commit we can test against
./v retry -- git clone -n https://github.com/toml-rs/toml.git vlib/toml/tests/testdata/toml_rs
git -C vlib/toml/tests/testdata/toml_rs reset --hard 9bd454c


================================================
FILE: .github/workflows/find_openssl.bat
================================================
@echo off
setlocal EnableDelayedExpansion
REM Find every openssl.exe reachable through PATH:
for /f "delims=" %%F in ('where openssl 2^>nul') do (
    set "OPENSSL_DIR=%%~dpF"
    echo OpenSSL lives in: "!OPENSSL_DIR!"
    goto :end
)
echo OpenSSL not found in: "!PATH!"
:end


================================================
FILE: .github/workflows/freebsd_ci.yml
================================================
name: CI FreeBSD

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - 'cmd/tools/**'
      - '!**/freebsd_ci.yml'
      - '!ci/freebsd_ci.vsh'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - 'cmd/tools/**'
      - '!**/freebsd_ci.yml'
      - '!ci/freebsd_ci.vsh'
      - '!cmd/tools/builders/**.v'

### See https://github.com/cross-platform-actions/action
### for a description of the used fields here

jobs:
  tcc-freebsd:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Tests on FreeBSD with tcc
        id: tests-freebsd-tcc
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: freebsd
          version: '15.0'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          run: |
            sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv
            # Install DB packages needed to build examples
            sudo pkg install -y mariadb118-client postgresql18-client
            # Install packages needed by Sokol to build examples
            sudo pkg install -y alsa-lib libglvnd libXi libXcursor
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s freebsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            echo "### Build V"
            gmake
            sudo ./v symlink
            export VTEST_SHOW_LONGEST_BY_RUNTIME=3
            export VTEST_SHOW_LONGEST_BY_COMPTIME=3
            export VTEST_SHOW_LONGEST_BY_TOTALTIME=3
            export VFLAGS='-cc tcc -no-retry-compilation'
            ./v run ci/freebsd_ci.vsh all

  clang-freebsd:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Tests on FreeBSD with clang
        id: tests-freebsd-clang
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: freebsd
          version: '15.0'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          run: |
            sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv
            # Install DB packages needed to build examples
            sudo pkg install -y mariadb118-client postgresql18-client
            # Install packages needed by Sokol to build examples
            sudo pkg install -y alsa-lib libglvnd libXi libXcursor
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s freebsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            echo "### Build V"
            gmake
            sudo ./v symlink
            export VTEST_SHOW_LONGEST_BY_RUNTIME=3
            export VTEST_SHOW_LONGEST_BY_COMPTIME=3
            export VTEST_SHOW_LONGEST_BY_TOTALTIME=3
            export VFLAGS='-cc clang'
            ./v run ci/freebsd_ci.vsh all

  gcc-freebsd:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Tests on FreeBSD with gcc
        id: tests-freebsd-gcc
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: freebsd
          version: '15.0'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          run: |
            sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv gcc
            # Install DB packages needed to build examples
            sudo pkg install -y mariadb118-client postgresql18-client
            # Install packages needed by Sokol to build examples
            sudo pkg install -y alsa-lib libglvnd libXi libXcursor
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s freebsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            echo "### Build V"
            gmake
            sudo ./v symlink
            export VTEST_SHOW_LONGEST_BY_RUNTIME=3
            export VTEST_SHOW_LONGEST_BY_COMPTIME=3
            export VTEST_SHOW_LONGEST_BY_TOTALTIME=3
            export VFLAGS='-cc gcc'
            ./v run ci/freebsd_ci.vsh all


================================================
FILE: .github/workflows/gen_vc_ci.yml
================================================
name: VC gen

on:
  workflow_dispatch:
  pull_request:
    paths-ignore:
      - '**.vv'
      - '**.out'
      - '**.md'
      - '**.yml'
      - '!**/gen_vc_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  push:
    paths-ignore:
      - '**.vv'
      - '**.out'
      - '**.md'
      - '**.yml'
      - '!**/gen_vc_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: gen_vc-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ !contains(github.ref, 'master')}}

jobs:
  build-vc:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4
      - name: Regenerate v.c and v_win.c
        run: |
          git config --global user.email "vlang-bot@users.noreply.github.com"
          git config --global user.name "vlang-bot"

          COMMIT_HASH="$(git rev-parse HEAD)"
          COMMIT_MSG="$(git log -1 --oneline --pretty='%s' HEAD)"

          rm -rf vc
          ./v retry -- git clone --depth=1 "https://vlang-bot:${{ secrets.VLANG_BOT_SECRET }}@github.com/vlang/vc.git"

          rm -rf vc/v.c vc/v_win.c
          ./v -o vc/v.c     -cross               cmd/v
          ./v -o vc/v_win.c -os windows -cc msvc cmd/v

          sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v.c
          sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v_win.c

          # do some sanity checks for the generated v.c file:
          grep 'Turned ON custom defines: no_backtrace,cross'  vc/v.c
          grep '#define CUSTOM_DEFINE_cross' vc/v.c

          # ensure the generated C files for the compiler, are over 5000 lines long, as a safety measure
          [ "$(wc -l < vc/v.c)" -gt 5000 ]
          [ "$(wc -l < vc/v_win.c)" -gt 5000 ]

          git -C vc add v.c v_win.c
          git -C vc commit -m "[v:master] $COMMIT_HASH - $COMMIT_MSG"

          # in case there are recent commits:
          ./v retry -- git -C vc pull --rebase origin master
          git -C vc log -3

      - name: Deploy
        if: github.event_name == 'push' && github.repository == 'vlang/v' && github.ref == 'refs/heads/master'
        run: git -C vc push || true


================================================
FILE: .github/workflows/gg_regressions_ci.yml
================================================
name: Graphics CI

on:
  push:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - '**/gg_regressions_ci.yml'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - '**/gg_regressions_ci.yml'
      - '!**.md'

concurrency:
  group: gg-regressions-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  gg-regressions:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc tcc
      DISPLAY: :99
      LIBGL_ALWAYS_SOFTWARE: true
      VTMP: /tmp
    steps:
      - name: Checkout V
        uses: actions/checkout@v6

      - name: Build local v
        run: make -j4 && ./v symlink

      - name: Clear module cache
        run: ./v wipe-cache

      - name: Setup dependencies
        run: |
          # imagemagick              : convert, mogrify
          # xvfb                     : xvfb
          # openimageio-tools        : idiff
          # libxcursor-dev libxi-dev : V gfx deps
          # libgl1-mesa-dri          : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
          # freeglut3-dev            : Fixes graphic apps compilation with tcc
          # libx11-dev               : X11 headers for clipboard and sokol (default backend on Linux)
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install imagemagick openimageio-tools libgl1-mesa-dri xvfb libxcursor-dev libxi-dev libxrandr-dev freeglut3-dev xsel xclip libx11-dev libegl-dev
          ./v retry -- ./v download https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
          ./v retry -- git clone https://github.com/Larpon/gg-regression-images gg-regression-images
          chmod +x ./imgur.sh

      - name: Sample and compare
        id: compare
        continue-on-error: true
        run: |
          Xvfb "$DISPLAY" -screen 0 1280x1024x24 -fbdir /var/tmp/ &
          sleep 2; while [ ! -f /var/tmp/Xvfb_screen0 ]; do sleep 0.5; done # give xvfb time to start, even on slow CI runs
          sleep 5; ./v gret -t ./gg-regression-images/vgret.v_examples.toml -v ./gg-sample_images ./gg-regression-images

      - name: Upload regression to imgur
        if: steps.compare.outcome != 'success'
        run: |
          ./imgur.sh /tmp/fail.png
          ./imgur.sh /tmp/diff.png
          exit 1


================================================
FILE: .github/workflows/gh_restart_failed.v
================================================
import os
import json
import term
import time

const c = term.colorize
const tg = term.green
const tm = term.magenta
const tb = term.bold

struct Check {
	name     string
	bucket   string
	state    string
	link     string
	workflow string
}

fn (c Check) is_failed() bool {
	return c.bucket == 'fail' || c.state in ['FAILURE', 'TIMED_OUT']
}

fn (c Check) is_cancelled() bool {
	return c.bucket == 'cancel' || c.state == 'CANCELLED'
}

struct GhCheckRun {
	name       string
	status     string
	conclusion string
	html_url   string @[json: html_url]
}

struct GhCheckRunsResponse {
	check_runs []GhCheckRun @[json: check_runs]
}

fn main() {
	unbuffer_stdout()
	arg := os.args[1] or {
		println('Usage: v run gh_restart_failed.v <PR_NUMBER|REF>')
		return
	}
	is_pr := arg.len < 6 && arg.bytes().all(it.is_digit())
	checks := if is_pr { get_checks_for_pr(arg.int()) } else { get_checks_for_commit(arg) }
	mut failed := []Check{}
	mut cancelled := []Check{}
	mut succeeded := 0
	mut in_progress := 0
	for check in checks {
		if check.is_failed() {
			failed << check
		} else if check.is_cancelled() {
			cancelled << check
		} else if check.bucket == 'pass' || check.state == 'SUCCESS' {
			succeeded++
		} else {
			in_progress++
		}
	}
	mut to_restart := []Check{}
	to_restart << failed
	to_restart << cancelled
	mut restarted_count := 0
	if to_restart.len > 0 {
		println('Found ${to_restart.len} failed or cancelled jobs:')
		for job in to_restart {
			println('- ${job.workflow} / ${job.name} (${job.state})')
		}
		println('\n' + c(tg, 'Do you want to restart these ${to_restart.len} jobs? [y/N]: '))
		if os.input('').to_lower().trim_space() == 'y' {
			println('')
			for job in to_restart {
				run_id, job_id := parse_ids(job.link)
				if run_id == '' || job_id == '' {
					println('Could not parse IDs from link: ${job.link} (Skipping)')
					continue
				}
				print('Restarting ${job.name} (Run: ${run_id}, Job: ${job_id})... ')
				res := execute_with_progress('gh run rerun ${run_id} --job ${job_id}')
				if res.exit_code == 0 {
					restarted_count++
				} else {
					println('  Error: ${res.output.trim_space()}')
				}
			}
		} else {
			println('Aborted restart.')
		}
	} else {
		println('No failed or cancelled jobs found.')
	}
	println('\n' + c(tg, 'Summary:'))
	println('Total jobs:   ${m(checks.len)}')
	println('Failed:       ${m(failed.len)}')
	println('Cancelled:    ${m(cancelled.len)}')
	println('Succeeded:    ${m(succeeded)}')
	println('In Progress:  ${m(in_progress)}')
	println('Restarted:    ${m(restarted_count)}')
}

fn m(n int) string {
	return c(tb, n.str())
}

fn parse_ids(link string) (string, string) {
	parts := link.split('/')
	runs_idx := parts.index('runs')
	job_idx := parts.index('job')
	mut run_id := ''
	mut job_id := ''
	if runs_idx != -1 && runs_idx + 1 < parts.len {
		run_id = parts[runs_idx + 1]
	}
	if job_idx != -1 && job_idx + 1 < parts.len {
		job_id = parts[job_idx + 1]
	}
	return run_id, job_id
}

fn get_checks_for_pr(pr_number int) []Check {
	println(c(tg, 'Fetching checks for PR ${m(pr_number)}...'))
	res := execute_with_progress('gh pr checks ${pr_number} --json name,bucket,state,link,workflow')
	if res.exit_code != 0 {
		println('Error: ${res.output}')
		exit(1)
	}
	return json.decode([]Check, res.output) or { exit(1) }
}

fn get_checks_for_commit(commit string) []Check {
	println(c(tg, 'Fetching checks for ref ${c(tb, commit)}...'))
	res := execute_with_progress('gh api repos/:owner/:repo/commits/${commit}/check-runs?per_page=100')
	if res.exit_code != 0 {
		println('Error: ${res.output}')
		exit(1)
	}
	resp := json.decode(GhCheckRunsResponse, res.output) or { exit(1) }
	mut checks := []Check{}
	for cr in resp.check_runs {
		checks << Check{
			name:     cr.name
			bucket:   if cr.conclusion == 'failure' {
				'fail'
			} else if cr.conclusion == 'cancelled' {
				'cancel'
			} else if cr.conclusion == 'success' {
				'pass'
			} else {
				'pending'
			}
			state:    if cr.conclusion != '' {
				cr.conclusion.to_upper()
			} else {
				cr.status.to_upper()
			}
			link:     cr.html_url
			workflow: 'Actions'
		}
	}
	return checks
}

fn execute_with_progress(cmd string) os.Result {
	start := time.now()
	mut stop := false
	spawn fn (cmd string, start time.Time, mut stop &bool) {
		start_str := start.hhmmss()
		for !*stop {
			elapsed := time.since(start).seconds()
			print('\rRunning ${c(tm, cmd)} [${start_str}] ... ${elapsed:.1f}s')
			os.flush()
			time.sleep(100 * time.millisecond)
		}
	}(cmd, start, mut &stop)
	res := os.execute(cmd)
	elapsed := time.since(start).seconds()
	stop = true
	time.sleep(100 * time.millisecond)
	status := if res.exit_code == 0 { 'OK' } else { 'Failed' }
	print('\r')
	println('Command ${c(tm, cmd)} done in ${elapsed:.1f}s. ${status}')
	return res
}


================================================
FILE: .github/workflows/hub_docker_ci.yml
================================================
name: hub_docker_ci

### NB: avoid caching things here, since the action is rare (once per week),
### and the potential benefits are less than the complexity of debugging
### cache invalidation issues...
## Trigger on both new release tags, and on weekly tags.
## Allow for manual override too:
on:
  workflow_dispatch:
  push:
    tags:
      - '[0-9].[0-9]+.[0-9]+'
      - 'weekly.*'

concurrency:
  group: 'hub_docker_ci-${{ github.ref }}'
  cancel-in-progress: true

jobs:
  publish-new-docker-images:
    strategy:
      matrix:
        os: [debian, alpine]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          repository: 'vlang/docker'

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Login to hub.docker.com
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Create & bootstrap persistent builder
        run: |
          docker buildx create --name gh-builder --driver docker-container --use
          docker buildx inspect --bootstrap

      - name: generate tags conditionally
        id: gen_tags
        run: |
          if [[ "${{ matrix.os }}" == 'debian' ]]; then
            echo 'TAGS=thevlang/vlang:latest,thevlang/vlang:${{ matrix.os }}' >> "$GITHUB_OUTPUT"
          else
            echo 'TAGS=thevlang/vlang:${{ matrix.os }}' >> "$GITHUB_OUTPUT"
          fi

      - uses: docker/build-push-action@v7
        name: Build and deploy v image
        with:
          builder: gh-builder
          context: .
          platforms: linux/amd64,linux/arm64
          tags: ${{ steps.gen_tags.outputs.TAGS }}
          file: docker/vlang/Dockerfile.${{ matrix.os }}
          push: true
          build-args: 'USER=thevlang'
          ## cache-from: type=registry,ref=thevlang/vlang:${{ matrix.os }}-buildcache
          ## cache-to: type=registry,ref=thevlang/vlang:${{ matrix.os }}-buildcache,mode=max

      - uses: docker/build-push-action@v7
        name: Build and deploy developer build
        with:
          builder: gh-builder
          context: .
          platforms: linux/amd64,linux/arm64
          tags: thevlang/vlang:${{ matrix.os }}-dev
          file: docker/vlang/Dockerfile.${{ matrix.os }}.dev-full
          push: true
          build-args: 'USER=thevlang'
          ## cache-from: type=registry,ref=thevlang/vlang:${{ matrix.os }}-dev-buildcache
          ## cache-to: type=registry,ref=thevlang/vlang:${{ matrix.os }}-dev-buildcache,mode=max


================================================
FILE: .github/workflows/linux_ci.yml
================================================
name: CI Linux

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: linux-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  tcc-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 121
    env:
      VFLAGS: -cc tcc -no-retry-compilation
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build v
        run: make -j4 && ./v symlink
      - name: Build v with -prealloc
        run: v run ci/linux_ci.vsh build_v_with_prealloc
      - name: All code is formatted
        run: v run ci/linux_ci.vsh all_code_is_formatted_tcc
      - name: Install dependencies for examples and tools
        run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_tcc
      - name: Test v->c
        run: v run ci/linux_ci.vsh test_v_to_c_tcc
      - name: v self compilation
        run: v run ci/linux_ci.vsh v_self_compilation_tcc
      - name: v doctor
        run: v run ci/linux_ci.vsh v_doctor_tcc
      - name: Verify `v test` works
        run: v run ci/linux_ci.vsh verify_v_test_works_tcc
      - name: Test pure V math module
        run: v run ci/linux_ci.vsh test_pure_v_math_module_tcc
      - name: Test inline assembly on linux
        run: v run ci/linux_ci.vsh test_inline_assembly
      - name: Self tests
        run: v run ci/linux_ci.vsh self_tests_tcc
      - name: Build examples
        run: v run ci/linux_ci.vsh build_examples_tcc
      - name: Run the submodule example, using a relative path
        run: v run ci/linux_ci.vsh run_submodule_example_tcc
      - name: Build v tools
        run: v run ci/linux_ci.vsh build_tools_tcc
      - name: Build v binaries
        run: v run ci/linux_ci.vsh build_vbinaries_tcc
      - name: Build benches
        run: v run ci/linux_ci.vsh build_benches_tcc
      - name: Run a VSH script
        run: v run ci/linux_ci.vsh run_vsh_script_tcc
      - name: Test v tutorials
        run: v run ci/linux_ci.vsh test_v_tutorials_tcc
      - name: Build cmd/tools/fast
        run: v run ci/linux_ci.vsh build_fast_tcc
      - name: V self compilation with -usecache
        run: v run ci/linux_ci.vsh v_self_compilation_usecache_tcc
      - name: Test password input
        run: v run ci/linux_ci.vsh test_password_input_tcc
      - name: Test readline
        run: v run ci/linux_ci.vsh test_readline_tcc
      - name: Test leak detector
        run: v run ci/linux_ci.vsh test_leak_detector_tcc
      - name: Test leak detector not being active for normal compile
        run: v run ci/linux_ci.vsh test_leak_detector_not_active_tcc
      - name: native cross compilation to macos
        run: v run ci/linux_ci.vsh native_cross_compilation_to_macos

  gcc-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 121
    env:
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: All code is formatted
        run: v run ci/linux_ci.vsh all_code_is_formatted_gcc
      - name: Install dependencies for examples and tools
        run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_gcc
      - name: Recompile V with -cstrict and gcc
        run: v run ci/linux_ci.vsh recompile_v_with_cstrict_gcc
      - name: Valgrind v.c
        run: v run ci/linux_ci.vsh valgrind_v_c_gcc
      - name: Run sanitizers
        run: v run ci/linux_ci.vsh run_sanitizers_gcc
      - name: v self compilation
        run: v run ci/linux_ci.vsh v_self_compilation_gcc
      - name: v self compilation with -usecache
        run: v run ci/linux_ci.vsh v_self_compilation_usecache_gcc
      - name: Verify `v test` works
        run: v run ci/linux_ci.vsh verify_v_test_works_gcc
      - name: Test pure V math module
        run: v run ci/linux_ci.vsh test_pure_v_math_module_gcc
      - name: Self tests
        run: v run ci/linux_ci.vsh self_tests_gcc
      - name: Self tests (-prod)
        run: v run ci/linux_ci.vsh self_tests_prod_gcc
      - name: Self tests (-cstrict)
        run: v run ci/linux_ci.vsh self_tests_cstrict_gcc
      - name: Build examples
        run: v run ci/linux_ci.vsh build_examples_gcc
      - name: Build tetris with -autofree
        run: v run ci/linux_ci.vsh build_tetris_autofree_gcc
      - name: Build blog tutorial with -autofree
        run: v run ci/linux_ci.vsh build_blog_autofree_gcc
      - name: Build option_test.c.v with -autofree
        run: v run ci/linux_ci.vsh build_option_test_autofree_gcc
      - name: V self compilation with -parallel-cc
        run: v run ci/linux_ci.vsh v_self_compilation_parallel_cc_gcc
      - name: Build modules
        run: v run ci/linux_ci.vsh build_modules_gcc
      - name: native machine code generation
        run: v run ci/linux_ci.vsh native_machine_code_generation_gcc
      - name: native cross compilation to macos
        run: v run ci/linux_ci.vsh native_cross_compilation_to_macos
      - name: compile vdoctor.v with -prod
        run: v run ci/linux_ci.vsh compile_vdoctor_prod_gcc
      - name: compile vup.v with -prod
        run: v run ci/linux_ci.vsh compile_vup_prod_gcc

  clang-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 121
    env:
      VFLAGS: -cc clang
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: All code is formatted
        run: v run ci/linux_ci.vsh all_code_is_formatted_clang
      - name: Install dependencies for examples and tools
        run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_clang
      - name: Recompile V with -cstrict and clang
        run: v run ci/linux_ci.vsh recompile_v_with_cstrict_clang
      - name: Valgrind
        run: v run ci/linux_ci.vsh valgrind_clang
      - name: Run sanitizers
        run: v run ci/linux_ci.vsh run_sanitizers_clang
      - name: v self compilation
        run: v run ci/linux_ci.vsh v_self_compilation_clang
      - name: v self compilation with -usecache
        run: v run ci/linux_ci.vsh v_self_compilation_usecache_clang
      - name: Verify `v test` works
        run: v run ci/linux_ci.vsh verify_v_test_works_clang
      - name: Test pure V math module
        run: v run ci/linux_ci.vsh test_pure_v_math_module_clang
      - name: Self tests
        run: v run ci/linux_ci.vsh self_tests_clang
      - name: Self tests (vprod)
        run: v run ci/linux_ci.vsh self_tests_vprod_clang
      - name: Self tests (-cstrict)
        run: v run ci/linux_ci.vsh self_tests_cstrict_clang
      - name: Build examples
        run: v run ci/linux_ci.vsh build_examples_clang
      - name: Build examples with -autofree
        run: v run ci/linux_ci.vsh build_examples_autofree_clang
      - name: Build modules
        run: v run ci/linux_ci.vsh build_modules_clang
      - name: native machine code generation
        run: v run ci/linux_ci.vsh native_machine_code_generation_clang
      - name: native cross compilation to macos
        run: v run ci/linux_ci.vsh native_cross_compilation_to_macos


================================================
FILE: .github/workflows/macos_ci.yml
================================================
name: CI macOS

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/macos_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/macos_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: macos-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  clang-macos:
    strategy:
      matrix:
        os: [macos-14]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    timeout-minutes: 151
    env:
      VFLAGS: -cc clang
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: Test symlink
        run: v run ci/macos_ci.vsh test_symlink
      - name: v doctor
        run: v run ci/macos_ci.vsh v_doctor
      - name: Build v with -prealloc
        run: v run ci/macos_ci.vsh build_v_with_prealloc
      - name: Test cross compilation to Linux
        run: v run ci/macos_ci.vsh test_cross_compilation
      - name: Test inline assembly on macos
        run: v run ci/macos_ci.vsh test_inline_assembly
      - name: Build V with -cstrict
        run: v run ci/macos_ci.vsh build_with_cstrict
      - name: All code is formatted
        run: v run ci/macos_ci.vsh all_code_is_formatted
      - name: Run sanitizers
        run: v run ci/macos_ci.vsh run_sanitizers
      - name: Build V using V
        run: v run ci/macos_ci.vsh build_using_v
      - name: Verify `v test` works
        run: v run ci/macos_ci.vsh verify_v_test_works
      - name: Install iconv for encoding.iconv
        run: v run ci/macos_ci.vsh install_iconv
      - name: Test pure V math module
        run: v run ci/macos_ci.vsh test_pure_v_math_module
      - name: Self tests
        run: v run ci/macos_ci.vsh self_tests
      - name: Build examples
        run: v run ci/macos_ci.vsh build_examples
      - name: Build tetris with -autofree
        run: v run ci/macos_ci.vsh build_tetris_autofree
      - name: Build blog tutorial with -autofree
        run: v run ci/macos_ci.vsh build_blog_autofree
      - name: Build examples with -prod
        run: v run ci/macos_ci.vsh build_examples_prod
      - name: Build examples with V build with tcc
        run: v run ci/macos_ci.vsh build_examples_v_compiled_with_tcc
      ##      - name: V self compilation with -usecache
      ##        run: v run ci/macos_ci.vsh v_self_compilation_usecache
      - name: V self compilation with -parallel-cc
        run: v run ci/macos_ci.vsh v_self_compilation_parallel_cc
      - name: Test password input
        run: v run ci/macos_ci.vsh test_password_input
      - name: Test readline
        run: v run ci/macos_ci.vsh test_readline


================================================
FILE: .github/workflows/make_sure_ci_run_with_32bit_compiler_test.v
================================================
fn test_ci_run_with_32bit_compiler() {
	$if x64 && tinyc {
		// TODO: uncomment that next assert when tcc32 vs tcc64 detection on windows works reliably
		// assert false
		assert true
	}
}


================================================
FILE: .github/workflows/make_sure_ci_run_with_64bit_compiler_test.v
================================================
fn test_ci_run_with_64bit_compiler() {
    $if x32 {
        assert false
    }	
}


================================================
FILE: .github/workflows/module_docs_ci.yml
================================================
name: vlib modules CI

on:
  pull_request:
    paths:
      - 'vlib/**.v'
      - 'vlib/**.md'
      - 'cmd/tools/vdoc/**.v'
      - 'cmd/tools/vdoc/theme/**.js'
      - 'cmd/tools/vdoc/theme/**.css'
      - 'cmd/tools/vdoc/theme/**.svg'
      - 'cmd/tools/vdoc/theme/**.html'
      - '**/module_docs_ci.yml'
  push:
    paths:
      - 'vlib/**.v'
      - 'vlib/**.md'
      - 'cmd/tools/vdoc/**.v'
      - 'cmd/tools/vdoc/theme/**.js'
      - 'cmd/tools/vdoc/theme/**.css'
      - 'cmd/tools/vdoc/theme/**.svg'
      - 'cmd/tools/vdoc/theme/**.html'
      - '**/module_docs_ci.yml'

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: module_docs-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ !contains(github.ref, 'master')}}

jobs:
  build-module-docs:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: Update packages, before running apt install
        run: .github/workflows/disable_azure_mirror.sh && v retry -- sudo apt update -y -qq
      - name: Install dependencies (some modules wrap C libs)
        run: v retry -- sudo apt install --quiet -y libpq-dev
          libsodium-dev libasound2-dev libssl-dev \
          sqlite3 libsqlite3-dev libfreetype6-dev \
          libx11-dev libxi-dev freeglut3-dev \
          libgl1-mesa-dri libxcursor-dev libgl-dev libxrandr-dev libegl-dev
      - name: Install markdown from vpm
        run: v retry -- v install markdown
      - name: Test v doc
        run: VJOBS=1 ./v test cmd/tools/vdoc/
      - name: Build module documentation and check the examples in the comments
        run: VJOBS=1 ./v doc -m -f html -unsafe-run-examples -time vlib/
      - name: Deploy docs to vercel
        if: github.event_name == 'push' && github.repository == 'vlang/v' && github.ref == 'refs/heads/master'
        run: npx vercel --confirm --prod --name vmodules --token ${{ secrets.VERCEL_TOKEN }} vlib/_docs/ || true


================================================
FILE: .github/workflows/module_docs_lint.yml
================================================
name: Code CI vlib modules

on:
  push:
    paths:
      - '**/cmd/tools/vdoc/theme/**'
  pull_request:
    paths:
      - '**/cmd/tools/vdoc/theme/**'

jobs:
  lint-module-docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Check Formatting
        uses: creyD/prettier_action@v4.6
        with:
          prettier_options: --check cmd/tools/vdoc/theme


================================================
FILE: .github/workflows/more_extensive_but_slower_tests_ci.yml
================================================
name: More extensive but slower tests

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/more_extensive_but_slower_tests_ci.yml'
      - 'examples/**'
      - 'cmd/tools/**'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/more_extensive_but_slower_tests_ci.yml'
      - 'examples/**'
      - 'cmd/tools/**'

concurrency:
  group: slower_tests-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  more-tests:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-14, windows-latest]
    runs-on: ${{ matrix.os }}
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6

      - name: Build V
        if: runner.os != 'Windows'
        run: make -j4 && ./v symlink
      - name: Build V (Windows)
        if: runner.os == 'Windows'
        run: ./make.bat && ./v symlink

      - name: Run additional crypto tests
        run: |
          v retry -- git clone --depth 1 https://github.com/vlang/slower_tests
          v test slower_tests/


================================================
FILE: .github/workflows/native_backend_ci.yml
================================================
name: native backend CI

on:
  push:
    paths:
      - '!**'
      - '!**.md'
      - 'vlib/v/gen/native/'
      - 'cmd/tools/builders/**.v'
      - 'vlib/builtin/**.v'
      - 'vlib/v/ast/**.v'
      - 'vlib/v/scanner/**.v'
      - 'vlib/v/parser/**.v'
      - 'vlib/v/checker/**.v'
      - 'vlib/v/gen/c/**.v'
      - 'vlib/v/builder/**.v'
      - 'vlib/v/cflag/**.v'
      - 'vlib/v/live/**.v'
      - 'vlib/v/util/**.v'
      - 'vlib/v/markused/**.v'
      - 'vlib/v/preludes/**.v'
      - 'vlib/v/gen/native/**.v'
      - 'vlib/v/gen/native/tests/**.v'
      - '.github/workflows/native_backend_ci.yml'
  pull_request:
    paths:
      - '!**'
      - '!**.md'
      - 'vlib/v/gen/native/'
      - 'cmd/tools/builders/**.v'
      - 'vlib/builtin/**.v'
      - 'vlib/v/ast/**.v'
      - 'vlib/v/scanner/**.v'
      - 'vlib/v/parser/**.v'
      - 'vlib/v/checker/**.v'
      - 'vlib/v/gen/c/**.v'
      - 'vlib/v/builder/**.v'
      - 'vlib/v/cflag/**.v'
      - 'vlib/v/live/**.v'
      - 'vlib/v/util/**.v'
      - 'vlib/v/markused/**.v'
      - 'vlib/v/preludes/**.v'
      - 'vlib/v/gen/native/**.v'
      - 'vlib/v/gen/native/tests/**.v'
      - '.github/workflows/native_backend_ci.yml'

concurrency:
  group: native_backend-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  native-backend-ubuntu:
    runs-on: ubuntu-24.04
    env:
      VJOBS: 1
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v symlink
      - name: Install linker
        run: v retry -- sudo apt -qq install binutils
      - name: Rebuild V with -g, for better stacktraces on compiler panics
        run: v -g self
      - name: Run the native backend tests serially with more details
        run: v test vlib/v/gen/native/

  native-backend-windows:
    runs-on: windows-2022
    env:
      VJOBS: 1
    steps:
      - uses: actions/checkout@v6
      - name: Build V (Windows)
        run: ./make.bat && ./v symlink
      - name: Rebuild V with -g, for better stacktraces on compiler panics
        run: v -g self
      - name: Run the native backend tests serially with more details
        run: v test vlib/v/gen/native/


================================================
FILE: .github/workflows/openbsd_ci.yml
================================================
name: CI OpenBSD

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - 'cmd/tools/**'
      - '!**/openbsd_ci.yml'
      - '!ci/openbsd_ci.vsh'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - 'cmd/tools/**'
      - '!**/openbsd_ci.yml'
      - '!ci/openbsd_ci.vsh'
      - '!cmd/tools/builders/**.v'

### See https://github.com/cross-platform-actions/action
### for a description of the used fields here

jobs:
  tcc-openbsd:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Tests on OpenBSD with tcc
        id: tests-openbsd-tcc
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: openbsd
          version: '7.8'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          run: |
            sudo pkg_add git sqlite3 gmake boehm-gc libiconv
            # Install packages needed to build examples
            sudo pkg_add mariadb-client postgresql-client
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s openbsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            echo "### Build V"
            gmake
            sudo ./v symlink
            export VTEST_SHOW_LONGEST_BY_RUNTIME=3
            export VTEST_SHOW_LONGEST_BY_COMPTIME=3
            export VTEST_SHOW_LONGEST_BY_TOTALTIME=3
            export VFLAGS='-cc tcc -no-retry-compilation'
            ./v run ci/openbsd_ci.vsh all

  clang-openbsd:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Tests on OpenBSD with clang
        id: tests-openbsd-clang
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: openbsd
          version: '7.8'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          run: |
            sudo pkg_add git sqlite3 gmake boehm-gc libiconv
            # Install packages needed to build examples
            sudo pkg_add mariadb-client postgresql-client
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s openbsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            echo "### Build V"
            gmake
            sudo ./v symlink
            export VTEST_SHOW_LONGEST_BY_RUNTIME=3
            export VTEST_SHOW_LONGEST_BY_COMPTIME=3
            export VTEST_SHOW_LONGEST_BY_TOTALTIME=3
            export VFLAGS='-cc clang'
            ./v run ci/openbsd_ci.vsh all


================================================
FILE: .github/workflows/other_ci.yml
================================================
name: Other CI

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/other_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/other_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: other-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  performance-compare-with-master:
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - name: Environment info
        run: echo "$VFLAGS $GITHUB_SHA $GITHUB_REF"
      - name: Name the local git branch
        run: git checkout -b the_v_pr_branch
      - name: Build local v
        run: make && ./v symlink
      - name: V version
        run: ./v version
      - name: Build the repeat tool
        run: ./v cmd/tools/vrepeat.v
      - name: Run compare_pr_to_master.v
        run: VREPEAT_SILENT=1 ./v run .github/workflows/compare_pr_to_master.v

  prevent-gpl-licenses:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - name: Checkout V ${{ github.head_ref }}
        uses: actions/checkout@v6
        with:
          path: v
      - name: Checkout V master
        uses: actions/checkout@v6
        with:
          repository: vlang/v
          path: vmaster
      - name: Detect potentially added GPL licensed code
        run: |
          gpl_search_cmd="grep 'GPL' -r --exclude-dir=.git --exclude=*.yml --exclude=*.md --exclude=*.vv --exclude=*_test.v ."
          cd vmaster
          eval "$gpl_search_cmd" > ../gpl_res_vmaster
          cd ../v
          eval "$gpl_search_cmd" > ../gpl_res_vnew
          cd ..
          diff -d -a -U 2 --color=always gpl_res_vmaster gpl_res_vnew

  code-formatting:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc gcc
    steps:
      - uses: actions/checkout@v6
      - name: Environment info
        run: echo "$VFLAGS $GITHUB_SHA $GITHUB_REF"
      - name: Build local v
        run: make -j4 && ./v symlink
      - name: v test-cleancode
        run: ./v -silent test-cleancode
      - name: v test-fmt
        run: ./v -silent test-fmt

  performance-regressions:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc gcc
    steps:
      - uses: actions/checkout@v6
      - name: Environment info
        run: echo "$VFLAGS $GITHUB_SHA $GITHUB_REF"
      - name: Build local v
        run: make -j4 && ./v symlink
      - name: Clone & Build previous vmaster/v
        run: |
          ./v retry -- git clone --depth=1 https://github.com/vlang/v vmaster/
          (cd vmaster; make -j4)
      - name: V versions
        run: ./v version && ./vmaster/v version
      - name: Build the repeat tool
        run: ./v cmd/tools/vrepeat.v
      - name: Repeat -o hw.c examples/hello_world.v
        run: ./v repeat --max_time 251 --series 3 --runs 20 --nmins 2 --nmaxs 5 --warmup 3 --fail_percent 10 -t 'cd {T} ; ./v -o hw.c examples/hello_world.v' . ./vmaster
      - name: Repeat -o v.c cmd/v
        run: ./v repeat --max_time 1731 --series 3 --runs 20 --nmins 2 --nmaxs 5 --warmup 3 --fail_percent 10 -t 'cd {T} ; ./v -o v.c cmd/v' . ./vmaster

  misc-tooling:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc tcc -no-retry-compilation
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 10
      - name: Build v
        run: make -j4 && ./v symlink

      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev postgresql libpq-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev xfonts-75dpi xfonts-base libegl-dev
          ./v retry -- sudo apt install --quiet -y g++-9 g++-10

      - name: g++-9 version
        run: g++-9 --version
      - name: V self compilation with g++ and -std=c++11
        run: ./v -cc g++-9 -no-std -cflags -std=c++11 -o v2 cmd/v && ./v2 -cc g++-9 -no-std -cflags -std=c++11 -o v3 cmd/v

      - name: g++-10 version
        run: g++-10 --version
      - name: V self compilation with g++ and -std=c++20
        run: ./v -cc g++-10 -no-std -cflags -std=c++20 -o v2 cmd/v && ./v2 -cc g++-10 -no-std -cflags -std=c++20 -o v3 cmd/v

      # NB: this does not mean it runs, but at least keeps it from regressing
      - name: Ensure V can be compiled with -autofree
        run: ./v -autofree cmd/v

      - name: Ensure V can be compiled with -no-closures
        run: ./v -no-closures cmd/v

      - name: Shader examples can be built
        run: |
          .github/workflows/compile_shaders_in_examples.sh
          ./v should-compile-all examples/sokol/*.v examples/sokol/0?*/*.v

  parser-silent:
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Build local v
        run: |
          make -j4 && ./v symlink
          ./v -g -d trace_parse_stmt cmd/tools/vtest-parser.v
      - name: Install zzuf
        run: ./v retry -- sudo apt install -qq zzuf
      - name: Run test-parser
        run: |
          ./v test-parser --show_source --linear examples/hello_world.v
          ./v test-parser --show_source --linear examples/hanoi.v
          ./v test-parser --show_source --linear examples/fibonacci.v
          ./v test-parser --show_source --linear examples/cli.v
          ./v test-parser --show_source --linear examples/json.v
          ./v test-parser --show_source --linear examples/vmod.v
          ./v test-parser --show_source --linear examples/regex/regex_example.v
          ./v test-parser --show_source --linear examples/2048/2048.v

      - name: Run test-parser over fuzzed files
        run: |
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/hello_world.v > examples/hello_world_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/hanoi.v > examples/hanoi_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/fibonacci.v > examples/fibonacci_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/cli.v > examples/cli_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/json.v > examples/json_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/vmod.v > examples/vmod_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/regex/regex_example.v > examples/regex_example_fuzz.v
          zzuf -R '\x00-\x20\x7f-\xff' -r0.01 < examples/2048/2048.v > examples/2048/2048_fuzz.v
          ./v test-parser --show_source --linear examples/hello_world_fuzz.v
          ./v test-parser --show_source --linear examples/fibonacci_fuzz.v
          ./v test-parser --show_source --linear examples/hanoi_fuzz.v
          ./v test-parser --show_source --linear examples/cli_fuzz.v
          ./v test-parser --show_source --linear examples/json_fuzz.v
          ./v test-parser --show_source --linear examples/vmod_fuzz.v
          ./v test-parser --show_source --linear examples/regex_example_fuzz.v
          ./v test-parser --show_source --linear examples/2048/2048_fuzz.v


================================================
FILE: .github/workflows/paths_ci.yml
================================================
name: Path Testing CI

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/paths_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/paths_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

concurrency:
  group: paths-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  space-paths-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
          path: '你好 my $path, @с интервали'
      - name: Build V
        run: |
          # shellcheck disable=SC2016
          echo '你好 my $path, @с интервали'
          ls -la
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ls -la
          make
      - name: v doctor
        run: |
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ./v doctor
      - name: v tests
        run: |
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ./v test vlib/builtin vlib/os

  space-paths-macos:
    runs-on: macos-14
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
        with:
          path: '你好 my $path, @с интервали'
          persist-credentials: false
      - name: Build V
        run: |
          # shellcheck disable=SC2016
          echo '你好 my $path, @с интервали'
          ls -la
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ls -la
          make
          ## prebuild cmd/tools/builders/js_builder, to minimise the
          ## chances of a sporadic "Killed" when running the tests later
          ./v -b js run examples/hello_world.v
      - name: v doctor
        run: |
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ./v doctor
      - name: v tests
        run: |
          # shellcheck disable=SC2016
          cd '你好 my $path, @с интервали'
          ./v test vlib/builtin vlib/os

  space-paths-windows:
    runs-on: windows-2022
    timeout-minutes: 30
    ## NB: the following paths do not work for now:
    ##### MY_V_PATH: '你好 my $path, @с интервали'
    ##### MY_V_PATH: 'path with some $punctuation, and some spaces '
    ## tcc has a problem interpreting paths with non latin letters in them,
    ## by default, but that can be solved with passing -Bthirdparty/tcc
    ## but after that V fails self building with:
    ####### builder error: cannot write to folder
    ####### D:\a\v\v\你好 my $path, @с интервали: No such file or directory
    ## and that happens even for gcc builds, not just tcc ones
    steps:
      - uses: actions/checkout@v6
        with:
          path: 'path with some $punctuation, and some spaces'
          persist-credentials: false
      - name: Build V
        run: |
          echo 'path with some $punctuation, and some spaces'
          dir
          cd 'path with some $punctuation, and some spaces'
          dir
          .\make.bat -tcc
      - name: v doctor
        run: |
          cd 'path with some $punctuation, and some spaces'
          ./v doctor
      - name: v tests
        run: |
          cd 'path with some $punctuation, and some spaces'
          ./v test vlib/builtin vlib/os


================================================
FILE: .github/workflows/periodic_ci.yml
================================================
name: Periodic CI

on:
  schedule:
    - cron: '0 */6 * * *'
  push:
    paths:
      - '**/periodic_ci.yml'
  pull_request:
    paths:
      - '**/periodic_ci.yml'

jobs:
  periodic-network:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            cc: tcc
          - os: windows-latest
            cc: msvc
          - os: macos-latest
            cc: clang
      fail-fast: false
    runs-on: ${{ matrix.os }}
    if: github.event_name != 'schedule' || (github.ref == 'refs/heads/master' && github.repository == 'vlang/v')
    timeout-minutes: 30
    env:
      VFLAGS: -cc ${{ matrix.cc }}
      V_CI_PERIODIC: 1
    steps:
      - uses: actions/checkout@v6
      - name: Build
        if: runner.os != 'Windows'
        run: make -j4 && ./v -showcc -o v cmd/v && ./v doctor
      - name: Build V (Windows)
        if: runner.os == 'Windows'
        run: ./make.bat -msvc && ./v -o v2.exe cmd/v && ./v2 -showcc -o v.exe cmd/v && ./v doctor
      - name: Test
        run: ./v -d network -silent test-self vlib/net


================================================
FILE: .github/workflows/prebuilt.yml
================================================
name: Test prebuilt binaries

on:
  workflow_dispatch:
  release:
    types: [edited, published]

jobs:
  prebuilt-linux:
    runs-on: ubuntu-24.04
    timeout-minutes: 5
    steps:
      - name: Download V
        run: |
          .github/workflows/retry.sh wget https://github.com/vlang/v/releases/latest/download/v_linux.zip
          unzip v_linux.zip
          cd v
          ./v -version
      - name: Test V
        run: |
          cd v
          ./v run examples/hello_world.v
          ./v -showcc -gc none -cc tcc -no-retry-compilation run examples/hello_world.v

  prebuilt-macos-arm64:
    ## macos-14 is a m1 runner
    runs-on: macos-14
    timeout-minutes: 5
    steps:
      - name: Download V
        run: |
          .github/workflows/retry.sh wget https://github.com/vlang/v/releases/latest/download/v_macos_arm64.zip
          unzip v_macos_arm64.zip
          cd v
          ./v -version
      - name: Test V
        run: |
          cd v
          ./v run examples/hello_world.v
          ./v -showcc -gc none -cc tcc -no-retry-compilation run examples/hello_world.v

  prebuilt-macos-x86_64:
    runs-on: macos-latest
    timeout-minutes: 5
    steps:
      - name: Download V
        run: |
          .github/workflows/retry.sh wget https://github.com/vlang/v/releases/latest/download/v_macos_x86_64.zip
          unzip v_macos_x86_64.zip
          cd v
          ./v -version
      - name: Test V
        run: |
          cd v
          ./v run examples/hello_world.v

  prebuilt-windows:
    runs-on: windows-latest
    timeout-minutes: 5
    steps:
      - name: Download V
        run: |
          curl -L https://github.com/vlang/v/releases/latest/download/v_windows.zip -o v_windows.zip
          unzip .\v_windows.zip
          cd v
          .\v.exe -version
      - name: Test V
        run: |
          cd v
          .\v.exe run .\examples\hello_world.v
          .\v.exe -showcc -gc none -cc tcc -no-retry-compilation run .\examples/hello_world.v


================================================
FILE: .github/workflows/puzzle_vibes_ci.yml
================================================
name: Shy and PV CI

on:
  workflow_dispatch:
  push:
    paths:
      - 'vlib/v/checker/**.v'
      - 'vlib/v/gen/c/**.v'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - 'cmd/tools/vshader.v'
      - '**/puzzle_vibes_ci.yml'
      - '!**_test.v'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/v/checker/**'
      - 'vlib/v/gen/c/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - 'cmd/tools/vshader.v'
      - '**/puzzle_vibes_ci.yml'
      - '!**_test.v'
      - '!**.md'

concurrency:
  group: puzzle_vibes-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  v-compiles-puzzle-vibes:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - uses: ./.github/actions/cache-apt-packages-action

      - name: Build V
        run: make && ./v symlink

      - name: Install & Setup SDL
        run: v retry -- v install sdl && v ~/.vmodules/sdl/setup.vsh

      - name: Install Shy
        run: v retry -- v install https://github.com/larpon/shy

      - name: Clone Puzzle Vibes
        run: v retry -- git clone https://github.com/larpon/puzzle_vibes/

      - name: Check PV compiles with -g
        run: cd puzzle_vibes && v -g .

      - name: Check PV compiles
        run: cd puzzle_vibes && v .

      - name: Check PV compiles with -prod
        run: cd puzzle_vibes && v -prod    -no-prod-options .

      - name: Check PV compiles with -prod and -g
        run: cd puzzle_vibes && v -prod -g -no-prod-options .


================================================
FILE: .github/workflows/release_ci.yml
================================================
name: Release CI

on:
  workflow_dispatch:
  pull_request:
    paths:
      - '.github/workflows/release_ci.yml'
  push:
    paths:
      - '.github/workflows/release_ci.yml'
    tags:
      - weekly.**
      - 0.**

concurrency:
  group: release-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.ref_type != 'tag' }}

permissions:
  contents: write

jobs:
  release-build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
          [
            ubuntu-22.04,
            ubuntu-22.04-arm,
            macos-15-intel,
            macos-15,
            windows-latest,
          ]
        include:
          - os: ubuntu-22.04
            cc: gcc
            target: linux
            artifact: v_linux.zip
          - os: ubuntu-22.04-arm
            cc: gcc
            target: linux_arm64
            artifact: v_linux_arm64.zip
          - os: macos-15-intel
            cc: clang
            target: macos_x86_64
            artifact: v_macos_x86_64.zip
          - os: macos-15
            cc: clang
            target: macos_arm64
            artifact: v_macos_arm64.zip
          - os: windows-latest
            cc: msvc
            target: windows
            artifact: v_windows.zip
      fail-fast: false
    steps:
      - uses: actions/checkout@v6
      - name: Compile release binaries
        if: runner.os != 'Windows'
        run: |
          make
          ./v -cc ${{ matrix.cc }} ${{ matrix.cflags }} -prod -o v cmd/v
          ./v -cc ${{ matrix.cc }} ${{ matrix.cflags }} -prod cmd/tools/vup.v
          ./v -cc ${{ matrix.cc }} ${{ matrix.cflags }} -prod cmd/tools/vdoctor.v
      - name: Compile release binaries (Windows)
        if: runner.os == 'Windows'
        run: |
          ./make.bat -msvc
          ./v -prod -cc msvc -o cmd/vprod.exe cmd/v
          ./v -prod -cc msvc cmd/tools/vup.v
          ./v -prod -cc msvc cmd/tools/vdoctor.v
          del ./*.exe
          del ./*.tmp.obj
          move cmd/vprod.exe v.exe
      - name: Prepare artifact
        shell: bash
        run: |
          if [[ ${{ matrix.os }} == 'macos-14' ]]; then
            rm -rf thirdparty/tcc
            git clone --branch thirdparty-macos-arm64 --depth=1 https://github.com/vlang/tccbin thirdparty/tcc
          fi
          # Remove excluded
          if [[ $RUNNER_OS == 'Windows' ]]; then
            find . -type f \( -name "*.ilk" -o -name "*.pdb" \) -exec rm -rf {} +
            rm -rf v_old.exe
          fi
          find . -type d -name ".git" -exec rm -rf {} +
          rm -rf vc/
          rm -rf v_old
          rm -rf vlib/v/tests/bench/gcboehm/*.svg.xz
      - name: Create ZIP archive
        shell: bash
        run: |
          cd ..
          if [[ $RUNNER_OS == 'Windows' ]]; then
            7z a -tzip ${{ matrix.artifact }} v/
          else
            zip -r9 --symlinks ${{ matrix.artifact }} v/
          fi
          zipinfo ${{ matrix.artifact }}
          mv ${{ matrix.artifact }} v/
          cd v/
      - name: Create artifact
        uses: actions/upload-artifact@v7
        with:
          name: ${{ matrix.target }}
          path: ${{ matrix.artifact }}

  release-publish:
    if: github.ref_type == 'tag'
    needs: release-build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v8
      - name: Create release
        uses: ncipollo/release-action@v1
        with:
          artifacts: |
            ~/work/v/v/windows/v_windows.zip
            ~/work/v/v/linux/v_linux.zip
            ~/work/v/v/linux_arm64/v_linux_arm64.zip
            ~/work/v/v/macos_arm64/v_macos_arm64.zip
            ~/work/v/v/macos_x86_64/v_macos_x86_64.zip
          tag: ${{ github.ref_name }}
          name: ${{ github.ref_name }}
          draft: false
          prerelease: false


================================================
FILE: .github/workflows/retry.sh
================================================
#!/usr/bin/env bash

cmd=$@

function elog() {
	message=$1
	printf "%(%Y/%m/%d %H:%M:%S)T | retry.sh $1\n"
}

declare -i iteration=0
declare -i max_iterations=9
for((iteration=1;iteration<=max_iterations;iteration++)); do
	elog "iteration: $iteration/$max_iterations, cmd: $cmd"
	if $cmd; then
		exit 0
	fi
	elog "command failed, retrying ...";
	sleep 1;
done;

elog "failed doing $max_iterations iterations of command: $cmd"
exit 1


================================================
FILE: .github/workflows/riscv64_linux_ci.yml
================================================
name: riscv64 CI

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/riscv64_linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/riscv64_linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

jobs:
  riscv64_linux:
    # The host should always be Linux
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    name: Build on ubuntu-24.04 riscv64
    steps:
      - uses: actions/checkout@v6
      - uses: uraimo/run-on-arch-action@v3
        name: Run commands
        id: runcmd
        with:
          arch: riscv64
          distro: ubuntu24.04
          base_image: --platform=linux/riscv64 riscv64/ubuntu:24.04
          # The token tag here is not required, but speeds up builds,
          # by allowing caching of the installed dependencies, which is ~2.5min:
          githubToken: ${{ github.token }}
          shell: /bin/bash
          install: |
            apt-get update -q -y
            apt-get install -q -y make gcc git file coreutils binutils
          run: |
            uname -a
            make --version
            gcc --version
            ls -la
            export LDFLAGS="-latomic"
            export VFLAGS="-gc none -no-retry-compilation -cc cc"
            make
            file ./v
            ls -la ./v
            ./v test vlib/builtin vlib/os vlib/encoding/binary
            ./v test vlib/v/slow_tests/assembly
            VTEST_ONLY=closure ./v test vlib/v/tests


================================================
FILE: .github/workflows/run_sanitizers.sh
================================================
#!/usr/bin/env bash

export PS4='\033[0;33m+ >>>>> (${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }\033[0m'

set -xe

echo "    Setup environment ..."
export DEBUG_OPTS=${DEBUG_OPTS:-"-keepc -cg -cflags -fno-omit-frame-pointer"}
export VFLAGS=${VFLAGS:-"-cc clang"}
v version
v -show-c-output -cflags --version -e ';' || true

echo "    Compile and run sanitizers ..."

v ${VFLAGS} ${DEBUG_OPTS} -o v2 cmd/v -cflags -fsanitize=memory
UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" ./v2 -o v.c cmd/v

v ${VFLAGS} ${DEBUG_OPTS} -o v3 cmd/v -cflags -fsanitize=thread
TSAN_OPTIONS="suppressions=.github/workflows/run_sanitizers_thread.suppressions" UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" ./v3 -o v.c cmd/v

v ${VFLAGS} ${DEBUG_OPTS} -o v4 cmd/v -cflags -fsanitize=undefined
UBSAN_OPTIONS="suppressions=.github/workflows/run_sanitizers_undefined.suppressions:print_stacktrace=1:halt_on_error=1" ./v4 -o v.c cmd/v

v ${VFLAGS} ${DEBUG_OPTS} -o v5 cmd/v -cflags -fsanitize=address,pointer-compare,pointer-subtract
ASAN_OPTIONS="detect_leaks=0" UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" ./v5 -o v.c cmd/v


================================================
FILE: .github/workflows/run_sanitizers_leak.suppressions
================================================
# websocket tests
leak:mbedtls_ssl_setup

# sqlite tests
leak:*sqlite*

# v
leak:v__*
leak:os__*
leak:string__plus
leak:malloc_uncollectable
leak:new_array_from_c_array
leak:_vinit


================================================
FILE: .github/workflows/run_sanitizers_thread.suppressions
================================================
## See https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
## and https://clang.llvm.org/docs/ThreadSanitizer.html
## The sync__stdatomic__add_i64 and sync__stdatomic__sub_i64 suppressions below, are needed for clang-10 to clang-12; clang-18 is fine without them
race:sync__stdatomic__add_i64
race:sync__stdatomic__sub_i64


================================================
FILE: .github/workflows/run_sanitizers_undefined.suppressions
================================================
## See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
## Most of the supressed functions here use asserts, that in turn use an indirection through an interface. TODO: if that is solved, most of these can be removed.
## Usually they contain a __test_ in their name, but not always (see the x.ttf ones like vlib/x/ttf/ttf_test.v ).
## TODO: extract the common part of the assertions to a VDO_ function (1 for pass and 1 for failure), so that they can be whitelisted here just once.
function:map_exists
function:map_get
function:IError_str

shift-exponent:math__bits__rotate_left_64
shift-exponent:math__bits__div_64
function:math__big__Integer_general_radix_str
function:math__big__Integer_div_mod_internal
function:math__bits__test_bits
function:math__bits__test_div_64_edge_cases
function:math__test_nan

alignment:rand__read_64
function:rand__internal_ulid_at_millisecond
function:rand__internal_string_from_set
function:rand__internal_uuid_v4
function:rand__deinit
function:rand__read_internal
function:rand__read_64
function:rand__PRNG_f64

function:rand__cuid2__test_cuid2

function:sync__pool__process_in_thread
function:sync__Once_do_slow_with_param

function:v__type_resolver__TypeResolver_resolve_fn_generic_args
function:v__type_resolver__TypeResolver_unwrap_generic_expr
function:v__type_resolver__TypeResolver_get_type

## these have asserts in them, and trigger due to the used indirection; TODO: remove them, when a more general solution is found for all interfaces
function:x__ttf__TTF_File_get_glyph_offset
function:x__ttf__TTF_File_get_horizontal_metrics
function:x__ttf__TTF_File_glyph_count
function:x__ttf__TTF_File_read_glyph
function:x__ttf__TTF_File_read_simple_glyph
function:x__ttf__TTF_File_read_kern_table
function:x__ttf__TTF_File_read_hhea_table
function:x__ttf__TTF_File_read_cmap_table
function:x__ttf__TTF_File_read_name_table
function:x__ttf__TTF_File_read_head_table
function:x__ttf__TTF_File_read_offset_tables

function:net__unix__select_deadline
function:net__select_deadline
function:net__socks__test_parse_ipv4
function:net__http__download_file_with_progress
function:net__http__download_progres_cb
function:net__http__check_headers
function:net__http__test_str
function:net__http__test_int
function:net__http__test_is_valid
function:net__http__test_is_error
function:net__http__test_is_success
function:net__http__test_parse_response_with_weird_cookie
function:net__http__test_parse_response_with_cookies
function:net__http__test_parse_response
function:net__http__test_response_bytestr_1
function:net__http__test_response_bytestr_2
function:net__http__test_parse_large_body
function:net__http__test_multipart_form_body
function:net__http__test_parse_multipart_form2
function:net__http__test_parse_request_no_headers
function:net__http__test_parse_multipart_form
function:net__http__test_parse_form
function:net__http__test_parse_request_line
function:net__http__test_parse_request_body
function:net__http__test_parse_request_two_header_values
function:net__http__test_parse_request_no_headers
function:net__http__test_parse_request_two_headers
function:net__http__test_proxy_fields
function:net__http__test_proxy_headers
function:net__http__test_set_cookie
function:net__http__test_parse_headers
function:net__http__parse_headers_test
function:net__http__test_header_join
function:net__http__test_header_from_map
function:net__http__test_custom_header_from_map
function:net__http__test_render_coerce_canonicalize
function:net__http__test_render_canonicalize
function:net__http__test_render_version
function:net__http__test_coerce_canonicalize_custom
function:net__http__test_coerce_custom
function:net__http__test_coerce_canonicalize
function:net__http__test_coerce
function:net__http__test_custom_values
function:net__http__test_starting_with
function:net__http__test_get_custom
function:net__http__test_contains_custom
function:net__http__test_custom_header
function:net__http__test_delete_header
function:net__http__test_header_delete_not_existing
function:net__http__test_header_delete
function:net__http__test_header_set
function:net__http__test_header_get
function:net__http__test_header_adds_multiple
function:net__http__test_header_new
function:net__test_ip6_str
function:net__test_ip_str
function:net__test_sizes_unix
function:net__test_sizes_ipv4
function:net__test_sizes_ipv6
function:net__test_offsets_unix
function:net__test_offsets_ipv4
function:net__test_offsets_ipv6
function:net__test_sizes_unix_sun_path
function:net__test_diagnostics
function:net__test_ip_port
function:net__websocket__delete_client_cb
function:net__websocket__Server_listen
function:net__websocket__Server_serve_client
function:net__websocket__Server_parse_client_handshake
function:net__websocket__Client_listen
function:net__websocket__Client_send_message_event
function:net__websocket__Client_send_close_event
function:net__websocket__Client_debug_log
function:net__websocket__Client_connect

function:io__BufferedReader_fill_buffer
function:io__read_all

function:log__info
function:log__debug
function:log__warn
function:log__error
function:log__set_level
function:log__Log_log_stream
function:log__free_logger

function:picoev__Picoev_poll_once
function:picoev__Picoev_set_timeout
function:picoev__Picoev_update_events
function:picoev__test_if_all_file_descriptors_are_properly_initialized

function:vweb__tests__vweb_test_server__App_index
function:vweb__tests__vweb_test_server__start_in_background
function:vweb__RoutePair_test_param
function:veb__RoutePair_test_param
function:veb__test_load_files_translations

## needed for tests; TODO: move the test specific setup code into its own separate VDO_tests function, so only it can be added here
function:main

function:crypto__sha3__test_0_length_hash
function:crypto__sha3__test_0_length_xof
function:crypto__sha3__test_200_length_hash
function:crypto__sha3__test_200_length_xof

function:crypto__sha3__test_2_x_24_rounds_on_zero
function:crypto__sha3__test_stepping_functions_on_zero
function:crypto__sha3__test_zero_state
function:crypto__sha3__test_rho_offsets
function:crypto__sha3__test_to_from_bytes
function:crypto__sha3__test_round_constants

function:crypto__pem__test_decode_rfc1421
function:crypto__pem__test_decode
function:crypto__pem__test_encode_rfc1421
function:crypto__pem__test_encode

function:crypto__hmac__test_hmac_equal
function:crypto__hmac__test_hmac_sha3_224
function:crypto__hmac__test_hmac_sha3_256
function:crypto__hmac__test_hmac_sha3_384
function:crypto__hmac__test_hmac_sha3_512
function:crypto__hmac__test_hmac_blake3_256
function:crypto__hmac__test_hmac_blake2b_160
function:crypto__hmac__test_hmac_blake2b_256
function:crypto__hmac__test_hmac_blake2b_384
function:crypto__hmac__test_hmac_blake2b_512
function:crypto__hmac__test_hmac_blake2s_128
function:crypto__hmac__test_hmac_blake2s_160
function:crypto__hmac__test_hmac_blake2s_224
function:crypto__hmac__test_hmac_blake2s_256
function:crypto__hmac__test_hmac_sha512
function:crypto__hmac__test_hmac_sha384
function:crypto__hmac__test_hmac_sha256
function:crypto__hmac__test_hmac_sha224
function:crypto__hmac__test_hmac_sha1
function:crypto__hmac__test_hmac_md5

function:crypto__ed25519__internal__edwards25519__sc_reduce
function:crypto__ed25519__internal__edwards25519__sc_reduce


================================================
FILE: .github/workflows/s390x_linux_ci.yml
================================================
name: s390 CI

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/s390x_linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/s390x_linux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

jobs:
  s390x_linux:
    # The host should always be Linux
    runs-on: ubuntu-22.04
    timeout-minutes: 30
    name: Build on ubuntu-22.04 s390x
    steps:
      - uses: actions/checkout@v6
      - uses: uraimo/run-on-arch-action@v3
        name: Run commands
        id: runcmd
        with:
          arch: s390x
          distro: ubuntu22.04
          base_image: --platform=linux/s390x s390x/ubuntu:22.04
          # The token tag here is not required, but speeds up builds,
          # by allowing caching of the installed dependencies, which is ~2.5min:
          githubToken: ${{ github.token }}
          shell: /bin/bash
          install: |
            apt-get update -q -y
            apt-get install -q -y make gcc git file coreutils binutils
          run: |
            uname -a
            make --version
            gcc --version
            ls -la
            make
            file ./v
            ls -la ./v
            ./v test vlib/builtin vlib/os vlib/encoding/binary
            ./v test vlib/v/tests/fns/closure_test.v


================================================
FILE: .github/workflows/sanitized_ci.yml
================================================
name: Sanitized CI

## Running these jobs is slow (over ~1 hour, sometimes even 2)
## so we run them only when there is a chance that the generated
## C code could have changed, or for some critical vlib modules,
## like `builtin`, `os`, `sync`, where they have demonstrated
## their usefulness by catching actual very hard to find bugs.
## The cost of this selective running is delayed feedback when
## there are bugs in other V modules.
## The positive is *much faster CI runs* for most V contributors,
## that make PRs that are not concerning V itself, or the critical
## V modules.

on:
  workflow_dispatch:
  push:
    paths:
      - '!**'
      - '!**.md'
      - '!**.yml'
      - 'vlib/builtin/**.v'
      - 'vlib/strconv/**.v'
      - 'vlib/strings/**.v'
      - 'vlib/math/**.v'
      - 'vlib/math/big/**.v'
      - 'vlib/arrays/**.v'
      - 'vlib/crypto/ecdsa/**.v'
      - 'vlib/datatypes/**.v'
      - 'vlib/os/**.v'
      - 'vlib/sync/**.v'
      - 'vlib/v/tests/**.v'
      - 'vlib/v/ast/**.v'
      - 'vlib/v/scanner/**.v'
      - 'vlib/v/parser/**.v'
      - 'vlib/v/checker/**.v'
      - 'vlib/v/gen/c/**.v'
      - 'vlib/v/builder/**.v'
      - 'vlib/v/cflag/**.v'
      - 'vlib/v/live/**.v'
      - 'vlib/v/util/**.v'
      - 'vlib/v/markused/**.v'
      - 'vlib/v/preludes/**.v'
      - 'vlib/v/embed_file/**.v'
      - 'vlib/x/json2/**.v'
      - '**/sanitized_ci.yml'
  pull_request:
    paths:
      - '!**'
      - 'vlib/builtin/**.v'
      - 'vlib/strconv/**.v'
      - 'vlib/strings/**.v'
      - 'vlib/math/**.v'
      - 'vlib/math/big/**.v'
      - 'vlib/arrays/**.v'
      - 'vlib/crypto/ecdsa/**.v'
      - 'vlib/datatypes/**.v'
      - 'vlib/os/**.v'
      - 'vlib/sync/**.v'
      - 'vlib/v/tests/**.v'
      - 'vlib/v/ast/**.v'
      - 'vlib/v/scanner/**.v'
      - 'vlib/v/parser/**.v'
      - 'vlib/v/checker/**.v'
      - 'vlib/v/gen/c/**.v'
      - 'vlib/v/builder/**.v'
      - 'vlib/v/cflag/**.v'
      - 'vlib/v/live/**.v'
      - 'vlib/v/util/**.v'
      - 'vlib/v/markused/**.v'
      - 'vlib/v/preludes/**.v'
      - 'vlib/v/embed_file/**.v'
      - 'vlib/x/json2/**.v'
      - '**/sanitized_ci.yml'

concurrency:
  group: sanitized-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  sanitize-undefined-clang:
    runs-on: ubuntu-22.04
    timeout-minutes: 120
    env:
      VFLAGS: -cc clang -cflags -fno-omit-frame-pointer
      VJOBS: 1
      UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:print_suppressions=0:suppressions=/home/runner/work/v/v/.github/workflows/run_sanitizers_undefined.suppressions
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
          ./v retry -- sudo apt install clang
      - name: Recompile V with -cstrict
        run: ./v -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=undefined)
        run: |
          ./v -cflags -fsanitize=undefined -o v2 cmd/v
          ./v2 -cflags -fsanitize=undefined -silent test-self vlib
      - name: Build examples (V compiled with -fsanitize=undefined)
        run: ./v2 -silent build-examples

  sanitize-undefined-gcc:
    runs-on: ubuntu-22.04
    timeout-minutes: 120
    env:
      VFLAGS: -cc gcc -cflags -fno-omit-frame-pointer
      VJOBS: 1
      UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:print_suppressions=0:suppressions=/home/runner/work/v/v/.github/workflows/run_sanitizers_undefined.suppressions
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
      - name: Recompile V with -cstrict
        run: ./v -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=undefined)
        run: |
          ./v  -cflags -fsanitize=undefined -o v2 cmd/v
          ./v2 -cflags -fsanitize=undefined -silent test-self vlib
      - name: Build examples (V compiled with -fsanitize=undefined)
        run: ./v2 -silent build-examples

  sanitize-address-clang:
    runs-on: ubuntu-22.04
    timeout-minutes: 300
    env:
      VFLAGS: -cc clang -cflags -fno-omit-frame-pointer
      VJOBS: 1
      ASAN_OPTIONS: detect_leaks=1
      LSAN_OPTIONS: max_leaks=1:print_suppressions=0:suppressions=/home/runner/work/v/v/.github/workflows/run_sanitizers_leak.suppressions
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
          ./v retry -- sudo apt install clang
      - name: Recompile V with -cstrict
        run: ./v -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=address)
        run: ./v -cflags -fsanitize=address,pointer-compare,pointer-subtract -silent test-self vlib
      - name: Test vlib/v/tests/ (V compiled with -fsanitize=address)
        run: |
          ./v -cflags -fsanitize=address -o v cmd/v
          ./v -cc tcc -silent test-self -asan-compiler vlib/v/tests/
      - name: Build examples (V compiled with -fsanitize=address)
        run: ./v -silent build-examples

  sanitize-address-msvc:
    runs-on: windows-2025
    timeout-minutes: 30
    env:
      VFLAGS: -cc msvc
      VJOBS: 1
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: |
          echo %VFLAGS%
          echo $VFLAGS
          .\make.bat -msvc
          .\v.exe self
      - name: V doctor
        run: .\v.exe doctor
      - name: Ensure code is well formatted
        run: .\v.exe -silent test-cleancode
        # - name: Install dependencies
        #   run: |
        #     .\v.exe setup-freetype
        #     .\.github\workflows\windows-install-sqlite.bat
        # - name: Self tests (/fsanitize=address) # TODO:
        #   run: .\v.exe -cflags "/fsanitize=address" -silent test-self vlib

  sanitize-address-gcc:
    runs-on: ubuntu-22.04
    timeout-minutes: 300
    env:
      VFLAGS: -cc gcc -cflags -fno-omit-frame-pointer
      VJOBS: 1
      ASAN_OPTIONS: detect_leaks=1
      LSAN_OPTIONS: max_leaks=1:print_suppressions=0:suppressions=/home/runner/work/v/v/.github/workflows/run_sanitizers_leak.suppressions
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
          ./v retry -- sudo apt install clang
      - name: Recompile V with -cstrict
        run: ./v -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=address)
        run: ./v -cflags -fsanitize=address -silent test-self vlib
      - name: Test vlib/v/tests/ (V compiled with -fsanitize=address)
        run: |
          ./v -cflags -fsanitize=address,pointer-compare,pointer-subtract -o v cmd/v
          ./v -cc tcc -silent test-self -asan-compiler vlib/v/tests/
      - name: Build examples (V compiled with -fsanitize=address)
        run: ./v -silent build-examples

  sanitize-memory-clang:
    runs-on: ubuntu-22.04
    timeout-minutes: 240
    env:
      VFLAGS: -cc clang -gc none -cflags -fno-omit-frame-pointer
      VJOBS: 1
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
          ./v retry -- sudo apt install clang
      - name: Recompile V with clang and -cstrict
        run: ./v -cc clang -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=memory)
        run: ./v -cflags -fsanitize=memory -silent test-self -msan-compiler vlib
      - name: Test vlib/v/tests/ (V compiled with -fsanitize=memory)
        run: |
          ./v -cflags -fsanitize=memory -o v cmd/v
          ./v -cc tcc -silent test-self -msan-compiler vlib/v/tests/
      - name: Build examples (V compiled with -fsanitize=memory)
        run: ./v -silent build-examples

  sanitize-address-clang-without-gc:
    runs-on: ubuntu-22.04
    timeout-minutes: 300
    env:
      VFLAGS: -cc clang -gc none -cflags -fno-omit-frame-pointer
      VJOBS: 1
      LSAN_OPTIONS: detect_leaks=0
      VNATIVE_SKIP_LIBC_VV: 1
      VTEST_SHOW_LONGEST_BY_RUNTIME: 3
      VTEST_SHOW_LONGEST_BY_COMPTIME: 3
      VTEST_SHOW_LONGEST_BY_TOTALTIME: 3
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: V doctor
        run: ./v doctor
      - name: Ensure code is well formatted
        run: ./v -silent test-cleancode
      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          ./v retry -- sudo apt update
          ./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
          ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev libegl-dev
          ./v retry -- sudo apt install clang
      - name: Recompile V with -cstrict
        run: ./v -cg -cstrict -o v cmd/v
      - name: Self tests (-fsanitize=address)
        run: ./v -cflags -fsanitize=address -silent test-self vlib


================================================
FILE: .github/workflows/sdl_ci.yml
================================================
name: sdl CI

on:
  workflow_dispatch:
  push:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - 'cmd/tools/vshader.v'
      - '**/sdl_ci.yml'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - 'cmd/tools/vshader.v'
      - '**/sdl_ci.yml'
      - '!**.md'

concurrency:
  group: sdl-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  v-compiles-sdl-examples:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VFLAGS: -cc tcc
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && sudo ./v symlink

      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh		
          v retry 'sudo apt update'
          v retry 'sudo apt install -y libsdl2-dev libsdl2-ttf-dev'
          v retry 'sudo apt install -y libsdl2-mixer-dev libsdl2-image-dev'

      - name: Clone sdl into .vmodules
        run: |
          v retry 'git clone --filter=blob:none https://github.com/vlang/sdl'
          cd sdl
          mkdir -p ~/.vmodules
          ln -s "$(pwd)" ~/.vmodules/sdl

      - name: Ensure SDL setup works
        run: ./v ~/.vmodules/sdl/setup.vsh

      - name: Run tests
        run: ./v test sdl

      - name: Build sdl shared
        run: ./v -shared -g sdl

      - name: Build sdl examples
        run: |
          v shader sdl/examples/sdl_opengl_and_sokol
          v should-compile-all sdl/examples/
          ~/.vmodules/sdl/examples/versions/main

      - name: Check SDL works, when installed through vpm
        run: |
          rm -rf sdl/
          rm -rf ~/.vmodules/sdl
          v retry 'v install sdl'
          ls -la ~/.vmodules/sdl/
          v ~/.vmodules/sdl/setup.vsh
          v run ~/.vmodules/sdl/examples/versions


================================================
FILE: .github/workflows/show_manual_release_cmd.vsh
================================================
import os
import time
import term

now := time.now()
year := now.year
week := now.strftime('%V')

mut remote_name := 'origin'
mut release_tag := 'weekly.${year:04}.${week:02}'

if os.args.len > 1 {
	remote_name = os.args[1]
}

if os.args.len > 2 {
	release_tag = os.args[2]
}

println('## Usage: show_manual_release_cmd.vsh [REMOTE] [TAGNAME]')
println('##         current remote_name: ${remote_name}')
println('##         current release_tag: ${release_tag}')
println('##  ▼▼▼ ${term.ecolorize(term.yellow, 'run the following, to make a new github release')} ▼▼▼ ')

git_cmd := 'git tag -s -m "releases: ${release_tag}" ${release_tag} && git push --atomic ${remote_name} ${release_tag}'
println(git_cmd)


================================================
FILE: .github/workflows/ssa_backends_ci.yml.disabled
================================================
name: SSA backends CI

on:
  push:
    paths:
      - 'vlib/v2/**'
      - 'cmd/tinyv/**'
      - '.github/workflows/ssa_backends_ci.yml'
  pull_request:
    paths:
      - 'vlib/v2/**'
      - 'cmd/tinyv/**'
      - '.github/workflows/ssa_backends_ci.yml'

concurrency:
  group: ssa_backends-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  ssa-backends-linux:
    runs-on: ubuntu-24.04
    env:
      VJOBS: 1
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v symlink
      - name: Test native x64 backend
        run: v run cmd/tinyv/test_ssa_backends.v
      - name: Test cleanc backend
        run: v run cmd/tinyv/test_ssa_backends.v cleanc
      - name: Test c-ssa backend
        run: v run cmd/tinyv/test_ssa_backends.v c

  ssa-backends-macos:
    runs-on: macos-14
    env:
      VJOBS: 1
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: Test native arm64 backend
        run: v run cmd/tinyv/test_ssa_backends.v
      - name: Test cleanc backend
        run: v run cmd/tinyv/test_ssa_backends.v cleanc
      - name: Test c-ssa backend
        run: v run cmd/tinyv/test_ssa_backends.v c


================================================
FILE: .github/workflows/symlink_ci.yml
================================================
name: Symlink CI

on:
  workflow_dispatch:
  push:
    paths:
      - 'cmd/tools/vsymlink/**.v'
      - '.github/workflows/symlink_ci.yml'
  pull_request:
    paths:
      - 'cmd/tools/vsymlink/**.v'
      - '.github/workflows/symlink_ci.yml'

concurrency:
  group: symlink-${{ github.workflow }}-${{ github.ref_name == 'master' && github.sha || github.ref_name }}
  cancel-in-progress: true

jobs:
  symlink-unix:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
      fail-fast: false
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4
      - name: Symlink
        run: |
          ./v symlink
          cd /tmp/ && v version
          cd ~ && v version
          echo 'println(123)' > hi.v
          v run hi.v
      - name: Unlink
        run: |
          rm "$(which v)"
          v --version && exit 1 || exit 0
      - name: Symlink (sudo)
        run: |
          sudo ./v symlink
          cd /tmp/ && v version
          cd ~ && v version
          echo 'println(123)' > hi.v
          v run hi.v
      - name: Unlink
        run: |
          rm "$(which v)"
          v --version && exit 1 || exit 0
      - name: Symlink (-githubci)
        run: ./v symlink -githubci
      - name: Test after symlink with -githubci (in a separate script)
        run: |
          cd /tmp/ && v version
          cd ~ && v version
          echo 'println(123)' > hi.v
          v run hi.v

  symlink-windows:
    runs-on: windows-2025
    strategy:
      matrix:
        flags: ['', '-githubci']
      fail-fast: false
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: ./make.bat
      - name: Symlink
        run: ./v symlink ${{ matrix.flags }}
      - name: Check if V is usable
        run: |
          cd $RUNNER_TEMP && pwd && v version
          cd ~ && pwd && v version
          echo 'println(123)' > hi.v
          v run hi.v


================================================
FILE: .github/workflows/termux_ci.yml
================================================
name: CI Termux

on:
  workflow_dispatch:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/termux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/termux_ci.yml'
      - 'cmd/tools/**'
      - '!cmd/tools/builders/**.v'

jobs:
  termux-build:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v6
      - name: Build and test in Termux
        run: |
          set -o xtrace
          echo "$PWD"
          whoami
          touch outside_docker.txt
          git log -n4
          echo "running docker ..."
          docker run --rm --mount type=bind,source=/home/runner/work/v/v,destination=/src -w /src termux/termux-docker:latest bash -c '
            set -o xtrace
            echo "running inside docker"
            whoami
            cp -r /src ~/vproject; cd ~/vproject
            touch inside_docker.txt
            ls -la
            echo "previous TERMUX_VERSION: $TERMUX_VERSION"
            export TERMUX_VERSION=0.118.3
            echo "explicit TERMUX_VERSION: $TERMUX_VERSION"
            .github/workflows/retry.sh pkg update -y
            .github/workflows/retry.sh pkg install -y clang libexecinfo libgc libgc-static make git
            git log -n4
            VFLAGS="-cc cc" make
            ./v symlink
            v run examples/hello_world.v
            v run examples/primes.v
            v -e "import os; dump( os.user_os() )"
          '


================================================
FILE: .github/workflows/time_ci.yml
================================================
name: Time CI

on:
  push:
    paths:
      - 'vlib/**'
      - 'cmd/tools/builders/**.v'
      - '**/time_ci.yml'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/**'
      - 'cmd/tools/builders/**.v'
      - '**/time_ci.yml'
      - '!**.md'

concurrency:
  group: time-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  time-linux:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make
      - name: Test time functions in a timezone UTC-12
        run: TZ=Etc/GMT+12 ./v test vlib/time/
      - name: Test time functions in a timezone UTC-3
        run: TZ=Etc/GMT+3 ./v test vlib/time/
      - name: Test time functions in a timezone UTC+3
        run: TZ=Etc/GMT-3 ./v test vlib/time/
      - name: Test time functions in a timezone UTC+12
        run: TZ=Etc/GMT-12 ./v test vlib/time/
      - name: Test in a timezone using daylight saving (Europe/Paris)
        run: TZ=Europe/Paris ./v test vlib/time/

  time-macos:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make
      - name: Test time functions in a timezone UTC-12
        run: TZ=Etc/GMT+12 ./v test vlib/time/
      - name: Test time functions in a timezone UTC-3
        run: TZ=Etc/GMT+3 ./v test vlib/time/
      - name: Test time functions in a timezone UTC+3
        run: TZ=Etc/GMT-3 ./v test vlib/time/
      - name: Test time functions in a timezone UTC+12
        run: TZ=Etc/GMT-12 ./v test vlib/time/
      - name: Test in a timezone using daylight saving (Europe/Paris)
        run: TZ=Europe/Paris ./v test vlib/time/

  time-windows:
    runs-on: windows-2025
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: .\make.bat
      - name: Test time functions in a timezone UTC-12
        run: tzutil /s "Dateline Standard Time" && ./v test vlib/time/
      - name: Test time functions in a timezone UTC-3
        run: tzutil /s "Greenland Standard Time" && ./v test vlib/time/
      - name: Test time functions in a timezone UTC+3
        run: tzutil /s "Russian Standard Time" && ./v test vlib/time/
      - name: Test time functions in a timezone UTC+12
        run: tzutil /s "New Zealand Standard Time" && ./v test vlib/time/
      - name: Test in a timezone using daylight saving (Europe/Paris)
        run: tzutil /s "W. Europe Standard Time" && ./v test vlib/time/


================================================
FILE: .github/workflows/toml_ci.yml
================================================
name: toml CI

on:
  push:
    paths:
      - 'vlib/**'
      - '**/toml_ci.yml'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/**'
      - '**/toml_ci.yml'
      - '!**.md'

concurrency:
  group: toml-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  toml-module-pass-external-test-suites:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink
      - name: Install dependencies
        run: |
          v retry -- v download https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64
          sudo chmod 755 jq-linux64
          sudo mv jq-linux64 /usr/bin/jq

      - name: Show JQ Version
        run: jq --version

      - name: Download more TOML testsuits
        run: .github/workflows/download_full_toml_test_suites.sh

      - name: Run TOML tests
        run: VTEST_TOML_DO_YAML_CONVERSION=1 VTEST_TOML_DO_LARGE_FILES=1 ./v test vlib/toml


================================================
FILE: .github/workflows/tools_ci.yml
================================================
name: Tools CI

on:
  push:
    paths:
      - 'cmd/**'
      - '!cmd/tools/vpm/**'
      - 'vlib/**'
      - 'thirdparty/**'
      - '!**.md'
      - '**/tools_ci.yml'
  pull_request:
    paths:
      - 'cmd/**'
      - '!cmd/tools/vpm/**'
      - 'vlib/**'
      - 'thirdparty/**'
      - '!**.md'
      - '**/tools_ci.yml'

concurrency:
  group: tools-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  tools-linux:
    runs-on: ubuntu-22.04
    timeout-minutes: 20
    strategy:
      matrix:
        cc: [tcc, gcc, clang]
      fail-fast: false
    env:
      VFLAGS: -cc ${{ matrix.cc }}
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v -showcc -o v cmd/v && ./v symlink && ./v doctor
      - name: Code in cmd/ is formatted
        run: ./v fmt -verify cmd/
      - name: Check build-tools
        run: ./v -silent -N -W -check build-tools
      - name: Test tools
        run: ./v -silent test-self cmd
      - name: Test tools (-cstrict)
        if: ${{ matrix.cc != 'tcc' }}
        run: ./v -silent -W -cstrict test-self cmd
      - name: Test sanitized
        if: ${{ matrix.cc != 'tcc' }}
        run: |
          export VNATIVE_SKIP_LIBC_VV=1
          if [[ ${{ matrix.cc }} == "clang" ]]; then
            cmd="./v -silent -cc clang -cflags -fsanitize=undefined test-self -ubsan-compiler cmd"
            echo "$cmd" && $cmd
            cmd="./v -silent -cc clang -cflags -fsanitize=memory    test-self -msan-compiler cmd"
            echo "$cmd" && $cmd
          else
            cmd="./v -silent -cc gcc -cflags -fsanitize=thread test-self cmd"
            echo "$cmd" && $cmd
            cmd="./v -silent -cc gcc -cflags -fsanitize=address,leak,undefined,shift,shift-exponent,shift-base,integer-divide-by-zero,unreachable,vla-bound,null,return,signed-integer-overflow,bounds,bounds-strict,alignment,object-size,float-divide-by-zero,float-cast-overflow,nonnull-attribute,returns-nonnull-attribute,bool,enum,vptr test-self -asan-compiler cmd/tools"
            echo "$cmd" && $cmd
            ## cmd="./v -silent -cc gcc -cflags -fsanitize=kernel-address test-self -asan-compiler cmd"
            ## echo "$cmd" && $cmd
          fi

  tools-macos:
    runs-on: macos-14
    timeout-minutes: 20
    strategy:
      matrix:
        cc: [clang]
      fail-fast: false
    env:
      VFLAGS: -cc ${{ matrix.cc }}
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v -showcc -o v cmd/v && ./v symlink && ./v doctor
      - name: Check build-tools
        run: ./v -silent -N -W -check build-tools
      - name: Test tools
        run: ./v -silent test-self cmd
      - name: Test tools (-cstrict)
        run: ./v -silent -W -cstrict test-self cmd

  tools-windows:
    runs-on: windows-2025
    timeout-minutes: 20
    strategy:
      matrix:
        cc: [tcc, gcc, msvc]
      fail-fast: false
    env:
      VFLAGS: -cc ${{ matrix.cc }}
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: ./make.bat -${{ matrix.cc }} && ./v -o v2.exe cmd/v && ./v2 -showcc -o v.exe cmd/v && ./v symlink && ./v doctor
      - name: Check build tools
        run: ./v build-tools
      - name: Test tools
        run: ./v -silent test-self cmd
      - name: Test tools (-cstrict)
        if: ${{ matrix.cc == 'msvc' }}
        run: ./v -silent -W -cstrict test-self cmd

  tools-docker-ubuntu-musl:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    container:
      image: thevlang/vlang:ubuntu-build
      env:
        V_CI_MUSL: 1
        V_CI_UBUNTU_MUSL: 1
        VFLAGS: -cc musl-gcc -gc none
      volumes:
        - ${{github.workspace}}:/opt/vlang
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Build V
        run: make && ./v -cg -o v cmd/v && ./v symlink
      - name: Ensure git commands can be used with no prompts on modern Git versions
        run: git config --global --add safe.directory /__w/v/v
      - name: Verify `v test` works
        run: |
          ./v cmd/tools/test_if_v_test_system_works.v
          ./cmd/tools/test_if_v_test_system_works
      - name: Check build tools
        run: ./v -silent -N -W -check build-tools
      - name: Test tools
        run: ./v -silent test-self cmd
      - name: Test tools (-cstrict)
        run: ./v -silent -W -cstrict test-self cmd

  tools-freebsd:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      matrix:
        cc: [tcc, gcc, clang]
      fail-fast: false
    env:
      VFLAGS: -cc ${{ matrix.cc }}
    steps:
      - uses: actions/checkout@v6
      - name: Tests tools on FreeBSD with ${{ matrix.cc }}
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: freebsd
          version: '15.0'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          environment_variables: VFLAGS
          run: |
            sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv
            if [ "$VFLAGS" = "-cc gcc" ]; then
              sudo pkg install -y gcc
            fi
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s freebsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            # Build V
            echo "### Build V"
            printf "VFLAGS = %s\n" "$VFLAGS"
            gmake && ./v -showcc -o v cmd/v && sudo ./v symlink && ./v doctor
            # Code in cmd/ is formatted
            echo "### Check code in cmd/ is formatted"
            ./v fmt -verify cmd/
            # Check build-tools
            echo "### Check build tools"
            ./v -silent -N -W -check build-tools
            # Test tools
            echo "### Test tools"
            ./v -silent test-self cmd
            # Test tools (-cstrict)
            if [ "$VFLAGS" != "-cc tcc" ]; then
              echo "### Test tools (-cstrict)"
              ./v -silent -W -cstrict test-self cmd
            fi

  tools-openbsd:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      matrix:
        cc: [tcc, clang]
      fail-fast: false
    env:
      VFLAGS: -cc ${{ matrix.cc }}
    steps:
      - uses: actions/checkout@v6
      - name: Tests tools on OpenBSD with ${{ matrix.cc }}
        uses: cross-platform-actions/action@v0.32.0
        with:
          operating_system: openbsd
          version: '7.8'
          memory: 4G
          shell: sh
          sync_files: runner-to-vm
          environment_variables: VFLAGS
          run: |
            sudo pkg_add git sqlite3 gmake boehm-gc libiconv
            # Mandatory: hostname not set in VM => some tests fail
            sudo hostname -s openbsd-ci
            echo "### OS infos"
            uname -a
            git config --global --add safe.directory .
            # Build V
            echo "### Build V"
            printf "VFLAGS = %s\n" "$VFLAGS"
            gmake && ./v -showcc -o v cmd/v && sudo ./v symlink && ./v doctor
            # Code in cmd/ is formatted
            echo "### Check code in cmd/ is formatted"
            ./v fmt -verify cmd/
            # Check build-tools
            echo "### Check build tools"
            ./v -silent -N -W -check build-tools
            # Test tools
            echo "### Test tools"
            ./v -silent test-self cmd
            # Test tools (-cstrict)
            if [ "$VFLAGS" != "-cc tcc" ]; then
              echo "### Test tools (-cstrict)"
              ./v -silent -W -cstrict test-self cmd
            fi


================================================
FILE: .github/workflows/v_apps_and_modules_compile_ci.yml
================================================
name: V Apps and Modules

on:
  push:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/v_apps_and_modules_compile_ci.yml'
      - 'examples/**'
      - 'cmd/tools/vrepl.v'
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/v_apps_and_modules_compile_ci.yml'
      - 'examples/**'
      - 'cmd/tools/vrepl.v'

concurrency:
  group: v_apps-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  v-apps-compile:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-14]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    timeout-minutes: 60
    steps:
      - uses: actions/checkout@v6

      - name: Build V
        id: build
        run: make && sudo ./v symlink

      - name: Install dependencies
        run: |
          if [ "$RUNNER_OS" == 'Linux' ]; then
            .github/workflows/disable_azure_mirror.sh
            v retry -- sudo apt -qq update
            v retry -- sudo apt -qq install libgc-dev libsodium-dev libssl-dev sqlite3 libsqlite3-dev
            v retry -- sudo apt -qq install libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libxrandr-dev libasound2-dev xfonts-75dpi xfonts-base libegl-dev
            v retry -- sudo apt -qq install sassc libgit2-dev # needed by gitly
          else
            v retry brew install sassc libgit2
          fi

      - name: Build docs generator
        run: |
          v retry -- v install markdown
          v retry -- git clone https://github.com/vlang/docs --branch generator --depth 1
          cd docs
          v .

      - name: Test vtcc
        if: runner.os == 'Linux'
        run: .github/workflows/compile_v_with_vtcc.sh

      - name: Test vsql compilation and examples
        if: ${{ false && !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Install vsql"
          v retry -- v install elliotchance.vsql
          cd ~/.vmodules/elliotchance/vsql
          echo "Compile vsql"
          make bin/vsql
          echo "Run examples"
          make examples
          echo "Run vsql/connection_test.v"
          v vsql/connection_test.v

      - name: Test vlang/gui
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: .github/workflows/compile_vlang_gui_examples.sh
      - name: Test discord.v
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: .github/workflows/compile_discordv.sh
      - name: Build herolib
        if: ${{ false && !cancelled() && steps.build.outcome == 'success' }}
        run: .github/workflows/compile_herolib.sh
      - name: Build vlang/vab
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Install VAB"
          v retry -- v install vab
          echo "Build vab"
          v ~/.vmodules/vab
          echo "Build vab with -g"
          v -g ~/.vmodules/vab

      - name: Build vlang/ved
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          v retry -- git clone --depth 1 https://github.com/vlang/ved
          cd ved && v -o ved .
          echo "Build"
          v .
          echo "Build with -autofree ..."
          v -autofree .
          echo "Build with -prod ..."
          v -prod .
          cd ..

      - name: Build vlang/pdf
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          v retry -- v install pdf
          echo "PDF examples should compile"
          v should-compile-all ~/.vmodules/pdf/examples

      - name: Build vlang/libsodium
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Install the libsodium wrapper"
          v retry -- v install libsodium
          echo "Test libsodium"
          VJOBS=1 v test ~/.vmodules/libsodium

      - name: Build vlang/coreutils
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Clone Coreutils"
          v retry -- git clone --depth 1 https://github.com/vlang/coreutils /tmp/coreutils
          echo "Build Coreutils"
          cd /tmp/coreutils; make

      - name: Build vlang/gitly
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Install markdown"
          v retry -- v install markdown
          echo "Install pcre"
          v retry -- v install pcre
          echo "Clone Gitly"
          v retry -- git clone https://github.com/vlang/gitly /tmp/gitly
          echo "Build Gitly"
          v -cc gcc /tmp/gitly
          ## echo "Build Gitly with -autofree"
          ## v -cc gcc -autofree /tmp/gitly
          echo "Compile gitly.css from gitly.scss"
          sassc /tmp/gitly/src/static/css/gitly.scss > /tmp/gitly/src/static/css/gitly.css
          # echo "Run first_run.v"
          # v -cc gcc run /tmp/gitly/tests/first_run.v
          # # /tmp/gitly/gitly -ci_run

      - name: Build V UI examples
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          v retry -- v install ui
          v -no-parallel ~/.vmodules/ui/examples/rectangles.v
          v -no-parallel ~/.vmodules/ui/examples/users.v
          # v run ~/.vmodules/ui/examples/build_examples.vsh

      - name: Build vlang/v-analyzer
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Clone v-analyzer"
          v retry -- git clone --depth=1 --filter=blob:none --recursive --shallow-submodules https://github.com/vlang/v-analyzer /tmp/v-analyzer
          cd /tmp/v-analyzer
          echo "Installing dependencies"
          v install
          echo "Build v-analyzer debug"
          v build.vsh debug
          echo "Build v-analyzer release"
          v build.vsh release

      - name: Format vlang/v-analyzer
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          cd /tmp/v-analyzer
          set +e
          v fmt -c .
          exit_code=$?
          if [[ $exit_code -ne 0 && $exit_code -ne 5 ]]; then
            # Don't fail if there are only internal errors (exit code 5).
            v fmt -diff .
            exit 1
          fi

      - name: Build vlang/go2v
        if: ${{ !cancelled() && steps.build.outcome == 'success' && matrix.os != 'macos-14' }}
        run: |
          echo "Clone Go2V"
          v retry -- git clone --depth=1 https://github.com/vlang/go2v /tmp/go2v/
          echo "Build Go2V"
          v /tmp/go2v/
          echo "Run Go2V tests"
          VJOBS=1 v test /tmp/go2v/

      - name: Install UI through VPM and make sure its examples compile
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Official VPM modules should be installable"
          v retry -- v install ui
          echo "Examples of UI should compile"
          v ~/.vmodules/ui/examples/build_examples.vsh

      - name: Build vlang/adventofcode
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Clone the AdventOfCode repo"
          v retry -- git clone --depth 1 https://github.com/vlang/adventofcode  /tmp/adventofcode
          echo "Install dependencies"
          v retry -- v install pcre
          echo "Execute Tests"
          cd /tmp/adventofcode && v run verify.v

      - name: Build vlang/msgpack
        if: ${{ !cancelled() && steps.build.outcome == 'success' }}
        run: |
          echo "Install msgpack"
          v retry -- v install msgpack
          echo "Build msgpack"
          v -shared ~/.vmodules/msgpack/
          echo "Run msgpack tests"
          v test ~/.vmodules/msgpack/
          echo "MessagePack examples should compile"
          v should-compile-all ~/.vmodules/msgpack/examples

      # - name: Build VEX
      #   if: ${{ !cancelled() }} && steps.build.outcome == 'success'
      #   run: |
      #     echo "Install Vex"
      #     v retry -- v install nedpals.vex
      #     echo "Compile all of the Vex examples"
      #     v should-compile-all ~/.vmodules/nedpals/vex/examples
      #     echo "Compile the simple Vex example"
      #     v ~/.vmodules/nedpals/vex/examples/simple_example.v
      #     echo "Run Vex Tests"
      #     v test ~/.vmodules/nedpals/vex

  vpm-site-compile:
    strategy:
      matrix:
        os: [ubuntu-24.04, macos-14]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make && ./v symlink
      - name: Build vpm
        run: |
          v retry -- v install markdown
          v retry -- git clone --depth 1 https://github.com/vlang/vpm
          cd vpm && v .


================================================
FILE: .github/workflows/vab_ci.yml
================================================
name: vab CI

on:
  workflow_call:
  push:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - '**/vab_ci.yml'
      - '!**.md'
  pull_request:
    paths:
      - 'vlib/**'
      - 'thirdparty/**'
      - 'cmd/tools/builders/**.v'
      - '**/vab_ci.yml'
      - '!**.md'

concurrency:
  group: vab-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  vab-compiles-v-examples:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    env:
      VAB_FLAGS: --api 30 --build-tools 29.0.0 -v 3
    steps:
      - uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: 11

      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink

      - name: Install vab
        run: |
          v retry -- v install vab
          v -g ~/.vmodules/vab
          sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab

      - name: Run tests
        run: v -g test ~/.vmodules/vab

      - name: Run vab --help
        run: vab --help

      - name: Run vab doctor
        run: |
          vab doctor
          which d8 || true
          which dx || true

      - name: Build graphical V examples as APK
        run: |
          declare -a v_examples=('flappylearning' '2048' 'fireworks' 'tetris' 'sokol/particles' 'sokol/drawing.v' 'sokol/freetype_raven.v' 'gg/polygons.v' 'gg/raven_text_rendering.v' 'gg/rectangles.v' 'gg/stars.v' 'gg/worker_thread.v')
          mkdir apks
          for example in "${v_examples[@]}"; do
            safe_name=$(echo "$example" | sed 's%/%-%' | sed 's%\.%-%' )
            vab "examples/$example" -o "apks/$safe_name.apk"
          done

  v-compiles-os-android:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink

      - name: Install vab
        run: |
          v retry -- v install vab
          v -g ~/.vmodules/vab
          sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab

      - name: Run vab --help
        run: vab --help

      - name: Run vab doctor
        run: vab doctor

      - name: Check `v -os android` *without* -apk flag
        run: .github/workflows/android_cross_compile.vsh


================================================
FILE: .github/workflows/vinix_ci.yml
================================================
name: Build Vinix

on:
  workflow_call:
  pull_request:
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/vinix_ci.yml'
      - 'cmd/tools/vrepl.v'
  push:
    branches:
      - master
    paths-ignore:
      - '**.md'
      - '**.yml'
      - '!**/vinix_ci.yml'
      - 'cmd/tools/vrepl.v'

concurrency:
  group: vinix-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
  cancel-in-progress: true

jobs:
  vinix-build:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - name: Build V
        run: make -j4 && ./v symlink

      - name: Install dependencies
        run: |
          .github/workflows/disable_azure_mirror.sh
          v retry -- sudo apt update
          v retry -- sudo apt install build-essential -y

      - name: Clone current Vinix
        run: v retry -- git clone --depth=1 https://github.com/vlang/vinix.git

      - name: Download Vinix kernel dependencies
        run: cd vinix/kernel && v retry -- ./get-deps

      - name: Attempt to build the Vinix kernel (debug)
        run: |
          set -e
          cd vinix/kernel
          make PROD=false \
            CFLAGS="-Ulinux -U__linux -U__linux__ -U__gnu_linux__ -D__vinix__ -O2 -g -pipe" \
            V="$(realpath ../../v)"
          make clean

      - name: Attempt to build the Vinix kernel (prod)
        run: |
          set -e
          cd vinix/kernel
          make PROD=true \
            CFLAGS="-Ulinux -U__linux -U__linux__ -U__gnu_linux__ -D__vinix__ -O2 -g -pipe" \
            V="$(realpath ../../v)"
          make clean

      - name: Attempt to build the util-vinix (debug)
        run: |
          set -e
          cd vinix/util-vinix
          make PROD=false \
            VFLAGS="-os vinix -gc none" \
            CFLAGS="-Ulinux -U__linux -U__linux__ -U__gnu_linux__ -D__vinix__ -
Download .txt
Showing preview only (470K chars total). Download the full file or copy to clipboard to get everything.
gitextract_hyl3qslc/

├── .editorconfig
├── .git/
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks/
│   │   ├── applypatch-msg.sample
│   │   ├── commit-msg.sample
│   │   ├── fsmonitor-watchman.sample
│   │   ├── post-update.sample
│   │   ├── pre-applypatch.sample
│   │   ├── pre-commit.sample
│   │   ├── pre-merge-commit.sample
│   │   ├── pre-push.sample
│   │   ├── pre-rebase.sample
│   │   ├── pre-receive.sample
│   │   ├── prepare-commit-msg.sample
│   │   ├── push-to-checkout.sample
│   │   ├── sendemail-validate.sample
│   │   └── update.sample
│   ├── index
│   ├── info/
│   │   └── exclude
│   ├── logs/
│   │   ├── HEAD
│   │   └── refs/
│   │       ├── heads/
│   │       │   └── master
│   │       └── remotes/
│   │           └── origin/
│   │               └── HEAD
│   ├── objects/
│   │   └── pack/
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.idx
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.pack
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.promisor
│   │       ├── pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.rev
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.idx
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.pack
│   │       ├── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.promisor
│   │       └── pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.rev
│   ├── packed-refs
│   ├── refs/
│   │   ├── heads/
│   │   │   └── master
│   │   └── remotes/
│   │       └── origin/
│   │           └── HEAD
│   └── shallow
├── .gitattributes
├── .github/
│   ├── .prettierrc
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── config.yml
│   │   ├── documentation.yml
│   │   └── feature-request.yml
│   ├── PULL_REQUEST_TEMPLATE
│   ├── actions/
│   │   └── cache-apt-packages-action/
│   │       └── action.yml
│   ├── dependabot.yml
│   ├── problem-matchers/
│   │   ├── register_all.vsh
│   │   └── v.json
│   └── workflows/
│       ├── Dockerfile.ci_alpine_local
│       ├── add-voting-info.yml
│       ├── alpine.build.sh
│       ├── alpine.test.sh
│       ├── android_cross_compile.vsh
│       ├── benchmark_footprint_json_decode.yml
│       ├── benchmark_footprint_json_encode.yml
│       ├── bootstrapping_ci.yml
│       ├── build_on_ubuntu_25_ci.yml
│       ├── build_vinix_locally.sh
│       ├── c2v_ci.yml
│       ├── compare_pr_to_master.v
│       ├── compile_discordv.sh
│       ├── compile_herolib.sh
│       ├── compile_shaders_in_examples.sh
│       ├── compile_v_with_vtcc.sh
│       ├── compile_vlang_gui_examples.sh
│       ├── cross_ci.yml
│       ├── debug.yml
│       ├── disable_azure_mirror.sh
│       ├── docker_ci.yml
│       ├── docs_ci.yml
│       ├── download_full_toml_test_suites.sh
│       ├── find_openssl.bat
│       ├── freebsd_ci.yml
│       ├── gen_vc_ci.yml
│       ├── gg_regressions_ci.yml
│       ├── gh_restart_failed.v
│       ├── hub_docker_ci.yml
│       ├── linux_ci.yml
│       ├── macos_ci.yml
│       ├── make_sure_ci_run_with_32bit_compiler_test.v
│       ├── make_sure_ci_run_with_64bit_compiler_test.v
│       ├── module_docs_ci.yml
│       ├── module_docs_lint.yml
│       ├── more_extensive_but_slower_tests_ci.yml
│       ├── native_backend_ci.yml
│       ├── openbsd_ci.yml
│       ├── other_ci.yml
│       ├── paths_ci.yml
│       ├── periodic_ci.yml
│       ├── prebuilt.yml
│       ├── puzzle_vibes_ci.yml
│       ├── release_ci.yml
│       ├── retry.sh
│       ├── riscv64_linux_ci.yml
│       ├── run_sanitizers.sh
│       ├── run_sanitizers_leak.suppressions
│       ├── run_sanitizers_thread.suppressions
│       ├── run_sanitizers_undefined.suppressions
│       ├── s390x_linux_ci.yml
│       ├── sanitized_ci.yml
│       ├── sdl_ci.yml
│       ├── show_manual_release_cmd.vsh
│       ├── ssa_backends_ci.yml.disabled
│       ├── symlink_ci.yml
│       ├── termux_ci.yml
│       ├── time_ci.yml
│       ├── toml_ci.yml
│       ├── tools_ci.yml
│       ├── v_apps_and_modules_compile_ci.yml
│       ├── vab_ci.yml
│       ├── vinix_ci.yml
│       ├── vpm_ci.yml
│       ├── vsl_and_vtl_compile_ci.yml
│       ├── vup_works.yml
│       ├── wasm_backend_ci.yml
│       ├── websockets_ci.yml
│       ├── windows-install-sdl.bat
│       ├── windows-install-sqlite.bat
│       ├── windows_ci_gcc.yml
│       ├── windows_ci_msvc.yml
│       ├── windows_ci_tcc.yml
│       └── workflow_lint.yml
├── .gitignore
├── AGENTS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── Dockerfile.alpine
├── Dockerfile.cross
├── GNUmakefile
├── LICENSE
├── Makefile
├── README.md
├── ROADMAP.md
├── TESTS.md
├── bench/
│   ├── README.md
│   ├── bench_closure.v
│   ├── bench_gc.v
│   ├── bench_string_dedup.v
│   ├── crypto/
│   │   └── ecdsa/
│   │       ├── ecdsa.c
│   │       ├── ecdsa.go
│   │       └── ecdsa.v
│   └── vectors/
│       ├── README.md
│       ├── vectors.cs
│       ├── vectors.csproj
│       ├── vectors.runtimeconfig.json
│       └── vectors.v
├── changelogs0.x/
│   ├── 0.4.md
│   └── 0.5.md
├── ci/
│   ├── common/
│   │   └── runner.v
│   ├── freebsd_ci.vsh
│   ├── linux_ci.vsh
│   ├── macos_ci.vsh
│   └── openbsd_ci.vsh
├── cmd/
│   ├── tools/
│   │   ├── amalgamate.v
│   │   ├── bench/
│   │   │   ├── map_clear.v
│   │   │   ├── map_clear_runner.vsh
│   │   │   └── wyhash.v
│   │   ├── builders/
│   │   │   ├── c_builder.v
│   │   │   ├── golang_builder.v
│   │   │   ├── interpret_builder.v
│   │   │   ├── js_builder.v
│   │   │   ├── native_builder.v
│   │   │   └── wasm_builder.v
│   │   ├── cc_compilation_failed_non_windows.sh
│   │   ├── cc_compilation_failed_windows.sh
│   │   ├── changelog_helper.v
│   │   ├── check_os_api_parity.v
│   │   ├── check_retry.vsh
│   │   ├── detect_tcc.v
│   │   ├── find_doc_comments_with_no_dots.v
│   │   ├── fuzz/
│   │   │   ├── fuzz.sh
│   │   │   ├── fuzz_v_parser_with_radamsa.sh
│   │   │   └── map_fuzz.v
│   │   ├── gen1m.v
│   │   ├── gen_vc.v
│   │   ├── gg_split_memdump_to_frames.vsh
│   │   ├── git_pre_commit_hook.vsh
│   │   ├── install_binaryen.vsh
│   │   ├── install_wabt.vsh
│   │   ├── measure/
│   │   │   ├── file_lists/
│   │   │   │   └── expand.v
│   │   │   ├── fmt_speed.v
│   │   │   ├── parser_speed.v
│   │   │   └── scanner_speed.v
│   │   ├── modules/
│   │   │   ├── scripting/
│   │   │   │   └── scripting.v
│   │   │   ├── testing/
│   │   │   │   ├── common.v
│   │   │   │   ├── output.v
│   │   │   │   ├── output_dump.v
│   │   │   │   ├── output_normal.v
│   │   │   │   └── output_teamcity.v
│   │   │   └── vgit/
│   │   │       └── vgit.v
│   │   ├── oldv.v
│   │   ├── performance_compare.v
│   │   ├── regress.v
│   │   ├── report_v_module_folders_without_tests.v
│   │   ├── show_ancient_deprecations.v
│   │   ├── test_if_v_test_system_works.v
│   │   ├── test_os_args.v
│   │   ├── test_os_process.v
│   │   ├── translate.v
│   │   ├── vast/
│   │   │   ├── cjson.v
│   │   │   ├── test/
│   │   │   │   ├── .gitignore
│   │   │   │   └── demo.v
│   │   │   └── vast.v
│   │   ├── vast2/
│   │   │   └── vast2.v
│   │   ├── vbin2v.v
│   │   ├── vbug.v
│   │   ├── vbuild-examples.v
│   │   ├── vbuild-tools.v
│   │   ├── vbuild-vbinaries.v
│   │   ├── vbump.v
│   │   ├── vbump_test.v
│   │   ├── vcheck-md.v
│   │   ├── vcheck_test.v
│   │   ├── vcomplete.v
│   │   ├── vcomplete_test.v
│   │   ├── vcompress.v
│   │   ├── vcover/
│   │   │   ├── cover_test.v
│   │   │   ├── data.v
│   │   │   ├── main.v
│   │   │   └── testdata/
│   │   │       ├── example1/
│   │   │       │   ├── abc.v
│   │   │       │   ├── internal_abc01_test.v
│   │   │       │   ├── internal_abc10_abc30_test.v
│   │   │       │   ├── internal_abc20_abc25_test.v
│   │   │       │   └── v.mod
│   │   │       ├── example2/
│   │   │       │   ├── condition.v
│   │   │       │   ├── condition_test.v
│   │   │       │   ├── runtime_condition.v
│   │   │       │   ├── runtime_condition_test.v
│   │   │       │   └── v.mod
│   │   │       └── simple/
│   │   │           ├── simple.v
│   │   │           ├── t1_test.v
│   │   │           ├── t2_test.v
│   │   │           └── v.mod
│   │   ├── vcreate/
│   │   │   ├── project_model_bin.v
│   │   │   ├── project_model_lib.v
│   │   │   ├── project_model_web.v
│   │   │   ├── tests/
│   │   │   │   ├── init.expect
│   │   │   │   ├── init_in_dir_with_invalid_mod_name.expect
│   │   │   │   ├── init_with_model_arg.expect
│   │   │   │   ├── new_with_model_arg.expect
│   │   │   │   ├── new_with_name_arg.expect
│   │   │   │   └── new_with_no_arg.expect
│   │   │   ├── vcreate.v
│   │   │   ├── vcreate_init_test.v
│   │   │   ├── vcreate_new_test.v
│   │   │   └── vcreate_windows_sqlite_note_test.v
│   │   ├── vdiff.v
│   │   ├── vdoc/
│   │   │   ├── .gitattributes
│   │   │   ├── document/
│   │   │   │   ├── comment.v
│   │   │   │   ├── doc.v
│   │   │   │   ├── doc_private_fn_test.v
│   │   │   │   ├── doc_test.v
│   │   │   │   ├── module.v
│   │   │   │   ├── node.v
│   │   │   │   └── utils.v
│   │   │   ├── files.v
│   │   │   ├── highlight.v
│   │   │   ├── html.v
│   │   │   ├── main.v
│   │   │   ├── markdown.v
│   │   │   ├── run_examples.v
│   │   │   ├── testdata/
│   │   │   │   ├── basic/
│   │   │   │   │   ├── basic.comments.out
│   │   │   │   │   ├── basic.out
│   │   │   │   │   └── basic.v
│   │   │   │   ├── comments/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── multiline/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── newlines/
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── output_formats/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── main.ansi
│   │   │   │   │   ├── main.html
│   │   │   │   │   ├── main.md
│   │   │   │   │   ├── main.text
│   │   │   │   │   └── main.v
│   │   │   │   ├── readme_in_project_root/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── main.comments.out
│   │   │   │   │   │   ├── main.readme.comments.out
│   │   │   │   │   │   └── main.v
│   │   │   │   │   └── v.mod
│   │   │   │   ├── run_examples_bad/
│   │   │   │   │   ├── .v.mod.stop
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   ├── run_examples_good/
│   │   │   │   │   ├── .v.mod.stop
│   │   │   │   │   ├── main.comments.out
│   │   │   │   │   ├── main.out
│   │   │   │   │   └── main.v
│   │   │   │   └── unsorted/
│   │   │   │       ├── main.out
│   │   │   │       ├── main.unsorted.out
│   │   │   │       └── main.v
│   │   │   ├── theme/
│   │   │   │   ├── .prettierrc
│   │   │   │   ├── dark-mode.js
│   │   │   │   ├── doc.css
│   │   │   │   ├── doc.js
│   │   │   │   ├── favicons/
│   │   │   │   │   ├── browserconfig.xml
│   │   │   │   │   └── site.webmanifest
│   │   │   │   ├── index.html
│   │   │   │   └── normalize.css
│   │   │   ├── utils.v
│   │   │   ├── v.mod
│   │   │   ├── vdoc.v
│   │   │   ├── vdoc_file_test.v
│   │   │   ├── vdoc_run_examples_test.v
│   │   │   └── vdoc_test.v
│   │   ├── vdoctor.v
│   │   ├── vdownload.v
│   │   ├── vfmt.v
│   │   ├── vgit-fmt-hook.v
│   │   ├── vgit-fmt-hook_test.v
│   │   ├── vgret.defaults.toml
│   │   ├── vgret.v
│   │   ├── vls.v
│   │   ├── vmissdoc.v
│   │   ├── vpm/
│   │   │   ├── args_test.v
│   │   │   ├── common.v
│   │   │   ├── dependency_test.v
│   │   │   ├── expect/
│   │   │   │   ├── accept_reinstall_mod_with_version_installation.expect
│   │   │   │   └── decline_reinstall_mod_with_version_installation.expect
│   │   │   ├── install.v
│   │   │   ├── install_local_test.v
│   │   │   ├── install_test.v
│   │   │   ├── install_version_input_test.v
│   │   │   ├── install_version_test.v
│   │   │   ├── link.v
│   │   │   ├── link_test.v
│   │   │   ├── outdated.v
│   │   │   ├── outdated_test.v
│   │   │   ├── parse.v
│   │   │   ├── remove_test.v
│   │   │   ├── search.v
│   │   │   ├── search_test.v
│   │   │   ├── settings.v
│   │   │   ├── settings_test.v
│   │   │   ├── test_utils/
│   │   │   │   └── utils.v
│   │   │   ├── update.v
│   │   │   ├── update_test.v
│   │   │   ├── vcs.v
│   │   │   ├── vcs_test.v
│   │   │   └── vpm.v
│   │   ├── vquest.v
│   │   ├── vreduce.v
│   │   ├── vrepeat.v
│   │   ├── vrepl.v
│   │   ├── vretry.v
│   │   ├── vretry_test.v
│   │   ├── vrun
│   │   ├── vscan.v
│   │   ├── vschannel_16kb_httpbin_probe.v
│   │   ├── vself.v
│   │   ├── vsetup-freetype.v
│   │   ├── vshader.v
│   │   ├── vshare.v
│   │   ├── vshould-compile-all.v
│   │   ├── vsymlink/
│   │   │   ├── vsymlink.v
│   │   │   ├── vsymlink_nix.c.v
│   │   │   └── vsymlink_windows.c.v
│   │   ├── vtest-all.v
│   │   ├── vtest-cleancode.v
│   │   ├── vtest-fmt.v
│   │   ├── vtest-parser.v
│   │   ├── vtest-self.v
│   │   ├── vtest.v
│   │   ├── vtest_test.v
│   │   ├── vtime.v
│   │   ├── vtimeout.v
│   │   ├── vtimeout_test.v
│   │   ├── vtracev.v
│   │   ├── vup.v
│   │   ├── vvet/
│   │   │   ├── analyze.v
│   │   │   ├── errors.v
│   │   │   ├── filter.v
│   │   │   ├── tests/
│   │   │   │   ├── accept_multi_expression_with_comments.out
│   │   │   │   ├── accept_multi_expression_with_comments.vv
│   │   │   │   ├── array_init_one_val.out
│   │   │   │   ├── array_init_one_val.vv
│   │   │   │   ├── brackets_in_documentation_comment_no_warn.out
│   │   │   │   ├── brackets_in_documentation_comment_no_warn.vv
│   │   │   │   ├── const_dynamic_array_notice.out
│   │   │   │   ├── const_dynamic_array_notice.vv
│   │   │   │   ├── documentation_for_generic_methods.out
│   │   │   │   ├── documentation_for_generic_methods.vv
│   │   │   │   ├── empty_fn_decl.out
│   │   │   │   ├── empty_fn_decl.vv
│   │   │   │   ├── empty_string.out
│   │   │   │   ├── empty_string.vv
│   │   │   │   ├── indent_with_space.out
│   │   │   │   ├── indent_with_space.vv
│   │   │   │   ├── module_file_test.out
│   │   │   │   ├── module_file_test.vv
│   │   │   │   ├── no_warn_about_missing.out
│   │   │   │   ├── no_warn_about_missing.vv
│   │   │   │   ├── prog_without_main_fn.out
│   │   │   │   ├── prog_without_main_fn.vv
│   │   │   │   ├── repeated_assign.out
│   │   │   │   ├── repeated_assign.vv
│   │   │   │   ├── repeated_code.out
│   │   │   │   ├── repeated_code.vv
│   │   │   │   ├── trailing_space.out
│   │   │   │   └── trailing_space.vv
│   │   │   ├── vet_test.v
│   │   │   └── vvet.v
│   │   ├── vwatch.v
│   │   ├── vwhere/
│   │   │   ├── finder.v
│   │   │   ├── finder_utils.v
│   │   │   ├── test/
│   │   │   │   ├── file_common.v
│   │   │   │   ├── file_one.v
│   │   │   │   ├── file_two.v
│   │   │   │   └── nested_mod/
│   │   │   │       └── nested_file.v
│   │   │   ├── vwhere.v
│   │   │   └── vwhere_test.v
│   │   └── vwipe-cache.v
│   ├── v/
│   │   ├── v.v
│   │   ├── vvm.v
│   │   └── vvm_test.v
│   └── v2/
│       ├── .gitignore
│       ├── README.md
│       ├── guiprof/
│       │   ├── draw.v
│       │   ├── events.v
│       │   ├── main.v
│       │   └── state.v
│       ├── test.v
│       ├── test_all.sh
│       ├── test_ssa_backends.v
│       ├── test_sumtype.v
│       ├── test_sumtype2.v
│       ├── test_sumtype3.v
│       ├── test_sumtype4.v
│       ├── test_sumtype_data.v
│       ├── test_sumtype_global.v
│       ├── test_sumtype_ifexpr.v
│       ├── test_sumtype_many.v
│       ├── test_sumtype_nested.v
│       ├── test_sumtype_pos.v
│       ├── test_v2_self.sh
│       └── v2.v
├── doc/
│   ├── c_and_v_type_interoperability.md
│   ├── docs.md
│   ├── packaging_v_for_distributions.md
│   ├── upcoming.md
│   └── vscode.md
├── editors/
│   └── vim/
│       ├── README.md
│       ├── ftdetect/
│       │   └── v.vim
│       ├── ftplugin/
│       │   └── v.vim
│       └── syntax/
│           └── v.vim
├── examples/
│   ├── .gitignore
│   ├── 1brc/
│   │   ├── README.md
│   │   ├── make-samples/
│   │   │   ├── cities.txt
│   │   │   └── main.v
│   │   └── solution/
│   │       └── main.v
│   ├── animated_help_text.v
│   ├── archive/
│   │   └── tar_gz_reader.v
│   ├── asm.v
│   ├── assets/
│   │   ├── fonts/
│   │   │   ├── LICENSE
│   │   │   └── OFL.txt
│   │   └── v.six
│   ├── binary_search_tree.v
│   ├── brainvuck.v
│   ├── bst_map.v
│   ├── buf_reader.v
│   ├── build_system/
│   │   ├── .gitignore
│   │   ├── build.vsh
│   │   └── main.v
│   ├── c_interop_wkhtmltopdf.v
│   ├── call_c_from_v/
│   │   └── main.c.v
│   ├── call_v_from_c/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── v_test_math.v
│   │   └── v_test_print.v
│   ├── call_v_from_python/
│   │   ├── README.md
│   │   ├── test.py
│   │   └── test.v
│   ├── call_v_from_ruby/
│   │   ├── README.md
│   │   ├── test.rb
│   │   └── test.v
│   ├── cli.v
│   ├── clock/
│   │   └── clock.v
│   ├── compiletime/
│   │   ├── d_compile_value.v
│   │   ├── methods.v
│   │   └── reflection.v
│   ├── concurrency/
│   │   ├── concurrency.v
│   │   ├── concurrency_http.v
│   │   └── concurrency_returns.v
│   ├── control_thread_stack_size.v
│   ├── coroutines/
│   │   ├── .skip_should_compile_all
│   │   ├── coroutines_bench.v
│   │   └── simple_coroutines.v
│   ├── cpu_features/
│   │   └── SSE_and_MMX_Extensions/
│   │       ├── README.md
│   │       ├── mmx.v
│   │       ├── sse.v
│   │       ├── sse2.v
│   │       ├── sse3.v
│   │       ├── sse4_1.v
│   │       └── ssse3.v
│   ├── custom_error.v
│   ├── database/
│   │   ├── mysql.v
│   │   ├── mysql_pool.v
│   │   ├── orm.v
│   │   ├── psql/
│   │   │   ├── .gitignore
│   │   │   ├── customer.v
│   │   │   └── mydb.sql
│   │   └── sqlite.v
│   ├── diff.v
│   ├── dump_factorial.v
│   ├── dynamic_library_loader/
│   │   ├── modules/
│   │   │   └── library/
│   │   │       └── library.v
│   │   ├── use_shared_library.v
│   │   └── use_test.v
│   ├── dynamic_library_loading/
│   │   ├── modules/
│   │   │   └── library/
│   │   │       └── library.v
│   │   ├── use_dl_module.v
│   │   └── use_library_test.v
│   ├── errors.v
│   ├── euler.v
│   ├── eventbus/
│   │   ├── eventbus.v
│   │   └── modules/
│   │       └── some_module/
│   │           └── some_module.v
│   ├── fasthttp/
│   │   ├── README.md
│   │   ├── controllers.v
│   │   ├── main.v
│   │   └── v.mod
│   ├── fetch.v
│   ├── fetch_ip.v
│   ├── fibonacci.v
│   ├── file_list.v
│   ├── fireworks/
│   │   ├── fireworks.v
│   │   └── modules/
│   │       └── objects/
│   │           ├── color.v
│   │           ├── constants.v
│   │           ├── particle.v
│   │           ├── rocket.v
│   │           └── vector.v
│   ├── fizz_buzz.v
│   ├── flag_layout_editor.v
│   ├── flappylearning/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── game.v
│   │   └── modules/
│   │       └── neuroevolution/
│   │           └── neuronevolution.v
│   ├── function_types.v
│   ├── game_of_life/
│   │   ├── README.md
│   │   ├── life.v
│   │   ├── life_gg.v
│   │   └── modules/
│   │       └── automaton/
│   │           └── automaton.v
│   ├── get_raw_line.v
│   ├── get_weather/
│   │   ├── README.md
│   │   └── get_weather.v
│   ├── gg/
│   │   ├── additive.v
│   │   ├── arcs_and_slices.v
│   │   ├── bezier.v
│   │   ├── bezier_anim.v
│   │   ├── bouncing_balls.v
│   │   ├── cursor.v
│   │   ├── digital_rain.v
│   │   ├── drag_n_drop.v
│   │   ├── draw_pixels.v
│   │   ├── draw_unicode_text_with_gg.v
│   │   ├── easing_animation.v
│   │   ├── expanding_rect.v
│   │   ├── fire.v
│   │   ├── grid_of_rectangles.v
│   │   ├── mandelbrot.v
│   │   ├── many_thousands_of_circles.v
│   │   ├── many_thousands_of_circles_overriding_max_vertices.v
│   │   ├── memory.v
│   │   ├── minesweeper.v
│   │   ├── minimal.v
│   │   ├── moving_square.v
│   │   ├── path_finding_algorithm_visualizer/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   └── aStar.v
│   │   ├── polygons.v
│   │   ├── pong/
│   │   │   ├── README.md
│   │   │   └── pong.v
│   │   ├── random.v
│   │   ├── random_stars.v
│   │   ├── raven_text_rendering.v
│   │   ├── raycaster.v
│   │   ├── rectangles.v
│   │   ├── rotating_textured_quad.v
│   │   ├── sample_count.v
│   │   ├── spirograph.v
│   │   ├── stars.v
│   │   ├── worker_thread.v
│   │   └── x_y_frame.v
│   ├── graphs/
│   │   ├── bellman-ford.v
│   │   ├── bfs.v
│   │   ├── bfs2.v
│   │   ├── bfs3.v
│   │   ├── dfs.v
│   │   ├── dfs2.v
│   │   ├── dijkstra.v
│   │   ├── minimal_spann_tree_prim.v
│   │   ├── topological_sorting_dfs.v
│   │   └── topological_sorting_greedy.v
│   ├── hanoi.v
│   ├── hello_world.v
│   ├── hot_reload/
│   │   ├── .gitignore
│   │   ├── bounce.v
│   │   ├── graph.v
│   │   ├── message.v
│   │   └── tunnel.v
│   ├── http_server.v
│   ├── js_dom_cube/
│   │   ├── README.md
│   │   ├── cube.js.v
│   │   └── index.html
│   ├── js_dom_draw/
│   │   ├── README.md
│   │   ├── draw.js.v
│   │   └── index.html
│   ├── js_dom_draw_benchmark_chart/
│   │   ├── README.md
│   │   ├── chart/
│   │   │   ├── .gitignore
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── draw.js.v
│   │   │   ├── main.v
│   │   │   └── templates/
│   │   │       └── controller/
│   │   │           └── get/
│   │   │               └── all/
│   │   │                   └── task.html
│   │   ├── typescript_vanilla_typeorm/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.ts
│   │   │   │   └── server.js
│   │   │   └── tsconfig.json
│   │   └── v_vweb_orm/
│   │       └── src/
│   │           └── main.v
│   ├── js_hello_world.v
│   ├── json.v
│   ├── jsonrpc/
│   │   ├── client.v
│   │   └── server.v
│   ├── lander.v
│   ├── linear_regression/
│   │   └── simple_linear_regression.v
│   ├── links_scraper.v
│   ├── log.v
│   ├── logfatal.v
│   ├── lorem.v
│   ├── macos_tray/
│   │   ├── .skip_should_compile_all
│   │   ├── tray.m
│   │   ├── tray.v
│   │   └── v.mod
│   ├── mini_calculator.v
│   ├── mini_calculator_recursive_descent.v
│   ├── minimal_c_like_program_using_puts.v
│   ├── native/
│   │   └── hello_world.v
│   ├── nbody.v
│   ├── net_failconnect.v
│   ├── net_peer_ip.v
│   ├── net_raw_http.v
│   ├── net_resolve.v
│   ├── net_t.v
│   ├── net_udp_server_and_client.v
│   ├── news_fetcher.v
│   ├── orm/
│   │   ├── orm_func.v
│   │   └── orm_sql.v
│   ├── password/
│   │   ├── password.v
│   │   ├── password_test.v
│   │   └── tests/
│   │       ├── correct.expect
│   │       ├── incorrect.expect
│   │       └── output_from_expect_arg.expect
│   ├── path_tracing.v
│   ├── pendulum-simulation/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── animation.v
│   │   ├── full.v
│   │   ├── modules/
│   │   │   └── sim/
│   │   │       ├── anim/
│   │   │       │   ├── app.v
│   │   │       │   └── worker.v
│   │   │       ├── args/
│   │   │       │   └── parser.v
│   │   │       ├── img/
│   │   │       │   ├── ppm.v
│   │   │       │   ├── worker.v
│   │   │       │   └── writer.v
│   │   │       ├── log.v
│   │   │       ├── params.v
│   │   │       ├── params_test.v
│   │   │       ├── runner.v
│   │   │       ├── sim.v
│   │   │       ├── sim_test.v
│   │   │       ├── vec.v
│   │   │       ├── vec_test.v
│   │   │       ├── worker.v
│   │   │       └── worker_test.v
│   │   ├── parallel.v
│   │   ├── parallel_with_iw.v
│   │   └── sequential.v
│   ├── pico/
│   │   ├── pico.v
│   │   └── raw_callback.v
│   ├── pidigits.v
│   ├── poll_coindesk_bitcoin_vs_usd_rate.v
│   ├── primes.v
│   ├── process/
│   │   ├── command.v
│   │   ├── execve.v
│   │   ├── monitor_for_file_changes_with_inotifywait.v
│   │   ├── process_script.v
│   │   ├── wrapping_interactive_python.v
│   │   └── write_and_read_from_a_bash_child_process.v
│   ├── quadtree_demo/
│   │   └── quadtree_demo.v
│   ├── quick_sort.v
│   ├── random_ips.v
│   ├── readdir.v
│   ├── readline/
│   │   ├── readline.v
│   │   ├── readline_test.v
│   │   └── tests/
│   │       ├── readline.expect
│   │       └── readline_from_expect_arg.expect
│   ├── regex/
│   │   ├── pcre.v
│   │   ├── readme.md
│   │   ├── regex_example.v
│   │   └── regex_with_memoization.v
│   ├── rule110.v
│   ├── rune.v
│   ├── sha256sum_with_io_cp.v
│   ├── smtp/
│   │   └── mail.v
│   ├── snek/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── snek.js.v
│   │   └── snek.v
│   ├── sokol/
│   │   ├── .gitignore
│   │   ├── 01_cubes/
│   │   │   └── cube.v
│   │   ├── 02_cubes_glsl/
│   │   │   ├── cube_glsl.glsl
│   │   │   ├── cube_glsl.v
│   │   │   └── v.mod
│   │   ├── 03_march_tracing_glsl/
│   │   │   ├── rt_glsl.glsl
│   │   │   ├── rt_glsl.v
│   │   │   └── v.mod
│   │   ├── 04_multi_shader_glsl/
│   │   │   ├── rt_glsl.v
│   │   │   ├── rt_glsl_march.glsl
│   │   │   ├── rt_glsl_puppy.glsl
│   │   │   └── v.mod
│   │   ├── 05_instancing_glsl/
│   │   │   ├── rt_glsl.v
│   │   │   ├── rt_glsl_instancing.glsl
│   │   │   └── v.mod
│   │   ├── 06_obj_viewer/
│   │   │   ├── assets/
│   │   │   │   └── models/
│   │   │   │       ├── apple.mtl
│   │   │   │       ├── donut.mtl
│   │   │   │       └── v.mtl
│   │   │   ├── gouraud.glsl
│   │   │   ├── modules/
│   │   │   │   └── obj/
│   │   │   │       ├── obj.v
│   │   │   │       ├── rend.v
│   │   │   │       ├── struct.v
│   │   │   │       └── util.v
│   │   │   ├── show_obj.v
│   │   │   └── v.mod
│   │   ├── 07_simple_shader_glsl/
│   │   │   ├── .gitignore
│   │   │   ├── simple_shader.glsl
│   │   │   ├── simple_shader.v
│   │   │   └── v.mod
│   │   ├── 08_sdf/
│   │   │   ├── .gitignore
│   │   │   ├── sdf.glsl
│   │   │   ├── sdf.v
│   │   │   └── v.mod
│   │   ├── clear.v
│   │   ├── drawing.v
│   │   ├── fonts.v
│   │   ├── freetype_raven.v
│   │   ├── particles/
│   │   │   ├── modules/
│   │   │   │   └── particle/
│   │   │   │       ├── LICENSE
│   │   │   │       ├── color.v
│   │   │   │       ├── particle.v
│   │   │   │       └── system.v
│   │   │   └── particles.v
│   │   └── sounds/
│   │       ├── melody.v
│   │       ├── ogg_player.v
│   │       ├── pickup.ogg
│   │       ├── simple_bytebeat.v
│   │       ├── simple_keyboard_synth.v
│   │       ├── simple_sin_tone_using_audio_push.v
│   │       ├── simple_sin_tones.v
│   │       └── wav_player.v
│   ├── spectral.v
│   ├── ssl_server/
│   │   ├── cert/
│   │   │   ├── ca.crt
│   │   │   ├── client.crt
│   │   │   ├── client.key
│   │   │   ├── makecerts.sh
│   │   │   ├── server.crt
│   │   │   └── server.key
│   │   ├── client.v
│   │   ├── server.v
│   │   ├── server_sni.v
│   │   └── server_sni_advanced.v
│   ├── submodule/
│   │   ├── main.v
│   │   ├── mymodules/
│   │   │   ├── main_functions.v
│   │   │   └── submodule/
│   │   │       └── sub_functions.v
│   │   └── v.mod
│   ├── sudoku.v
│   ├── sync_pool.v
│   ├── tcp_echo_server.v
│   ├── tcp_notify_echo_server.v
│   ├── templates/
│   │   ├── data.json
│   │   ├── readme.md
│   │   ├── template.md
│   │   └── templates.v
│   ├── term.ui/
│   │   ├── README.md
│   │   ├── cursor_chaser.v
│   │   ├── event_viewer.v
│   │   ├── pong.v
│   │   ├── rectangles.v
│   │   ├── term_drawing.v
│   │   ├── text_editor.v
│   │   └── vyper.v
│   ├── term_display_sixel.v
│   ├── term_key_pressed.v
│   ├── terminal_control.v
│   ├── thread_safety/
│   │   ├── .gitignore
│   │   ├── atomic_counter.v
│   │   ├── concurrent_shared_data.v
│   │   ├── queue.v
│   │   └── readme.md
│   ├── toml.v
│   ├── tree_of_nodes.v
│   ├── ttf_font/
│   │   ├── draw_static_text.txt
│   │   ├── draw_static_text.v
│   │   └── example_ttf.v
│   ├── v_script.vsh
│   ├── vascii.v
│   ├── vcasino/
│   │   ├── README.md
│   │   └── vcasino.v
│   ├── veb/
│   │   ├── cors/
│   │   │   └── veb_cors_example.v
│   │   ├── custom.html
│   │   ├── file_transform/
│   │   │   ├── file_transform.v
│   │   │   ├── index.html
│   │   │   ├── sample_input.txt
│   │   │   └── upload.html
│   │   ├── file_upload/
│   │   │   ├── file_uploading.v
│   │   │   ├── index.html
│   │   │   ├── submit.html
│   │   │   └── upload.html
│   │   ├── footer.html
│   │   ├── header.html
│   │   ├── index.html
│   │   ├── middleware/
│   │   │   ├── templates/
│   │   │   │   ├── base.html
│   │   │   │   ├── early.html
│   │   │   │   ├── index.html
│   │   │   │   └── secret.html
│   │   │   └── using_middleware.v
│   │   ├── server_sent_events/
│   │   │   ├── assets/
│   │   │   │   └── site.css
│   │   │   ├── index.html
│   │   │   └── server.v
│   │   ├── static_website/
│   │   │   ├── README.md
│   │   │   ├── dist/
│   │   │   │   ├── another.html
│   │   │   │   └── index.html
│   │   │   └── server.v
│   │   ├── todo/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── assets/
│   │   │   │   └── main.css
│   │   │   ├── main.v
│   │   │   └── templates/
│   │   │       └── index.html
│   │   ├── veb_assets/
│   │   │   ├── assets/
│   │   │   │   └── index.css
│   │   │   ├── index.html
│   │   │   └── vweb_assets.v
│   │   ├── veb_example.v
│   │   └── websocket/
│   │       ├── assets/
│   │       │   └── style.css
│   │       ├── index.html
│   │       └── server.v
│   ├── viewer/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── file_scan.v
│   │   ├── v.mod
│   │   ├── view.v
│   │   └── zip_container.v
│   ├── vmatrix.v
│   ├── vmod.v
│   ├── vpwgen.v
│   ├── vtail.v
│   ├── vwatch/
│   │   ├── cli_clock/
│   │   │   └── main.v
│   │   └── web_server/
│   │       ├── .gitignore
│   │       └── main.v
│   ├── vweb_fullstack/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── readme.md
│   │   └── src/
│   │       ├── auth_controllers.v
│   │       ├── auth_dto.v
│   │       ├── auth_services.v
│   │       ├── databases/
│   │       │   └── config_databases_sqlite.v
│   │       ├── index.html
│   │       ├── main.v
│   │       ├── product_controller.v
│   │       ├── product_entities.v
│   │       ├── product_service.v
│   │       ├── product_view.v
│   │       ├── product_view_api.v
│   │       ├── templates/
│   │       │   ├── header_component.html
│   │       │   ├── products.css
│   │       │   └── products.html
│   │       ├── user_controllers.v
│   │       ├── user_entities.v
│   │       ├── user_services.v
│   │       ├── user_view_api.v
│   │       └── v.mod
│   ├── vweb_orm_jwt/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   └── src/
│   │       ├── auth_controllers.v
│   │       ├── auth_dto.v
│   │       ├── auth_services.v
│   │       ├── databases/
│   │       │   └── config_databases_sqlite.v
│   │       ├── main.v
│   │       ├── user_controllers.v
│   │       ├── user_entities.v
│   │       ├── user_services.v
│   │       └── v.mod
│   ├── wasm/
│   │   ├── .gitignore
│   │   ├── change_color_by_id/
│   │   │   ├── README.md
│   │   │   ├── change_color_by_id.html
│   │   │   ├── change_color_by_id.wasm.v
│   │   │   └── serve_folder.v
│   │   ├── functions.v
│   │   ├── hello_world.v
│   │   └── mandelbrot/
│   │       ├── README.md
│   │       ├── mandelbrot.html
│   │       ├── mandelbrot.wasm.v
│   │       └── serve_folder.v
│   ├── wasm_codegen/
│   │   ├── add.v
│   │   ├── bf_compiler.v
│   │   ├── control_flow.v
│   │   ├── factorial.v
│   │   ├── functions.v
│   │   ├── hello_wasi.v
│   │   └── memory.v
│   ├── web_crawler/
│   │   ├── README.md
│   │   └── web_crawler.v
│   ├── websocket/
│   │   ├── client-server/
│   │   │   ├── client.v
│   │   │   └── server.v
│   │   └── ping.v
│   └── word_counter/
│       ├── README.md
│       ├── cinderella.txt
│       └── word_counter.v
├── make.bat
├── thirdparty/
│   ├── .gitignore
│   ├── android/
│   │   └── android.h
│   ├── build_scripts/
│   │   ├── README.md
│   │   ├── thirdparty-freebsd-amd64_bdwgc.sh
│   │   ├── thirdparty-freebsd-amd64_tcc.sh
│   │   ├── thirdparty-linux-amd64_bdwgc.sh
│   │   ├── thirdparty-linux-amd64_tcc.sh
│   │   ├── thirdparty-linux-armv7_bdwgc.sh
│   │   ├── thirdparty-macos-arm64_bdwgc.sh
│   │   ├── thirdparty-macos-arm64_tcc.sh
│   │   └── thirdparty-openbsd-amd64_tcc.sh
│   ├── cJSON/
│   │   ├── README.md
│   │   ├── cJSON.c
│   │   └── cJSON.h
│   ├── fontstash/
│   │   ├── fontstash.h
│   │   └── stb_truetype.h
│   ├── ios/
│   │   └── ios.m
│   ├── libatomic_ops/
│   │   ├── LICENSE
│   │   ├── atomic_ops/
│   │   │   ├── ao_version.h
│   │   │   ├── generalize-arithm.h
│   │   │   ├── generalize-arithm.template
│   │   │   ├── generalize-small.h
│   │   │   ├── generalize-small.template
│   │   │   ├── generalize.h
│   │   │   └── sysdeps/
│   │   │       ├── all_acquire_release_volatile.h
│   │   │       ├── all_aligned_atomic_load_store.h
│   │   │       ├── all_atomic_load_store.h
│   │   │       ├── all_atomic_only_load.h
│   │   │       ├── ao_t_is_int.h
│   │   │       ├── ao_t_is_int.template
│   │   │       ├── armcc/
│   │   │       │   └── arm_v6.h
│   │   │       ├── emul_cas.h
│   │   │       ├── gcc/
│   │   │       │   ├── aarch64.h
│   │   │       │   ├── alpha.h
│   │   │       │   ├── arm.h
│   │   │       │   ├── avr32.h
│   │   │       │   ├── cris.h
│   │   │       │   ├── e2k.h
│   │   │       │   ├── generic-arithm.h
│   │   │       │   ├── generic-arithm.template
│   │   │       │   ├── generic-small.h
│   │   │       │   ├── generic-small.template
│   │   │       │   ├── generic.h
│   │   │       │   ├── hexagon.h
│   │   │       │   ├── hppa.h
│   │   │       │   ├── ia64.h
│   │   │       │   ├── m68k.h
│   │   │       │   ├── mips.h
│   │   │       │   ├── powerpc.h
│   │   │       │   ├── riscv.h
│   │   │       │   ├── s390.h
│   │   │       │   ├── sh.h
│   │   │       │   ├── sparc.h
│   │   │       │   ├── tile.h
│   │   │       │   └── x86.h
│   │   │       ├── generic_pthread.h
│   │   │       ├── hpc/
│   │   │       │   ├── hppa.h
│   │   │       │   └── ia64.h
│   │   │       ├── ibmc/
│   │   │       │   └── powerpc.h
│   │   │       ├── icc/
│   │   │       │   └── ia64.h
│   │   │       ├── loadstore/
│   │   │       │   ├── acquire_release_volatile.h
│   │   │       │   ├── acquire_release_volatile.template
│   │   │       │   ├── atomic_load.h
│   │   │       │   ├── atomic_load.template
│   │   │       │   ├── atomic_store.h
│   │   │       │   ├── atomic_store.template
│   │   │       │   ├── char_acquire_release_volatile.h
│   │   │       │   ├── char_atomic_load.h
│   │   │       │   ├── char_atomic_store.h
│   │   │       │   ├── double_atomic_load_store.h
│   │   │       │   ├── int_acquire_release_volatile.h
│   │   │       │   ├── int_atomic_load.h
│   │   │       │   ├── int_atomic_store.h
│   │   │       │   ├── ordered_loads_only.h
│   │   │       │   ├── ordered_loads_only.template
│   │   │       │   ├── ordered_stores_only.h
│   │   │       │   ├── ordered_stores_only.template
│   │   │       │   ├── short_acquire_release_volatile.h
│   │   │       │   ├── short_atomic_load.h
│   │   │       │   └── short_atomic_store.h
│   │   │       ├── msftc/
│   │   │       │   ├── arm.h
│   │   │       │   ├── arm64.h
│   │   │       │   ├── common32_defs.h
│   │   │       │   ├── x86.h
│   │   │       │   └── x86_64.h
│   │   │       ├── ordered.h
│   │   │       ├── ordered_except_wr.h
│   │   │       ├── read_ordered.h
│   │   │       ├── standard_ao_double_t.h
│   │   │       ├── sunc/
│   │   │       │   ├── sparc.S
│   │   │       │   ├── sparc.h
│   │   │       │   └── x86.h
│   │   │       ├── test_and_set_t_is_ao_t.h
│   │   │       └── test_and_set_t_is_char.h
│   │   ├── atomic_ops.c
│   │   ├── atomic_ops.h
│   │   ├── atomic_ops_malloc.c
│   │   ├── atomic_ops_malloc.h
│   │   └── atomic_ops_sysdeps.S
│   ├── libbacktrace/
│   │   ├── amalgamation.txt
│   │   ├── backtrace.c
│   │   ├── backtrace.h
│   │   ├── base.c
│   │   ├── darwin.c
│   │   ├── linux.c
│   │   └── windows.c
│   ├── libgc/
│   │   ├── amalgamation.txt
│   │   ├── gc.c
│   │   └── include/
│   │       ├── gc/
│   │       │   ├── cord.h
│   │       │   ├── cord_pos.h
│   │       │   ├── ec.h
│   │       │   ├── gc.h
│   │       │   ├── gc_allocator.h
│   │       │   ├── gc_backptr.h
│   │       │   ├── gc_config_macros.h
│   │       │   ├── gc_disclaim.h
│   │       │   ├── gc_gcj.h
│   │       │   ├── gc_inline.h
│   │       │   ├── gc_mark.h
│   │       │   ├── gc_pthread_redirects.h
│   │       │   ├── gc_tiny_fl.h
│   │       │   ├── gc_typed.h
│   │       │   ├── gc_version.h
│   │       │   ├── javaxfc.h
│   │       │   └── leak_detector.h
│   │       └── gc.h
│   ├── mbedtls/
│   │   ├── 3rdparty/
│   │   │   ├── everest/
│   │   │   │   ├── README.md
│   │   │   │   ├── include/
│   │   │   │   │   └── everest/
│   │   │   │   │       ├── Hacl_Curve25519.h
│   │   │   │   │       ├── everest.h
│   │   │   │   │       ├── kremlib/
│   │   │   │   │       │   ├── FStar_UInt128.h
│   │   │   │   │       │   └── FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h
│   │   │   │   │       ├── kremlib.h
│   │   │   │   │       ├── kremlin/
│   │   │   │   │       │   ├── c_endianness.h
│   │   │   │   │       │   └── internal/
│   │   │   │   │       │       ├── builtin.h
│   │   │   │   │       │       ├── callconv.h
│   │   │   │   │       │       ├── compat.h
│   │   │   │   │       │       ├── debug.h
│   │   │   │   │       │       ├── target.h
│   │   │   │   │       │       ├── types.h
│   │   │   │   │       │       └── wasmsupport.h
│   │   │   │   │       ├── vs2013/
│   │   │   │   │       │   └── Hacl_Curve25519.h
│   │   │   │   │       └── x25519.h
│   │   │   │   └── library/
│   │   │   │       ├── Hacl_Curve25519.c
│   │   │   │       ├── Hacl_Curve25519_joined.c
│   │   │   │       ├── everest.c
│   │   │   │       ├── kremlib/
│   │   │   │       │   ├── FStar_UInt128_extracted.c
│   │   │   │       │   └── FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c
│   │   │   │       ├── legacy/
│   │   │   │       │   └── Hacl_Curve25519.c
│   │   │   │       └── x25519.c
│   │   │   └── p256-m/
│   │   │       ├── README.md
│   │   │       ├── p256-m/
│   │   │       │   ├── README.md
│   │   │       │   ├── p256-m.c
│   │   │       │   └── p256-m.h
│   │   │       ├── p256-m_driver_entrypoints.c
│   │   │       └── p256-m_driver_entrypoints.h
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── fix.md
│   │   ├── include/
│   │   │   ├── mbedtls/
│   │   │   │   ├── aes.h
│   │   │   │   ├── aria.h
│   │   │   │   ├── asn1.h
│   │   │   │   ├── asn1write.h
│   │   │   │   ├── base64.h
│   │   │   │   ├── bignum.h
│   │   │   │   ├── block_cipher.h
│   │   │   │   ├── build_info.h
│   │   │   │   ├── camellia.h
│   │   │   │   ├── ccm.h
│   │   │   │   ├── chacha20.h
│   │   │   │   ├── chachapoly.h
│   │   │   │   ├── check_config.h
│   │   │   │   ├── cipher.h
│   │   │   │   ├── cmac.h
│   │   │   │   ├── compat-2.x.h
│   │   │   │   ├── config_adjust_legacy_crypto.h
│   │   │   │   ├── config_adjust_legacy_from_psa.h
│   │   │   │   ├── config_adjust_psa_from_legacy.h
│   │   │   │   ├── config_adjust_psa_superset_legacy.h
│   │   │   │   ├── config_adjust_ssl.h
│   │   │   │   ├── config_adjust_x509.h
│   │   │   │   ├── config_psa.h
│   │   │   │   ├── constant_time.h
│   │   │   │   ├── ctr_drbg.h
│   │   │   │   ├── debug.h
│   │   │   │   ├── des.h
│   │   │   │   ├── dhm.h
│   │   │   │   ├── ecdh.h
│   │   │   │   ├── ecdsa.h
│   │   │   │   ├── ecjpake.h
│   │   │   │   ├── ecp.h
│   │   │   │   ├── entropy.h
│   │   │   │   ├── error.h
│   │   │   │   ├── gcm.h
│   │   │   │   ├── hkdf.h
│   │   │   │   ├── hmac_drbg.h
│   │   │   │   ├── lms.h
│   │   │   │   ├── mbedtls_config.h
│   │   │   │   ├── md.h
│   │   │   │   ├── md5.h
│   │   │   │   ├── memory_buffer_alloc.h
│   │   │   │   ├── net_sockets.h
│   │   │   │   ├── nist_kw.h
│   │   │   │   ├── oid.h
│   │   │   │   ├── pem.h
│   │   │   │   ├── pk.h
│   │   │   │   ├── pkcs12.h
│   │   │   │   ├── pkcs5.h
│   │   │   │   ├── pkcs7.h
│   │   │   │   ├── platform.h
│   │   │   │   ├── platform_time.h
│   │   │   │   ├── platform_util.h
│   │   │   │   ├── poly1305.h
│   │   │   │   ├── private_access.h
│   │   │   │   ├── psa_util.h
│   │   │   │   ├── ripemd160.h
│   │   │   │   ├── rsa.h
│   │   │   │   ├── sha1.h
│   │   │   │   ├── sha256.h
│   │   │   │   ├── sha3.h
│   │   │   │   ├── sha512.h
│   │   │   │   ├── ssl.h
│   │   │   │   ├── ssl_cache.h
│   │   │   │   ├── ssl_ciphersuites.h
│   │   │   │   ├── ssl_cookie.h
│   │   │   │   ├── ssl_ticket.h
│   │   │   │   ├── threading.h
│   │   │   │   ├── timing.h
│   │   │   │   ├── version.h
│   │   │   │   ├── x509.h
│   │   │   │   ├── x509_crl.h
│   │   │   │   ├── x509_crt.h
│   │   │   │   └── x509_csr.h
│   │   │   └── psa/
│   │   │       ├── build_info.h
│   │   │       ├── crypto.h
│   │   │       ├── crypto_adjust_auto_enabled.h
│   │   │       ├── crypto_adjust_config_dependencies.h
│   │   │       ├── crypto_adjust_config_key_pair_types.h
│   │   │       ├── crypto_adjust_config_synonyms.h
│   │   │       ├── crypto_builtin_composites.h
│   │   │       ├── crypto_builtin_key_derivation.h
│   │   │       ├── crypto_builtin_primitives.h
│   │   │       ├── crypto_compat.h
│   │   │       ├── crypto_config.h
│   │   │       ├── crypto_driver_common.h
│   │   │       ├── crypto_driver_contexts_composites.h
│   │   │       ├── crypto_driver_contexts_key_derivation.h
│   │   │       ├── crypto_driver_contexts_primitives.h
│   │   │       ├── crypto_extra.h
│   │   │       ├── crypto_legacy.h
│   │   │       ├── crypto_platform.h
│   │   │       ├── crypto_se_driver.h
│   │   │       ├── crypto_sizes.h
│   │   │       ├── crypto_struct.h
│   │   │       ├── crypto_types.h
│   │   │       └── crypto_values.h
│   │   ├── library/
│   │   │   ├── aes.c
│   │   │   ├── aesce.c
│   │   │   ├── aesce.h
│   │   │   ├── aesni.c
│   │   │   ├── aesni.h
│   │   │   ├── alignment.h
│   │   │   ├── aria.c
│   │   │   ├── asn1parse.c
│   │   │   ├── asn1write.c
│   │   │   ├── base64.c
│   │   │   ├── base64_internal.h
│   │   │   ├── bignum.c
│   │   │   ├── bignum_core.c
│   │   │   ├── bignum_core.h
│   │   │   ├── bignum_core_invasive.h
│   │   │   ├── bignum_internal.h
│   │   │   ├── bignum_mod.c
│   │   │   ├── bignum_mod.h
│   │   │   ├── bignum_mod_raw.c
│   │   │   ├── bignum_mod_raw.h
│   │   │   ├── bignum_mod_raw_invasive.h
│   │   │   ├── block_cipher.c
│   │   │   ├── block_cipher_internal.h
│   │   │   ├── bn_mul.h
│   │   │   ├── camellia.c
│   │   │   ├── ccm.c
│   │   │   ├── chacha20.c
│   │   │   ├── chachapoly.c
│   │   │   ├── check_crypto_config.h
│   │   │   ├── cipher.c
│   │   │   ├── cipher_invasive.h
│   │   │   ├── cipher_wrap.c
│   │   │   ├── cipher_wrap.h
│   │   │   ├── cmac.c
│   │   │   ├── common.h
│   │   │   ├── constant_time.c
│   │   │   ├── constant_time_impl.h
│   │   │   ├── constant_time_internal.h
│   │   │   ├── ctr.h
│   │   │   ├── ctr_drbg.c
│   │   │   ├── debug.c
│   │   │   ├── debug_internal.h
│   │   │   ├── des.c
│   │   │   ├── dhm.c
│   │   │   ├── ecdh.c
│   │   │   ├── ecdsa.c
│   │   │   ├── ecjpake.c
│   │   │   ├── ecp.c
│   │   │   ├── ecp_curves.c
│   │   │   ├── ecp_curves_new.c
│   │   │   ├── ecp_internal_alt.h
│   │   │   ├── ecp_invasive.h
│   │   │   ├── entropy.c
│   │   │   ├── entropy_poll.c
│   │   │   ├── entropy_poll.h
│   │   │   ├── error.c
│   │   │   ├── gcm.c
│   │   │   ├── hkdf.c
│   │   │   ├── hmac_drbg.c
│   │   │   ├── lmots.c
│   │   │   ├── lmots.h
│   │   │   ├── lms.c
│   │   │   ├── md.c
│   │   │   ├── md5.c
│   │   │   ├── md_psa.h
│   │   │   ├── md_wrap.h
│   │   │   ├── memory_buffer_alloc.c
│   │   │   ├── mps_common.h
│   │   │   ├── mps_error.h
│   │   │   ├── mps_reader.c
│   │   │   ├── mps_reader.h
│   │   │   ├── mps_trace.c
│   │   │   ├── mps_trace.h
│   │   │   ├── net_sockets.c
│   │   │   ├── nist_kw.c
│   │   │   ├── oid.c
│   │   │   ├── padlock.c
│   │   │   ├── padlock.h
│   │   │   ├── pem.c
│   │   │   ├── pk.c
│   │   │   ├── pk_ecc.c
│   │   │   ├── pk_internal.h
│   │   │   ├── pk_wrap.c
│   │   │   ├── pk_wrap.h
│   │   │   ├── pkcs12.c
│   │   │   ├── pkcs5.c
│   │   │   ├── pkcs7.c
│   │   │   ├── pkparse.c
│   │   │   ├── pkwrite.c
│   │   │   ├── pkwrite.h
│   │   │   ├── platform.c
│   │   │   ├── platform_util.c
│   │   │   ├── poly1305.c
│   │   │   ├── psa_crypto.c
│   │   │   ├── psa_crypto_aead.c
│   │   │   ├── psa_crypto_aead.h
│   │   │   ├── psa_crypto_cipher.c
│   │   │   ├── psa_crypto_cipher.h
│   │   │   ├── psa_crypto_client.c
│   │   │   ├── psa_crypto_core.h
│   │   │   ├── psa_crypto_core_common.h
│   │   │   ├── psa_crypto_driver_wrappers.h
│   │   │   ├── psa_crypto_driver_wrappers_no_static.c
│   │   │   ├── psa_crypto_driver_wrappers_no_static.h
│   │   │   ├── psa_crypto_ecp.c
│   │   │   ├── psa_crypto_ecp.h
│   │   │   ├── psa_crypto_ffdh.c
│   │   │   ├── psa_crypto_ffdh.h
│   │   │   ├── psa_crypto_hash.c
│   │   │   ├── psa_crypto_hash.h
│   │   │   ├── psa_crypto_invasive.h
│   │   │   ├── psa_crypto_its.h
│   │   │   ├── psa_crypto_mac.c
│   │   │   ├── psa_crypto_mac.h
│   │   │   ├── psa_crypto_pake.c
│   │   │   ├── psa_crypto_pake.h
│   │   │   ├── psa_crypto_random_impl.h
│   │   │   ├── psa_crypto_rsa.c
│   │   │   ├── psa_crypto_rsa.h
│   │   │   ├── psa_crypto_se.c
│   │   │   ├── psa_crypto_se.h
│   │   │   ├── psa_crypto_slot_management.c
│   │   │   ├── psa_crypto_slot_management.h
│   │   │   ├── psa_crypto_storage.c
│   │   │   ├── psa_crypto_storage.h
│   │   │   ├── psa_its_file.c
│   │   │   ├── psa_util.c
│   │   │   ├── psa_util_internal.h
│   │   │   ├── ripemd160.c
│   │   │   ├── rsa.c
│   │   │   ├── rsa_alt_helpers.c
│   │   │   ├── rsa_alt_helpers.h
│   │   │   ├── rsa_internal.h
│   │   │   ├── sha1.c
│   │   │   ├── sha256.c
│   │   │   ├── sha3.c
│   │   │   ├── sha512.c
│   │   │   ├── ssl_cache.c
│   │   │   ├── ssl_ciphersuites.c
│   │   │   ├── ssl_ciphersuites_internal.h
│   │   │   ├── ssl_client.c
│   │   │   ├── ssl_client.h
│   │   │   ├── ssl_cookie.c
│   │   │   ├── ssl_debug_helpers.h
│   │   │   ├── ssl_debug_helpers_generated.c
│   │   │   ├── ssl_misc.h
│   │   │   ├── ssl_msg.c
│   │   │   ├── ssl_ticket.c
│   │   │   ├── ssl_tls.c
│   │   │   ├── ssl_tls12_client.c
│   │   │   ├── ssl_tls12_server.c
│   │   │   ├── ssl_tls13_client.c
│   │   │   ├── ssl_tls13_generic.c
│   │   │   ├── ssl_tls13_invasive.h
│   │   │   ├── ssl_tls13_keys.c
│   │   │   ├── ssl_tls13_keys.h
│   │   │   ├── ssl_tls13_server.c
│   │   │   ├── threading.c
│   │   │   ├── threading_internal.h
│   │   │   ├── timing.c
│   │   │   ├── version.c
│   │   │   ├── version_features.c
│   │   │   ├── x509.c
│   │   │   ├── x509_create.c
│   │   │   ├── x509_crl.c
│   │   │   ├── x509_crt.c
│   │   │   ├── x509_csr.c
│   │   │   ├── x509_internal.h
│   │   │   ├── x509write.c
│   │   │   ├── x509write_crt.c
│   │   │   └── x509write_csr.c
│   │   ├── mbedtls.patch
│   │   └── update.vsh
│   ├── mssql/
│   │   └── include/
│   │       ├── .gitignore
│   │       └── mssql.h
│   ├── photon/
│   │   └── photonwrapper.h
│   ├── picoev/
│   │   ├── picoev.c
│   │   └── src/
│   │       ├── README.md
│   │       ├── picoev.h
│   │       ├── picoev_epoll.c
│   │       ├── picoev_kqueue.c
│   │       ├── picoev_select.c
│   │       └── picoev_w32.h
│   ├── picohttpparser/
│   │   ├── README.md
│   │   ├── picohttpparser.c
│   │   ├── picohttpparser.h
│   │   └── src/
│   │       ├── README.md
│   │       ├── picohttpparser.c
│   │       └── picohttpparser.h
│   ├── sokol/
│   │   ├── README.md
│   │   ├── cursor-shape-v1-client-protocol.h
│   │   ├── cursor-shape-v1-protocol.c
│   │   ├── fractional-scale-v1-client-protocol.h
│   │   ├── fractional-scale-v1-protocol.c
│   │   ├── gen_wayland_protocols.vsh
│   │   ├── pointer-constraints-unstable-v1-client-protocol.h
│   │   ├── pointer-constraints-unstable-v1-protocol.c
│   │   ├── relative-pointer-unstable-v1-client-protocol.h
│   │   ├── relative-pointer-unstable-v1-protocol.c
│   │   ├── sokol_app.h
│   │   ├── sokol_app2.h
│   │   ├── sokol_audio.h
│   │   ├── sokol_gfx.h
│   │   ├── sokol_log.h
│   │   ├── sokol_v.post.h
│   │   ├── tablet-unstable-v2-client-protocol.h
│   │   ├── tablet-unstable-v2-protocol.c
│   │   ├── util/
│   │   │   ├── sokol_fontstash.h
│   │   │   └── sokol_gl.h
│   │   ├── viewporter-client-protocol.h
│   │   ├── viewporter-protocol.c
│   │   ├── xdg-decoration-unstable-v1-client-protocol.h
│   │   ├── xdg-decoration-unstable-v1-protocol.c
│   │   ├── xdg-shell-client-protocol.h
│   │   ├── xdg-shell-protocol.c
│   │   ├── xdg-toplevel-icon-v1-client-protocol.h
│   │   └── xdg-toplevel-icon-v1-protocol.c
│   ├── stb_image/
│   │   ├── README.md
│   │   ├── stb_image.h
│   │   ├── stb_image_resize2.h
│   │   ├── stb_image_write.h
│   │   ├── stb_v_header.h
│   │   └── stbi.c
│   ├── stb_vorbis/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── stb_vorbis.c
│   │   └── stb_vorbis.h
│   ├── stdatomic/
│   │   ├── nix/
│   │   │   ├── atomic.S
│   │   │   ├── atomic.h
│   │   │   ├── atomic_cpp.h
│   │   │   └── cpp/
│   │   │       └── gen.v
│   │   └── win/
│   │       └── atomic.h
│   ├── vgc/
│   │   └── vgc_platform.h
│   ├── vschannel/
│   │   ├── vschannel.c
│   │   └── vschannel.h
│   ├── walloc/
│   │   └── walloc.c
│   ├── zip/
│   │   ├── README.md
│   │   ├── miniz.h
│   │   ├── zip.c
│   │   └── zip.h
│   └── zstd/
│       ├── README.md
│       ├── fix.md
│       ├── update.vsh
│       ├── zstd.c
│       └── zstd_v.patch
├── tutorials/
│   ├── C2V_translating_simple_programs_and_DOOM/
│   │   └── README.md
│   └── building_a_simple_web_blog_with_veb/
│       ├── README.md
│       └── code/
│           └── blog/
│               ├── .gitignore
│               ├── article.v
│               ├── blog.v
│               ├── index.html
│               └── new.html
├── v.mod
└── vlib/
    ├── .vdocignore
    ├── README.md
    ├── archive/
    │   ├── README.md
    │   └── tar/
    │       ├── README.md
    │       ├── reader.v
    │       ├── reader_test.v
    │       ├── tar.v
    │       └── untar.v
    ├── arrays/
    │   ├── README.md
    │   ├── arrays.v
    │   ├── arrays_fold_test.v
    │   ├── arrays_test.v
    │   ├── diff/
    │   │   ├── diff.v
    │   │   └── diff_test.v
    │   ├── index_of.v
    │   ├── map_of.v
    │   ├── parallel/
    │   │   ├── parallel.v
    │   │   └── parallel_test.v
    │   ├── reverse_iterator.v
    │   ├── reverse_iterator_test.v
    │   ├── uniq.v
    │   └── uniq_test.v
    ├── benchmark/
    │   ├── README.md
    │   ├── benchmark.v
    │   └── benchmark_test.v
    ├── bitfield/
    │   ├── README.md
    │   ├── bitfield.v
    │   └── bitfield_test.v
    ├── build/
    │   ├── README.md
    │   └── build.v
    ├── builtin/
    │   ├── README.md
    │   ├── allocation.c.v
    │   ├── array.v
    │   ├── array_d_gcboehm_opt.v
    │   ├── array_flags_test.v
    │   ├── array_notd_gcboehm_opt.v
    │   ├── array_test.v
    │   ├── backtraces.c.v
    │   ├── backtraces_nix.c.v
    │   ├── backtraces_windows.c.v
    │   ├── builtin.c.v
    │   ├── builtin.v
    │   ├── builtin_android_outside_termux.c.v
    │   ├── builtin_backtraces_d_musl.c.v
    │   ├── builtin_backtraces_nix.c.v
    │   ├── builtin_d_gcboehm.c.v
    │   ├── builtin_d_use_libbacktrace.c.v
    │   ├── builtin_d_vgc.c.v
    │   ├── builtin_ios.c.v
    │   ├── builtin_nix.c.v
    │   ├── builtin_notd_gcboehm.c.v
    │   ├── builtin_notd_use_libbacktrace.c.v
    │   ├── builtin_test.c.v
    │   ├── builtin_unbuffer_stdout_test.v
    │   ├── builtin_windows.c.v
    │   ├── byte_test.v
    │   ├── cfns.c.v
    │   ├── cfns_wrapper.c.v
    │   ├── chan_option_result.v
    │   ├── character_inout.c.v
    │   ├── character_inout_test.v
    │   ├── closure/
    │   │   ├── README.md
    │   │   ├── closure.c.v
    │   │   ├── closure.v
    │   │   ├── closure_nix.c.v
    │   │   └── closure_windows.c.v
    │   ├── fixed_array_test.v
    │   ├── float.c.v
    │   ├── float_test.v
    │   ├── gated_array_string_test.v
    │   ├── hex_test.v
    │   ├── input_rune_iterator.v
    │   ├── input_rune_iterator_test.v
    │   ├── int.v
    │   ├── int_notd_new_int.v
    │   ├── int_test.v
    │   ├── isnil_test.v
    │   ├── js/
    │   │   ├── array.js.v
    │   │   ├── array_test.js.v
    │   │   ├── builtin.js.v
    │   │   ├── builtin.v
    │   │   ├── byte.js.v
    │   │   ├── float.js.v
    │   │   ├── int.js.v
    │   │   ├── int_test.js.v
    │   │   ├── jsfns.js.v
    │   │   ├── jsfns_browser.js.v
    │   │   ├── jsfns_node.js.v
    │   │   ├── map.js.v
    │   │   ├── map_test.js.v
    │   │   ├── promise.js.v
    │   │   ├── rune.js.v
    │   │   ├── string.js.v
    │   │   ├── string_test.js.v
    │   │   └── utf8.js.v
    │   ├── lambda_expr_array_test.v
    │   ├── linux_bare/
    │   │   ├── libc_impl.v
    │   │   ├── linux_syscalls.v
    │   │   ├── memory_managment.v
    │   │   └── old/
    │   │       ├── .checks/
    │   │       │   ├── .gitignore
    │   │       │   ├── checks.v
    │   │       │   ├── consts/
    │   │       │   │   └── consts.v
    │   │       │   ├── forkedtest/
    │   │       │   │   └── forkedtest.v
    │   │       │   ├── linuxsys/
    │   │       │   │   └── linuxsys.v
    │   │       │   ├── readme.md
    │   │       │   ├── sample_text1.txt
    │   │       │   ├── string/
    │   │       │   │   └── string.v
    │   │       │   └── structs/
    │   │       │       └── structs.v
    │   │       ├── array_bare.v
    │   │       ├── builtin_bare.v
    │   │       ├── linuxsys_bare.v
    │   │       ├── mm_bare.v
    │   │       ├── string_bare.v
    │   │       └── syscallwrapper_test.v
    │   ├── map.c.v
    │   ├── map.v
    │   ├── map_d_gcboehm_opt.v
    │   ├── map_notd_gcboehm_opt.v
    │   ├── map_of_floats_test.v
    │   ├── map_test.v
    │   ├── meta_assert.v
    │   ├── meta_attribute.v
    │   ├── meta_enum.v
    │   ├── meta_function.v
    │   ├── meta_struct.v
    │   ├── meta_variant.v
    │   ├── option.c.v
    │   ├── overflow/
    │   │   └── overflow.v
    │   ├── panicing.c.v
    │   ├── prealloc.c.v
    │   ├── printing.c.v
    │   ├── reuse.v
    │   ├── reuse_test.v
    │   ├── rune.v
    │   ├── rune_map.v
    │   ├── rune_test.v
    │   ├── sorted_lambda_expr_test.v
    │   ├── sorted_map.v
    │   ├── sorting_test.v
    │   ├── string.v
    │   ├── string_charptr_byteptr_helpers.v
    │   ├── string_int_test.v
    │   ├── string_interpolation.v
    │   ├── string_iterator_test.v
    │   ├── string_match_glob_test.v
    │   ├── string_strip_margin_test.v
    │   ├── string_test.v
    │   ├── string_trim_indent_test.v
    │   ├── utf8.c.v
    │   ├── utf8.v
    │   ├── utf8_test.v
    │   ├── vgc_d_vgc.c.v
    │   ├── vgc_gc_d_vgc.c.v
    │   ├── vgc_notd_vgc.c.v
    │   ├── wasm/
    │   │   ├── alloc.v
    │   │   ├── browser/
    │   │   │   └── builtin_notd_no_imports.v
    │   │   ├── builtin.v
    │   │   ├── string.v
    │   │   └── wasi/
    │   │       ├── builtin_notd_no_imports.v
    │   │       ├── int_notd_no_imports.v
    │   │       ├── string_notd_no_imports.v
    │   │       └── wasi_notd_no_imports.v
    │   ├── wasm_bare/
    │   │   ├── libc_impl.c.v
    │   │   └── memory_management.v
    │   └── wchar/
    │       ├── wchar.c.v
    │       └── wchar_test.v
    ├── cli/
    │   ├── README.md
    │   ├── cli_test.v
    │   ├── command.v
    │   ├── command_test.v
    │   ├── flag.v
    │   ├── flag_test.v
    │   ├── help.v
    │   ├── help_test.v
    │   ├── man.v
    │   ├── man_test.v
    │   ├── testdata/
    │   │   ├── default_command_flag.out
    │   │   ├── default_command_flag.vv
    │   │   ├── default_command_no_flag_err.out
    │   │   ├── default_command_no_flag_err.vv
    │   │   ├── default_help.out
    │   │   ├── default_help.vv
    │   │   ├── default_help_flag_no_command.out
    │   │   ├── default_help_flag_no_command.vv
    │   │   ├── default_version_flag_no_command.out
    │   │   ├── default_version_flag_no_command.vv
    │   │   ├── long_description.out
    │   │   ├── long_description.vv
    │   │   ├── no_execute.out
    │   │   └── no_execute.vv
    │   └── version.v
    ├── clipboard/
    │   ├── README.md
    │   ├── clipboard.v
    │   ├── clipboard_android.c.v
    │   ├── clipboard_darwin.c.v
    │   ├── clipboard_darwin.m
    │   ├── clipboard_default.c.v
    │   ├── clipboard_solaris.c.v
    │   ├── clipboard_test.v
    │   ├── clipboard_windows.c.v
    │   ├── dummy/
    │   │   └── dummy_clipboard.v
    │   └── x11/
    │       └── clipboard.c.v
    ├── compress/
    │   ├── README.md
    │   ├── compress.c.v
    │   ├── deflate/
    │   │   ├── README.md
    │   │   ├── deflate.v
    │   │   └── deflate_test.v
    │   ├── gzip/
    │   │   ├── README.md
    │   │   ├── gzip.v
    │   │   ├── gzip_test.v
    │   │   └── read_gz_files_test.v
    │   ├── szip/
    │   │   ├── README.md
    │   │   ├── szip.c.v
    │   │   └── szip_test.v
    │   ├── zlib/
    │   │   ├── README.md
    │   │   ├── zlib.v
    │   │   ├── zlib_miniz_compat_names_collision.h
    │   │   ├── zlib_miniz_compat_names_collision_test.c.v
    │   │   └── zlib_test.v
    │   └── zstd/
    │       ├── README.md
    │       ├── read_zstd_files_test.v
    │       ├── samples/
    │       │   ├── known.zst
    │       │   ├── readme_level_1.zst
    │       │   ├── readme_level_10.zst
    │       │   ├── readme_level_11.zst
    │       │   ├── readme_level_12.zst
    │       │   ├── readme_level_13.zst
    │       │   ├── readme_level_14.zst
    │       │   ├── readme_level_15.zst
    │       │   ├── readme_level_16.zst
    │       │   ├── readme_level_17.zst
    │       │   ├── readme_level_18.zst
    │       │   ├── readme_level_19.zst
    │       │   ├── readme_level_2.zst
    │       │   ├── readme_level_3.zst
    │       │   ├── readme_level_4.zst
    │       │   ├── readme_level_5.zst
    │       │   ├── readme_level_6.zst
    │       │   ├── readme_level_7.zst
    │       │   ├── readme_level_8.zst
    │       │   └── readme_level_9.zst
    │       ├── zstd.c.v
    │       ├── zstd_d_musl.c.v
    │       └── zstd_test.v
    ├── context/
    │   ├── README.md
    │   ├── cancel.v
    │   ├── cancel_test.v
    │   ├── context.v
    │   ├── deadline.v
    │   ├── deadline_test.v
    │   ├── empty.v
    │   ├── empty_test.v
    │   ├── onecontext/
    │   │   ├── README.md
    │   │   ├── onecontext.v
    │   │   └── onecontext_test.v
    │   ├── value.v
    │   └── value_test.v
    ├── coroutines/
    │   ├── README.md
    │   ├── coroutines.c.v
    │   └── sp_corrector.c
    ├── crypto/
    │   ├── README.md
    │   ├── aes/
    │   │   ├── aes.v
    │   │   ├── aes_cbc.v
    │   │   ├── aes_test.v
    │   │   ├── block_generic.v
    │   │   ├── const.v
    │   │   └── cypher_generic.v
    │   ├── bcrypt/
    │   │   ├── base64.v
    │   │   ├── bcrypt.v
    │   │   └── bcrypt_test.v
    │   ├── blake2b/
    │   │   ├── blake2b.v
    │   │   ├── blake2b_block_generic.v
    │   │   ├── blake2b_block_test.v
    │   │   ├── blake2b_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       ├── blake2b.awk
    │   │       ├── blake2b_test_vectors.json
    │   │       └── test_vectors.v
    │   ├── blake2s/
    │   │   ├── blake2s.v
    │   │   ├── blake2s_block_generic.v
    │   │   ├── blake2s_block_test.v
    │   │   ├── blake2s_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       ├── blake2s.awk
    │   │       ├── blake2s_test_vectors.json
    │   │       └── test_vectors.v
    │   ├── blake3/
    │   │   ├── blake3.v
    │   │   ├── blake3_block_generic.v
    │   │   ├── blake3_block_test.v
    │   │   ├── blake3_chunk.v
    │   │   ├── blake3_chunk_test.v
    │   │   ├── blake3_test.v
    │   │   └── testdata/
    │   │       ├── README
    │   │       └── test_vectors.json
    │   ├── blowfish/
    │   │   ├── block.v
    │   │   ├── blowfish.v
    │   │   ├── blowfish_test.v
    │   │   └── const.v
    │   ├── cipher/
    │   │   ├── aes_cbc_test.v
    │   │   ├── aes_cfb_test.v
    │   │   ├── aes_ctr_test.v
    │   │   ├── aes_ofb_test.v
    │   │   ├── cbc.v
    │   │   ├── cfb.v
    │   │   ├── cfb_test.v
    │   │   ├── cipher.v
    │   │   ├── ctr.v
    │   │   ├── ctr_test.v
    │   │   ├── des_cbc_test.v
    │   │   ├── des_cfb_test.v
    │   │   ├── des_ctr_test.v
    │   │   ├── des_ofb_test.v
    │   │   ├── ofb.v
    │   │   ├── ofb_test.v
    │   │   └── xor_generic.v
    │   ├── crypto.v
    │   ├── des/
    │   │   ├── block.v
    │   │   ├── const.v
    │   │   ├── des.v
    │   │   └── des_test.v
    │   ├── ecdsa/
    │   │   ├── README.md
    │   │   ├── ecdsa.c.v
    │   │   ├── ecdsa.v
    │   │   ├── ecdsa_test.v
    │   │   ├── example/
    │   │   │   ├── ecdsa_seed_test.v
    │   │   │   ├── ensure_compatibility_with_net_openssl_test.v
    │   │   │   └── example1.v
    │   │   ├── util.v
    │   │   └── util_test.v
    │   ├── ed25519/
    │   │   ├── LICENSE
    │   │   ├── README.md
    │   │   ├── ed25519.v
    │   │   ├── examples/
    │   │   │   └── example.v
    │   │   └── internal/
    │   │       ├── ed25519_test.v
    │   │       └── edwards25519/
    │   │           ├── README.md
    │   │           ├── edwards25519.v
    │   │           ├── element.v
    │   │           ├── element_test.v
    │   │           ├── extra.v
    │   │           ├── extra_test.v
    │   │           ├── point.v
    │   │           ├── point_test.v
    │   │           ├── scalar.v
    │   │           ├── scalar_alias_test.v
    │   │           ├── scalar_test.v
    │   │           ├── scalarmult.v
    │   │           ├── scalarmult_test.v
    │   │           ├── table.v
    │   │           └── table_test.v
    │   ├── hmac/
    │   │   ├── hmac.v
    │   │   └── hmac_test.v
    │   ├── internal/
    │   │   └── subtle/
    │   │       ├── aliasing.v
    │   │       ├── comparison.v
    │   │       └── comparison_test.v
    │   ├── md5/
    │   │   ├── md5.v
    │   │   ├── md5_test.v
    │   │   └── md5block_generic.v
    │   ├── pbkdf2/
    │   │   ├── pbkdf2.v
    │   │   └── pbkdf2_test.v
    │   ├── pem/
    │   │   ├── decode.v
    │   │   ├── encode.v
    │   │   ├── pem.v
    │   │   └── pem_test.v
    │   ├── rand/
    │   │   ├── crypto_rand_bytes_test.v
    │   │   ├── rand.v
    │   │   ├── rand_darwin.c.v
    │   │   ├── rand_default.c.v
    │   │   ├── rand_freebsd.c.v
    │   │   ├── rand_linux.c.v
    │   │   ├── rand_openbsd.c.v
    │   │   ├── rand_solaris.c.v
    │   │   ├── rand_windows.c.v
    │   │   ├── utils.v
    │   │   └── utils_test.v
    │   ├── rc4/
    │   │   ├── rc4.v
    │   │   └── rc4_test.v
    │   ├── ripemd160/
    │   │   ├── ripemd160.v
    │   │   ├── ripemd160_test.v
    │   │   └── ripemd160block.v
    │   ├── scrypt/
    │   │   ├── scrypt.v
    │   │   └── scrypt_test.v
    │   ├── sha1/
    │   │   ├── sha1.v
    │   │   ├── sha1_shavs_monte_test.v
    │   │   ├── sha1_shavs_test.v
    │   │   ├── sha1_test.v
    │   │   └── sha1block_generic.v
    │   ├── sha256/
    │   │   ├── sha224_shavs_monte_test.v
    │   │   ├── sha224_shavs_test.v
    │   │   ├── sha256.v
    │   │   ├── sha256_shavs_monte_test.v
    │   │   ├── sha256_shavs_test.v
    │   │   ├── sha256_test.v
    │   │   └── sha256block_generic.v
    │   ├── sha3/
    │   │   ├── sha3.v
    │   │   ├── sha3_state_generic.v
    │   │   ├── sha3_state_test.v
    │   │   ├── sha3_test.v
    │   │   ├── usage_test.v
    │   │   ├── xof.v
    │   │   └── xof_test.v
    │   └── sha512/
    │       ├── sha384_shavs_monte_test.v
    │       ├── sha384_shavs_test.v
    │       ├── sha512.v
    │       ├── sha512_224_shavs_monte_test.v
    │       ├── sha512_224_shavs_test.v
    │       ├── sha512_256_shavs_monte_test.v
    │       ├── sha512_256_shavs_test.v
    │       ├── sha512_shavs_monte_test.v
    │       ├── sha512_shavs_test.v
    │       ├── sha512_test.v
    │       └── sha512block_generic.v
    ├── datatypes/
    │   ├── README.md
    │   ├── bloom_filter.v
    │   ├── bloom_filter_test.v
    │   ├── bstree.v
    │   ├── bstree_test.v
    │   ├── doubly_linked_list.v
    │   ├── doubly_linked_list_test.v
    │   ├── fsm/
    │   │   ├── README.md
    │   │   ├── fsm.v
    │   │   ├── fsm_test.v
    │   │   └── tools/
    │   │       └── fsm_graph.v
    │   ├── heap.v
    │   ├── heap_test.v
    │   ├── linked_list.v
    │   ├── linked_list_test.v
    │   ├── lockfree/
    │   │   ├── README.md
    │   │   ├── bench/
    │   │   │   ├── bench_channel.v
    │   │   │   └── bench_ringbuffer.v
    │   │   ├── counter.v
    │   │   ├── counter_test.v
    │   │   ├── lockfree.v
    │   │   ├── ringbuffer.v
    │   │   └── ringbuffer_test.v
    │   ├── quadtree.v
    │   ├── quadtree_test.v
    │   ├── queue.v
    │   ├── queue_test.v
    │   ├── ringbuffer.v
    │   ├── ringbuffer_test.v
    │   ├── set.v
    │   ├── set_test.v
    │   ├── stack.v
    │   └── stack_test.v
    ├── db/
    │   ├── README.md
    │   ├── mssql/
    │   │   ├── README.md
    │   │   ├── _cdef_nix.c.v
    │   │   ├── _cdef_windows.c.v
    │   │   ├── _cdefs.c.v
    │   │   ├── config.v
    │   │   ├── mssql.c.v
    │   │   ├── result.v
    │   │   └── stmt_handle.c.v
    │   ├── mysql/
    │   │   ├── README.md
    │   │   ├── _cdefs.c.v
    │   │   ├── _cdefs_nix.c.v
    │   │   ├── _cdefs_windows.c.v
    │   │   ├── consts.c.v
    │   │   ├── enums.v
    │   │   ├── mysql.c.v
    │   │   ├── mysql_orm_test.v
    │   │   ├── mysql_test.v
    │   │   ├── orm.c.v
    │   │   ├── pool.v
    │   │   ├── prepared_stmt_test.v
    │   │   ├── result.c.v
    │   │   ├── stmt.c.v
    │   │   └── utils.c.v
    │   ├── pg/
    │   │   ├── README.md
    │   │   ├── compatibility.h
    │   │   ├── oid.v
    │   │   ├── orm.v
    │   │   ├── pg.c.v
    │   │   ├── pg_double_test.v
    │   │   ├── pg_orm_test.v
    │   │   ├── pg_result_test.v
    │   │   ├── pg_test.v
    │   │   └── pool.v
    │   ├── redis/
    │   │   ├── README.md
    │   │   ├── redis.v
    │   │   └── redis_test.v
    │   └── sqlite/
    │       ├── README.md
    │       ├── install_thirdparty_sqlite.vsh
    │       ├── orm.v
    │       ├── parent_child_test.v
    │       ├── pool.v
    │       ├── result_code.v
    │       ├── sqlite.c.v
    │       ├── sqlite_comptime_field_test.v
    │       ├── sqlite_f32_test.v
    │       ├── sqlite_orm_option_field_test.v
    │       ├── sqlite_orm_test.v
    │       ├── sqlite_test.v
    │       ├── sqlite_vfs_lowlevel_test.v
    │       ├── stmt.c.v
    │       └── vfs_lowlevel.c.v
    ├── dl/
    │   ├── README.md
    │   ├── dl.v
    │   ├── dl_nix.c.v
    │   ├── dl_test.v
    │   ├── dl_windows.c.v
    │   ├── loader/
    │   │   ├── README.md
    │   │   ├── loader.v
    │   │   └── loader_test.v
    │   └── rtld_next_test.v
    ├── dlmalloc/
    │   ├── dlmalloc.v
    │   ├── dlmalloc_sys_nix.c.v
    │   ├── dlmalloc_sys_windows.c.v
    │   └── global.v
    ├── encoding/
    │   ├── README.md
    │   ├── base32/
    │   │   ├── base32.v
    │   │   └── base32_test.v
    │   ├── base58/
    │   │   ├── alphabet.v
    │   │   ├── base58.v
    │   │   ├── base58_test.v
    │   │   └── base58_usage_test.v
    │   ├── base64/
    │   │   ├── base64.c.v
    │   │   ├── base64.v
    │   │   ├── base64_memory_test.v
    │   │   └── base64_test.v
    │   ├── binary/
    │   │   ├── README.md
    │   │   ├── big_endian.v
    │   │   ├── big_endian_fixed.v
    │   │   ├── big_endian_fixed_test.v
    │   │   ├── big_endian_test.v
    │   │   ├── little_endian.v
    │   │   ├── little_endian_fixed.v
    │   │   ├── little_endian_fixed_test.v
    │   │   ├── little_endian_test.v
    │   │   ├── serialize.v
    │   │   ├── serialize_test.v
    │   │   └── unions.v
    │   ├── csv/
    │   │   ├── README.md
    │   │   ├── README_csv_reader.md
    │   │   ├── csv_reader_eol_test.v
    │   │   ├── csv_reader_random_access.v
    │   │   ├── csv_reader_sequential.v
    │   │   ├── csv_reader_test.v
    │   │   ├── reader.v
    │   │   ├── reader_test.v
    │   │   ├── to_struct_arr.v
    │   │   ├── utils.v
    │   │   ├── utils_test.v
    │   │   ├── writer.v
    │   │   └── writer_test.v
    │   ├── hex/
    │   │   ├── hex.v
    │   │   └── hex_test.v
    │   ├── html/
    │   │   ├── escape.v
    │   │   ├── escape_test.v
    │   │   └── named_references.v
    │   ├── iconv/
    │   │   ├── iconv.v
    │   │   ├── iconv_nix.c.v
    │   │   ├── iconv_test.v
    │   │   └── iconv_windows.c.v
    │   ├── leb128/
    │   │   ├── leb128.v
    │   │   └── leb128_test.v
    │   ├── txtar/
    │   │   ├── README.md
    │   │   ├── pack_unpack.v
    │   │   ├── txtar.v
    │   │   └── txtar_test.v
    │   ├── utf8/
    │   │   ├── east_asian/
    │   │   │   ├── east_asian_width.v
    │   │   │   └── east_asian_width_test.v
    │   │   ├── utf8.v
    │   │   ├── utf8_is_punct_test.v
    │   │   ├── utf8_tables.v
    │   │   ├── utf8_util.v
    │   │   ├── utf8_util_test.v
    │   │   └── validate/
    │   │       ├── encoding_utf8_test.v
    │   │       └── validate_utf8.v
    │   ├── vorbis/
    │   │   ├── README.md
    │   │   ├── link_to_libm.c.v
    │   │   ├── version.v
    │   │   ├── vorbis.c.v
    │   │   ├── vorbis.v
    │   │   └── vorbis_test.v
    │   └── xml/
    │       ├── README.md
    │       ├── encoding.v
    │       ├── encoding_test.v
    │       ├── entity.v
    │       ├── entity_test.v
    │       ├── newline_test.v
    │       ├── parser.v
    │       ├── parser_test.v
    │       ├── query.v
    │       ├── query_test.v
    │       ├── reader_util.v
    │       ├── test/
    │       │   ├── gtk/
    │       │   │   └── gtk_test.v
    │       │   ├── local/
    │       │   │   ├── 01_mdn_example/
    │       │   │   │   ├── hello_world.xml
    │       │   │   │   └── hello_world_test.v
    │       │   │   ├── 02_note_message/
    │       │   │   │   ├── note.xml
    │       │   │   │   └── note_test.v
    │       │   │   ├── 03_cd_catalogue/
    │       │   │   │   ├── cd_catalog.xml
    │       │   │   │   └── cd_test.v
    │       │   │   ├── 04_empty_file/
    │       │   │   │   ├── empty.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 05_single_element/
    │       │   │   │   ├── root.xml
    │       │   │   │   └── root_test.v
    │       │   │   ├── 06_nested_elements/
    │       │   │   │   ├── nested.xml
    │       │   │   │   └── nested_test.v
    │       │   │   ├── 07_mixed_contents/
    │       │   │   │   ├── mixed.xml
    │       │   │   │   └── mixed_test.v
    │       │   │   ├── 08_comments/
    │       │   │   │   ├── comment.xml
    │       │   │   │   └── comment_test.v
    │       │   │   ├── 09_malformed/
    │       │   │   │   ├── expected_error.txt
    │       │   │   │   └── malformed.xml
    │       │   │   ├── 10_missing_tag/
    │       │   │   │   ├── expected_error.txt
    │       │   │   │   └── malformed.xml
    │       │   │   ├── 11_cdata_content/
    │       │   │   │   ├── cdata.xml
    │       │   │   │   └── cdata_test.v
    │       │   │   ├── 12_doctype_entity/
    │       │   │   │   ├── entity.xml
    │       │   │   │   ├── entity_expected.xml
    │       │   │   │   └── spec_entity_test.v
    │       │   │   ├── 13_doctype_element/
    │       │   │   │   ├── doctype_test.v
    │       │   │   │   └── element.xml
    │       │   │   ├── 14_attributes/
    │       │   │   │   ├── attributes.xml
    │       │   │   │   └── attributes_test.v
    │       │   │   ├── 15_incomplete_entity_1/
    │       │   │   │   ├── entity.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 16_incomplete_entity_2/
    │       │   │   │   ├── entity.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 17_incomplete_element_1/
    │       │   │   │   ├── element.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 18_incomplete_element_2/
    │       │   │   │   ├── element.xml
    │       │   │   │   └── expected_error.txt
    │       │   │   ├── 19_single_letter_tag/
    │       │   │   │   ├── shared.xml
    │       │   │   │   └── shared_test.v
    │       │   │   └── 20_bom_file/
    │       │   │       └── bom_test.v
    │       │   └── spec_test.v
    │       ├── types.v
    │       └── validation.v
    ├── eventbus/
    │   ├── README.md
    │   ├── eventbus.v
    │   └── eventbus_test.v
    ├── fasthttp/
    │   ├── README.md
    │   ├── fasthttp.v
    │   ├── fasthttp_darwin.v
    │   ├── fasthttp_linux.v
    │   ├── fasthttp_test.v
    │   ├── fasthttp_windows.v
    │   ├── request_parser.v
    │   └── request_parser_test.v
    ├── flag/
    │   ├── README.md
    │   ├── cmd_exe_style_flags_test.v
    │   ├── default_flag_options_test.v
    │   ├── flag.v
    │   ├── flag_autofree_test.v
    │   ├── flag_from_test.v
    │   ├── flag_parse_test.v
    │   ├── flag_test.v
    │   ├── flag_to.v
    │   ├── flag_to_bool_test.v
    │   ├── flag_to_doc_test.v
    │   ├── flag_to_edge_case_1_test.v
    │   ├── flag_to_misc_test.v
    │   ├── flag_to_relaxed_test.v
    │   ├── flag_to_tail_bool_test.v
    │   ├── flag_to_tail_test.v
    │   ├── gnu_style_flags_test.v
    │   ├── go_flag_style_flags_test.v
    │   ├── posix_style_flags_test.v
    │   ├── testdata/
    │   │   ├── simplest_flag_program.dashdash.help.out
    │   │   ├── simplest_flag_program.dashdash.version.out
    │   │   ├── simplest_flag_program.help.out
    │   │   ├── simplest_flag_program.out
    │   │   ├── simplest_flag_program.v
    │   │   ├── simplest_flag_program.version.out
    │   │   ├── usage_example.help.out
    │   │   ├── usage_example.out
    │   │   ├── usage_example.v
    │   │   └── usage_example.version.out
    │   ├── usage_example_test.v
    │   ├── v_flag_parser_style_flags_test.v
    │   └── v_style_flags_test.v
    ├── fontstash/
    │   ├── README.md
    │   ├── a_d_use_freetype.v
    │   ├── fontstash.c.v
    │   ├── fontstash_enums.v
    │   ├── fontstash_funcs.c.v
    │   └── fontstash_structs.c.v
    ├── gg/
    │   ├── README.md
    │   ├── bezier.c.v
    │   ├── color.v
    │   ├── color_test.v
    │   ├── draw.c.v
    │   ├── draw_fns_api_test.v
    │   ├── enums.v
    │   ├── gg.c.v
    │   ├── gg.js.v
    │   ├── gg.v
    │   ├── gg_android_outside_termux.c.v
    │   ├── gg_darwin.c.v
    │   ├── gg_darwin.m
    │   ├── gg_ui.c.v
    │   ├── image.c.v
    │   ├── image.js.v
    │   ├── image.v
    │   ├── image_test.v
    │   ├── keyboard.v
    │   ├── m4/
    │   │   ├── graphic.v
    │   │   ├── m4_test.v
    │   │   ├── matrix.v
    │   │   └── vector.v
    │   ├── recorder.c.v
    │   ├── recorder.js.v
    │   ├── recorder.v
    │   ├── testdata/
    │   │   ├── draw_arcs.vv
    │   │   ├── draw_circles.vv
    │   │   ├── draw_elipses.vv
    │   │   ├── draw_polygons.vv
    │   │   ├── draw_rectangles.vv
    │   │   ├── draw_rounded_rect_empty.vv
    │   │   ├── draw_rounded_rect_filled.vv
    │   │   ├── draw_simple_polygons.vv
    │   │   ├── draw_text.vv
    │   │   ├── remove_image_from_cache.vv
    │   │   └── tweak_circles.vv
    │   ├── text_rendering.c.v
    │   ├── text_rendering.js.v
    │   └── text_rendering.v
    ├── goroutines/
    │   ├── README.md
    │   ├── atomic_ops.c.v
    │   ├── chan.v
    │   ├── context_nix.c.v
    │   ├── context_nix.h
    │   ├── context_windows.c.v
    │   ├── examples/
    │   │   ├── basic_goroutine.v
    │   │   ├── goroutine_benchmark.go
    │   │   ├── goroutine_benchmark.v
    │   │   └── spawn_benchmark.v
    │   ├── goroutines.v
    │   ├── goroutines_test.v
    │   ├── goroutines_tls.h
    │   ├── init.v
    │   ├── park.v
    │   ├── scheduler.v
    │   └── tls.c
    ├── gx/
    │   ├── README.md
    │   ├── color.v
    │   ├── image.v
    │   ├── text.c.v
    │   ├── text.js.v
    │   └── text.v
    ├── hash/
    │   ├── README.md
    │   ├── crc32/
    │   │   ├── crc32.v
    │   │   └── crc32_test.v
    │   ├── fnv1a/
    │   │   ├── fnv1a.v
    │   │   └── fnv1a_test.v
    │   ├── hash.v
    │   ├── hash_compiles_test.v
    │   ├── wyhash.c.v
    │   ├── wyhash.js.v
    │   └── wyhash.v
    ├── io/
    │   ├── README.md
    │   ├── buffered_reader.v
    │   ├── buffered_writer.v
    │   ├── buffered_writer_test.v
    │   ├── custom_string_reading_test.v
    │   ├── io.v
    │   ├── io_cp_test.v
    │   ├── io_test.v
    │   ├── multi_writer.v
    │   ├── multi_writer_test.v
    │   ├── os_file_reader_test.v
    │   ├── reader.v
    │   ├── reader_test.v
    │   ├── readerwriter.v
    │   ├── string_reader/
    │   │   ├── string_reader.v
    │   │   └── string_reader_test.v
    │   ├── util/
    │   │   ├── util.v
    │   │   └── util_test.v
    │   └── writer.v
    ├── js/
    │   ├── README.md
    │   ├── dom/
    │   │   ├── dom.js.v
    │   │   └── dom.v
    │   ├── js.js.v
    │   └── js.v
    ├── json/
    │   ├── README.md
    │   ├── cjson/
    │   │   ├── cjson_test.v
    │   │   └── cjson_wrapper.c.v
    │   ├── json_primitives.c.v
    │   └── tests/
    │       ├── json_alias_test.v
    │       ├── json_decode_anon_struct_test.v
    │       ├── json_decode_arr_ref_test.v
    │       ├── json_decode_embed_test.v
    │       ├── json_decode_option_alias_field_test.v
    │       ├── json_decode_option_alias_test.v
    │       ├── json_decode_option_enum_test.v
    │       ├── json_decode_struct_default_test.v
    │       ├── json_decode_struct_ptr_test.v
    │       ├── json_decode_struct_with_default_test.v
    │       ├── json_decode_sumtype_option_test.v
    │       ├── json_decode_test.v
    │       ├── json_decode_with_encode_arg_test.v
    │       ├── json_decode_with_generic_array_test.v
    │       ├── json_decode_with_generic_test.v
    │       ├── json_decode_with_option_arg_test.v
    │       ├── json_decode_with_sumtype_test.v
    │       ├── json_embed_test.v
    │       ├── json_encode_default_option_none_test.v
    │       ├── json_encode_embed_test.v
    │       ├── json_encode_enum_test.v
    │       ├── json_encode_map_test.v
    │       ├── json_encode_primite_test.v
    │       ├── json_encode_ptr_test.v
    │       ├── json_encode_recursive_ptr_test.v
    │       ├── json_encode_struct_with_option_field_test.v
    │       ├── json_encode_sumtype_test.v
    │       ├── json_encode_with_mut_test.v
    │       ├── json_encode_with_ptr_test.v
    │       ├── json_fixed_array_test.v
    │       ├── json_generic_array_test.v
    │       ├── json_i32_test.v
    │       ├── json_is_null_attr_test.v
    │       ├── json_mut_map_test.v
    │       ├── json_omitempty_test.v
    │       ├── json_omitempty_types_test.v
    │       ├── json_option_alias_test.v
    │       ├── json_option_none_test.v
    │       ├── json_option_raw_test.v
    │       ├── json_option_struct_test.v
    │       ├── json_option_test.v
    │       ├── json_prim_type_validation_test.v
    │       ├── json_raw_test.v
    │       ├── json_struct_option_test.v
    │       ├── json_sumtype_test.v
    │       └── json_test.v
    ├── log/
    │   ├── README.md
    │   ├── common.v
    │   ├── default.c.v
    │   ├── default.v
    │   ├── default_test.v
    │   ├── file_log_test.v
    │   ├── log.v
    │   ├── log_test.v
    │   ├── logger_interface.v
    │   └── safe_log.v
    ├── macos/
    │   ├── macos_darwin.c.v
    │   └── objc_bridge.h
    ├── maps/
    │   ├── README.md
    │   ├── maps.v
    │   ├── maps_clone_test.v
    │   └── maps_test.v
    ├── math/
    │   ├── README.md
    │   ├── ROADMAP.md
    │   ├── abs.js.v
    │   ├── big/
    │   │   ├── array_ops.v
    │   │   ├── array_ops_test.v
    │   │   ├── bench/
    │   │   │   └── bench_big_dividing_big_numbers_big_pow.v
    │   │   ├── big.js.v
    │   │   ├── big.v
    │   │   ├── big_division_test.v
    │   │   ├── big_test.v
    │   │   ├── consts_test.v
    │   │   ├── division_array_ops.v
    │   │   ├── division_array_ops_test.v
    │   │   ├── exponentiation.v
    │   │   ├── integer.v
    │   │   ├── json_custom.v
    │   │   ├── large_number_power_and_string_conversion_test.v
    │   │   ├── min_max.v
    │   │   ├── special_array_ops.v
    │   │   └── special_array_ops_test.v
    │   ├── bits/
    │   │   ├── bits.amd64.v
    │   │   ├── bits.arm64.v
    │   │   ├── bits.c.v
    │   │   ├── bits.v
    │   │   ├── bits_tables.v
    │   │   ├── bits_test.v
    │   │   ├── unsafe_bits.js.v
    │   │   └── unsafe_bits.v
    │   ├── bits.js.v
    │   ├── bits.v
    │   ├── cbrt.js.v
    │   ├── cbrt.v
    │   ├── complex/
    │   │   ├── complex.v
    │   │   └── complex_test.v
    │   ├── const.v
    │   ├── div.v
    │   ├── easing/
    │   │   ├── easing.v
    │   │   └── easing_test.v
    │   ├── erf.v
    │   ├── erf_test.v
    │   ├── exp.c.v
    │   ├── exp.js.v
    │   ├── exp.v
    │   ├── factorial.v
    │   ├── factorial_tables.v
    │   ├── factorial_test.v
    │   ├── floor.js.v
    │   ├── floor.v
    │   ├── floor_test.v
    │   ├── fractions/
    │   │   ├── approximations.v
    │   │   ├── approximations_test.v
    │   │   ├── fraction.v
    │   │   └── fraction_test.v
    │   ├── gamma.v
    │   ├── gamma_tables.v
    │   ├── hypot.v
    │   ├── internal/
    │   │   └── machine.v
    │   ├── interpolation.v
    │   ├── interpolation_bezier.v
    │   ├── interpolation_test.v
    │   ├── invhyp.v
    │   ├── invhyp_test.v
    │   ├── invtrig.js.v
    │   ├── invtrig.v
    │   ├── limit.v
    │   ├── log.c.v
    │   ├── log.v
    │   ├── log_test.v
    │   ├── math.c.v
    │   ├── math.v
    │   ├── math_bench_test.v
    │   ├── math_test.v
    │   ├── min_max_abs.v
    │   ├── min_max_abs_test.v
    │   ├── modf.v
    │   ├── modulo.v
    │   ├── modulo_test.v
    │   ├── nextafter.v
    │   ├── poly.v
    │   ├── pow.c.v
    │   ├── pow.v
    │   ├── q_rsqrt.v
    │   ├── scalbn.v
    │   ├── sin.c.v
    │   ├── sin.js.v
    │   ├── sin.v
    │   ├── sinh.js.v
    │   ├── sinh.v
    │   ├── sqrt.c.v
    │   ├── sqrt.v
    │   ├── square.v
    │   ├── square_test.v
    │   ├── stats/
    │   │   ├── stats.v
    │   │   └── stats_test.v
    │   ├── tan.c.v
    │   ├── tan.js.v
    │   ├── tan.v
    │   ├── tanh.js.v
    │   ├── tanh.v
    │   ├── unsafe.js.v
    │   ├── unsafe.v
    │   ├── unsigned/
    │   │   ├── uint128.v
    │   │   ├── uint128_test.v
    │   │   ├── uint256.v
    │   │   └── uint256_test.v
    │   └── vec/
    │       ├── vec2.v
    │       ├── vec2_test.v
    │       ├── vec3.v
    │       ├── vec3_test.v
    │       ├── vec4.v
    │       └── vec4_test.v
    ├── net/
    │   ├── README.md
    │   ├── aasocket.c.v
    │   ├── address.c.v
    │   ├── address_android.c.v
    │   ├── address_darwin.c.v
    │   ├── address_default.c.v
    │   ├── address_dragonfly.c.v
    │   ├── address_freebsd.c.v
    │   ├── address_linux.c.v
    │   ├── address_netbsd.c.v
    │   ├── address_openbsd.c.v
    │   ├── address_test.c.v
    │   ├── address_windows.c.v
    │   ├── afunix.h
    │   ├── common.c.v
    │   ├── connection.v
    │   ├── conv/
    │   │   ├── README.md
    │   │   ├── conv.v
    │   │   └── conv_test.v
    │   ├── dial_tcp_with_bind_test.v
    │   ├── dialer.v
    │   ├── errors.c.v
    │   ├── ftp/
    │   │   ├── ftp.v
    │   │   └── ftp_test.v
    │   ├── html/
    │   │   ├── README.md
    │   │   ├── data_structures.v
    │   │   ├── dom.v
    │   │   ├── dom_test.v
    │   │   ├── html.v
    │   │   ├── html_test.v
    │   │   ├── parser.v
    │   │   ├── parser_test.v
    │   │   ├── tag.v
    │   │   └── tag_test.v
    │   ├── http/
    │   │   ├── backend.c.v
    │   │   ├── backend_vschannel_windows.c.v
    │   │   ├── build_request_headers_test.v
    │   │   ├── chunked/
    │   │   │   ├── dechunk.v
    │   │   │   └── dechunk_test.v
    │   │   ├── cookie.v
    │   │   ├── cookie_test.v
    │   │   ├── download.v
    │   │   ├── download_nix.c.v
    │   │   ├── download_progress.v
    │   │   ├── download_silent_downloader.v
    │   │   ├── download_terminal_downloader.v
    │   │   ├── download_windows.c.v
    │   │   ├── file/
    │   │   │   ├── entity.v
    │   │   │   ├── folder_index.v
    │   │   │   └── static_server.v
    │   │   ├── header.v
    │   │   ├── header_test.v
    │   │   ├── http.v
    │   │   ├── http_httpbin_test.v
    │   │   ├── http_proxy.v
    │   │   ├── http_proxy_test.v
    │   │   ├── http_test.v
    │   │   ├── method.v
    │   │   ├── mime/
    │   │   │   ├── build.vsh
    │   │   │   ├── db.v
    │   │   │   ├── mime.v
    │   │   │   └── mime_test.v
    │   │   ├── request.v
    │   │   ├── request_receive_test.v
    │   │   ├── request_test.v
    │   │   ├── response.v
    │   │   ├── response_test.v
    │   │   ├── server.v
    │   │   ├── server_test.v
    │   │   ├── status.v
    │   │   ├── status_test.v
    │   │   ├── util.v
    │   │   └── version.v
    │   ├── ipv6_v6only.h
    │   ├── jsonrpc/
    │   │   ├── README.md
    │   │   ├── client.v
    │   │   ├── interceptors.v
    │   │   ├── jsonrpc.v
    │   │   ├── jsonrpc_test.v
    │   │   ├── logging.v
    │   │   ├── server.v
    │   │   └── server_test.v
    │   ├── mbedtls/
    │   │   ├── mbedtls.c.v
    │   │   ├── mbedtls_compiles_test.v
    │   │   ├── mbedtls_sslconn_shutdown_does_not_panic_test.v
    │   │   └── ssl_connection.c.v
    │   ├── net_nix.c.v
    │   ├── net_windows.c.v
    │   ├── openssl/
    │   │   ├── openssl.c.v
    │   │   ├── openssl_compiles_test.c.v
    │   │   ├── openssl_import_tcp_accept_test.c.v
    │   │   ├── openssl_openbsd.c.v
    │   │   └── ssl_connection.c.v
    │   ├── raw.c.v
    │   ├── raw_test.v
    │   ├── smtp/
    │   │   ├── smtp.v
    │   │   └── smtp_test.v
    │   ├── socket.c.v
    │   ├── socket_options.c.v
    │   ├── socks/
    │   │   ├── socks5.v
    │   │   └── socks5_test.v
    │   ├── ssl/
    │   │   ├── dialer.v
    │   │   ├── ssl_compiles_test.v
    │   │   ├── ssl_d_use_openssl.v
    │   │   └── ssl_notd_use_openssl.v
    │   ├── tcp.c.v
    │   ├── tcp_non_blocking_test.v
    │   ├── tcp_read_line.c.v
    │   ├── tcp_self_dial_from_many_clients_test.v
    │   ├── tcp_simple_client_server_test.v
    │   ├── tcp_test.v
    │   ├── udp.c.v
    │   ├── udp_test.v
    │   ├── unix/
    │   │   ├── aasocket.c.v
    │   │   ├── common.c.v
    │   │   ├── stream.c.v
    │   │   ├── unix_socket_test.v
    │   │   └── use_net_and_net_unix_together_test.v
    │   ├── urllib/
    │   │   ├── urllib.v
    │   │   ├── urllib_test.v
    │   │   ├── values.v
    │   │   └── values_test.v
    │   ├── util.v
    │   ├── utils_test.v
    │   └── websocket/
    │       ├── events.v
    │       ├── handshake.v
    │       ├── io.v
    │       ├── message.v
    │       ├── tests/
    │       │   └── autobahn/
    │       │       ├── README.md
    │       │       ├── autobahn_client.v
    │       │       ├── autobahn_client_wss.v
    │       │       ├── autobahn_server.v
    │       │       ├── docker-compose.yml
    │       │       ├── fuzzing_server/
    │       │       │   ├── Dockerfile
    │       │       │   ├── check_results.py
    │       │       │   └── config/
    │       │       │       ├── fuzzingclient.json
    │       │       │       └── fuzzingserver.json
    │       │       ├── fuzzing_server_wss/
    │       │       │   ├── Dockerfile
    │       │       │   ├── check_results.py
    │       │       │   └── config/
    │       │       │       ├── fuzzingserver.json
    │       │       │       ├── server.crt
    │       │       │       ├── server.csr
    │       │       │       ├── server.key
    │       │       │       └── server.pem
    │       │       ├── local_run/
    │       │       │   ├── Dockerfile
    │       │       │   ├── autobahn_client.v
    │       │       │   └── autobahn_client_wss.v
    │       │       └── ws_test/
    │       │           └── Dockerfile
    │       ├── uri.v
    │       ├── utils.v
    │       ├── websocket_client.v
    │       ├── websocket_nix.c.v
    │       ├── websocket_server.v
    │       ├── websocket_test.v
    │       └── websocket_windows.c.v
    ├── orm/
    │   ├── README.md
    │   ├── orm.v
    │   ├── orm_aggregate_test.v
    │   ├── orm_complex_where_test.v
    │   ├── orm_create_and_drop_test.v
    │   ├── orm_custom_operators_test.v
    │   ├── orm_embed_test.v
    │   ├── orm_fk_test.v
    │   ├── orm_fn_calls_test.v
    │   ├── orm_fn_test.v
    │   ├── orm_func.v
    │   ├── orm_func_test.v
    │   ├── orm_generic_struct_field_test.v
    │   ├── orm_generic_test.v
    │   ├── orm_generic_where_shadow_test.v
    │   ├── orm_insert_reserved_name_test.v
    │   ├── orm_insert_test.v
    │   ├── orm_interface_test.v
    │   ├── orm_join_test.v
    │   ├── orm_last_id_test.v
    │   ├── orm_mut_connection_test.v
    │   ├── orm_mut_db_test.v
    │   ├── orm_nested_struct_test.v
    │   ├── orm_null_test.v
    │   ├── orm_option_array_test.v
    │   ├── orm_option_subselect_test.v
    │   ├── orm_option_time_test.v
    │   ├── orm_order_by_custom_field_test.v
    │   ├── orm_references_test.v
    │   ├── orm_result_test.v
    │   ├── orm_serial_attribute_test.v
    │   ├── orm_sql_or_blocks_test.v
    │   ├── orm_string_interpolation_in_where_test.v
    │   ├── orm_sum_type_insert_test.v
    │   ├── orm_test.v
    │   ├── orm_transaction_test.v
    │   ├── orm_where_in_test.v
    │   └── transaction.v
    ├── os/
    │   ├── README.md
    │   ├── args.v
    │   ├── asset/
    │   │   ├── README.md
    │   │   └── asset.v
    │   ├── bare/
    │   │   └── bare_example_linux.v
    │   ├── cmdline/
    │   │   ├── cmdline.v
    │   │   └── cmdline_test.v
    │   ├── command.c.v
    │   ├── command_test.v
    │   ├── const.v
    │   ├── const_nix.c.v
    │   ├── const_windows.c.v
    │   ├── debugger_darwin.c.v
    │   ├── debugger_default.c.v
    │   ├── debugger_freebsd.c.v
    │   ├── debugger_linux.c.v
    │   ├── debugger_openbsd.c.v
    │   ├── debugger_windows.c.v
    │   ├── dir_expansions_test.v
    │   ├── environment.c.v
    │   ├── environment.js.v
    │   ├── environment_test.v
    │   ├── fd.c.v
    │   ├── file.c.v
    │   ├── file.js.v
    │   ├── file_buffering.c.v
    │   ├── file_buffering_test.v
    │   ├── file_le_be.c.v
    │   ├── file_le_be_test.v
    │   ├── file_test.v
    │   ├── filelock/
    │   │   ├── filelock_test.v
    │   │   ├── lib.v
    │   │   ├── lib_nix.c.v
    │   │   └── lib_windows.c.v
    │   ├── filepath.v
    │   ├── filepath_test.v
    │   ├── filepath_windows.v
    │   ├── find_abs_path_of_executable_test.v
    │   ├── font/
    │   │   └── font.v
    │   ├── glob_test.v
    │   ├── inode.c.v
    │   ├── inode_test.v
    │   ├── join_path_test.v
    │   ├── notify/
    │   │   ├── backend_darwin.c.v
    │   │   ├── backend_default.c.v
    │   │   ├── backend_linux.c.v
    │   │   ├── kqueue.h
    │   │   ├── notify.v
    │   │   └── notify_test.c.v
    │   ├── open_and_read_from_file_test.js.v
    │   ├── open_uri_default.c.v
    │   ├── open_uri_windows.c.v
    │   ├── os.c.v
    │   ├── os.js.v
    │   ├── os.v
    │   ├── os_android_outside_termux.c.v
    │   ├── os_args_autofree_test.v
    │   ├── os_darwin.c.v
    │   ├── os_js.js.v
    │   ├── os_linux.c.v
    │   ├── os_nix.c.v
    │   ├── os_stat_default.c.v
    │   ├── os_stat_test.v
    │   ├── os_stat_windows.c.v
    │   ├── os_structs_dirent_default.c.v
    │   ├── os_structs_sigaction_default.c.v
    │   ├── os_structs_stat_default.c.v
    │   ├── os_structs_stat_linux.c.v
    │   ├── os_structs_stat_windows.c.v
    │   ├── os_structs_utsname_default.c.v
    │   ├── os_test.c.v
    │   ├── os_windows.c.v
    │   ├── password_nix.c.v
    │   ├── password_windows.c.v
    │   ├── pipe.c.v
    │   ├── pipe_test.c.v
    │   ├── process.c.v
    │   ├── process.js.v
    │   ├── process.v
    │   ├── process_args_test.v
    │   ├── process_nix.c.v
    │   ├── process_test.v
    │   ├── process_windows.c.v
    │   ├── signal.c.v
    │   ├── signal.js.v
    │   ├── signal.v
    │   ├── signal_darwin.c.v
    │   ├── signal_default.c.v
    │   ├── signal_linux.c.v
    │   ├── signal_test.v
    │   ├── signal_windows.c.v
    │   ├── sleeping.c.v
    │   ├── sleeping.js.v
    │   ├── util/
    │   │   └── util.v
    │   └── xdg_test.v
    ├── picoev/
    │   ├── README.md
    │   ├── constants_default.c.v
    │   ├── constants_windows.c.v
    │   ├── logging.v
    │   ├── loop_default.c.v
    │   ├── loop_freebsd.c.v
    │   ├── loop_linux.c.v
    │   ├── loop_macos.c.v
    │   ├── loop_openbsd.c.v
    │   ├── loop_termux.c.v
    │   ├── picoev.v
    │   ├── picoev_test.v
    │   └── socket_util.c.v
    ├── picohttpparser/
    │   ├── README.md
    │   ├── misc.v
    │   ├── misc_test.v
    │   ├── picohttpparser.v
    │   ├── request.v
    │   ├── request_test.v
    │   └── response.c.v
    ├── pool/
    │   ├── README.md
    │   ├── connection.v
    │   └── connection_test.v
    ├── rand/
    │   ├── README.md
    │   ├── buffer/
    │   │   └── buffer.v
    │   ├── config/
    │   │   └── config.v
    │   ├── cuid2/
    │   │   ├── cuid2.v
    │   │   └── cuid2_test.v
    │   ├── dist_test.v
    │   ├── fp_test.v
    │   ├── mini_math.v
    │   ├── mt19937/
    │   │   ├── mt19937.v
    │   │   └── mt19937_test.v
    │   ├── musl/
    │   │   ├── musl_rng.v
    │   │   └── musl_rng_test.v
    │   ├── pcg32/
    │   │   ├── pcg32.v
    │   │   └── pcg32_test.v
    │   ├── rand.c.v
    │   ├── rand.js.v
    │   ├── rand.v
    │   ├── rand_test.js.v
    │   ├── random_bytes_test.v
    │   ├── random_identifiers_test.v
    │   ├── random_numbers_test.v
    │   ├── seed/
    │   │   └── seed.v
    │   ├── splitmix64/
    │   │   ├── splitmix64.v
    │   │   └── splitmix64_test.v
    │   ├── sys/
    │   │   ├── system_rng.c.v
    │   │   ├── system_rng.js.v
    │   │   └── system_rng_test.v
    │   ├── wyrand/
    │   │   ├── wyrand.js.v
    │   │   ├── wyrand.v
    │   │   ├── wyrand_test.v
    │   │   └── z_wyrand.c.v
    │   └── xoroshiro128pp/
    │       ├── xoros128pp.v
    │       └── xoros128pp_test.v
    ├── readline/
    │   ├── README.md
    │   ├── readline.v
    │   ├── readline_default.c.v
    │   ├── readline_js.js.v
    │   ├── readline_nix.c.v
    │   ├── readline_test.v
    │   └── readline_windows.c.v
    ├── regex/
    │   ├── README.md
    │   ├── pcre/
    │   │   ├── README.md
    │   │   ├── regex.v
    │   │   └── regex_test.v
    │   ├── regex.v
    │   ├── regex_anchor_test.v
    │   ├── regex_complex_test.v
    │   ├── regex_opt.v
    │   ├── regex_test.v
    │   └── regex_util.v
    ├── runtime/
    │   ├── README.md
    │   ├── free_memory_impl_darwin.c.v
    │   ├── free_memory_impl_default.c.v
    │   ├── free_memory_impl_freebsd.c.v
    │   ├── free_memory_impl_linux.c.v
    │   ├── free_memory_impl_openbsd.c.v
    │   ├── runtime.v
    │   ├── runtime_nix.c.v
    │   ├── runtime_test.v
    │   ├── runtime_windows.c.v
    │   ├── used_memory_darwin.c.v
    │   ├── used_memory_default.c.v
    │   ├── used_memory_freebsd.c.v
    │   ├── used_memory_linux.c.v
    │   ├── used_memory_openbsd.c.v
    │   ├── used_memory_test.v
    │   └── used_memory_windows.c.v
    ├── semver/
    │   ├── LICENSE.md
    │   ├── README.md
    │   ├── compare.v
    │   ├── parse.v
    │   ├── range.v
    │   ├── semver.v
    │   ├── semver_test.v
    │   └── util.v
    ├── sokol/
    │   ├── README.md
    │   ├── audio/
    │   │   └── audio.c.v
    │   ├── c/
    │   │   └── declaration.c.v
    │   ├── gfx/
    │   │   ├── enums.v
    │   │   ├── gfx.c.v
    │   │   ├── gfx_allocator_and_logger.c.v
    │   │   ├── gfx_funcs.c.v
    │   │   ├── gfx_structs.c.v
    │   │   └── gfx_utils.c.v
    │   ├── memory/
    │   │   └── memory.c.v
    │   ├── sapp/
    │   │   ├── enums.v
    │   │   ├── sapp.v
    │   │   ├── sapp_egl_linux.v
    │   │   ├── sapp_funcs.c.v
    │   │   ├── sapp_linux.c.v
    │   │   ├── sapp_state.v
    │   │   ├── sapp_state_linux.v
    │   │   ├── sapp_structs.c.v
    │   │   ├── sapp_v.v
    │   │   ├── sapp_wayland_linux.v
    │   │   ├── sapp_x11_linux.v
    │   │   └── screenshot.v
    │   ├── sfons/
    │   │   └── sfons.v
    │   ├── sgl/
    │   │   ├── enums.v
    │   │   ├── matrix.v
    │   │   ├── sgl.v
    │   │   ├── sgl_structs.v
    │   │   └── shaders.v
    │   └── sokol.v
    ├── stbi/
    │   ├── README.md
    │   ├── link_to_libm.c.v
    │   ├── stbi.c.v
    │   └── stbi_test.v
    ├── strconv/
    │   ├── README.md
    │   ├── atof.c.v
    │   ├── atof.js.v
    │   ├── atof_test.c.v
    │   ├── atofq.c.v
    │   ├── atoi.v
    │   ├── atoi_test.v
    │   ├── atou.v
    │   ├── atou_test.v
    │   ├── bare/
    │   │   └── str_array_example.v
    │   ├── converter_test.v
    │   ├── f32_f64_to_string_test.v
    │   ├── f32_str.c.v
    │   ├── f32_str.js.v
    │   ├── f32_str_should_be_different_test.v
    │   ├── f32_ten_pow_table_range_test.v
    │   ├── f64_str.c.v
    │   ├── f64_str.js.v
    │   ├── f64_str.v
    │   ├── format.md
    │   ├── format.v
    │   ├── format_mem.c.v
    │   ├── format_mem.js.v
    │   ├── format_test.v
    │   ├── ftoa.c.v
    │   ├── number_to_base.c.v
    │   ├── number_to_base_test.v
    │   ├── structs.v
    │   ├── tables.v
    │   ├── utilities.c.v
    │   ├── utilities.v
    │   └── vprintf.c.v
    ├── strings/
    │   ├── README.md
    │   ├── builder.c.v
    │   ├── builder.js.v
    │   ├── builder_test.js.v
    │   ├── builder_test.v
    │   ├── lorem/
    │   │   ├── lorem.v
    │   │   └── lorem_test.v
    │   ├── similarity.v
    │   ├── similarity_test.js.v
    │   ├── similarity_test.v
    │   ├── strings.c.v
    │   ├── strings.js.v
    │   ├── strings.v
    │   ├── strings_test.js.v
    │   ├── strings_test.v
    │   └── textscanner/
    │       ├── textscanner.v
    │       ├── textscanner_test.js.v
    │       └── textscanner_test.v
    ├── sync/
    │   ├── README.md
    │   ├── array_rlock_test.v
    │   ├── bench/
    │   │   ├── channel_bench_go.go
    │   │   ├── channel_bench_v.v
    │   │   ├── many_writers_and_receivers_on_1_channel.v
    │   │   ├── results.md
    │   │   └── run_bench.v
    │   ├── chan_mod_sync_test.v
    │   ├── channel_1_test.v
    │   ├── channel_2_test.v
    │   ├── channel_3_test.v
    │   ├── channel_4_test.v
    │   ├── channel_array_mut_test.v
    │   ├── channel_close_test.v
    │   ├── channel_fill_test.v
    │   ├── channel_opt_propagate_test.v
    │   ├── channel_polling_test.v
    │   ├── channel_push_or_1_test.v
    │   ├── channel_push_or_2_test.v
    │   ├── channel_select_2_test.v
    │   ├── channel_select_3_test.v
    │   ├── channel_select_4_test.v
    │   ├── channel_select_5_test.v
    │   ├── channel_select_6_test.v
    │   ├── channel_select_test.v
    │   ├── channel_try_buf_test.v
    │   ├── channel_try_unbuf_test.v
    │   ├── channels.c.v
    │   ├── channels.js.v
    │   ├── common_mutex.v
    │   ├── cond.v
    │   ├── cond_test.v
    │   ├── empty_struct_chan_init_test.v
    │   ├── many_times.v
    │   ├── many_times_test.v
    │   ├── mutex_test.v
    │   ├── once.v
    │   ├── once_test.v
    │   ├── once_with_param_test.v
    │   ├── pool/
    │   │   ├── README.md
    │   │   ├── pool.c.v
    │   │   └── pool_test.v
    │   ├── rwmutex_test.v
    │   ├── select_close_test.v
    │   ├── spinlock_test.v
    │   ├── stdatomic/
    │   │   ├── 1.declarations.c.v
    │   │   ├── atomic.c.v
    │   │   └── atomic_test.v
    │   ├── struct_chan_init_test.v
    │   ├── sync.c.v
    │   ├── sync_darwin.c.v
    │   ├── sync_default.c.v
    │   ├── sync_freebsd.c.v
    │   ├── sync_windows.c.v
    │   ├── thread_default.c.v
    │   ├── thread_test.v
    │   ├── thread_windows.c.v
    │   ├── threads/
    │   │   ├── threads.c.v
    │   │   └── threads.v
    │   ├── tls.v
    │   ├── tls_default.c.v
    │   ├── tls_test.v
    │   ├── tls_windows.c.v
    │   ├── waitgroup.c.v
    │   └── waitgroup_test.v
    ├── term/
    │   ├── README.md
    │   ├── colors.v
    │   ├── control.v
    │   ├── declarations_default.c.v
    │   ├── declarations_linux.c.v
    │   ├── term.js.v
    │   ├── term.v
    │   ├── term_nix.c.v
    │   ├── term_test.v
    │   ├── term_windows.c.v
    │   ├── termios/
    │   │   ├── termios_android.c.v
    │   │   ├── termios_darwin.c.v
    │   │   ├── termios_default.c.v
    │   │   ├── termios_dragonfly.c.v
    │   │   ├── termios_freebsd.c.v
    │   │   ├── termios_linux.c.v
    │   │   ├── termios_netbsd.c.v
    │   │   ├── termios_openbsd.c.v
    │   │   ├── termios_qnx.c.v
    │   │   ├── termios_solaris.c.v
    │   │   ├── termios_test.c.v
    │   │   └── termios_windows.c.v
    │   ├── ui/
    │   │   ├── 1_term_and_ui_compilation_test.v
    │   │   ├── 2_term_and_ui_compilation_test.v
    │   │   ├── README.md
    │   │   ├── color.v
    │   │   ├── consoleapi_windows.c.v
    │   │   ├── input.v
    │   │   ├── input_nix.c.v
    │   │   ├── input_windows.c.v
    │   │   ├── termios_nix.c.v
    │   │   ├── termios_nix_test.v
    │   │   ├── ui.c.v
    │   │   └── ui_test.v
    │   └── utf8.v
    ├── time/
    │   ├── README.md
    │   ├── Y2K38_test.v
    │   ├── bare/
    │   │   └── time_now_example.v
    │   ├── chrono.c.v
    │   ├── chrono.v
    │   ├── chrono_test.v
    │   ├── custom_format_test.v
    │   ├── date_time_parser.v
    │   ├── duration.v
    │   ├── duration_test.v
    │   ├── format.v
    │   ├── json_custom.c.v
    │   ├── misc/
    │   │   ├── misc.v
    │   │   └── misc_test.v
    │   ├── operator.v
    │   ├── operator_test.v
    │   ├── parse.c.v
    │   ├── parse.js.v
    │   ├── parse.v
    │   ├── parse_autofree_test.v
    │   ├── parse_test.v
    │   ├── relative_test.v
    │   ├── stopwatch.v
    │   ├── stopwatch_test.v
    │   ├── time.c.v
    │   ├── time.js.v
    │   ├── time.v
    │   ├── time_addition_test.v
    │   ├── time_darwin.c.v
    │   ├── time_format_test.v
    │   ├── time_js.js.v
    │   ├── time_linux.c.v
    │   ├── time_nix.c.v
    │   ├── time_solaris.c.v
    │   ├── time_test.c.v
    │   ├── time_test.v
    │   ├── time_windows.c.v
    │   ├── unix.v
    │   ├── unix_test.v
    │   └── utc_vs_local_time_test.v
    ├── toml/
    │   ├── README.md
    │   ├── any.v
    │   ├── ast/
    │   │   ├── ast.v
    │   │   ├── types.v
    │   │   └── walker/
    │   │       └── walker.v
    │   ├── checker/
    │   │   └── checker.v
    │   ├── decoder/
    │   │   └── decoder.v
    │   ├── input/
    │   │   └── input.v
    │   ├── parser/
    │   │   └── parser.v
    │   ├── scanner/
    │   │   ├── scanner.v
    │   │   └── scanner_test.v
    │   ├── tests/
    │   │   ├── array_of_tables_1_level_test.v
    │   │   ├── array_of_tables_2_level_test.v
    │   │   ├── array_of_tables_array_test.v
    │   │   ├── array_of_tables_edge_case_1_test.v
    │   │   ├── array_of_tables_edge_case_2_test.v
    │   │   ├── compact_test.v
    │   │   ├── crlf_test.v
    │   │   ├── datetime_test.v
    │   │   ├── default_to_test.v
    │   │   ├── default_value_test.v
    │   │   ├── encode_and_decode_test.v
    │   │   ├── iarna_toml_spec_test.v
    │   │   ├── inline_test.v
    │   │   ├── json_encoding_test.v
    │   │   ├── json_test.v
    │   │   ├── key_test.v
    │   │   ├── large_toml_file_test.v
    │   │   ├── nested_test.v
    │   │   ├── quoted_keys_test.v
    │   │   ├── quoted_string_crlf_test.v
    │   │   ├── reflect_test.v
    │   │   ├── spaced_keys_test.v
    │   │   ├── strings_test.v
    │   │   ├── table_test.v
    │   │   ├── testdata/
    │   │   │   ├── .gitignore
    │   │   │   ├── array_of_tables_1_level_test.out
    │   │   │   ├── array_of_tables_2_level_test.out
    │   │   │   ├── array_of_tables_array_test.out
    │   │   │   ├── array_of_tables_edge_case_1_test.out
    │   │   │   ├── array_of_tables_edge_case_1_test.toml
    │   │   │   ├── array_of_tables_edge_case_2_test.out
    │   │   │   ├── array_of_tables_edge_case_2_test.toml
    │   │   │   ├── json_encoding_test.out
    │   │   │   ├── json_encoding_test.toml
    │   │   │   ├── json_test.out
    │   │   │   ├── json_test.toml
    │   │   │   ├── key_test.out
    │   │   │   ├── key_test.toml
    │   │   │   ├── strings_test.toml
    │   │   │   ├── toml_test.out
    │   │   │   ├── toml_test.toml
    │   │   │   ├── toml_with_utf16_bom.toml
    │   │   │   ├── toml_with_utf32_bom.toml
    │   │   │   └── toml_with_utf8_bom.toml
    │   │   ├── toml_attrs_test.v
    │   │   ├── toml_bom_test.v
    │   │   ├── toml_lang_test.v
    │   │   ├── toml_memory_corruption_test.v
    │   │   ├── toml_rs_test.v
    │   │   ├── toml_test.v
    │   │   ├── toml_types_test.v
    │   │   └── value_query_test.v
    │   ├── to/
    │   │   └── to.v
    │   ├── token/
    │   │   ├── pos.v
    │   │   └── token.v
    │   ├── toml.v
    │   └── util/
    │       └── util.v
    ├── v/
    │   ├── README.md
    │   ├── TEMPLATES.md
    │   ├── ast/
    │   │   ├── ast.v
    │   │   ├── attr.v
    │   │   ├── cflags.v
    │   │   ├── cflags_test.v
    │   │   ├── comptime_const_values.v
    │   │   ├── comptime_valid_idents.v
    │   │   ├── embed_file.v
    │   │   ├── init.v
    │   │   ├── native.v
    │   │   ├── scope.v
    │   │   ├── str.v
    │   │   ├── table.v
    │   │   ├── table_test.v
    │   │   ├── type_size_test.v
    │   │   ├── types.v
    │   │   ├── types_test.v
    │   │   └── walker/
    │   │       ├── walker.v
    │   │       └── walker_test.v
    │   ├── build_constraint/
    │   │   ├── ast.v
    │   │   ├── constraint_test.v
    │   │   ├── evaluating.v
    │   │   ├── lexing.v
    │   │   ├── parsing.v
    │   │   └── public.v
    │   ├── builder/
    │   │   ├── builder.v
    │   │   ├── builder_test.v
    │   │   ├── cbuilder/
    │   │   │   ├── cbuilder.v
    │   │   │   └── parallel_cc.v
    │   │   ├── cc.v
    │   │   ├── cc_tcc_retry_test.v
    │   │   ├── cc_test.v
    │   │   ├── cc_windows.v
    │   │   ├── cflags.v
    │   │   ├── compile.v
    │   │   ├── dump_lists.v
    │   │   ├── golangbuilder/
    │   │   │   └── golangbuilder.v
    │   │   ├── interpreterbuilder/
    │   │   │   ├── ibuilder.v
    │   │   │   └── v_interpret_test.v
    │   │   ├── jsbuilder/
    │   │   │   └── jsbuilder.v
    │   │   ├── msvc.v
    │   │   ├── msvc_windows.v
    │   │   ├── nativebuilder/
    │   │   │   └── nativebuilder.v
    │   │   ├── rebuilding.v
    │   │   └── wasmbuilder/
    │   │       └── wasmbuilder.v
    │   ├── callgraph/
    │   │   └── callgraph.v
    │   ├── cflag/
    │   │   └── cflags.v
    │   ├── checker/
    │   │   ├── assign.v
    │   │   ├── autocomplete.v
    │   │   ├── check_types.v
    │   │   ├── checker.v
    │   │   ├── comptime.v
    │   │   ├── containers.v
    │   │   ├── errors.v
    │   │   ├── fn.v
    │   │   ├── for.v
    │   │   ├── if.v
    │   │   ├── infix.v
    │   │   ├── interface.v
    │   │   ├── lambda_expr.v
    │   │   ├── match.v
    │   │   ├── orm.v
    │   │   ├── postfix.v
    │   │   ├── return.v
    │   │   ├── str.v
    │   │   ├── struct.v
    │   │   ├── tests/
    │   │   │   ├── .gitattributes
    │   │   │   ├── .gitignore
    │   │   │   ├── a_test_file_with_0_test_fns_test.out
    │   │   │   ├── a_test_file_with_0_test_fns_test.vv
    │   │   │   ├── add_op_wrong_type_err.out
    │   │   │   ├── add_op_wrong_type_err.vv
    │   │   │   ├── addr.out
    │   │   │   ├── addr.vv
    │   │   │   ├── addr_of_invalid_expr.out
    │   │   │   ├── addr_of_invalid_expr.vv
    │   │   │   ├── alias_array_unknown_op_overloading_err.out
    │   │   │   ├── alias_array_unknown_op_overloading_err.vv
    │   │   │   ├── alias_map_unknown_op_overloading_err.out
    │   │   │   ├── alias_map_unknown_op_overloading_err.vv
    │   │   │   ├── alias_to_generic_err.out
    │   │   │   ├── alias_to_generic_err.vv
    │   │   │   ├── alias_to_option_err.out
    │   │   │   ├── alias_to_option_err.vv
    │   │   │   ├── alias_type_cast_option_result_unhandled_err.out
    │   │   │   ├── alias_type_cast_option_result_unhandled_err.vv
    │   │   │   ├── alias_type_unknown.out
    │   │   │   ├── alias_type_unknown.vv
    │   │   │   ├── always_true_false_branch.out
    │   │   │   ├── always_true_false_branch.vv
    │   │   │   ├── ambiguous_field_method_err.out
    │   │   │   ├── ambiguous_field_method_err.vv
    │   │   │   ├── ambiguous_function_call.out
    │   │   │   ├── ambiguous_function_call.vv
    │   │   │   ├── amod/
    │   │   │   │   └── amod.v
    │   │   │   ├── anon_arg_redefinition_err.out
    │   │   │   ├── anon_arg_redefinition_err.vv
    │   │   │   ├── anon_fn_arg_type_err.out
    │   │   │   ├── anon_fn_arg_type_err.vv
    │   │   │   ├── anon_fn_without_body.out
    │   │   │   ├── anon_fn_without_body.vv
    │   │   │   ├── anon_missing_generic_err.out
    │   │   │   ├── anon_missing_generic_err.vv
    │   │   │   ├── anon_struct_assign_err.out
    │   │   │   ├── anon_struct_assign_err.vv
    │   │   │   ├── anon_structs_visibility/
    │   │   │   │   ├── amod/
    │   │   │   │   │   └── amod.v
    │   │   │   │   └── main.v
    │   │   │   ├── anon_structs_visibility.out
    │   │   │   ├── any_int_float_ban_err.out
    │   │   │   ├── any_int_float_ban_err.vv
    │   │   │   ├── any_return_type_err.out
    │   │   │   ├── any_return_type_err.vv
    │   │   │   ├── any_type_err.out
    │   │   │   ├── any_type_err.vv
    │   │   │   ├── append_err.out
    │   │   │   ├── append_err.vv
    │   │   │   ├── array_append_array_type_mismatch_err.out
    │   │   │   ├── array_append_array_type_mismatch_err.vv
    │   │   │   ├── array_assign_err.out
    │   │   │   ├── array_assign_err.vv
    │   │   │   ├── array_builtin_method_args_err.out
    │   │   │   ├── array_builtin_method_args_err.vv
    │   │   │   ├── array_builtin_redefinition.out
    │   │   │   ├── array_builtin_redefinition.vv
    │   │   │   ├── array_cmp_err.out
    │   │   │   ├── array_cmp_err.vv
    │   │   │   ├── array_contains_args_err.out
    │   │   │   ├── array_contains_args_err.vv
    │   │   │   ├── array_count_err.out
    │   │   │   ├── array_count_err.vv
    │   │   │   ├── array_declare_element_a.out
    │   │   │   ├── array_declare_element_a.vv
    │   │   │   ├── array_declare_element_b.out
    │   │   │   ├── array_declare_element_b.vv
    │   │   │   ├── array_declare_element_c.out
    │   │   │   ├── array_declare_element_c.vv
    │   │   │   ├── array_delete_arg_mismatch_err.out
    │   │   │   ├── array_delete_arg_mismatch_err.vv
    │   │   │   ├── array_delete_imut_err.out
    │   │   │   ├── array_delete_imut_err.vv
    │   │   │   ├── array_delete_print_err.out
    │   │   │   ├── array_delete_print_err.vv
    │   │   │   ├── array_element_type.out
    │   │   │   ├── array_element_type.vv
    │   │   │   ├── array_fancy_sort_err.out
    │   │   │   ├── array_fancy_sort_err.vv
    │   │   │   ├── array_filter_arg_mismatch_err.out
    │   │   │   ├── array_filter_arg_mismatch_err.vv
    │   │   │   ├── array_filter_fn_err.out
    │   │   │   ├── array_filter_fn_err.vv
    │   │   │   ├── array_filter_map_array_expression_as_argument_err.out
    │   │   │   ├── array_filter_map_array_expression_as_argument_err.vv
    │   │   │   ├── array_filter_map_option_function_err.out
    │   │   │   ├── array_filter_map_option_function_err.vv
    │   │   │   ├── array_fixed_no_free_method_call_err.out
    │   │   │   ├── array_fixed_no_free_method_call_err.vv
    │   │   │   ├── array_generic_methods_err.out
    │   │   │   ├── array_generic_methods_err.vv
    │   │   │   ├── array_index.out
    │   │   │   ├── array_index.vv
    │   │   │   ├── array_index_args_err.out
    │   │   │   ├── array_index_args_err.vv
    │   │   │   ├── array_init_decompose_extra_params.out
    │   │   │   ├── array_init_decompose_extra_params.vv
    │   │   │   ├── array_init_element_option_mismatch_err.out
    │   │   │   ├── array_init_element_option_mismatch_err.vv
    │   │   │   ├── array_init_option_err.out
    │   │   │   ├── array_init_option_err.vv
    │   │   │   ├── array_init_ptr_non_ptr_elem_err.out
    │   │   │   ├── array_init_ptr_non_ptr_elem_err.vv
    │   │   │   ├── array_init_with_len_cap_err.out
    │   │   │   ├── array_init_with_len_cap_err.vv
    │   │   │   ├── array_init_with_void_value_err.out
    │   │   │   ├── array_init_with_void_value_err.vv
    │   │   │   ├── array_init_without_init_value_err.out
    │   │   │   ├── array_init_without_init_value_err.vv
    │   │   │   ├── array_insert_prepend_args_err.out
    │   │   │   ├── array_insert_prepend_args_err.vv
    │   │   │   ├── array_insert_type_mismatch.out
    │   │   │   ├── array_insert_type_mismatch.vv
    │   │   │   ├── array_insert_val_err.out
    │   │   │   ├── array_insert_val_err.vv
    │   │   │   ├── array_literal_modify_err.out
    │   │   │   ├── array_literal_modify_err.vv
    │   │   │   ├── array_map_arg_mismatch.out
    │   │   │   ├── array_map_arg_mismatch.vv
    │   │   │   ├── array_map_elements_ref_fields_uninitialized_err.out
    │   │   │   ├── array_map_elements_ref_fields_uninitialized_err.vv
    │   │   │   ├── array_map_fn_err.out
    │   │   │   ├── array_map_fn_err.vv
    │   │   │   ├── array_map_void_fn_err.out
    │   │   │   ├── array_map_void_fn_err.vv
    │   │   │   ├── array_method_call_immutable_err.out
    │   │   │   ├── array_method_call_immutable_err.vv
    │   │   │   ├── array_method_invalid_expr.out
    │   │   │   ├── array_method_invalid_expr.vv
    │   │   │   ├── array_none_element_err.out
    │   │   │   ├── array_none_element_err.vv
    │   │   │   ├── array_of_generic_struct_init_err.out
    │   │   │   ├── array_of_generic_struct_init_err.vv
    │   │   │   ├── array_of_refs_insert_non_ref.out
    │   │   │   ├── array_of_refs_insert_non_ref.vv
    │   │   │   ├── array_of_refs_mutability.out
    │   │   │   ├── array_of_refs_mutability.vv
    │   │   │   ├── array_of_sumtype_append_err.out
    │   │   │   ├── array_of_sumtype_append_err.vv
    │   │   │   ├── array_or_map_assign_err.out
    │   │   │   ├── array_or_map_assign_err.vv
    │   │   │   ├── array_plus_assign_err.out
    │   │   │   ├── array_plus_assign_err.vv
    │   │   │   ├── array_prepend_type_mismatch.out
    │   │   │   ├── array_prepend_type_mismatch.vv
    │   │   │   ├── array_sort_err.out
    │   │   │   ├── array_sort_err.vv
    │   │   │   ├── array_sort_struct_no_body_err.out
    │   │   │   ├── array_sort_struct_no_body_err.vv
    │   │   │   ├── array_sort_with_compare_err.out
    │   │   │   ├── array_sort_with_compare_err.vv
    │   │   │   ├── array_sort_with_compare_ref_elem_err.out
    │   │   │   ├── array_sort_with_compare_ref_elem_err.vv
    │   │   │   ├── array_sorted_with_compare_err.out
    │   │   │   ├── array_sorted_with_compare_err.vv
    │   │   │   ├── array_voidptr_assign_err.out
    │   │   │   ├── array_voidptr_assign_err.vv
    │   │   │   ├── arraydecompose_arg2_err.out
    │   │   │   ├── arraydecompose_arg2_err.vv
    │   │   │   ├── arraydecompose_arg_err.out
    │   │   │   ├── arraydecompose_arg_err.vv
    │   │   │   ├── arrow_op_wrong_left_type_err_a.out
    │   │   │   ├── arrow_op_wrong_left_type_err_a.vv
    │   │   │   ├── arrow_op_wrong_left_type_err_b.out
    │   │   │   ├── arrow_op_wrong_left_type_err_b.vv
    │   │   │   ├── arrow_op_wrong_right_type_err_a.out
    │   │   │   ├── arrow_op_wrong_right_type_err_a.vv
    │   │   │   ├── arrow_op_wrong_right_type_err_b.out
    │   │   │   ├── arrow_op_wrong_right_type_err_b.vv
    │   │   │   ├── as_cast_option_result_unhandled_err.out
    │   │   │   ├── as_cast_option_result_unhandled_err.vv
    │   │   │   ├── as_cast_selector_expr_err.out
    │   │   │   ├── as_cast_selector_expr_err.vv
    │   │   │   ├── asm_immutable_err.out
    │   │   │   ├── asm_immutable_err.vv
    │   │   │   ├── assert_extra_message.out
    │   │   │   ├── assert_extra_message.vv
    │   │   │   ├── assert_option_err.out
    │   │   │   ├── assert_option_err.vv
    │   │   │   ├── assign_anon_struct_to_typed_struct_err.out
    │   │   │   ├── assign_anon_struct_to_typed_struct_err.vv
    │   │   │   ├── assign_any_err.out
    │   │   │   ├── assign_any_err.vv
    │   │   │   ├── assign_array_init_to_fixed_array_var.out
    │   │   │   ├── assign_array_init_to_fixed_array_var.vv
    │   │   │   ├── assign_array_init_with_no_type.out
    │   │   │   ├── assign_array_init_with_no_type.vv
    │   │   │   ├── assign_blank_none_err.out
    │   │   │   ├── assign_blank_none_err.vv
    │   │   │   ├── assign_const_ptr_int_literal_err.out
    │   │   │   ├── assign_const_ptr_int_literal_err.vv
    │   │   │   ├── assign_deref_fn_call_on_left_side_err.out
    │   │   │   ├── assign_deref_fn_call_on_left_side_err.vv
    │   │   │   ├── assign_enum_at_comptime.out
    │   │   │   ├── assign_enum_at_comptime.vv
    │   │   │   ├── assign_expr_channel_push.out
    │   │   │   ├── assign_expr_channel_push.vv
    │   │   │   ├── assign_expr_type_err_a.out
    │   │   │   ├── assign_expr_type_err_a.vv
    │   │   │   ├── assign_expr_type_err_b.out
    │   │   │   ├── assign_expr_type_err_b.vv
    │   │   │   ├── assign_expr_type_err_c.out
    │   │   │   ├── assign_expr_type_err_c.vv
    │   │   │   ├── assign_expr_type_err_d.out
    │   │   │   ├── assign_expr_type_err_d.vv
    │   │   │   ├── assign_expr_type_err_e.out
    │   │   │   ├── assign_expr_type_err_e.vv
    │   │   │   ├── assign_expr_type_err_f.out
    │   │   │   ├── assign_expr_type_err_f.vv
    │   │   │   ├── assign_expr_type_err_g.out
    │   │   │   ├── assign_expr_type_err_g.vv
    │   │   │   ├── assign_expr_type_err_h.out
    │   │   │   ├── assign_expr_type_err_h.vv
    │   │   │   ├── assign_expr_type_err_i.out
    │   │   │   ├── assign_expr_type_err_i.vv
    │   │   │   ├── assign_expr_undefined_err_a.out
    │   │   │   ├── assign_expr_undefined_err_a.vv
    │   │   │   ├── assign_expr_undefined_err_b.out
    │   │   │   ├── assign_expr_undefined_err_b.vv
    │   │   │   ├── assign_expr_undefined_err_c.out
    │   │   │   ├── assign_expr_undefined_err_c.vv
    │   │   │   ├── assign_expr_undefined_err_d.out
    │   │   │   ├── assign_expr_undefined_err_d.vv
    │   │   │   ├── assign_expr_undefined_err_e.out
    │   │   │   ├── assign_expr_undefined_err_e.vv
    │   │   │   ├── assign_expr_undefined_err_f.out
    │   │   │   ├── assign_expr_undefined_err_f.vv
    │   │   │   ├── assign_expr_undefined_err_g.out
    │   │   │   ├── assign_expr_undefined_err_g.vv
    │   │   │   ├── assign_expr_undefined_err_h.out
    │   │   │   ├── assign_expr_undefined_err_h.vv
    │   │   │   ├── assign_expr_undefined_err_i.out
    │   │   │   ├── assign_expr_undefined_err_i.vv
    │   │   │   ├── assign_expr_undefined_err_j.out
    │   │   │   ├── assign_expr_undefined_err_j.vv
    │   │   │   ├── assign_expr_undefined_err_k.out
    │   │   │   ├── assign_expr_undefined_err_k.vv
    │   │   │   ├── assign_expr_undefined_err_l.out
    │   │   │   ├── assign_expr_undefined_err_l.vv
    │   │   │   ├── assign_expr_undefined_err_m.out
    │   │   │   ├── assign_expr_undefined_err_m.vv
    │   │   │   ├── assign_expr_undefined_err_n.out
    │   │   │   ├── assign_expr_undefined_err_n.vv
    │   │   │   ├── assign_expr_unresolved_variables_err_chain.out
    │   │   │   ├── assign_expr_unresolved_variables_err_chain.vv
    │   │   │   ├── assign_fn_call_on_left_side_err.out
    │   │   │   ├── assign_fn_call_on_left_side_err.vv
    │   │   │   ├── assign_generic_fn_err.out
    │   │   │   ├── assign_generic_fn_err.vv
    │   │   │   ├── assign_immutable_reference_struct_field_err.out
    │   │   │   ├── assign_immutable_reference_struct_field_err.vv
    │   │   │   ├── assign_immutable_reference_var_err.out
    │   │   │   ├── assign_immutable_reference_var_err.vv
    │   │   │   ├── assign_immutable_reference_var_with_parenthesis_err.out
    │   │   │   ├── assign_immutable_reference_var_with_parenthesis_err.vv
    │   │   │   ├── assign_multi_immutable_err.out
    │   │   │   ├── assign_multi_immutable_err.vv
    │   │   │   ├── assign_multi_mismatch.out
    │   │   │   ├── assign_multi_mismatch.vv
    │   │   │   ├── assign_mut.out
    │   │   │   ├── assign_mut.vv
    │   │   │   ├── assign_none.out
    │   │   │   ├── assign_none.vv
    │   │   │   ├── assign_ref_call_expr_with_ref_return_err.out
    │   │   │   ├── assign_ref_call_expr_with_ref_return_err.vv
    │   │   │   ├── assign_sumtype2_err.out
    │   │   │   ├── assign_sumtype2_err.vv
    │   │   │   ├── assign_sumtype_err.out
    │   │   │   ├── assign_sumtype_err.vv
    │   │   │   ├── assign_to_typeless_variable_err.out
    │   │   │   ├── assign_to_typeless_variable_err.vv
    │   │   │   ├── assign_type_mismatch_with_generics_err.out
    │   │   │   ├── assign_type_mismatch_with_generics_err.vv
    │   │   │   ├── assign_var_redefinition_err.out
    │   │   │   ├── assign_var_redefinition_err.vv
    │   │   │   ├── assign_with_dump_multireturn_value.out
    │   │   │   ├── assign_with_dump_multireturn_value.vv
    │   │   │   ├── auto_deref_assign_err.out
    │   │   │   ├── auto_deref_assign_err.vv
    │   │   │   ├── auto_ref_voidptr.out
    │   │   │   ├── auto_ref_voidptr.vv
    │   │   │   ├── bad_types_in_string_inter_lit.out
    │   │   │   ├── bad_types_in_string_inter_lit.vv
    │   │   │   ├── ban_const_ref_mutation.out
    │   │   │   ├── ban_const_ref_mutation.vv
    │   │   │   ├── bin_lit_without_digit_err.out
    │   │   │   ├── bin_lit_without_digit_err.vv
    │   │   │   ├── bin_lit_wrong_digit_err.out
    │   │   │   ├── bin_lit_wrong_digit_err.vv
    │   │   │   ├── bit_op_wrong_left_type_err.out
    │   │   │   ├── bit_op_wrong_left_type_err.vv
    │   │   │   ├── bit_op_wrong_right_type_err.out
    │   │   │   ├── bit_op_wrong_right_type_err.vv
    │   │   │   ├── blank_ident_const_ptr_int_literal_err.out
    │   │   │   ├── blank_ident_const_ptr_int_literal_err.vv
    │   │   │   ├── blank_ident_invalid_use.out
    │   │   │   ├── blank_ident_invalid_use.vv
    │   │   │   ├── blank_ident_select_branch_send_err.out
    │   │   │   ├── blank_ident_select_branch_send_err.vv
    │   │   │   ├── blank_modify.out
    │   │   │   ├── blank_modify.vv
    │   │   │   ├── bool_string_cast_err.out
    │   │   │   ├── bool_string_cast_err.vv
    │   │   │   ├── break_anon_fn_err.out
    │   │   │   ├── break_anon_fn_err.vv
    │   │   │   ├── c_fn_surplus_args.out
    │   │   │   ├── c_fn_surplus_args.vv
    │   │   │   ├── c_js_struct_and_fn_as_generics_error.out
    │   │   │   ├── c_js_struct_and_fn_as_generics_error.vv
    │   │   │   ├── c_struct_cast.out
    │   │   │   ├── c_struct_cast.vv
    │   │   │   ├── call_arg_multi_return_err.out
    │   │   │   ├── call_arg_multi_return_err.vv
    │   │   │   ├── call_empty_or_block_err.out
    │   │   │   ├── call_empty_or_block_err.vv
    │   │   │   ├── cannot_assign_array.out
    │   │   │   ├── cannot_assign_array.vv
    │   │   │   ├── cannot_cast_to_alias.out
    │   │   │   ├── cannot_cast_to_alias.vv
    │   │   │   ├── cannot_cast_to_struct.out
    │   │   │   ├── cannot_cast_to_struct.vv
    │   │   │   ├── cannot_dereference_if_different_muls.out
    │   │   │   ├── cannot_dereference_if_different_muls.vv
    │   │   │   ├── cast_array_to_number_err.out
    │   │   │   ├── cast_array_to_number_err.vv
    │   │   │   ├── cast_err.out
    │   │   │   ├── cast_err.vv
    │   │   │   ├── cast_expr_T_type_err.out
    │   │   │   ├── cast_expr_T_type_err.vv
    │   │   │   ├── cast_fn_err.out
    │   │   │   ├── cast_fn_err.vv
    │   │   │   ├── cast_function_to_string_err.out
    │   │   │   ├── cast_function_to_string_err.vv
    │   │   │   ├── cast_generic_err.out
    │   │   │   ├── cast_generic_err.vv
    │   │   │   ├── cast_integer_with_overflow_err.out
    │   │   │   ├── cast_integer_with_overflow_err.vv
    │   │   │   ├── cast_string_err.out
    │   │   │   ├── cast_string_err.vv
    │   │   │   ├── cast_string_to_char_err.out
    │   │   │   ├── cast_string_to_char_err.vv
    │   │   │   ├── cast_string_to_int_err.out
    │   │   │   ├── cast_string_to_int_err.vv
    │   │   │   ├── cast_string_to_ptr_err.out
    │   │   │   ├── cast_string_to_ptr_err.vv
    │   │   │   ├── cast_string_to_rune_err.out
    │   │   │   ├── cast_string_to_rune_err.vv
    │   │   │   ├── cast_string_with_byte_err.out
    │   │   │   ├── cast_string_with_byte_err.vv
    │   │   │   ├── cast_sumtype_as_generic_err.out
    │   │   │   ├── cast_sumtype_as_generic_err.vv
    │   │   │   ├── cast_sumtype_err.out
    │   │   │   ├── cast_sumtype_err.vv
    │   │   │   ├── cast_to_byte_err.out
    │   │   │   ├── cast_to_byte_err.vv
    │   │   │   ├── cast_to_concrete_mut_err.out
    │   │   │   ├── cast_to_concrete_mut_err.vv
    │   │   │   ├── cast_to_interface_err.out
    │   │   │   ├── cast_to_interface_err.vv
    │   │   │   ├── cast_to_ref_struct_err.out
    │   │   │   ├── cast_to_ref_struct_err.vv
    │   │   │   ├── cast_void.out
    │   │   │   ├── cast_void.vv
    │   │   │   ├── cast_voidptr_to_struct_alias_err.out
    │   │   │   ├── cast_voidptr_to_struct_alias_err.vv
    │   │   │   ├── cast_voidptr_to_struct_err.out
    │   │   │   ├── cast_voidptr_to_struct_err.vv
    │   │   │   ├── casting_numbers_to_enums_outside_unsafe_err.out
    │   │   │   ├── casting_numbers_to_enums_outside_unsafe_err.vv
    │   │   │   ├── chan_args.out
    │   │   │   ├── chan_args.vv
    │   │   │   ├── chan_elem_type_unknown.out
    │   │   │   ├── chan_elem_type_unknown.vv
    │   │   │   ├── chan_incompatible_type_err.out
    │   │   │   ├── chan_incompatible_type_err.vv
    │   │   │   ├── chan_mut.out
    │   │   │   ├── chan_mut.vv
    │   │   │   ├── chan_ref.out
    │   │   │   ├── chan_ref.vv
    │   │   │   ├── chan_unknown_err.out
    │   │   │   ├── chan_unknown_err.vv
    │   │   │   ├── char_str.out
    │   │   │   ├── char_str.vv
    │   │   │   ├── check_err_msg_with_generics.out
    │   │   │   ├── check_err_msg_with_generics.vv
    │   │   │   ├── check_fn_init_as_mutable.out
    │   │   │   ├── check_fn_init_as_mutable.vv
    │   │   │   ├── check_incompatible_struct.out
    │   │   │   ├── check_incompatible_struct.vv
    │   │   │   ├── check_wrong_usage_of_break_and_continue.out
    │   │   │   ├── check_wrong_usage_of_break_and_continue.vv
    │   │   │   ├── checker_comparison_between_obj_and_int.out
    │   │   │   ├── checker_comparison_between_obj_and_int.vv
    │   │   │   ├── clash_ident_module_name_prefix.out
    │   │   │   ├── clash_ident_module_name_prefix.vv
    │   │   │   ├── closure_copy_immutable_var_err.out
    │   │   │   ├── closure_copy_immutable_var_err.vv
    │   │   │   ├── closure_immutable.out
    │   │   │   ├── closure_immutable.vv
    │   │   │   ├── closure_undefined_ident_err.out
    │   │   │   ├── closure_undefined_ident_err.vv
    │   │   │   ├── cmp_between_struct.out
    │   │   │   ├── cmp_between_struct.vv
    │   │   │   ├── compare_unsigned_signed.out
    │   │   │   ├── compare_unsigned_signed.vv
    │   │   │   ├── comparing_typesymbol_to_a_type_should_not_compile.out
    │   │   │   ├── comparing_typesymbol_to_a_type_should_not_compile.vv
    │   │   │   ├── compile_error.out
    │   │   │   ├── compile_error.vv
    │   │   │   ├── compile_error_call_position.out
    │   │   │   ├── compile_error_call_position.vv
    │   │   │   ├── compile_error_explicit_type.out
    │   │   │   ├── compile_error_explicit_type.vv
    │   │   │   ├── comptime_assign_missing_mut_err.out
    │   │   │   ├── comptime_assign_missing_mut_err.vv
    │   │   │   ├── comptime_branching_working_with_a_custom_compile_error.out
    │   │   │   ├── comptime_branching_working_with_a_custom_compile_error.vv
    │   │   │   ├── comptime_call_method.out
    │   │   │   ├── comptime_call_method.vv
    │   │   │   ├── comptime_call_method_args_err.out
    │   │   │   ├── comptime_call_method_args_err.vv
    │   │   │   ├── comptime_call_method_void_err.out
    │   │   │   ├── comptime_call_method_void_err.vv
    │   │   │   ├── comptime_call_no_unused_var.out
    │   │   │   ├── comptime_call_no_unused_var.vv
    │   │   │   ├── comptime_compile_warn_with_string_interp_test.out
    │   │   │   ├── comptime_compile_warn_with_string_interp_test.vv
    │   │   │   ├── comptime_defer_err.out
    │   │   │   ├── comptime_defer_err.vv
    │   │   │   ├── comptime_dump_fields_var_test.out
    │   │   │   ├── comptime_dump_fields_var_test.vv
    │   │   │   ├── comptime_else_compile_error_no_return.out
    │   │   │   ├── comptime_else_compile_error_no_return.vv
    │   │   │   ├── comptime_env/
    │   │   │   │   ├── env_parser_errors_1.run.out
    │   │   │   │   ├── env_parser_errors_1.vv
    │   │   │   │   ├── env_parser_errors_2.run.out
    │   │   │   │   ├── env_parser_errors_2.vv
    │   │   │   │   ├── env_parser_errors_3.run.out
    │   │   │   │   ├── env_parser_errors_3.vv
    │   │   │   │   ├── using_comptime_env.run.out
    │   │   │   │   ├── using_comptime_env.var.run.out
    │   │   │   │   ├── using_comptime_env.var_invalid.run.out
    │   │   │   │   └── using_comptime_env.vv
    │   │   │   ├── comptime_field_name_assign_incorrect_type_err.out
    │   │   │   ├── comptime_field_name_assign_incorrect_type_err.vv
    │   │   │   ├── comptime_field_name_not_exist.out
    │   │   │   ├── comptime_field_name_not_exist.vv
    │   │   │   ├── comptime_field_selector_not_in_for_err.out
    │   │   │   ├── comptime_field_selector_not_in_for_err.vv
    │   │   │   ├── comptime_field_selector_not_name_err.out
    │   │   │   ├── comptime_field_selector_not_name_err.vv
    │   │   │   ├── comptime_for.out
    │   │   │   ├── comptime_for.vv
    │   │   │   ├── comptime_if_option_string_test.out
    │   │   │   ├── comptime_if_option_string_test.vv
    │   │   │   ├── comptime_insert_err.cc
    │   │   │   ├── comptime_insert_err.out
    │   │   │   ├── comptime_insert_err.vv
    │   │   │   ├── comptime_match_cond_cannot_mut.out
    │   │   │   ├── comptime_match_cond_cannot_mut.vv
    │   │   │   ├── comptime_match_value_different_type.out
    │   │   │   ├── comptime_match_value_different_type.vv
    │   │   │   ├── comptime_match_value_type_mix_check.out
    │   │   │   ├── comptime_match_value_type_mix_check.vv
    │   │   │   ├── comptime_param_not_fn_err.out
    │   │   │   ├── comptime_param_not_fn_err.vv
    │   │   │   ├── comptime_selector_assign.out
    │   │   │   ├── comptime_selector_assign.vv
    │   │   │   ├── comptime_selector_expr_type_err.out
    │   │   │   ├── comptime_selector_expr_type_err.vv
    │   │   │   ├── comptime_value_d_in_include_errors.out
    │   │   │   ├── comptime_value_d_in_include_errors.vv
    │   │   │   ├── comptime_value_d_only_d_in_fixed_size_array.out
    │   │   │   ├── comptime_value_d_only_d_in_fixed_size_array.vv
    │   │   │   ├── comptime_value_d_values_can_only_be_pure_literals.out
    │   │   │   ├── comptime_value_d_values_can_only_be_pure_literals.vv
    │   │   │   ├── comptime_veb_vweb_call_err.out
    │   │   │   ├── comptime_veb_vweb_call_err.vv
    │   │   │   ├── const_array_unknown_type_err.out
    │   │   │   ├── const_array_unknown_type_err.vv
    │   │   │   ├── const_blank_ident_as_name_err.out
    │   │   │   ├── const_blank_ident_as_name_err.vv
    │   │   │   ├── const_cycle_decl_err.out
    │   │   │   ├── const_cycle_decl_err.vv
    │   │   │   ├── const_decl_multi_return_err.out
    │   │   │   ├── const_decl_multi_return_err.vv
    │   │   │   ├── const_define_in_function_err.out
    │   │   │   ├── const_define_in_function_err.vv
    │   │   │   ├── const_expr_match_range_invalid_err.out
    │   │   │   ├── const_expr_match_range_invalid_err.vv
    │   │   │   ├── const_field_add_err.out
    │   │   │   ├── const_field_add_err.vv
    │   │   │   ├── const_field_dec_err.out
    │   │   │   ├── const_field_dec_err.vv
    │   │   │   ├── const_field_inc_err.out
    │   │   │   ├── const_field_inc_err.vv
    │   │   │   ├── const_field_name_duplicate_err.out
    │   │   │   ├── const_field_name_duplicate_err.vv
    │   │   │   ├── const_field_name_snake_case.out
    │   │   │   ├── const_field_name_snake_case.vv
    │   │   │   ├── const_field_sub_err.out
    │   │   │   ├── const_field_sub_err.vv
    │   │   │   ├── const_int_overflow_err.out
    │   │   │   ├── const_int_overflow_err.vv
    │   │   │   ├── const_match_invalid_type_range_err.out
    │   │   │   ├── const_match_invalid_type_range_err.vv
    │   │   │   ├── const_match_mismatch_end_range_err.out
    │   │   │   ├── const_match_mismatch_end_range_err.vv
    │   │   │   ├── const_match_range_duplicate_case_err.out
    │   │   │   ├── const_match_range_duplicate_case_err.vv
    │   │   │   ├── const_match_range_invalid_err.out
    │   │   │   ├── const_match_range_invalid_err.vv
    │   │   │   ├── const_match_type_mismatch_range_err.out
    │   │   │   ├── const_match_type_mismatch_range_err.vv
    │   │   │   ├── const_name_for_loop_duplicate_name_err.out
    │   │   │   ├── const_name_for_loop_duplicate_name_err.vv
    │   │   │   ├── const_reference_write_err.out
    │   │   │   ├── const_reference_write_err.vv
    │   │   │   ├── crystallib_struct_init_result_err.out
    │   │   │   ├── crystallib_struct_init_result_err.vv
    │   │   │   ├── ctdefine.out
    │   │   │   ├── ctdefine.vv
    │   │   │   ├── custom_comptime_define_error.mysymbol.run.out
    │   │   │   ├── custom_comptime_define_error.out
    │   │   │   ├── custom_comptime_define_error.vv
    │   │   │   ├── custom_comptime_define_if_debug.cg.run.out
    │   │   │   ├── custom_comptime_define_if_debug.debug.bar.run.out
    │   │   │   ├── custom_comptime_define_if_debug.debug.run.out
    │   │   │   ├── custom_comptime_define_if_debug.g.run.out
    │   │   │   ├── custom_comptime_define_if_debug.out
    │   │   │   ├── custom_comptime_define_if_debug.run.out
    │   │   │   ├── custom_comptime_define_if_debug.vv
    │   │   │   ├── custom_comptime_define_if_flag.mydebug.run.out
    │   │   │   ├── custom_comptime_define_if_flag.nodebug.run.out
    │   │   │   ├── custom_comptime_define_if_flag.out
    │   │   │   ├── custom_comptime_define_if_flag.vv
    │   │   │   ├── dec_lit_wrong_digit_err.out
    │   │   │   ├── dec_lit_wrong_digit_err.vv
    │   │   │   ├── decompose_interface_err.out
    │   │   │   ├── decompose_interface_err.vv
    │   │   │   ├── decompose_type_err.out
    │   │   │   ├── decompose_type_err.vv
    │   │   │   ├── defer_fn_inside_fn_scope.out
    │   │   │   ├── defer_fn_inside_fn_scope.vv
    │   │   │   ├── defer_fn_inside_lock_stmt_err.out
    │   │   │   ├── defer_fn_inside_lock_stmt_err.vv
    │   │   │   ├── defer_in_for.out
    │   │   │   ├── defer_in_for.vv
    │   │   │   ├── defer_use_multi_return_value_with_index_out_of_bounds.out
    │   │   │   ├── defer_use_multi_return_value_with_index_out_of_bounds.vv
    │   │   │   ├── defer_use_multi_return_value_without_index.out
    │   │   │   ├── defer_use_multi_return_value_without_index.vv
    │   │   │   ├── defer_use_returned_value_when_nothing_is_returned.out
    │   │   │   ├── defer_use_returned_value_when_nothing_is_returned.vv
    │   │   │   ├── defer_use_returned_value_when_result_is_returned.out
    │   │   │   ├── defer_use_returned_value_when_result_is_returned.vv
    │   │   │   ├── deference_nil_ptr_err.out
    │   │   │   ├── deference_nil_ptr_err.vv
    │   │   │   ├── deprecate_any.out
    │   │   │   ├── deprecate_any.vv
    │   │   │   ├── deprecations.out
    │   │   │   ├── deprecations.vv
    │   │   │   ├── deprecations_consts.out
    │   │   │   ├── deprecations_consts.vv
    │   │   │   ├── diff_type_map_value_err.out
    │   │   │   ├── diff_type_map_value_err.vv
    │   │   │   ├── disallow_pointer_arithmetic_err.out
    │   │   │   ├── disallow_pointer_arithmetic_err.vv
    │   │   │   ├── discard_import_usage.out
    │   │   │   ├── discard_import_usage.vv
    │   │   │   ├── div_mod_by_cast_zero_int_err.out
    │   │   │   ├── div_mod_by_cast_zero_int_err.vv
    │   │   │   ├── div_op_wrong_type_err.out
    │   │   │   ├── div_op_wrong_type_err.vv
    │   │   │   ├── division_by_cast_zero_float_err.out
    │   │   │   ├── division_by_cast_zero_float_err.vv
    │   │   │   ├── division_by_zero_float_err.out
    │   │   │   ├── division_by_zero_float_err.vv
    │   │   │   ├── division_by_zero_int_err.out
    │   │   │   ├── division_by_zero_int_err.vv
    │   │   │   ├── dump_char.out
    │   │   │   ├── dump_char.vv
    │   │   │   ├── dump_of_void_expr.out
    │   │   │   ├── dump_of_void_expr.vv
    │   │   │   ├── duplicate_field_method_err.out
    │   │   │   ├── duplicate_field_method_err.vv
    │   │   │   ├── embed_unknown_compress_type.out
    │   │   │   ├── embed_unknown_compress_type.vv
    │   │   │   ├── empty_arr_to_generic_param_err.out
    │   │   │   ├── empty_arr_to_generic_param_err.vv
    │   │   │   ├── empty_arr_to_generic_param_sum_like_err.out
    │   │   │   ├── empty_arr_to_generic_param_sum_like_err.vv
    │   │   │   ├── empty_fn_noreturn_err.out
    │   │   │   ├── empty_fn_noreturn_err.vv
    │   │   │   ├── enum_as_int_err.out
    │   │   │   ├── enum_as_int_err.vv
    │   │   │   ├── enum_cast.out
    │   │   │   ├── enum_cast.vv
    │   │   │   ├── enum_empty.out
    │   │   │   ├── enum_empty.vv
    │   │   │   ├── enum_err.out
    │   │   │   ├── enum_err.vv
    │   │   │   ├── enum_error_module.out
    │   │   │   ├── enum_error_module.vv
    │   │   │   ├── enum_field_name_duplicate_err.out
    │   │   │   ├── enum_field_name_duplicate_err.vv
    │   │   │   ├── enum_field_overflow.out
    │   │   │   ├── enum_field_overflow.vv
    │   │   │   ├── enum_field_value_duplicate_a.out
    │   │   │   ├── enum_field_value_duplicate_a.vv
    │   │   │   ├── enum_field_value_duplicate_b.out
    │   │   │   ├── enum_field_value_duplicate_b.vv
    │   │   │   ├── enum_field_value_duplicate_c.out
    │   │   │   ├── enum_field_value_duplicate_c.vv
    │   │   │   ├── enum_field_value_duplicate_d.out
    │   │   │   ├── enum_field_value_duplicate_d.vv
    │   │   │   ├── enum_field_value_duplicate_e.out
    │   │   │   ├── enum_field_value_duplicate_e.vv
    │   │   │   ├── enum_field_value_overflow.out
    │   │   │   ├── enum_field_value_overflow.vv
    │   │   │   ├── enum_from_string_args_err.out
    │   │   │   ├── enum_from_string_args_err.vv
    │   │   │   ├── enum_init_err.out
    │   │   │   ├── enum_init_err.vv
    │   │   │   ├── enum_op_err.out
    │   │   │   ├── enum_op_err.vv
    │   │   │   ├── enum_op_flag_err.out
    │   │   │   ├── enum_op_flag_err.vv
    │   │   │   ├── enum_redeclare_err.out
    │   │   │   ├── enum_redeclare_err.vv
    │   │   │   ├── enum_self_reference.out
    │   │   │   ├── enum_self_reference.vv
    │   │   │   ├── enum_single_letter.out
    │   │   │   ├── enum_single_letter.vv
    │   │   │   ├── enum_value_used_before_decl_err.out
    │   │   │   ├── enum_value_used_before_decl_err.vv
    │   │   │   ├── eq_ne_op_wrong_type_err.out
    │   │   │   ├── eq_ne_op_wrong_type_err.vv
    │   │   │   ├── error_fn_with_0_args.out
    │   │   │   ├── error_fn_with_0_args.vv
    │   │   │   ├── error_with_comment_with_crlf_ending.out
    │   │   │   ├── error_with_comment_with_crlf_ending.vv
    │   │   │   ├── error_with_comment_with_lf_ending.out
    │   │   │   ├── error_with_comment_with_lf_ending.vv
    │   │   │   ├── error_with_several_comments_with_crlf_ending.out
    │   │   │   ├── error_with_several_comments_with_crlf_ending.vv
    │   │   │   ├── error_with_unicode.out
    │   │   │   ├── error_with_unicode.vv
    │   │   │   ├── expr_evaluated_but_not_used.out
    │   │   │   ├── expr_evaluated_but_not_used.vv
    │   │   │   ├── expression_should_return_an_option.out
    │   │   │   ├── expression_should_return_an_option.vv
    │   │   │   ├── field_can_not_be_from_the_same_type_as_containing_struct.out
    │   │   │   ├── field_can_not_be_from_the_same_type_as_containing_struct.vv
    │   │   │   ├── field_deprecations.out
    │   │   │   ├── field_deprecations.vv
    │   │   │   ├── filter_func_return_nonbool_err.out
    │   │   │   ├── filter_func_return_nonbool_err.vv
    │   │   │   ├── filter_on_non_arr_err.out
    │   │   │   ├── filter_on_non_arr_err.vv
    │   │   │   ├── fixed_array_builtin_method_args_err.out
    │   │   │   ├── fixed_array_builtin_method_args_err.vv
    │   │   │   ├── fixed_array_conv.out
    │   │   │   ├── fixed_array_conv.vv
    │   │   │   ├── fixed_array_decompose_err.out
    │   │   │   ├── fixed_array_decompose_err.vv
    │   │   │   ├── fixed_array_init_with_default.out
    │   │   │   ├── fixed_array_init_with_default.vv
    │   │   │   ├── fixed_array_non_const_size_err.out
    │   │   │   ├── fixed_array_non_const_size_err.vv
    │   │   │   ├── fixed_array_size_err.out
    │   │   │   ├── fixed_array_size_err.vv
    │   │   │   ├── fixed_array_sort_err.out
    │   │   │   ├── fixed_array_sort_err.vv
    │   │   │   ├── flag_enum_exhaustive_else_branch.out
    │   │   │   ├── flag_enum_exhaustive_else_branch.vv
    │   │   │   ├── float_lit_exp_not_integer_err.out
    │   │   │   ├── float_lit_exp_not_integer_err.vv
    │   │   │   ├── float_lit_exp_without_digit_err.out
    │   │   │   ├── float_lit_exp_without_digit_err.vv
    │   │   │   ├── float_lit_too_many_points_err.out
    │   │   │   ├── float_lit_too_many_points_err.vv
    │   │   │   ├── float_modulo_err.out
    │   │   │   ├── float_modulo_err.vv
    │   │   │   ├── fn_args.out
    │   │   │   ├── fn_args.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_a.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_a.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_b.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_b.vv
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_c.out
    │   │   │   ├── fn_array_decompose_arg_mismatch_err_c.vv
    │   │   │   ├── fn_call_arg_array_mismatch_err.out
    │   │   │   ├── fn_call_arg_array_mismatch_err.vv
    │   │   │   ├── fn_call_arg_fn_mismatch_err.out
    │   │   │   ├── fn_call_arg_fn_mismatch_err.vv
    │   │   │   ├── fn_call_arg_mismatch_err_a.out
    │   │   │   ├── fn_call_arg_mismatch_err_a.vv
    │   │   │   ├── fn_call_arg_mismatch_err_b.out
    │   │   │   ├── fn_call_arg_mismatch_err_b.vv
    │   │   │   ├── fn_call_arg_mismatch_err_c.out
    │   │   │   ├── fn_call_arg_mismatch_err_c.vv
    │   │   │   ├── fn_call_arg_mismatch_err_d.out
    │   │   │   ├── fn_call_arg_mismatch_err_d.vv
    │   │   │   ├── fn_call_arg_mismatch_err_e.out
    │   │   │   ├── fn_call_arg_mismatch_err_e.vv
    │   │   │   ├── fn_call_arg_multi_err.out
    │   │   │   ├── fn_call_arg_multi_err.vv
    │   │   │   ├── fn_call_arg_ptr_mismatch_err.out
    │   │   │   ├── fn_call_arg_ptr_mismatch_err.vv
    │   │   │   ├── fn_call_mismatch_alias_type_err.out
    │   │   │   ├── fn_call_mismatch_alias_type_err.vv
    │   │   │   ├── fn_call_mut_arg_mismatch_err.out
    │   │   │   ├── fn_call_mut_arg_mismatch_err.vv
    │   │   │   ├── fn_call_no_body.out
    │   │   │   ├── fn_call_no_body.vv
    │   │   │   ├── fn_call_or_block_err.out
    │   │   │   ├── fn_call_or_block_err.vv
    │   │   │   ├── fn_call_ref_incompatible_u8_test.out
    │   │   │   ├── fn_call_ref_incompatible_u8_test.vv
    │   │   │   ├── fn_call_using_none_arg_err.out
    │   │   │   ├── fn_call_using_none_arg_err.vv
    │   │   │   ├── fn_call_with_extra_parenthesis.out
    │   │   │   ├── fn_call_with_extra_parenthesis.vv
    │   │   │   ├── fn_check_for_matching_option_result_in_fields.out
    │   │   │   ├── fn_check_for_matching_option_result_in_fields.vv
    │   │   │   ├── fn_duplicate.out
    │   │   │   ├── fn_duplicate.vv
    │   │   │   ├── fn_init_sig.out
    │   │   │   ├── fn_init_sig.vv
    │   │   │   ├── fn_mismatch_option_return_err.out
    │   │   │   ├── fn_mismatch_option_return_err.vv
    │   │   │   ├── fn_param_import_sym_conflict.out
    │   │   │   ├── fn_param_import_sym_conflict.vv
    │   │   │   ├── fn_ptr_undereferenced_err.out
    │   │   │   ├── fn_ptr_undereferenced_err.vv
    │   │   │   ├── fn_ref_arg_mismatch_err.out
    │   │   │   ├── fn_ref_arg_mismatch_err.vv
    │   │   │   ├── fn_result_option_call_infix_err.out
    │   │   │   ├── fn_result_option_call_infix_err.vv
    │   │   │   ├── fn_return_array_sort_err.out
    │   │   │   ├── fn_return_array_sort_err.vv
    │   │   │   ├── fn_return_fixed_array_sort_err.out
    │   │   │   ├── fn_return_fixed_array_sort_err.vv
    │   │   │   ├── fn_return_fn_type_mismatch_err.out
    │   │   │   ├── fn_return_fn_type_mismatch_err.vv
    │   │   │   ├── fn_return_or_err.out
    │   │   │   ├── fn_return_or_err.vv
    │   │   │   ├── fn_return_type_mismatch.out
    │   │   │   ├── fn_return_type_mismatch.vv
    │   │   │   ├── fn_return_unsign_type_mismatch.out
    │   │   │   ├── fn_return_unsign_type_mismatch.vv
    │   │   │   ├── fn_return_void_fn_call_err.out
    │   │   │   ├── fn_return_void_fn_call_err.vv
    │   │   │   ├── fn_selector_expr_err.out
    │   │   │   ├── fn_selector_expr_err.vv
    │   │   │   ├── fn_type_exists.out
    │   │   │   ├── fn_type_exists.vv
    │   │   │   ├── fn_type_mismatch.out
    │   │   │   ├── fn_type_mismatch.vv
    │   │   │   ├── fn_var.out
    │   │   │   ├── fn_var.vv
    │   │   │   ├── fn_variadic.out
    │   │   │   ├── fn_variadic.vv
    │   │   │   ├── fn_variadic_arg_err.out
    │   │   │   ├── fn_variadic_arg_err.vv
    │   │   │   ├── for_c_stmt_with_var_declaration_in_post_stmt.out
    │   │   │   ├── for_c_stmt_with_var_declaration_in_post_stmt.vv
    │   │   │   ├── for_comptime_enum_fields_err.out
    │   │   │   ├── for_comptime_enum_fields_err.vv
    │   │   │   ├── for_comptime_struct_values_err.out
    │   │   │   ├── for_comptime_struct_values_err.vv
    │   │   │   ├── for_in_index_option.out
    │   │   │   ├── for_in_index_option.vv
    │   │   │   ├── for_in_index_type.out
    │   │   │   ├── for_in_index_type.vv
    │   │   │   ├── for_in_invalid_identifier.out
    │   │   │   ├── for_in_invalid_identifier.vv
    │   │   │   ├── for_in_iterator_returning_multiple_values_err.out
    │   │   │   ├── for_in_iterator_returning_multiple_values_err.vv
    │   │   │   ├── for_in_key_redefinition.out
    │   │   │   ├── for_in_key_redefinition.vv
    │   │   │   ├── for_in_map_one_variable_err.out
    │   │   │   ├── for_in_map_one_variable_err.vv
    │   │   │   ├── for_in_mut_string.out
    │   │   │   ├── for_in_mut_string.vv
    │   │   │   ├── for_in_mut_val_type.out
    │   │   │   ├── for_in_mut_val_type.vv
    │   │   │   ├── for_in_range_not_match_type.out
    │   │   │   ├── for_in_range_not_match_type.vv
    │   │   │   ├── for_in_range_result_optional_err.out
    │   │   │   ├── for_in_range_result_optional_err.vv
    │   │   │   ├── for_in_range_string_type.out
    │   │   │   ├── for_in_range_string_type.vv
    │   │   │   ├── for_in_same_var_err.out
    │   │   │   ├── for_in_same_var_err.vv
    │   │   │   ├── for_in_value_redefinition.out
    │   │   │   ├── for_in_value_redefinition.vv
    │   │   │   ├── for_in_with_reserved_type_names.out
    │   │   │   ├── for_in_with_reserved_type_names.vv
    │   │   │   ├── for_loop_range_inclusive_err.out
    │   │   │   ├── for_loop_range_inclusive_err.vv
    │   │   │   ├── for_match_err.out
    │   │   │   ├── for_match_err.vv
    │   │   │   ├── for_mut_compare_rune_string_err.out
    │   │   │   ├── for_mut_compare_rune_string_err.vv
    │   │   │   ├── free_method_errors.out
    │   │   │   ├── free_method_errors.vv
    │   │   │   ├── from_string_on_non_enum_err.out
    │   │   │   ├── from_string_on_non_enum_err.vv
    │   │   │   ├── func_with_static_keyword_err.out
    │   │   │   ├── func_with_static_keyword_err.vv
    │   │   │   ├── function_arg_mutable_err.out
    │   │   │   ├── function_arg_mutable_err.vv
    │   │   │   ├── function_arg_redefinition.out
    │   │   │   ├── function_arg_redefinition.vv
    │   │   │   ├── function_cast_outside_unsafe_err.out
    │   │   │   ├── function_cast_outside_unsafe_err.vv
    │   │   │   ├── function_count_of_args_mismatch_err.out
    │   │   │   ├── function_count_of_args_mismatch_err.vv
    │   │   │   ├── function_missing_return_type.out
    │   │   │   ├── function_missing_return_type.vv
    │   │   │   ├── function_variadic_arg_array_decompose.out
    │   │   │   ├── function_variadic_arg_array_decompose.vv
    │   │   │   ├── function_wrong_arg_type.out
    │   │   │   ├── function_wrong_arg_type.vv
    │   │   │   ├── function_wrong_return_type.out
    │   │   │   ├── function_wrong_return_type.vv
    │   │   │   ├── generic_array_init_err.out
    │   │   │   ├── generic_array_init_err.vv
    │   │   │   ├── generic_closure_fn_decl_err_a.out
    │   │   │   ├── generic_closure_fn_decl_err_a.vv
    │   │   │   ├── generic_closure_fn_decl_err_b.out
    │   │   │   ├── generic_closure_fn_decl_err_b.vv
    │   │   │   ├── generic_eq_wrong_type.err.out
    │   │   │   ├── generic_eq_wrong_type.err.vv
    │   │   │   ├── generic_field_init_with_call_err.out
    │   │   │   ├── generic_field_init_with_call_err.vv
    │   │   │   ├── generic_fn_call_arg_mismatch_err.out
    │   │   │   ├── generic_fn_call_arg_mismatch_err.vv
    │   │   │   ├── generic_fn_decl_err.out
    │   │   │   ├── generic_fn_decl_err.vv
    │   │   │   ├── generic_fn_decl_without_generic_names_err.out
    │   │   │   ├── generic_fn_decl_without_generic_names_err.vv
    │   │   │   ├── generic_fn_generic_name_unresolved_err.out
    │   │   │   ├── generic_fn_generic_name_unresolved_err.vv
    │   │   │   ├── generic_fn_infinite_loop_limit_err.out
    │   │   │   ├── generic_fn_infinite_loop_limit_err.vv
    │   │   │   ├── generic_fn_var_unresolved_err.out
    │   │   │   ├── generic_fn_var_unresolved_err.vv
    │   │   │   ├── generic_fntype_err.out
    │   │   │   ├── generic_fntype_err.vv
    │   │   │   ├── generic_infix_plus_err.out
    │   │   │   ├── generic_infix_plus_err.vv
    │   │   │   ├── generic_interface_err.out
    │   │   │   ├── generic_interface_err.vv
    │   │   │   ├── generic_interface_method_decl_err.out
    │   │   │   ├── generic_interface_method_decl_err.vv
    │   │   │   ├── generic_interface_missing_type_names_err.out
    │   │   │   ├── generic_interface_missing_type_names_err.vv
    │   │   │   ├── generic_mut_struct_index_err.out
    │   │   │   ├── generic_mut_struct_index_err.vv
    │   │   │   ├── generic_sumtype_decl_err_a.out
    │   │   │   ├── generic_sumtype_decl_err_a.vv
    │   │   │   ├── generic_sumtype_decl_err_b.out
    │   │   │   ├── generic_sumtype_decl_err_b.vv
    │   │   │   ├── generic_sumtype_decl_err_c.out
    │   │   │   ├── generic_sumtype_decl_err_c.vv
    │   │   │   ├── generic_sumtype_decl_err_d.out
    │   │   │   ├── generic_sumtype_decl_err_d.vv
    │   │   │   ├── generic_sumtype_decl_err_e.out
    │   │   │   ├── generic_sumtype_decl_err_e.vv
    │   │   │   ├── generic_sumtype_invalid_variant.out
    │   │   │   ├── generic_sumtype_invalid_variant.vv
    │   │   │   ├── generic_type_inference.out
    │   │   │   ├── generic_type_inference.vv
    │   │   │   ├── generic_type_name_in_non_generic_function.out
    │   │   │   ├── generic_type_name_in_non_generic_function.vv
    │   │   │   ├── generics_field_struct_arr_err.out
    │   │   │   ├── generics_field_struct_arr_err.vv
    │   │   │   ├── generics_fn_arg_type_err.out
    │   │   │   ├── generics_fn_arg_type_err.vv
    │   │   │   ├── generics_fn_arguments_count_err.out
    │   │   │   ├── generics_fn_arguments_count_err.vv
    │   │   │   ├── generics_fn_called_arg_mismatch.out
    │   │   │   ├── generics_fn_called_arg_mismatch.vv
    │   │   │   ├── generics_fn_called_fntype_arg_mismatch.out
    │   │   │   ├── generics_fn_called_fntype_arg_mismatch.vv
    │   │   │   ├── generics_fn_called_multi_args_mismatch.out
    │   │   │   ├── generics_fn_called_multi_args_mismatch.vv
    │   │   │   ├── generics_fn_called_no_arg_err.out
    │   │   │   ├── generics_fn_called_no_arg_err.vv
    │   │   │   ├── generics_fn_called_outside_of_generic_fn.out
    │   │   │   ├── generics_fn_called_outside_of_generic_fn.vv
    │   │   │   ├── generics_fn_called_variadic_arg_mismatch.out
    │   │   │   ├── generics_fn_called_variadic_arg_mismatch.vv
    │   │   │   ├── generics_fn_param_wrong_arg_type_err.out
    │   │   │   ├── generics_fn_param_wrong_arg_type_err.vv
    │   │   │   ├── generics_fn_return_generic_closure_err.out
    │   │   │   ├── generics_fn_return_generic_closure_err.vv
    │   │   │   ├── generics_fn_return_generic_struct_err.out
    │   │   │   ├── generics_fn_return_generic_struct_err.vv
    │   │   │   ├── generics_inst_non_generic_struct_err.out
    │   │   │   ├── generics_inst_non_generic_struct_err.vv
    │   │   │   ├── generics_interface_decl_no_mention_err.out
    │   │   │   ├── generics_interface_decl_no_mention_err.vv
    │   │   │   ├── generics_interface_declaration_err.out
    │   │   │   ├── generics_interface_declaration_err.vv
    │   │   │   ├── generics_interface_field_type_err.out
    │   │   │   ├── generics_interface_field_type_err.vv
    │   │   │   ├── generics_method_arg_type_err.out
    │   │   │   ├── generics_method_arg_type_err.vv
    │   │   │   ├── generics_method_called_arg_mismatch.out
    │   │   │   ├── generics_method_called_arg_mismatch.vv
    │   │   │   ├── generics_method_called_variadic_arg_mismatch.out
    │   │   │   ├── generics_method_called_variadic_arg_mismatch.vv
    │   │   │   ├── generics_method_receiver_type_err_a.out
    │   │   │   ├── generics_method_receiver_type_err_a.vv
    │   │   │   ├── generics_method_receiver_type_err_b.out
    │   │   │   ├── generics_method_receiver_type_err_b.vv
    │   │   │   ├── generics_method_sumtype_arg_mismatch.out
    │   │   │   ├── generics_method_sumtype_arg_mismatch.vv
    │   │   │   ├── generics_non_generic_fn_called_like_a_generic_one.out
    │   │   │   ├── generics_non_generic_fn_called_like_a_generic_one.vv
    │   │   │   ├── generics_non_generic_struct_used_like_a_generic_one.out
    │   │   │   ├── generics_non_generic_struct_used_like_a_generic_one.vv
    │   │   │   ├── generics_struct_decl_no_mention_err.out
    │   │   │   ├── generics_struct_decl_no_mention_err.vv
    │   │   │   ├── generics_struct_declaration_err.out
    │   │   │   ├── generics_struct_declaration_err.vv
    │   │   │   ├── generics_struct_field_fn_args_err.out
    │   │   │   ├── generics_struct_field_fn_args_err.vv
    │   │   │   ├── generics_struct_field_type_err.out
    │   │   │   ├── generics_struct_field_type_err.vv
    │   │   │   ├── generics_struct_in_non_generic_fn_err.out
    │   │   │   ├── generics_struct_in_non_generic_fn_err.vv
    │   │   │   ├── generics_struct_infer_err.out
    │   │   │   ├── generics_struct_infer_err.vv
    │   │   │   ├── generics_struct_init_err.out
    │   │   │   ├── generics_struct_init_err.vv
    │   │   │   ├── generics_struct_init_type_parameter_err.out
    │   │   │   ├── generics_struct_init_type_parameter_err.vv
    │   │   │   ├── generics_struct_init_with_inconsistent_generic_types_3_err.out
    │   │   │   ├── generics_struct_init_with_inconsistent_generic_types_3_err.vv
    │   │   │   ├── generics_struct_nokeys_init_err.out
    │   │   │   ├── generics_struct_nokeys_init_err.vv
    │   │   │   ├── generics_struct_type_mismatch_err.out
    │   │   │   ├── generics_struct_type_mismatch_err.vv
    │   │   │   ├── generics_too_many_parameters.out
    │   │   │   ├── generics_too_many_parameters.vv
    │   │   │   ├── generics_type_ambiguous.out
    │   │   │   ├── generics_type_ambiguous.vv
    │   │   │   ├── generics_undefined_operation.out
    │   │   │   ├── generics_undefined_operation.vv
    │   │   │   ├── generics_undefined_operation_2.out
    │   │   │   ├── generics_undefined_operation_2.vv
    │   │   │   ├── globals/
    │   │   │   │   ├── assign_global_to_shared_err.out
    │   │   │   │   ├── assign_global_to_shared_err.vv
    │   │   │   │   ├── assign_no_value.out
    │   │   │   │   ├── assign_no_value.vv
    │   │   │   │   ├── cast_expr_T_type_err.out
    │   │   │   │   ├── cast_expr_T_type_err.vv
    │   │   │   │   ├── closure_capture_global_var.out
    │   │   │   │   ├── closure_capture_global_var.vv
    │   │   │   │   ├── global_anon_fn_without_body.out
    │   │   │   │   ├── global_anon_fn_without_body.vv
    │   │   │   │   ├── global_blank_ident_as_name_err.out
    │   │   │   │   ├── global_blank_ident_as_name_err.vv
    │   │   │   │   ├── global_receiver_var_name_err.out
    │   │   │   │   ├── global_receiver_var_name_err.vv
    │   │   │   │   ├── global_var_redeclare.out
    │   │   │   │   ├── global_var_redeclare.vv
    │   │   │   │   ├── incorrect_name_global.out
    │   │   │   │   ├── incorrect_name_global.vv
    │   │   │   │   ├── name_conflict_with_const.out
    │   │   │   │   ├── name_conflict_with_const.vv
    │   │   │   │   ├── nested_unknown_typ.out
    │   │   │   │   ├── nested_unknown_typ.vv
    │   │   │   │   ├── no_type.out
    │   │   │   │   ├── no_type.vv
    │   │   │   │   ├── redefine_main.out
    │   │   │   │   ├── redefine_main.vv
    │   │   │   │   ├── unexpected_eof.out
    │   │   │   │   ├── unexpected_eof.vv
    │   │   │   │   ├── unknown_typ.out
    │   │   │   │   └── unknown_typ.vv
    │   │   │   ├── globals_error.out
    │   │   │   ├── globals_error.run.out
    │   │   │   ├── globals_error.vv
    │   │   │   ├── globals_run/
    │   │   │   │   ├── function_stored_in_global.run.out
    │   │   │   │   ├── function_stored_in_global.vv
    │   │   │   │   ├── global_array_indexed_by_global_fn.run.out
    │   │   │   │   ├── global_array_indexed_by_global_fn.vv
    │   │   │   │   ├── global_fixed_array_initialisation.run.out
    │   │   │   │   ├── global_fixed_array_initialisation.vv
    │   │   │   │   ├── global_nested_struct_test.run.out
    │   │   │   │   ├── global_nested_struct_test.vv
    │   │   │   │   ├── global_var_in_anon_fn.run.out
    │   │   │   │   └── global_var_in_anon_fn.vv
    │   │   │   ├── go_append_option_to_threads_err.out
    │   │   │   ├── go_append_option_to_threads_err.vv
    │   │   │   ├── go_expr.out
    │   │   │   ├── go_expr.vv
    │   │   │   ├── go_mut_arg.out
    │   │   │   ├── go_mut_arg.vv
    │   │   │   ├── go_mut_receiver.out
    │   │   │   ├── go_mut_receiver.vv
    │   │   │   ├── go_wait_or.out
    │   │   │   ├── go_wait_or.vv
    │   │   │   ├── goto_label.out
    │   │   │   ├── goto_label.vv
    │   │   │   ├── hex_lit_without_digit_err.out
    │   │   │   ├── hex_lit_without_digit_err.vv
    │   │   │   ├── hex_lit_wrong_digit_err.out
    │   │   │   ├── hex_lit_wrong_digit_err.vv
    │   │   │   ├── hex_literal_overflow.out
    │   │   │   ├── hex_literal_overflow.vv
    │   │   │   ├── i64_to_f64_implicit_cast_err.out
    │   │   │   ├── i64_to_f64_implicit_cast_err.vv
    │   │   │   ├── ierror_in_return_tuple.out
    │   │   │   ├── ierror_in_return_tuple.vv
    │   │   │   ├── if_diff_expected_type_err.out
    │   │   │   ├── if_diff_expected_type_err.vv
    │   │   │   ├── if_expr_last_branch_stmt_err.out
    │   │   │   ├── if_expr_last_branch_stmt_err.vv
    │   │   │   ├── if_expr_last_stmt.out
    │   │   │   ├── if_expr_last_stmt.vv
    │   │   │   ├── if_expr_mismatch.out
    │   │   │   ├── if_expr_mismatch.vv
    │   │   │   ├── if_expr_no_else.out
    │   │   │   ├── if_expr_no_else.vv
    │   │   │   ├── if_expr_option_err.out
    │   │   │   ├── if_expr_option_err.vv
    │   │   │   ├── if_expr_result_err.out
    │   │   │   ├── if_expr_result_err.vv
    │   │   │   ├── if_expr_with_none_only.out
    │   │   │   ├── if_expr_with_none_only.vv
    │   │   │   ├── if_guard_expr_err.out
    │   │   │   ├── if_guard_expr_err.vv
    │   │   │   ├── if_guard_variables_err.out
    │   │   │   ├── if_guard_variables_err.vv
    │   │   │   ├── if_match_expr_err.out
    │   │   │   ├── if_match_expr_err.vv
    │   │   │   ├── if_match_result.out
    │   │   │   ├── if_match_result.vv
    │   │   │   ├── if_mismatch_muls_err.out
    │   │   │   ├── if_mismatch_muls_err.vv
    │   │   │   ├── if_mismatch_option_err.out
    │   │   │   ├── if_mismatch_option_err.vv
    │   │   │   ├── if_mut_with_immutable_var_err.out
    │   │   │   ├── if_mut_with_immutable_var_err.vv
    │   │   │   ├── if_non_bool_cond.out
    │   │   │   ├── if_non_bool_cond.vv
    │   │   │   ├── if_smartcast_mut_var_interface_err.out
    │   │   │   ├── if_smartcast_mut_var_interface_err.vv
    │   │   │   ├── immutable_arg.out
    │   │   │   ├── immutable_arg.vv
    │   │   │   ├── immutable_array_field_assign.out
    │   │   │   ├── immutable_array_field_assign.vv
    │   │   │   ├── immutable_array_field_shift.out
    │   │   │   ├── immutable_array_field_shift.vv
    │   │   │   ├── immutable_array_in_if_expr_index.out
    │   │   │   ├── immutable_array_in_if_expr_index.vv
    │   │   │   ├── immutable_array_struct_assign.out
    │   │   │   ├── immutable_array_struct_assign.vv
    │   │   │   ├── immutable_array_struct_shift.out
    │   │   │   ├── immutable_array_struct_shift.vv
    │   │   │   ├── immutable_array_var.out
    │   │   │   ├── immutable_array_var.vv
    │   │   │   ├── immutable_builtin_modify.out
    │   │   │   ├── immutable_builtin_modify.vv
    │   │   │   ├── immutable_deref.out
    │   │   │   ├── immutable_deref.vv
    │   │   │   ├── immutable_field.out
    │   │   │   ├── immutable_field.vv
    │   │   │   ├── immutable_field_postfix.out
    │   │   │   ├── immutable_field_postfix.vv
    │   │   │   ├── immutable_interface_field.out
    │   │   │   ├── immutable_interface_field.vv
    │   │   │   ├── immutable_map.out
    │   │   │   ├── immutable_map.vv
    │   │   │   ├── immutable_rec.out
    │   │   │   ├── immutable_rec.vv
    │   │   │   ├── immutable_struct_postfix.out
    │   │   │   ├── immutable_struct_postfix.vv
    │   │   │   ├── immutable_to_mutable_err.out
    │   │   │   ├── immutable_to_mutable_err.vv
    │   │   │   ├── immutable_var.out
    │   │   │   ├── immutable_var.vv
    │   │   │   ├── immutable_var_postfix.out
    │   │   │   ├── immutable_var_postfix.vv
    │   │   │   ├── implements_generic_err.out
    │   │   │   ├── implements_generic_err.vv
    │   │   │   ├── implements_keyword.out
    │   │   │   ├── implements_keyword.vv
    │   │   │   ├── import_duplicate_err.out
    │   │   │   ├── import_duplicate_err.vv
    │   │   │   ├── import_middle_err.out
    │   │   │   ├── import_middle_err.vv
    │   │   │   ├── import_mod_as_duplicate_err.out
    │   │   │   ├── import_mod_as_duplicate_err.vv
    │   │   │   ├── import_mod_as_import_alias_duplicate_err.out
    │   │   │   ├── import_mod_as_import_alias_duplicate_err.vv
    │   │   │   ├── import_mod_as_import_duplicate_err.out
    │   │   │   ├── import_mod_as_import_duplicate_err.vv
    │   │   │   ├── import_mod_as_mod_err.out
    │   │   │   ├── import_mod_as_mod_err.vv
    │   │   │   ├── import_mod_duplicate_as_alias_err.out
    │   │   │   ├── import_mod_duplicate_as_alias_err.vv
    │   │   │   ├── import_mod_duplicate_err.out
    │   │   │   ├── import_mod_duplicate_err.vv
    │   │   │   ├── import_mod_sub_as_duplicate_err.out
    │   │   │   ├── import_mod_sub_as_duplicate_err.vv
    │   │   │   ├── import_mod_sub_as_sub_err.out
    │   │   │   ├── import_mod_sub_as_sub_err.vv
    │   │   │   ├── import_mod_sub_duplicate_as_mod.out
    │   │   │   ├── import_mod_sub_duplicate_as_mod.vv
    │   │   │   ├── import_mod_sub_duplicate_err.out
    │   │   │   ├── import_mod_sub_duplicate_err.vv
    │   │   │   ├── import_multiple_modules_err.out
    │   │   │   ├── import_multiple_modules_err.vv
    │   │   │   ├── import_not_found_err.out
    │   │   │   ├── import_not_found_err.vv
    │   │   │   ├── import_not_same_line_err.out
    │   │   │   ├── import_not_same_line_err.vv
    │   │   │   ├── import_sym_builtin_override_err.out
    │   │   │   ├── import_sym_builtin_override_err.vv
    │   │   │   ├── import_symbol_empty.out
    │   │   │   ├── import_symbol_empty.vv
    │   │   │   ├── import_symbol_fn_err.out
    │   │   │   ├── import_symbol_fn_err.vv
    │   │   │   ├── import_symbol_invalid.out
    │   │   │   ├── import_symbol_invalid.vv
    │   │   │   ├── import_symbol_private_err.out
    │   │   │   ├── import_symbol_private_err.vv
    │   │   │   ├── import_symbol_type_err.out
    │   │   │   ├── import_symbol_type_err.vv
    │   │   │   ├── import_symbol_unclosed.out
    │   │   │   ├── import_symbol_unclosed.vv
    │   │   │   ├── import_syntax_err.out
    │   │   │   ├── import_syntax_err.vv
    │   │   │   ├── import_unused_warning.out
    │   │   │   ├── import_unused_warning.vv
    │   │   │   ├── in_mismatch_type.out
    │   │   │   ├── in_mismatch_type.vv
    │   │   │   ├── in_range_expr_err.out
    │   │   │   ├── in_range_expr_err.vv
    │   │   │   ├── inc_dec_fun_call.out
    │   │   │   ├── inc_dec_fun_call.vv
    │   │   │   ├── inc_num_literal.out
    │   │   │   ├── inc_num_literal.vv
    │   │   │   ├── inc_ok.out
    │   │   │   ├── inc_ok.vv
    │   │   │   ├── inc_paren_expr.out
    │   │   │   ├── inc_paren_expr.vv
    │   │   │   ├── incorrect_for_in_name_variable.out
    │   │   │   ├── incorrect_for_in_name_variable.vv
    │   │   │   ├── incorrect_name_alias_type.out
    │   │   │   ├── incorrect_name_alias_type.vv
    │   │   │   ├── incorrect_name_const.out
    │   │   │   ├── incorrect_name_const.vv
    │   │   │   ├── incorrect_name_enum.out
    │   │   │   ├── incorrect_name_enum.vv
    │   │   │   ├── incorrect_name_enum_field.out
    │   │   │   ├── incorrect_name_enum_field.vv
    │   │   │   ├── incorrect_name_fn_type.out
    │   │   │   ├── incorrect_name_fn_type.vv
    │   │   │   ├── incorrect_name_function.out
    │   │   │   ├── incorrect_name_function.vv
    │   │   │   ├── incorrect_name_interface.out
    │   │   │   ├── incorrect_name_interface.vv
    │   │   │   ├── incorrect_name_interface_method.out
    │   │   │   ├── incorrect_name_interface_method.vv
    │   │   │   ├── incorrect_name_module.out
    │   │   │   ├── incorrect_name_module.vv
    │   │   │   ├── incorrect_name_struct.out
    │   │   │   ├── incorrect_name_struct.vv
    │   │   │   ├── incorrect_name_struct_field.out
    │   │   │   ├── incorrect_name_struct_field.vv
    │   │   │   ├── incorrect_name_sum_type.out
    │   │   │   ├── incorrect_name_sum_type.vv
    │   │   │   ├── incorrect_name_variable.out
    │   │   │   ├── incorrect_name_variable.vv
    │   │   │   ├── incorrect_smartcast2_err.out
    │   │   │   ├── incorrect_smartcast2_err.vv
    │   │   │   ├── incorrect_smartcast3_err.out
    │   │   │   ├── incorrect_smartcast3_err.vv
    │   │   │   ├── incorrect_smartcast_err.out
    │   │   │   ├── incorrect_smartcast_err.vv
    │   │   │   ├── index_expr.out
    │   │   │   ├── index_expr.vv
    │   │   │   ├── index_invalid_call.out
    │   │   │   ├── index_invalid_call.vv
    │   │   │   ├── index_of_option_err.out
    │   │   │   ├── index_of_option_err.vv
    │   │   │   ├── index_sumtype_interface_struct_params_err.out
    │   │   │   ├── index_sumtype_interface_struct_params_err.vv
    │   │   │   ├── infix_and_op_expr_err.out
    │   │   │   ├── infix_and_op_expr_err.vv
    │   │   │   ├── infix_compare_option_err.out
    │   │   │   ├── infix_compare_option_err.vv
    │   │   │   ├── infix_dup_in_err.out
    │   │   │   ├── infix_dup_in_err.vv
    │   │   │   ├── infix_err.out
    │   │   │   ├── infix_err.vv
    │   │   │   ├── infix_expr_left_side_assogn_err.out
    │   │   │   ├── infix_expr_left_side_assogn_err.vv
    │   │   │   ├── infix_is_notis_interface_unimplemented_err.out
    │   │   │   ├── infix_is_notis_interface_unimplemented_err.vv
    │   │   │   ├── infix_is_unknown_module_no_panic.out
    │   │   │   ├── infix_is_unknown_module_no_panic.vv
    │   │   │   ├── infix_sumtype_in_array_err.out
    │   │   │   ├── infix_sumtype_in_array_err.vv
    │   │   │   ├── inner_functions_call_before_define.out
    │   │   │   ├── inner_functions_call_before_define.vv
    │   │   │   ├── int_modulo_by_zero_err.out
    │   │   │   ├── int_modulo_by_zero_err.vv
    │   │   │   ├── int_ptr_array_index_err.out
    │   │   │   ├── int_ptr_array_index_err.vv
    │   │   │   ├── int_signess_call_arg_test.out
    │   │   │   ├── int_signess_call_arg_test.vv
    │   │   │   ├── interface_field_name_err.out
    │   │   │   ├── interface_field_name_err.vv
    │   │   │   ├── interface_generic_err.out
    │   │   │   ├── interface_generic_err.vv
    │   │   │   ├── interface_implemented_by_function.out
    │   │   │   ├── interface_implemented_by_function.vv
    │   │   │   ├── interface_implementing_interface.out
    │   │   │   ├── interface_implementing_interface.vv
    │   │   │   ├── interface_implementing_own_interface_method.out
    │   │   │   ├── interface_implementing_own_interface_method.vv
    │   │   │   ├── interface_init_err.out
    │   │   │   ├── interface_init_err.vv
    │   │   │   ├── interface_method_name_err.out
    │   │   │   ├── interface_method_name_err.vv
    │   │   │   ├── interface_option_cast_err.out
    │   │   │   ├── interface_option_cast_err.vv
    │   │   │   ├── interface_return_parameter_err.out
    │   │   │   ├── interface_return_parameter_err.vv
    │   │   │   ├── interface_sameness_check_for_mutable_methods.out
    │   │   │   ├── interface_sameness_check_for_mutable_methods.vv
    │   │   │   ├── interface_too_many_embedding_levels.out
    │   │   │   ├── interface_too_many_embedding_levels.vv
    │   │   │   ├── interpolation_recursive_str_err.out
    │   │   │   ├── interpolation_recursive_str_err.vv
    │   │   │   ├── invalid_alias_ptr_cast_on_map_err.out
    │   │   │   ├── invalid_alias_ptr_cast_on_map_err.vv
    │   │   │   ├── invalid_char_err.out
    │   │   │   ├── invalid_char_err.vv
    │   │   │   ├── invalid_comptime_test.out
    │   │   │   ├── invalid_comptime_test.vv
    │   │   │   ├── invalid_const_expr_match_range_err.out
    │   │   │   ├── invalid_const_expr_match_range_err.vv
    │   │   │   ├── invalid_defer_mode_err.out
    │   │   │   ├── invalid_defer_mode_err.vv
    │   │   │   ├── invalid_generic_field_err.out
    │   │   │   ├── invalid_generic_field_err.vv
    │   │   │   ├── invalid_insert_references_test.out
    │   │   │   ├── invalid_insert_references_test.vv
    │   │   │   ├── invalid_literal_assign_err.out
    │   │   │   ├── invalid_literal_assign_err.vv
    │   │   │   ├── invalid_mismatch_for_range_type_err.out
    │   │   │   ├── invalid_mismatch_for_range_type_err.vv
    │   │   │   ├── invalid_multi_return_operations_err.out
    │   │   │   ├── invalid_multi_return_operations_err.vv
    │   │   │   ├── invalid_mut.out
    │   │   │   ├── invalid_mut.vv
    │   │   │   ├── invalid_nilref_err.out
    │   │   │   ├── invalid_nilref_err.vv
    │   │   │   ├── invalid_none_operations_err.out
    │   │   │   ├── invalid_none_operations_err.vv
    │   │   │   ├── invalid_op_ptr_err.out
    │   │   │   ├── invalid_op_ptr_err.vv
    │   │   │   ├── invalid_parameter_name_err.out
    │   │   │   ├── invalid_parameter_name_err.vv
    │   │   │   ├── invalid_prefix_left_side_assign_stmt_err.out
    │   │   │   ├── invalid_prefix_left_side_assign_stmt_err.vv
    │   │   │   ├── invalid_property.out
    │   │   │   ├── invalid_property.vv
    │   │   │   ├── invalid_recursive_struct_err.out
    │   │   │   ├── invalid_recursive_struct_err.vv
    │   │   │   ├── invalid_string_cast_to_pointers_err.out
    │   │   │   ├── invalid_string_cast_to_pointers_err.vv
    │   │   │   ├── invalid_utf8_string.out
    │   │   │   ├── invalid_utf8_string.vv
    │   │   │   ├── invalid_variable_err.out
    │   │   │   ├── invalid_variable_err.vv
    │   │   │   ├── invalid_variable_name_err.out
    │   │   │   ├── invalid_variable_name_err.vv
    │   │   │   ├── invalid_vweb_param_type.out
    │   │   │   ├── invalid_vweb_param_type.vv
    │   │   │   ├── invert_other_types_bits_error.out
    │   │   │   ├── invert_other_types_bits_error.vv
    │   │   │   ├── is_type_invalid.out
    │   │   │   ├── is_type_invalid.vv
    │   │   │   ├── is_type_not_exist.out
    │   │   │   ├── is_type_not_exist.vv
    │   │   │   ├── js_with_non_js_backend_too_many_arguments.out
    │   │   │   ├── js_with_non_js_backend_too_many_arguments.vv
    │   │   │   ├── json_decode.out
    │   │   │   ├── json_decode.vv
    │   │   │   ├── json_decode_shared_err.out
    │   │   │   ├── json_decode_shared_err.vv
    │   │   │   ├── labelled_break_continue.out
    │   │   │   ├── labelled_break_continue.vv
    │   │   │   ├── lambda_expression_in_map.out
    │   │   │   ├── lambda_expression_in_map.vv
    │   │   │   ├── lambda_expression_invalid.out
    │   │   │   ├── lambda_expression_invalid.vv
    │   │   │   ├── lambda_or_block_err.out
    │   │   │   ├── lambda_or_block_err.vv
    │   │   │   ├── lambda_undefined_variables_err.out
    │   │   │   ├── lambda_undefined_variables_err.vv
    │   │   │   ├── like_operator_outside_orm_1_error.out
    │   │   │   ├── like_operator_outside_orm_1_error.vv
    │   │   │   ├── like_operator_outside_orm_2_error.out
    │   │   │   ├── like_operator_outside_orm_2_error.vv
    │   │   │   ├── like_operator_with_non_string_type_error.out
    │   │   │   ├── like_operator_with_non_string_type_error.vv
    │   │   │   ├── lock_already_locked.out
    │   │   │   ├── lock_already_locked.vv
    │   │   │   ├── lock_already_rlocked.out
    │   │   │   ├── lock_already_rlocked.vv
    │   │   │   ├── lock_const.out
    │   │   │   ├── lock_const.vv
    │   │   │   ├── lock_needed.out
    │   │   │   ├── lock_needed.vv
    │   │   │   ├── lock_nonshared.out
    │   │   │   ├── lock_nonshared.vv
    │   │   │   ├── lockexpr_missing_return_err.out
    │   │   │   ├── lockexpr_missing_return_err.vv
    │   │   │   ├── main_args_err.out
    │   │   │   ├── main_args_err.vv
    │   │   │   ├── main_called_err.out
    │   │   │   ├── main_called_err.vv
    │   │   │   ├── main_no_body_err.out
    │   │   │   ├── main_no_body_err.vv
    │   │   │   ├── main_return_err.out
    │   │   │   ├── main_return_err.vv
    │   │   │   ├── map_builtin_method_args_err.out
    │   │   │   ├── map_builtin_method_args_err.vv
    │   │   │   ├── map_def_err.out
    │   │   │   ├── map_def_err.vv
    │   │   │   ├── map_delete.out
    │   │   │   ├── map_delete.vv
    │   │   │   ├── map_func_return_multiple_values_err.out
    │   │   │   ├── map_func_return_multiple_values_err.vv
    │   │   │   ├── map_func_void_return_err.out
    │   │   │   ├── map_func_void_return_err.vv
    │   │   │   ├── map_index_or_block_type_mismatch_err.out
    │   │   │   ├── map_index_or_block_type_mismatch_err.vv
    │   │   │   ├── map_index_reference_value.out
    │   │   │   ├── map_index_reference_value.vv
    │   │   │   ├── map_init_invalid_syntax.out
    │   │   │   ├── map_init_invalid_syntax.vv
    │   │   │   ├── map_init_invalid_update.out
    │   │   │   ├── map_init_invalid_update.vv
    │   │   │   ├── map_init_key_duplicate_err.out
    │   │   │   ├── map_init_key_duplicate_err.vv
    │   │   │   ├── map_init_wrong_expected_type.out
    │   │   │   ├── map_init_wrong_expected_type.vv
    │   │   │   ├── map_init_wrong_type.out
    │   │   │   ├── map_init_wrong_type.vv
    │   │   │   ├── map_init_wrong_update_type.out
    │   │   │   ├── map_init_wrong_update_type.vv
    │   │   │   ├── map_key_val_or_not_progagate_err.out
    │   │   │   ├── map_key_val_or_not_progagate_err.vv
    │   │   │   ├── map_lambda_void_return_err.out
    │   │   │   ├── map_lambda_void_return_err.vv
    │   │   │   ├── map_of_generic_struct_init_err.out
    │   │   │   ├── map_of_generic_struct_init_err.vv
    │   │   │   ├── map_ops.out
    │   │   │   ├── map_ops.vv
    │   │   │   ├── map_repeated_float_key_err.out
    │   │   │   ├── map_repeated_float_key_err.vv
    │   │   │   ├── map_result_callback_fn_err.out
    │   │   │   ├── map_result_callback_fn_err.vv
    │   │   │   ├── map_unknown_value.out
    │   │   │   ├── map_unknown_value.vv
    │   │   │   ├── map_with_none_err.out
    │   │   │   ├── map_with_none_err.vv
    │   │   │   ├── map_with_result_value_err.out
    │   │   │   ├── map_with_result_value_err.vv
    │   │   │   ├── match_alias_type_err.out
    │   │   │   ├── match_alias_type_err.vv
    │   │   │   ├── match_branch_call_expr_arg_mismatch.out
    │   │   │   ├── match_branch_call_expr_arg_mismatch.vv
    │   │   │   ├── match_cast_cond_not_same_range_cast_type_err.out
    │   │   │   ├── match_cast_cond_not_same_range_cast_type_err.vv
    │   │   │   ├── match_cond_with_parenthesis_err.out
    │   │   │   ├── match_cond_with_parenthesis_err.vv
    │   │   │   ├── match_duplicate_branch.out
    │   │   │   ├── match_duplicate_branch.vv
    │   │   │   ├── match_else_last_expr.out
    │   │   │   ├── match_else_last_expr.vv
    │   │   │   ├── match_enum_ref.out
    │   │   │   ├── match_enum_ref.vv
    │   │   │   ├── match_expr_and_expected_type_error.out
    │   │   │   ├── match_expr_and_expected_type_error.vv
    │   │   │   ├── match_expr_else.out
    │   │   │   ├── match_expr_else.vv
    │   │   │   ├── match_expr_empty_branch.out
    │   │   │   ├── match_expr_empty_branch.vv
    │   │   │   ├── match_expr_range_low_higher_than_high.out
    │   │   │   ├── match_expr_range_low_higher_than_high.vv
    │   │   │   ├── match_expr_with_none_only.out
    │   │   │   ├── match_expr_with_none_only.vv
    │   │   │   ├── match_generic_case_err.out
    │   │   │   ├── match_generic_case_err.vv
    │   │   │   ├── match_incorrect_cast_branch_err.out
    │   │   │   ├── match_incorrect_cast_branch_err.vv
    │   │   │   ├── match_invalid_type.out
    │   │   │   ├── match_invalid_type.vv
    │   │   │   ├── match_last_branch_only_casted.out
    │   │   │   ├── match_last_branch_only_casted.vv
    │   │   │   ├── match_missing.out
    │   │   │   ├── match_missing.vv
    │   │   │   ├── match_mut_with_immutable_var_err.out
    │   │   │   ├── match_mut_with_immutable_var_err.vv
    │   │   │   ├── match_no_branch_cast_rest_casted_err.out
    │   │   │   ├── match_no_branch_cast_rest_casted_err.vv
    │   │   │   ├── match_option_without_none_err.out
    │   │   │   ├── match_option_without_none_err.vv
    │   │   │   ├── match_range_mismatch_type_err.out
    │   │   │   ├── match_range_mismatch_type_err.vv
    │   │   │   ├── match_ranges_not_same_cast_err.out
    │   │   │   ├── match_ranges_not_same_cast_err.vv
    │   │   │   ├── match_return_mismatch_type_err.out
    │   │   │   ├── match_return_mismatch_type_err.vv
    │   │   │   ├── match_return_sumtype_mismatch_err.out
    │   │   │   ├── match_return_sumtype_mismatch_err.vv
    │   │   │   ├── match_sumtype_multiple_types.out
    │   │   │   ├── match_sumtype_multiple_types.vv
    │   │   │   ├── match_type_node_with_non_sum_type_err.out
    │   │   │   ├── match_type_node_with_non_sum_type_err.vv
    │   │   │   ├── match_undefined_cond.out
    │   │   │   ├── match_undefined_cond.vv
    │   │   │   ├── method_array_slice.out
    │   │   │   ├── method_array_slice.vv
    │   │   │   ├── method_call_arg_mismatch.out
    │   │   │   ├── method_call_arg_mismatch.vv
    │   │   │   ├── method_call_arg_no_mut_err.out
    │   │   │   ├── method_call_arg_no_mut_err.vv
    │   │   │   ├── method_call_on_undefined_err.out
    │   │   │   ├── method_call_on_undefined_err.vv
    │   │   │   ├── method_call_with_empty_struct_init.out
    │   │   │   ├── method_call_with_empty_struct_init.vv
    │   │   │   ├── method_generic_infer_err.out
    │   │   │   ├── method_generic_infer_err.vv
    │   │   │   ├── method_op_alias_err.out
    │   │   │   ├── method_op_alias_err.vv
    │   │   │   ├── method_op_err.out
    │   │   │   ├── method_op_err.vv
    │   │   │   ├── method_ptr_used_as_argument_err.out
    │   │   │   ├── method_ptr_used_as_argument_err.vv
    │   │   │   ├── method_wrong_arg_type.out
    │   │   │   ├── method_wrong_arg_type.vv
    │   │   │   ├── minus_op_wrong_type_err.out
    │   │   │   ├── minus_op_wrong_type_err.vv
    │   │   │   ├── mismatch_bool_assign_err.out
    │   │   │   ├── mismatch_bool_assign_err.vv
    │   │   │   ├── mismatched_ptr_op_ptr.out
    │   │   │   ├── mismatched_ptr_op_ptr.vv
    │   │   │   ├── missing_c_lib_header_1.out
    │   │   │   ├── missing_c_lib_header_1.vv
    │   │   │   ├── missing_c_lib_header_with_explanation_2.out
    │   │   │   ├── missing_c_lib_header_with_explanation_2.vv
    │   │   │   ├── missing_concrete_type_err.out
    │   │   │   ├── missing_concrete_type_err.vv
    │   │   │   ├── missing_export_attr_arg_err.out
    │   │   │   ├── missing_export_attr_arg_err.vv
    │   │   │   ├── misspelled_mod_const_should_have_suggestion.out
    │   │   │   ├── misspelled_mod_const_should_have_suggestion.vv
    │   │   │   ├── misspelled_mod_fn_name_should_have_suggestion.out
    │   │   │   ├── misspelled_mod_fn_name_should_have_suggestion.vv
    │   │   │   ├── mod_name_duplicate_const_err.out
    │   │   │   ├── mod_name_duplicate_const_err.vv
    │   │   │   ├── mod_name_duplicate_param_err.out
    │   │   │   ├── mod_name_duplicate_param_err.vv
    │   │   │   ├── mod_name_duplicate_var_err.out
    │   │   │   ├── mod_name_duplicate_var_err.vv
    │   │   │   ├── mod_op_wrong_type_err.out
    │   │   │   ├── mod_op_wrong_type_err.vv
    │   │   │   ├── module_not_at_same_line_err.out
    │   │   │   ├── module_not_at_same_line_err.vv
    │   │   │   ├── module_selector_decl_assign_err.out
    │   │   │   ├── module_selector_decl_assign_err.vv
    │   │   │   ├── module_with_deprecated_structs/
    │   │   │   │   └── module.v
    │   │   │   ├── modules/
    │   │   │   │   ├── anon_fn_name_across_files/
    │   │   │   │   │   ├── a.v
    │   │   │   │   │   ├── b.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── anon_fn_name_across_files.out
    │   │   │   │   ├── deprecated_consts/
    │   │   │   │   │   └── consts.v
    │   │   │   │   ├── deprecated_consts.out
    │   │   │   │   ├── deprecated_module/
    │   │   │   │   │   ├── bbb/
    │   │   │   │   │   │   └── ccc/
    │   │   │   │   │   │       └── ccc.v
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   ├── v.mod
    │   │   │   │   │   ├── www/
    │   │   │   │   │   │   └── ttt/
    │   │   │   │   │   │       └── ttt.v
    │   │   │   │   │   └── xxx/
    │   │   │   │   │       └── yyy/
    │   │   │   │   │           └── yyy.v
    │   │   │   │   ├── deprecated_module.out
    │   │   │   │   ├── embedded_private_method_visibility/
    │   │   │   │   │   ├── drawlib.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── embedded_private_method_visibility.out
    │   │   │   │   ├── enum_from_string_in_different_mods/
    │   │   │   │   │   ├── src/
    │   │   │   │   │   │   ├── main.v
    │   │   │   │   │   │   └── mod.v
    │   │   │   │   │   └── v.mod
    │   │   │   │   ├── enum_from_string_in_different_mods.out
    │   │   │   │   ├── implement_private_interface/
    │   │   │   │   │   ├── baz.v
    │   │   │   │   │   └── main.v
    │   │   │   │   ├── implement_private_interface.out
    │   │   │   │   ├── module_alias_started_with_underscore/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── underscore.v
    │   │   │   │   ├── module_alias_started_with_underscore.out
    │   │   │   │   ├── module_struct_noinit/
    │   │   │   │   │   └── src/
    │   │   │   │   │       ├── main.v
    │   │   │   │   │       └── mod.v
    │   │   │   │   ├── module_struct_noinit.out
    │   │   │   │   ├── module_with_redeclaration/
    │   │   │   │   │   ├── redeclare_time_structs.c.v
    │   │   │   │   │   └── v.mod
    │   │   │   │   ├── module_with_redeclaration.out
    │   │   │   │   ├── overload_return_type/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── point.v
    │   │   │   │   ├── overload_return_type.out
    │   │   │   │   ├── private_symbol/
    │   │   │   │   │   ├── main.v
    │   │   │   │   │   └── priv_sym.v
    │   │   │   │   └── private_symbol.out
    │   │   │   ├── mul_op_wrong_type_err.out
    │   │   │   ├── mul_op_wrong_type_err.vv
    │   │   │   ├── multi_const_field_name_duplicate_err.out
    │   │   │   ├── multi_const_field_name_duplicate_err.vv
    │   │   │   ├── multi_names_err.out
    │   │   │   ├── multi_names_err.vv
    │   │   │   ├── multi_return_arg_missing_err.out
    │   │   │   ├── multi_return_arg_missing_err.vv
    │   │   │   ├── multi_return_err.out
    │   │   │   ├── multi_return_err.vv
    │   │   │   ├── multi_return_use_void_type_err.out
    │   │   │   ├── multi_return_use_void_type_err.vv
    │   │   │   ├── multi_value_method_err.out
    │   │   │   ├── multi_value_method_err.vv
    │   │   │   ├── multiple_pointer_yield_err.out
    │   │   │   ├── multiple_pointer_yield_err.vv
    │   │   │   ├── multireturn_mix_err.out
    │   │   │   ├── multireturn_mix_err.vv
    │   │   │   ├── must_use.out
    │   │   │   ├── must_use.vv
    │   │   │   ├── mut_arg.out
    │   │   │   ├── mut_arg.vv
    │   │   │   ├── mut_arg_different_muls_err.out
    │   │   │   ├── mut_arg_different_muls_err.vv
    │   │   │   ├── mut_array_get_element_address_err.out
    │   │   │   ├── mut_array_get_element_address_err.vv
    │   │   │   ├── mut_assign_ref.out
    │   │   │   ├── mut_assign_ref.vv
    │   │   │   ├── mut_int.out
    │   │   │   ├── mut_int.vv
    │   │   │   ├── mut_interface_param_err.out
    │   │   │   ├── mut_interface_param_err.vv
    │   │   │   ├── mut_map_get_value_address_err.out
    │   │   │   ├── mut_map_get_value_address_err.vv
    │   │   │   ├── mut_parms_struct_param_err.out
    │   │   │   ├── mut_parms_struct_param_err.vv
    │   │   │   ├── mut_receiver.out
    │   │   │   ├── mut_receiver.vv
    │   │   │   ├── mut_receiver_lit.out
    │   │   │   ├── mut_receiver_lit.vv
    │   │   │   ├── mut_receiver_wrong_return_type.out
    │   │   │   ├── mut_receiver_wrong_return_type.vv
    │   │   │   ├── negative_assign_to_unsigned.out
    │   │   │   ├── negative_assign_to_unsigned.vv
    │   │   │   ├── nested_aliases.out
    │   │   │   ├── nested_aliases.vv
    │   │   │   ├── nested_fn_alias_err.out
    │   │   │   ├── nested_fn_alias_err.vv
    │   │   │   ├── nested_struct_with_required_attr_err.out
    │   │   │   ├── nested_struct_with_required_attr_err.vv
    │   │   │   ├── nil.out
    │   │   │   ├── nil.vv
    │   │   │   ├── nil_compare_err.out
    │   │   │   ├── nil_compare_err.vv
    │   │   │   ├── nil_to_option_err.out
    │   │   │   ├── nil_to_option_err.vv
    │   │   │   ├── no_arrays_of_references_in_translated.out
    │   │   │   ├── no_arrays_of_references_in_translated.vv
    │   │   │   ├── no_assign_0_to_a_reference_field_notice_in_translated.out
    │   │   │   ├── no_assign_0_to_a_reference_field_notice_in_translated.vv
    │   │   │   ├── no_cannot_cast_a_fixed_array_in_translated.out
    │   │   │   ├── no_cannot_cast_a_fixed_array_in_translated.vv
    │   │   │   ├── no_function_must_be_called_from_unsafe_in_translated.out
    │   │   │   ├── no_function_must_be_called_from_unsafe_in_translated.vv
    │   │   │   ├── no_goto_requires_unsafe_in_translated.out
    │   │   │   ├── no_goto_requires_unsafe_in_translated.vv
    │   │   │   ├── no_heap_struct.out
    │   │   │   ├── no_heap_struct.vv
    │   │   │   ├── no_interface_instantiation_a.out
    │   │   │   ├── no_interface_instantiation_a.vv
    │   │   │   ├── no_interface_instantiation_b.out
    │   │   │   ├── no_interface_instantiation_b.vv
    │   │   │   ├── no_interface_instantiation_c.out
    │   │   │   ├── no_interface_instantiation_c.vv
    │   │   │   ├── no_interface_str.out
    │   │   │   ├── no_interface_str.vv
    │   │   │   ├── no_main_mod.out
    │   │   │   ├── no_main_mod.vv
    │   │   │   ├── no_main_println_err.out
    │   │   │   ├── no_main_println_err.vv
    │   │   │   ├── no_method_must_be_called_from_unsafe_in_translated.out
    │   │   │   ├── no_method_must_be_called_from_unsafe_in_translated.vv
    │   │   │   ├── no_method_on_interface_propagation.out
    │   │   │   ├── no_method_on_interface_propagation.vv
    │   │   │   ├── no_operator_can_only_be_used_as_a_statement_in_translated.out
    │   │   │   ├── no_operator_can_only_be_used_as_a_statement_in_translated.vv
    │   │   │   ├── no_pointer_arithmetic_is_only_allowed_in_translated.out
    │   │   │   ├── no_pointer_arithmetic_is_only_allowed_in_translated.vv
    │   │   │   ├── no_pub_in_main.out
    │   │   │   ├── no_reading_a_union_field_in_translated.out
    │   │   │   ├── no_reading_a_union_field_in_translated.vv
    │   │   │   ├── no_sign_notice_in_translated.out
    │   │   │   ├── no_sign_notice_in_translated.vv
    │   │   │   ├── no_uninitialized_fn_struct_field_notice_in_translated.out
    │   │   │   ├── no_uninitialized_fn_struct_field_notice_in_translated.vv
    │   │   │   ├── no_unused_variable_in_translated.out
    │   │   │   ├── no_unused_variable_in_translated.vv
    │   │   │   ├── no_warning_for_in_mut_var_unused.out
    │   │   │   ├── no_warning_for_in_mut_var_unused.vv
    │   │   │   ├── non_const_match_range_err.out
    │   │   │   ├── non_const_match_range_err.vv
    │   │   │   ├── non_lvalue_as_voidptr.out
    │   │   │   ├── non_lvalue_as_voidptr.vv
    │   │   │   ├── non_matching_functional_args.out
    │   │   │   ├── non_matching_functional_args.vv
    │   │   │   ├── non_nil_array_with_nil_element_err.out
    │   │   │   ├── non_nil_array_with_nil_element_err.vv
    │   │   │   ├── non_optional_array_append_optional_type_err.out
    │   │   │   ├── non_optional_array_append_optional_type_err.vv
    │   │   │   ├── none_match_cond_err.out
    │   │   │   ├── none_match_cond_err.vv
    │   │   │   ├── none_type_cast_err.out
    │   │   │   ├── none_type_cast_err.vv
    │   │   │   ├── noreturn_with_non_empty_loop_at_end.out
    │   │   │   ├── noreturn_with_non_empty_loop_at_end.vv
    │   │   │   ├── noreturn_with_return.out
    │   │   │   ├── noreturn_with_return.vv
    │   │   │   ├── noreturn_without_loop_or_another_noreturn_at_end.out
    │   │   │   ├── noreturn_without_loop_or_another_noreturn_at_end.vv
    │   │   │   ├── number_literal_overflows_known_type_range_warn.out
    │   │   │   ├── number_literal_overflows_known_type_range_warn.vv
    │   │   │   ├── oct_lit_without_digit_err.out
    │   │   │   ├── oct_lit_without_digit_err.vv
    │   │   │   ├── oct_lit_wrong_digit_err.out
    │   │   │   ├── oct_lit_wrong_digit_err.vv
    │   │   │   ├── operator_overloading_return_type_option_or_result.out
    │   │   │   ├── operator_overloading_return_type_option_or_result.vv
    │   │   │   ├── opt_is_op_check_err.out
    │   │   │   ├── opt_is_op_check_err.vv
    │   │   │   ├── option_alias_result_type_err.out
    │   │   │   ├── option_alias_result_type_err.vv
    │   │   │   ├── option_and_result_err.out
    │   │   │   ├── option_and_result_err.vv
    │   │   │   ├── option_array_push.out
    │   │   │   ├── option_array_push.vv
    │   │   │   ├── option_as_cast_err.out
    │   │   │   ├── option_as_cast_err.vv
    │   │   │   ├── option_concrete_type_err.out
    │   │   │   ├── option_concrete_type_err.vv
    │   │   │   ├── option_fields_addr_err.out
    │   │   │   ├── option_fields_addr_err.vv
    │   │   │   ├── option_fn_err.out
    │   │   │   ├── option_fn_err.vv
    │   │   │   ├── option_fn_field_err.out
    │   │   │   ├── option_fn_field_err.vv
    │   │   │   ├── option_fn_return_error.out
    │   │   │   ├── option_fn_return_error.vv
    │   │   │   ├── option_fn_var_err.out
    │   │   │   ├── option_fn_var_err.vv
    │   │   │   ├── option_in_operator_err.out
    │   │   │   ├── option_in_operator_err.vv
    │   │   │   ├── option_in_println_mismatch.out
    │   │   │   ├── option_in_println_mismatch.vv
    │   │   │   ├── option_in_receiver_err.out
    │   │   │   ├── option_in_receiver_err.vv
    │   │   │   ├── option_interface_mismatch.out
    │   │   │   ├── option_interface_mismatch.vv
    │   │   │   ├── option_map_err.out
    │   │   │   ├── option_map_err.vv
    │   │   │   ├── option_multi_return_err.out
    │   │   │   ├── option_multi_return_err.vv
    │   │   │   ├── option_mut_non_mut_err.out
    │   │   │   ├── option_mut_non_mut_err.vv
    │   │   │   ├── option_or_block_mismatch.out
    │   │   │   ├── option_or_block_mismatch.vv
    │   │   │   ├── option_or_block_returns_value_of_incompatible_type.out
    │   │   │   ├── option_or_block_returns_value_of_incompatible_type.vv
    │   │   │   ├── option_propagate_nested.out
    │   │   │   ├── option_propagate_nested.vv
    │   │   │   ├── option_ptr_err.out
    │   │   │   ├── option_ptr_err.vv
    │   │   │   ├── option_ptr_without_unwrapp_err.out
    │   │   │   ├── option_ptr_without_unwrapp_err.vv
    │   │   │   ├── option_receive_ptr_err.out
    │   │   │   ├── option_receive_ptr_err.vv
    │   │   │   ├── option_ref_init_err.out
    │   │   │   ├── option_ref_init_err.vv
    │   │   │   ├── option_return_call_non_opt_err.out
    │   │   │   ├── option_return_call_non_opt_err.vv
    │   │   │   ├── option_return_selector_non_opt_err.out
    │   │   │   ├── option_return_selector_non_opt_err.vv
    │   │   │   ├── option_selector_fn_unwrap_err.out
    │   │   │   ├── option_selector_fn_unwrap_err.vv
    │   │   │   ├── option_selector_or_block_err.out
    │   │   │   ├── option_selector_or_block_err.vv
    │   │   │   ├── option_str_call.out
    │   │   │   ├── option_str_call.vv
    │   │   │   ├── option_type_call_err.out
    │   │   │   ├── option_type_call_err.vv
    │   │   │   ├── option_var_assign_err.out
    │   │   │   ├── option_var_assign_err.vv
    │   │   │   ├── option_var_unwrap_err.out
    │   │   │   ├── option_var_unwrap_err.vv
    │   │   │   ├── option_with_match_err.out
    │   │   │   ├── option_with_match_err.vv
    │   │   │   ├── option_wrapped_cmp_op_err.out
    │   │   │   ├── option_wrapped_cmp_op_err.vv
    │   │   │   ├── or_block_assert_err.out
    │   │   │   ├── or_block_assert_err.vv
    │   │   │   ├── or_block_check_err.out
    │   │   │   ├── or_block_check_err.vv
    │   │   │   ├── or_block_non_option_err.out
    │   │   │   ├── or_block_non_option_err.vv
    │   │   │   ├── or_err.out
    │   │   │   ├── or_err.vv
    │   │   │   ├── orm_aggregate_avg_time_error.out
    │   │   │   ├── orm_aggregate_avg_time_error.vv
    │   │   │   ├── orm_aggregate_expr_error.out
    │   │   │   ├── orm_aggregate_expr_error.vv
    │   │   │   ├── orm_aggregate_sum_string_error.out
    │   │   │   ├── orm_aggregate_sum_string_error.vv
    │   │   │   ├── orm_db_expr_option_error.out
    │   │   │   ├── orm_db_expr_option_error.vv
    │   │   │   ├── orm_empty_struct.out
    │   │   │   ├── orm_empty_struct.vv
    │   │   │   ├── orm_fkey_attribute.out
    │   │   │   ├── orm_fkey_attribute.vv
    │   │   │   ├── orm_fkey_has_pkey.out
    │   │   │   ├── orm_fkey_has_pkey.vv
    │   │   │   ├── orm_fkey_update.out
    │   │   │   ├── orm_fkey_update.vv
    │   │   │   ├── orm_fn_call_with_wrong_return_type.out
    │   │   │   ├── orm_fn_call_with_wrong_return_type.vv
    │   │   │   ├── orm_insert_object_with_mismatched_type_error.out
    │   │   │   ├── orm_insert_object_with_mismatched_type_error.vv
    │   │   │   ├── orm_invalid_recursive_structs_err_1.out
    │   │   │   ├── orm_invalid_recursive_structs_err_1.vv
    │   │   │   ├── orm_invalid_recursive_structs_err_2.out
    │   │   │   ├── orm_invalid_recursive_structs_err_2.vv
    │   │   │   ├── orm_left_side_expr_in_infix_expr_has_no_struct_field_error.out
    │   │   │   ├── orm_left_side_expr_in_infix_expr_has_no_struct_field_error.vv
    │   │   │   ├── orm_limit_less_than_zero_error.out
    │   │   │   ├── orm_limit_less_than_zero_error.vv
    │   │   │   ├── orm_multidim_array.out
    │   │   │   ├── orm_multidim_array.vv
    │   │   │   ├── orm_multiple_pkeys.out
    │   │   │   ├── orm_multiple_pkeys.vv
    │   │   │   ├── orm_no_default_value.out
    │   │   │   ├── orm_no_default_value.vv
    │   │   │   ├── orm_not_a_struct.out
    │   │   │   ├── orm_not_a_struct.vv
    │   │   │   ├── orm_op_with_option_and_none.out
    │   │   │   ├── orm_op_with_option_and_none.vv
    │   │   │   ├── orm_sub_struct_primary_key.out
    │   │   │   ├── orm_sub_struct_primary_key.vv
    │   │   │   ├── orm_table_attributes.out
    │   │   │   ├── orm_table_attributes.vv
    │   │   │   ├── orm_unused_var.out
    │   │   │   ├── orm_unused_var.vv
    │   │   │   ├── orm_update_anon_fn_option_infix_err.out
    │   │   │   ├── orm_update_anon_fn_option_infix_err.vv
    │   │   │   ├── orm_using_non_struct_field_in_order_by_error.out
    │   │   │   ├── orm_using_non_struct_field_in_order_by_error.vv
    │   │   │   ├── orm_using_undefined_object_in_insert_error.out
    │   │   │   ├── orm_using_undefined_object_in_insert_error.vv
    │   │   │   ├── orm_using_undefined_var_in_where_err.out
    │   │   │   ├── orm_using_undefined_var_in_where_err.vv
    │   │   │   ├── orm_where_clause_unsupported_field_types_err.out
    │   │   │   ├── orm_where_clause_unsupported_field_types_err.vv
    │   │   │   ├── orm_wrong_where_expr_error.out
    │   │   │   ├── orm_wrong_where_expr_error.vv
    │   │   │   ├── os_prefix.out
    │   │   │   ├── os_prefix.vv
    │   │   │   ├── overflow_int_err.out
    │   │   │   ├── overflow_int_err.vv
    │   │   │   ├── overflow_int_signed_err.out
    │   │   │   ├── overflow_int_signed_err.vv
    │   │   │   ├── overload_operator_difference_in_operand_types.out
    │   │   │   ├── overload_operator_difference_in_operand_types.vv
    │   │   │   ├── overload_return_type.out
    │   │   │   ├── overload_return_type.vv
    │   │   │   ├── oversized_int_lit.out
    │   │   │   ├── oversized_int_lit.vv
    │   │   │   ├── par_expr_assign_void_right_type_err.out
    │   │   │   ├── par_expr_assign_void_right_type_err.vv
    │   │   │   ├── par_expr_decl_assign_err.out
    │   │   │   ├── par_expr_decl_assign_err.vv
    │   │   │   ├── pass_mut_lit.out
    │   │   │   ├── pass_mut_lit.vv
    │   │   │   ├── passing_expr_to_fn_expecting_voidptr.out
    │   │   │   ├── passing_expr_to_fn_expecting_voidptr.vv
    │   │   │   ├── pointer_ops.out
    │   │   │   ├── pointer_ops.vv
    │   │   │   ├── prefix_addr_err.out
    │   │   │   ├── prefix_addr_err.vv
    │   │   │   ├── prefix_err.out
    │   │   │   ├── prefix_err.vv
    │   │   │   ├── prefix_expr_decl_assign_err.out
    │   │   │   ├── prefix_expr_decl_assign_err.vv
    │   │   │   ├── print_char.out
    │   │   │   ├── print_char.vv
    │   │   │   ├── println_can_not_print_void_expressions.out
    │   │   │   ├── println_can_not_print_void_expressions.vv
    │   │   │   ├── propagate_option_with_result_err.out
    │   │   │   ├── propagate_option_with_result_err.vv
    │   │   │   ├── propagate_result_with_option.out
    │   │   │   ├── propagate_result_with_option.vv
    │   │   │   ├── ptr_assign.out
    │   │   │   ├── ptr_assign.vv
    │   │   │   ├── ptr_slice.out
    │   │   │   ├── ptr_slice.vv
    │   │   │   ├── qsort_external_variable_err.out
    │   │   │   ├── qsort_external_variable_err.vv
    │   │   │   ├── receiver_unknown_type_single_letter.out
    │   │   │   ├── receiver_unknown_type_single_letter.vv
    │   │   │   ├── recursive_alias_type_err.out
    │   │   │   ├── recursive_alias_type_err.vv
    │   │   │   ├── recursive_interface_err.out
    │   │   │   ├── recursive_interface_err.vv
    │   │   │   ├── recursive_struct_inited_array_err.out
    │   │   │   ├── recursive_struct_inited_array_err.vv
    │   │   │   ├── redefining_builtin_pub_functi
Download .txt
Showing preview only (663K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7476 symbols across 332 files)

FILE: bench/crypto/ecdsa/ecdsa.c
  function time_diff_microseconds (line 16) | long time_diff_microseconds(struct timeval start, struct timeval end) {
  function main (line 22) | int main() {

FILE: bench/crypto/ecdsa/ecdsa.go
  function main (line 11) | func main() {

FILE: bench/vectors/vectors.cs
  type Vector (line 3) | internal readonly struct Vector
    method Vector (line 9) | public Vector(double x, double y, double z)
    method ToString (line 16) | public override string ToString()
  class Program (line 23) | class Program
    method Main (line 25) | static void Main(string[] args)

FILE: cmd/tools/vdoc/theme/doc.js
  function setupScrollSpy (line 13) | function setupScrollSpy() {
  function setupMobileToggle (line 67) | function setupMobileToggle() {
  function setupDarkMode (line 85) | function setupDarkMode() {
  function setupSearch (line 96) | function setupSearch() {
  function setupSearchKeymaps (line 186) | function setupSearchKeymaps() {
  function createSearchResult (line 257) | function createSearchResult(data) {
  function setupCollapse (line 284) | function setupCollapse() {
  function debounce (line 294) | function debounce(func, timeout) {
  function setupCodeCopy (line 305) | function setupCodeCopy() {

FILE: examples/call_v_from_python/test.py
  class VString (line 19) | class VString(Structure):

FILE: examples/call_v_from_ruby/test.rb
  function shared_library_extension (line 12) | def shared_library_extension
  type Lib (line 22) | module Lib

FILE: examples/database/psql/mydb.sql
  type public (line 40) | CREATE TABLE public.customers (

FILE: examples/js_dom_draw_benchmark_chart/typescript_vanilla_typeorm/src/index.ts
  type Response (line 4) | type Response = {
  class Task (line 11) | class Task {
  function sqlite_memory (line 31) | async function sqlite_memory(count: Number): Promise<Response> {

FILE: thirdparty/android/android.h
  function android_print (line 18) | int android_print(FILE *stream, const char *format, ...) {

FILE: thirdparty/cJSON/cJSON.c
  type error (line 92) | typedef struct {
  function cJSON_GetErrorPos (line 98) | CJSON_PUBLIC(size_t) cJSON_GetErrorPos(void)
  function cJSON_GetErrorPtr (line 103) | CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void)
  function cJSON_GetStringValue (line 108) | CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item)
  function cJSON_GetNumberValue (line 118) | CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item)
  function cJSON_Version (line 133) | CJSON_PUBLIC(const char*) cJSON_Version(void)
  function case_insensitive_strcmp (line 142) | static int case_insensitive_strcmp(const unsigned char *string1, const u...
  type internal_hooks (line 165) | typedef struct internal_hooks
  function internal_free (line 178) | static void CJSON_CDECL internal_free(void *pointer)
  function cJSON_InitHooks (line 218) | CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks)
  function cJSON (line 250) | static cJSON *cJSON_New_Item(const internal_hooks * const hooks)
  function cJSON_Delete (line 262) | CJSON_PUBLIC(void) cJSON_Delete(cJSON *item)
  function get_decimal_point (line 286) | static unsigned char get_decimal_point(void)
  type parse_buffer (line 296) | typedef struct
  function cJSON_bool (line 314) | static cJSON_bool parse_number(cJSON * const item, parse_buffer * const ...
  function cJSON_SetNumberHelper (line 391) | CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number)
  function cJSON_SetValuestring (line 409) | CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valu...
  type printbuffer (line 441) | typedef struct
  function update_offset (line 539) | static void update_offset(printbuffer * const buffer)
  function cJSON_bool (line 552) | static cJSON_bool compare_double(double a, double b)
  function cJSON_bool (line 559) | static cJSON_bool print_number(const cJSON * const item, printbuffer * c...
  function parse_hex4 (line 629) | static unsigned parse_hex4(const unsigned char * const input)
  function utf16_literal_to_utf8 (line 666) | static unsigned char utf16_literal_to_utf8(const unsigned char * const i...
  function cJSON_bool (line 787) | static cJSON_bool parse_string(cJSON * const item, parse_buffer * const ...
  function cJSON_bool (line 916) | static cJSON_bool print_string_ptr(const unsigned char * const input, pr...
  function cJSON_bool (line 1038) | static cJSON_bool print_string(const cJSON * const item, printbuffer * c...
  function parse_buffer (line 1052) | static parse_buffer *buffer_skip_whitespace(parse_buffer * const buffer)
  function parse_buffer (line 1078) | static parse_buffer *skip_utf8_bom(parse_buffer * const buffer)
  function cJSON_ParseWithOpts (line 1093) | CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char ...
  function cJSON_ParseWithLengthOpts (line 1109) | CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_...
  function cJSON_Parse (line 1189) | CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
  function cJSON_ParseWithLength (line 1194) | CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t bu...
  function cJSON_Print (line 1266) | CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item)
  function cJSON_PrintUnformatted (line 1271) | CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item)
  function cJSON_PrintBuffered (line 1276) | CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffe...
  function cJSON_PrintPreallocated (line 1306) | CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buff...
  function cJSON_bool (line 1326) | static cJSON_bool parse_value(cJSON * const item, parse_buffer * const i...
  function cJSON_bool (line 1381) | static cJSON_bool print_value(const cJSON * const item, printbuffer * co...
  function cJSON_bool (line 1455) | static cJSON_bool parse_array(cJSON * const item, parse_buffer * const i...
  function cJSON_bool (line 1553) | static cJSON_bool print_array(const cJSON * const item, printbuffer * co...
  function cJSON_bool (line 1615) | static cJSON_bool parse_object(cJSON * const item, parse_buffer * const ...
  function cJSON_bool (line 1728) | static cJSON_bool print_object(const cJSON * const item, printbuffer * c...
  function cJSON_GetArraySize (line 1842) | CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array)
  function cJSON (line 1865) | static cJSON* get_array_item(const cJSON *array, size_t index)
  function cJSON_GetArrayItem (line 1884) | CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index)
  function cJSON (line 1894) | static cJSON *get_object_item(const cJSON * const object, const char * c...
  function cJSON_GetObjectItem (line 1926) | CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, co...
  function cJSON_GetObjectItemCaseSensitive (line 1931) | CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * con...
  function cJSON_HasObjectItem (line 1936) | CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const ...
  function suffix_object (line 1942) | static void suffix_object(cJSON *prev, cJSON *item)
  function cJSON (line 1949) | static cJSON *create_reference(const cJSON *item, const internal_hooks *...
  function cJSON_bool (line 1970) | static cJSON_bool add_item_to_array(cJSON *array, cJSON *item)
  function cJSON_AddItemToArray (line 2004) | CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item)
  function cJSON_bool (line 2025) | static cJSON_bool add_item_to_object(cJSON * const object, const char * ...
  function cJSON_AddItemToObject (line 2062) | CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char...
  function cJSON_AddItemToObjectCS (line 2068) | CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const ch...
  function cJSON_AddItemReferenceToArray (line 2073) | CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJS...
  function cJSON_AddItemReferenceToObject (line 2083) | CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, c...
  function cJSON_AddNullToObject (line 2093) | CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const c...
  function cJSON_AddTrueToObject (line 2105) | CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const c...
  function cJSON_AddFalseToObject (line 2117) | CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const ...
  function cJSON_AddBoolToObject (line 2129) | CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const c...
  function cJSON_AddNumberToObject (line 2141) | CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const...
  function cJSON_AddStringToObject (line 2153) | CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const...
  function cJSON_AddRawToObject (line 2165) | CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const ch...
  function cJSON_AddObjectToObject (line 2177) | CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const...
  function cJSON_AddArrayToObject (line 2189) | CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const ...
  function cJSON_DetachItemViaPointer (line 2201) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * ...
  function cJSON_DetachItemFromArray (line 2237) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which)
  function cJSON_DeleteItemFromArray (line 2247) | CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which)
  function cJSON_DetachItemFromObject (line 2252) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const ch...
  function cJSON_DetachItemFromObjectCaseSensitive (line 2259) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *obj...
  function cJSON_DeleteItemFromObject (line 2266) | CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char ...
  function cJSON_DeleteItemFromObjectCaseSensitive (line 2271) | CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object...
  function cJSON_InsertItemInArray (line 2277) | CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which...
  function cJSON_ReplaceItemViaPointer (line 2311) | CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const paren...
  function cJSON_ReplaceItemInArray (line 2360) | CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int whic...
  function cJSON_bool (line 2370) | static cJSON_bool replace_item_in_object(cJSON *object, const char *stri...
  function cJSON_ReplaceItemInObject (line 2393) | CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object, const ...
  function cJSON_ReplaceItemInObjectCaseSensitive (line 2398) | CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *o...
  function cJSON_CreateNull (line 2404) | CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void)
  function cJSON_CreateTrue (line 2415) | CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void)
  function cJSON_CreateFalse (line 2426) | CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void)
  function cJSON_CreateBool (line 2437) | CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean)
  function cJSON_CreateNumber (line 2448) | CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num)
  function cJSON_CreateString (line 2474) | CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string)
  function cJSON_CreateStringReference (line 2491) | CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string)
  function cJSON_CreateObjectReference (line 2503) | CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child)
  function cJSON_CreateArrayReference (line 2514) | CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child) {
  function cJSON_CreateRaw (line 2524) | CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw)
  function cJSON_CreateArray (line 2541) | CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void)
  function cJSON_CreateObject (line 2552) | CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void)
  function cJSON_CreateIntArray (line 2564) | CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count)
  function cJSON_CreateFloatArray (line 2604) | CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int c...
  function cJSON_CreateDoubleArray (line 2644) | CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int...
  function cJSON_CreateStringArray (line 2684) | CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings...
  function cJSON_Duplicate (line 2725) | CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recu...
  function skip_oneline_comment (line 2808) | static void skip_oneline_comment(char **input)
  function skip_multiline_comment (line 2821) | static void skip_multiline_comment(char **input)
  function minify_string (line 2835) | static void minify_string(char **input, char **output) {
  function cJSON_Minify (line 2857) | CJSON_PUBLIC(void) cJSON_Minify(char *json)
  function cJSON_IsInvalid (line 2905) | CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item)
  function cJSON_IsFalse (line 2915) | CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item)
  function cJSON_IsTrue (line 2925) | CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item)
  function cJSON_IsBool (line 2936) | CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item)
  function cJSON_IsNull (line 2945) | CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item)
  function cJSON_IsNumber (line 2955) | CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item)
  function cJSON_IsString (line 2965) | CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item)
  function cJSON_IsArray (line 2975) | CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item)
  function cJSON_IsObject (line 2985) | CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item)
  function cJSON_IsRaw (line 2995) | CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item)
  function cJSON_Compare (line 3005) | CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSO...
  function cJSON_malloc (line 3130) | CJSON_PUBLIC(void *) cJSON_malloc(size_t size)
  function cJSON_free (line 3135) | CJSON_PUBLIC(void) cJSON_free(void *object)

FILE: thirdparty/cJSON/cJSON.h
  type cJSON (line 103) | typedef struct cJSON
  type cJSON_Hooks (line 125) | typedef struct cJSON_Hooks
  type cJSON_bool (line 132) | typedef int cJSON_bool;

FILE: thirdparty/fontstash/fontstash.h
  type FONSflags (line 46) | enum FONSflags {
  type FONSalign (line 51) | enum FONSalign {
  type FONSerrorCode (line 63) | enum FONSerrorCode {
  type FONSparams (line 74) | struct FONSparams {
  type FONSparams (line 84) | typedef struct FONSparams FONSparams;
  type FONSquad (line 86) | struct FONSquad
  type FONSquad (line 91) | typedef struct FONSquad FONSquad;
  type FONStextIter (line 93) | struct FONStextIter {
  type FONStextIter (line 104) | typedef struct FONStextIter FONStextIter;
  type FONScontext (line 106) | typedef struct FONScontext FONScontext;
  type FONSquad (line 147) | struct FONSquad
  type FONSttFontImpl (line 195) | struct FONSttFontImpl {
  type FONSttFontImpl (line 198) | typedef struct FONSttFontImpl FONSttFontImpl;
  function fons__tt_init (line 202) | static int fons__tt_init()
  function fons__tt_loadFont (line 211) | static int fons__tt_loadFont(FONScontext *context, FONSttFontImpl *font,...
  function fons__tt_getFontVMetrics (line 221) | static void fons__tt_getFontVMetrics(FONSttFontImpl *font, int *ascent, ...
  function fons__tt_getPixelHeightScale (line 228) | static float fons__tt_getPixelHeightScale(FONSttFontImpl *font, float size)
  function fons__tt_getGlyphIndex (line 233) | static int fons__tt_getGlyphIndex(FONSttFontImpl *font, int codepoint)
  function fons__tt_buildGlyphBitmap (line 238) | static int fons__tt_buildGlyphBitmap(FONSttFontImpl *font, int glyph, fl...
  function fons__tt_renderGlyphBitmap (line 262) | static void fons__tt_renderGlyphBitmap(FONSttFontImpl *font, unsigned ch...
  function fons__tt_getGlyphKernAdvance (line 281) | static int fons__tt_getGlyphKernAdvance(FONSttFontImpl *font, int glyph1...
  type FONSttFontImpl (line 298) | struct FONSttFontImpl {
  type FONSttFontImpl (line 301) | typedef struct FONSttFontImpl FONSttFontImpl;
  function fons__tt_init (line 303) | static int fons__tt_init(FONScontext *context)
  function fons__tt_loadFont (line 309) | static int fons__tt_loadFont(FONScontext *context, FONSttFontImpl *font,...
  function fons__tt_getFontVMetrics (line 319) | static void fons__tt_getFontVMetrics(FONSttFontImpl *font, int *ascent, ...
  function fons__tt_getPixelHeightScale (line 324) | static float fons__tt_getPixelHeightScale(FONSttFontImpl *font, float size)
  function fons__tt_getGlyphIndex (line 329) | static int fons__tt_getGlyphIndex(FONSttFontImpl *font, int codepoint)
  function fons__tt_buildGlyphBitmap (line 334) | static int fons__tt_buildGlyphBitmap(FONSttFontImpl *font, int glyph, fl...
  function fons__tt_renderGlyphBitmap (line 343) | static void fons__tt_renderGlyphBitmap(FONSttFontImpl *font, unsigned ch...
  function fons__tt_getGlyphKernAdvance (line 349) | static int fons__tt_getGlyphKernAdvance(FONSttFontImpl *font, int glyph1...
  function fons__hashint (line 381) | static unsigned int fons__hashint(unsigned int a)
  function fons__mini (line 392) | static int fons__mini(int a, int b)
  function fons__maxi (line 397) | static int fons__maxi(int a, int b)
  type FONSglyph (line 402) | struct FONSglyph
  type FONSglyph (line 411) | typedef struct FONSglyph FONSglyph;
  type FONSfont (line 413) | struct FONSfont
  type FONSfont (line 430) | typedef struct FONSfont FONSfont;
  type FONSstate (line 432) | struct FONSstate
  type FONSstate (line 441) | typedef struct FONSstate FONSstate;
  type FONSatlasNode (line 443) | struct FONSatlasNode {
  type FONSatlasNode (line 446) | typedef struct FONSatlasNode FONSatlasNode;
  type FONSatlas (line 448) | struct FONSatlas
  type FONSatlas (line 455) | typedef struct FONSatlas FONSatlas;
  type FONScontext (line 457) | struct FONScontext
  function fons__tmpfree (line 499) | static void fons__tmpfree(void* ptr, void* up)
  function fons__decutf8 (line 514) | static unsigned int fons__decutf8(unsigned int* state, unsigned int* cod...
  function fons__deleteAtlas (line 549) | static void fons__deleteAtlas(FONSatlas* atlas)
  function FONSatlas (line 556) | static FONSatlas* fons__allocAtlas(int w, int h, int nnodes)
  function fons__atlasInsertNode (line 588) | static int fons__atlasInsertNode(FONSatlas* atlas, int idx, int x, int y...
  function fons__atlasRemoveNode (line 608) | static void fons__atlasRemoveNode(FONSatlas* atlas, int idx)
  function fons__atlasExpand (line 617) | static void fons__atlasExpand(FONSatlas* atlas, int w, int h)
  function fons__atlasReset (line 626) | static void fons__atlasReset(FONSatlas* atlas, int w, int h)
  function fons__atlasAddSkylineLevel (line 639) | static int fons__atlasAddSkylineLevel(FONSatlas* atlas, int idx, int x, ...
  function fons__atlasRectFits (line 676) | static int fons__atlasRectFits(FONSatlas* atlas, int i, int w, int h)
  function fons__atlasAddRect (line 697) | static int fons__atlasAddRect(FONSatlas* atlas, int rw, int rh, int* rx,...
  function fons__addWhiteRect (line 729) | static void fons__addWhiteRect(FONScontext* stash, int w, int h)
  function FONScontext (line 750) | FONScontext* fonsCreateInternal(FONSparams* params)
  function FONSstate (line 808) | static FONSstate* fons__getState(FONScontext* stash)
  function fonsAddFallbackFont (line 813) | int fonsAddFallbackFont(FONScontext* stash, int base, int fallback)
  function fonsSetSize (line 823) | void fonsSetSize(FONScontext* stash, float size)
  function fonsSetColor (line 828) | void fonsSetColor(FONScontext* stash, unsigned int color)
  function fonsSetSpacing (line 833) | void fonsSetSpacing(FONScontext* stash, float spacing)
  function fonsSetBlur (line 838) | void fonsSetBlur(FONScontext* stash, float blur)
  function fonsSetAlign (line 843) | void fonsSetAlign(FONScontext* stash, int align)
  function fonsSetFont (line 848) | void fonsSetFont(FONScontext* stash, int font)
  function fonsPushState (line 853) | void fonsPushState(FONScontext* stash)
  function fonsPopState (line 865) | void fonsPopState(FONScontext* stash)
  function fonsClearState (line 875) | void fonsClearState(FONScontext* stash)
  function fons__freeFont (line 886) | static void fons__freeFont(FONSfont* font)
  function fons__allocFont (line 894) | static int fons__allocFont(FONScontext* stash)
  function fonsAddFontMem (line 921) | int fonsAddFontMem(FONScontext* stash, const char* name, unsigned char* ...
  function fonsGetFontByName (line 964) | int fonsGetFontByName(FONScontext* s, const char* name)
  function FONSglyph (line 975) | static FONSglyph* fons__allocGlyph(FONSfont* font)
  function fons__blurCols (line 992) | static void fons__blurCols(unsigned char* dst, int w, int h, int dstStri...
  function fons__blurRows (line 1012) | static void fons__blurRows(unsigned char* dst, int w, int h, int dstStri...
  function fons__blur (line 1033) | static void fons__blur(FONScontext* stash, unsigned char* dst, int w, in...
  function FONSglyph (line 1052) | static FONSglyph* fons__getGlyph(FONScontext* stash, FONSfont* font, uns...
  function fons__getQuad (line 1170) | static void fons__getQuad(FONScontext* stash, FONSfont* font,
  function fons__flush (line 1222) | static void fons__flush(FONScontext* stash)
  function fons__vertex (line 1243) | static __inline void fons__vertex(FONScontext* stash, float x, float y, ...
  function fons__getVertAlign (line 1253) | static float fons__getVertAlign(FONScontext* stash, FONSfont* font, int ...
  function FONS_DEF (line 1279) | FONS_DEF float fonsDrawText(FONScontext* stash,
  function FONS_DEF (line 1343) | FONS_DEF int fonsTextIterInit(FONScontext* stash, FONStextIter* iter,
  function FONS_DEF (line 1388) | FONS_DEF int fonsTextIterNext(FONScontext* stash, FONStextIter* iter, FO...
  function FONS_DEF (line 1415) | FONS_DEF void fonsDrawDebug(FONScontext* stash, float x, float y)
  function FONS_DEF (line 1463) | FONS_DEF float fonsTextBounds(FONScontext* stash,
  function FONS_DEF (line 1540) | FONS_DEF void fonsVertMetrics(FONScontext* stash,
  function FONS_DEF (line 1561) | FONS_DEF void fonsLineBounds(FONScontext* stash, float y, float* miny, f...
  function FONS_DEF (line 1593) | FONS_DEF int fonsValidateTexture(FONScontext* stash, int* dirty)
  function FONS_DEF (line 1610) | FONS_DEF void fonsDeleteInternal(FONScontext* stash)
  function FONS_DEF (line 1628) | FONS_DEF void fonsSetErrorCallback(FONScontext* stash, void (*callback)(...
  function FONS_DEF (line 1635) | FONS_DEF void fonsGetAtlasSize(FONScontext* stash, int* width, int* height)
  function FONS_DEF (line 1642) | FONS_DEF int fonsExpandAtlas(FONScontext* stash, int width, int height)
  function FONS_DEF (line 1698) | FONS_DEF int fonsResetAtlas(FONScontext* stash, int width, int height)

FILE: thirdparty/fontstash/stb_truetype.h
  function my_stbtt_initfont (line 287) | void my_stbtt_initfont(void)
  function my_stbtt_print (line 299) | void my_stbtt_print(float x, float y, char *text)
  function main (line 334) | int main(int argc, char **argv)
  function main (line 375) | int main(int arg, char **argv)
  type stbtt_uint8 (line 428) | typedef unsigned char   stbtt_uint8;
  type stbtt_int8 (line 429) | typedef signed   char   stbtt_int8;
  type stbtt_uint16 (line 430) | typedef unsigned short  stbtt_uint16;
  type stbtt_int16 (line 431) | typedef signed   short  stbtt_int16;
  type stbtt_uint32 (line 432) | typedef unsigned int    stbtt_uint32;
  type stbtt_int32 (line 433) | typedef signed   int    stbtt_int32;
  type stbtt__buf (line 513) | typedef struct
  type stbtt_bakedchar (line 527) | typedef struct
  type stbtt_aligned_quad (line 543) | typedef struct
  type stbtt_packedchar (line 575) | typedef struct
  type stbtt_pack_context (line 582) | typedef struct stbtt_pack_context stbtt_pack_context;
  type stbtt_fontinfo (line 583) | typedef struct stbtt_fontinfo stbtt_fontinfo;
  type stbrp_rect (line 585) | typedef struct stbrp_rect stbrp_rect;
  type stbtt_pack_range (line 619) | typedef struct
  type stbtt_pack_context (line 678) | struct stbtt_pack_context {
  type stbtt_fontinfo (line 713) | struct stbtt_fontinfo
  type stbtt_kerningentry (line 804) | typedef struct stbtt_kerningentry
  type stbtt_vertex (line 835) | typedef struct
  type stbtt__bitmap (line 924) | typedef struct
  function stbtt_uint8 (line 1133) | static stbtt_uint8 stbtt__buf_get8(stbtt__buf *b)
  function stbtt_uint8 (line 1140) | static stbtt_uint8 stbtt__buf_peek8(stbtt__buf *b)
  function stbtt__buf_seek (line 1147) | static void stbtt__buf_seek(stbtt__buf *b, int o)
  function stbtt__buf_skip (line 1153) | static void stbtt__buf_skip(stbtt__buf *b, int o)
  function stbtt_uint32 (line 1158) | static stbtt_uint32 stbtt__buf_get(stbtt__buf *b, int n)
  function stbtt__buf (line 1168) | static stbtt__buf stbtt__new_buf(const void *p, size_t size)
  function stbtt__buf (line 1181) | static stbtt__buf stbtt__buf_range(const stbtt__buf *b, int o, int s)
  function stbtt__buf (line 1190) | static stbtt__buf stbtt__cff_get_index(stbtt__buf *b)
  function stbtt_uint32 (line 1204) | static stbtt_uint32 stbtt__cff_int(stbtt__buf *b)
  function stbtt__cff_skip_operand (line 1216) | static void stbtt__cff_skip_operand(stbtt__buf *b) {
  function stbtt__buf (line 1231) | static stbtt__buf stbtt__dict_get(stbtt__buf *b, int key)
  function stbtt__dict_get_ints (line 1246) | static void stbtt__dict_get_ints(stbtt__buf *b, int key, int outcount, s...
  function stbtt__cff_index_count (line 1254) | static int stbtt__cff_index_count(stbtt__buf *b)
  function stbtt__buf (line 1260) | static stbtt__buf stbtt__cff_index_get(stbtt__buf b, int i)
  function stbtt_uint16 (line 1286) | static stbtt_uint16 ttUSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; }
  function stbtt_int16 (line 1287) | static stbtt_int16 ttSHORT(stbtt_uint8 *p)   { return p[0]*256 + p[1]; }
  function stbtt_uint32 (line 1288) | static stbtt_uint32 ttULONG(stbtt_uint8 *p)  { return (p[0]<<24) + (p[1]...
  function stbtt_int32 (line 1289) | static stbtt_int32 ttLONG(stbtt_uint8 *p)    { return (p[0]<<24) + (p[1]...
  function stbtt__isfont (line 1294) | static int stbtt__isfont(stbtt_uint8 *font)
  function stbtt_uint32 (line 1306) | static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fo...
  function stbtt_GetFontOffsetForIndex_internal (line 1319) | static int stbtt_GetFontOffsetForIndex_internal(unsigned char *font_coll...
  function stbtt_GetNumberOfFonts_internal (line 1338) | static int stbtt_GetNumberOfFonts_internal(unsigned char *font_collection)
  function stbtt__buf (line 1354) | static stbtt__buf stbtt__get_subrs(stbtt__buf cff, stbtt__buf fontdict)
  function stbtt__get_svg (line 1368) | static int stbtt__get_svg(stbtt_fontinfo *info)
  function stbtt_InitFont_internal (line 1383) | static int stbtt_InitFont_internal(stbtt_fontinfo *info, unsigned char *...
  function STBTT_DEF (line 1496) | STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unico...
  function STBTT_DEF (line 1589) | STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int un...
  function stbtt_setvertex (line 1594) | static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int...
  function stbtt__GetGlyfOffset (line 1603) | static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_in...
  function STBTT_DEF (line 1625) | STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_in...
  function STBTT_DEF (line 1641) | STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int code...
  function STBTT_DEF (line 1646) | STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_i...
  function stbtt__close_shape (line 1658) | static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, ...
  function stbtt__GetGlyphShapeTT (line 1674) | static int stbtt__GetGlyphShapeTT(const stbtt_fontinfo *info, int glyph_...
  type stbtt__csctx (line 1897) | typedef struct
  function stbtt__track_vertex (line 1911) | static void stbtt__track_vertex(stbtt__csctx *c, stbtt_int32 x, stbtt_in...
  function stbtt__csctx_v (line 1920) | static void stbtt__csctx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int3...
  function stbtt__csctx_close_shape (line 1936) | static void stbtt__csctx_close_shape(stbtt__csctx *ctx)
  function stbtt__csctx_rmove_to (line 1942) | static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy)
  function stbtt__csctx_rline_to (line 1950) | static void stbtt__csctx_rline_to(stbtt__csctx *ctx, float dx, float dy)
  function stbtt__csctx_rccurve_to (line 1957) | static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float ...
  function stbtt__buf (line 1968) | static stbtt__buf stbtt__get_subr(stbtt__buf idx, int n)
  function stbtt__buf (line 1982) | static stbtt__buf stbtt__cid_get_glyph_subrs(const stbtt_fontinfo *info,...
  function stbtt__run_charstring (line 2010) | static int stbtt__run_charstring(const stbtt_fontinfo *info, int glyph_i...
  function stbtt__GetGlyphShapeT2 (line 2269) | static int stbtt__GetGlyphShapeT2(const stbtt_fontinfo *info, int glyph_...
  function stbtt__GetGlyphInfoT2 (line 2286) | static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_i...
  function STBTT_DEF (line 2297) | STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_...
  function STBTT_DEF (line 2305) | STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int gl...
  function STBTT_DEF (line 2317) | STBTT_DEF int  stbtt_GetKerningTableLength(const stbtt_fontinfo *info)
  function STBTT_DEF (line 2332) | STBTT_DEF int stbtt_GetKerningTable(const stbtt_fontinfo *info, stbtt_ke...
  function stbtt__GetGlyphKernInfoAdvance (line 2359) | static int stbtt__GetGlyphKernInfoAdvance(const stbtt_fontinfo *info, in...
  function stbtt_int32 (line 2389) | static stbtt_int32 stbtt__GetCoverageIndex(stbtt_uint8 *coverageTable, i...
  function stbtt_int32 (line 2447) | static stbtt_int32  stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int...
  function stbtt_int32 (line 2496) | static stbtt_int32 stbtt__GetGlyphGPOSInfoAdvance(const stbtt_fontinfo *...
  function STBTT_DEF (line 2610) | STBTT_DEF int  stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int...
  function STBTT_DEF (line 2622) | STBTT_DEF int  stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info,...
  function STBTT_DEF (line 2629) | STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, in...
  function STBTT_DEF (line 2634) | STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *as...
  function STBTT_DEF (line 2641) | STBTT_DEF int  stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int ...
  function STBTT_DEF (line 2652) | STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int ...
  function STBTT_DEF (line 2660) | STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, fl...
  function STBTT_DEF (line 2666) | STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *in...
  function STBTT_DEF (line 2672) | STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v)
  function STBTT_DEF (line 2677) | STBTT_DEF stbtt_uint8 *stbtt_FindSVGDoc(const stbtt_fontinfo *info, int gl)
  function STBTT_DEF (line 2694) | STBTT_DEF int stbtt_GetGlyphSVG(const stbtt_fontinfo *info, int gl, cons...
  function STBTT_DEF (line 2711) | STBTT_DEF int stbtt_GetCodepointSVG(const stbtt_fontinfo *info, int unic...
  function STBTT_DEF (line 2721) | STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *fon...
  function STBTT_DEF (line 2739) | STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int g...
  function STBTT_DEF (line 2744) | STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo ...
  function STBTT_DEF (line 2749) | STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, i...
  type stbtt__hheap_chunk (line 2758) | typedef struct stbtt__hheap_chunk
  type stbtt__hheap (line 2763) | typedef struct stbtt__hheap
  function stbtt__hheap_free (line 2791) | static void stbtt__hheap_free(stbtt__hheap *hh, void *p)
  function stbtt__hheap_cleanup (line 2797) | static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata)
  type stbtt__edge (line 2807) | typedef struct stbtt__edge {
  type stbtt__active_edge (line 2813) | typedef struct stbtt__active_edge
  function stbtt__active_edge (line 2835) | static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__ed...
  function stbtt__active_edge (line 2857) | static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__ed...
  function stbtt__fill_active_edges (line 2882) | static void stbtt__fill_active_edges(unsigned char *scanline, int len, s...
  function stbtt__rasterize_sorted_edges (line 2924) | static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__...
  function stbtt__handle_clipped_edge (line 3028) | static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__ac...
  function stbtt__sized_trapezoid_area (line 3065) | static float stbtt__sized_trapezoid_area(float height, float top_width, ...
  function stbtt__position_trapezoid_area (line 3072) | static float stbtt__position_trapezoid_area(float height, float tx0, flo...
  function stbtt__sized_triangle_area (line 3077) | static float stbtt__sized_triangle_area(float height, float width)
  function stbtt__fill_active_edges_new (line 3082) | static void stbtt__fill_active_edges_new(float *scanline, float *scanlin...
  function stbtt__rasterize_sorted_edges (line 3297) | static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__...
  function stbtt__sort_edges_ins_sort (line 3399) | static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n)
  function stbtt__sort_edges_quicksort (line 3417) | static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n)
  function stbtt__sort_edges (line 3479) | static void stbtt__sort_edges(stbtt__edge *p, int n)
  type stbtt__point (line 3485) | typedef struct
  function stbtt__rasterize (line 3490) | static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, i...
  function stbtt__add_point (line 3547) | static void stbtt__add_point(stbtt__point *points, int n, float x, float y)
  function stbtt__tesselate_curve (line 3555) | static int stbtt__tesselate_curve(stbtt__point *points, int *num_points,...
  function stbtt__tesselate_cubic (line 3575) | static void stbtt__tesselate_cubic(stbtt__point *points, int *num_points...
  function stbtt__point (line 3618) | static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num...
  function STBTT_DEF (line 3695) | STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_...
  function STBTT_DEF (line 3708) | STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata)
  function STBTT_DEF (line 3758) | STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info,...
  function STBTT_DEF (line 3777) | STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigne...
  function STBTT_DEF (line 3787) | STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fo...
  function STBTT_DEF (line 3792) | STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *i...
  function STBTT_DEF (line 3802) | STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, uns...
  function stbtt_BakeFontBitmap_internal (line 3813) | static int stbtt_BakeFontBitmap_internal(unsigned char *data, int offset...
  function STBTT_DEF (line 3859) | STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int p...
  type stbrp_coord (line 3887) | typedef int stbrp_coord;
  type stbrp_context (line 3900) | typedef struct
  type stbrp_node (line 3906) | typedef struct
  type stbrp_rect (line 3911) | struct stbrp_rect
  function stbrp_init_target (line 3917) | static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_...
  function stbrp_pack_rects (line 3928) | static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int ...
  function STBTT_DEF (line 3957) | STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pi...
  function STBTT_DEF (line 3989) | STBTT_DEF void stbtt_PackEnd  (stbtt_pack_context *spc)
  function STBTT_DEF (line 3995) | STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsign...
  function STBTT_DEF (line 4005) | STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *sp...
  function stbtt__h_prefilter (line 4012) | static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int ...
  function stbtt__v_prefilter (line 4074) | static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int ...
  function stbtt__oversample_shift (line 4136) | static float stbtt__oversample_shift(int oversample)
  function STBTT_DEF (line 4149) | STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, c...
  function STBTT_DEF (line 4184) | STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontin...
  function STBTT_DEF (line 4208) | STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *sp...
  function STBTT_DEF (line 4297) | STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, st...
  function STBTT_DEF (line 4302) | STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsign...
  function STBTT_DEF (line 4338) | STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigne...
  function STBTT_DEF (line 4350) | STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata...
  function STBTT_DEF (line 4363) | STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int...
  function stbtt__ray_intersect_bezier (line 4398) | static int stbtt__ray_intersect_bezier(float orig[2], float ray[2], floa...
  function equal (line 4462) | static int equal(float *a, float *b)
  function stbtt__compute_crossings_x (line 4467) | static int stbtt__compute_crossings_x(float x, float y, int nverts, stbt...
  function stbtt__cuberoot (line 4535) | static float stbtt__cuberoot( float x )
  function stbtt__solve_cubic (line 4544) | static int stbtt__solve_cubic(float a, float b, float c, float* r)
  function STBTT_DEF (line 4765) | STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata)
  function stbtt_int32 (line 4776) | static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(stbtt_uint...
  function stbtt_CompareUTF8toUTF16_bigendian_internal (line 4815) | static int stbtt_CompareUTF8toUTF16_bigendian_internal(char *s1, int len...
  function STBTT_DEF (line 4822) | STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font...
  function stbtt__matchpair (line 4843) | static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint...
  function stbtt__matches (line 4890) | static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_ui...
  function stbtt_FindMatchingFont_internal (line 4919) | static int stbtt_FindMatchingFont_internal(unsigned char *font_collectio...
  function STBTT_DEF (line 4935) | STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset,
  function STBTT_DEF (line 4942) | STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int...
  function STBTT_DEF (line 4947) | STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data)
  function STBTT_DEF (line 4952) | STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *...
  function STBTT_DEF (line 4957) | STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, cons...
  function STBTT_DEF (line 4962) | STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len...

FILE: thirdparty/libatomic_ops/atomic_ops.c
  function lock_ool (line 148) | static void lock_ool(volatile AO_TS_t *l)
  function AO_INLINE (line 156) | AO_INLINE void lock(volatile AO_TS_t *l)
  function AO_INLINE (line 162) | AO_INLINE void unlock(volatile AO_TS_t *l)
  function AO_INLINE (line 172) | AO_INLINE void block_all_signals(sigset_t *old_sigs_ptr)
  function AO_API (line 193) | AO_API AO_t AO_fetch_compare_and_swap_emulation(volatile AO_t *addr,
  function AO_API (line 214) | AO_API int
  function AO_API (line 242) | AO_API void AO_store_full_emulation(volatile AO_t *addr, AO_t val)
  function AO_spin (line 264) | static void AO_spin(int n)
  function AO_API (line 275) | AO_API void AO_pause(int n)

FILE: thirdparty/libatomic_ops/atomic_ops.h
  type AO_uintptr_t (line 169) | typedef unsigned __int128 AO_uintptr_t;
  type AO_uintptr_t_size_static_assert (line 176) | struct AO_uintptr_t_size_static_assert {

FILE: thirdparty/libatomic_ops/atomic_ops/generalize-arithm.h
  function AO_INLINE (line 26) | AO_INLINE int
  function AO_INLINE (line 38) | AO_INLINE int
  function AO_INLINE (line 50) | AO_INLINE int
  function AO_INLINE (line 62) | AO_INLINE int
  function AO_INLINE (line 74) | AO_INLINE int
  function AO_INLINE (line 86) | AO_INLINE int
  function AO_INLINE (line 97) | AO_INLINE int
  function AO_INLINE (line 109) | AO_INLINE int
  function AO_INLINE (line 121) | AO_INLINE int
  function AO_char_fetch_and_add_full (line 137) | unsigned/**/char
  function AO_char_fetch_and_add_acquire (line 156) | unsigned/**/char
  function AO_char_fetch_and_add_release (line 175) | unsigned/**/char
  function AO_char_fetch_and_add (line 194) | unsigned/**/char
  function AO_char_fetch_and_add_acquire (line 235) | AO_INLINE unsigned/**/char
  function AO_char_and_full (line 608) | void
  function AO_char_or_full (line 691) | void
  function AO_char_xor_full (line 773) | void
  function AO_INLINE (line 878) | AO_INLINE int
  function AO_INLINE (line 890) | AO_INLINE int
  function AO_INLINE (line 902) | AO_INLINE int
  function AO_INLINE (line 914) | AO_INLINE int
  function AO_INLINE (line 926) | AO_INLINE int
  function AO_INLINE (line 938) | AO_INLINE int
  function AO_INLINE (line 949) | AO_INLINE int
  function AO_INLINE (line 961) | AO_INLINE int
  function AO_INLINE (line 973) | AO_INLINE int
  function AO_short_fetch_and_add_full (line 989) | unsigned/**/short
  function AO_short_fetch_and_add_acquire (line 1008) | unsigned/**/short
  function AO_short_fetch_and_add_release (line 1027) | unsigned/**/short
  function AO_short_fetch_and_add (line 1046) | unsigned/**/short
  function AO_short_fetch_and_add_acquire (line 1087) | AO_INLINE unsigned/**/short
  function AO_short_and_full (line 1460) | void
  function AO_short_or_full (line 1543) | void
  function AO_short_xor_full (line 1625) | void
  function AO_INLINE (line 1730) | AO_INLINE int
  function AO_INLINE (line 1742) | AO_INLINE int
  function AO_INLINE (line 1754) | AO_INLINE int
  function AO_INLINE (line 1766) | AO_INLINE int
  function AO_INLINE (line 1778) | AO_INLINE int
  function AO_INLINE (line 1790) | AO_INLINE int
  function AO_INLINE (line 1801) | AO_INLINE int
  function AO_INLINE (line 1813) | AO_INLINE int
  function AO_INLINE (line 1825) | AO_INLINE int
  function AO_int_fetch_and_add_full (line 1841) | unsigned
  function AO_int_fetch_and_add_acquire (line 1860) | unsigned
  function AO_int_fetch_and_add_release (line 1879) | unsigned
  function AO_int_fetch_and_add (line 1898) | unsigned
  function AO_int_fetch_and_add_acquire (line 1939) | AO_INLINE unsigned
  function AO_int_and_full (line 2312) | void
  function AO_int_or_full (line 2395) | void
  function AO_int_xor_full (line 2477) | void
  function AO_INLINE (line 2582) | AO_INLINE int
  function AO_INLINE (line 2594) | AO_INLINE int
  function AO_INLINE (line 2606) | AO_INLINE int
  function AO_INLINE (line 2618) | AO_INLINE int
  function AO_INLINE (line 2630) | AO_INLINE int
  function AO_INLINE (line 2642) | AO_INLINE int
  function AO_INLINE (line 2653) | AO_INLINE int
  function AO_INLINE (line 2665) | AO_INLINE int
  function AO_INLINE (line 2677) | AO_INLINE int
  function AO_t (line 2693) | AO_t
  function AO_t (line 2712) | AO_t
  function AO_t (line 2731) | AO_t
  function AO_t (line 2750) | AO_t
  function AO_INLINE (line 2791) | AO_INLINE AO_t
  function AO_and_full (line 3164) | void
  function AO_or_full (line 3247) | void
  function AO_xor_full (line 3329) | void

FILE: thirdparty/libatomic_ops/atomic_ops/generalize-small.h
  function AO_char_fetch_compare_and_swap_acquire (line 27) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 144) | AO_INLINE int
  function AO_char_load_acquire (line 280) | AO_INLINE unsigned/**/char
  function AO_char_load_read (line 295) | AO_INLINE unsigned/**/char
  function AO_char_load_read (line 316) | unsigned/**/char
  function AO_char_load_full (line 347) | unsigned/**/char
  function AO_char_load_acquire (line 365) | unsigned/**/char
  function AO_char_load (line 382) | unsigned/**/char
  function AO_char_store_write (line 455) | void
  function AO_char_store (line 485) | void
  function AO_char_store_release (line 501) | void
  function AO_char_store_full (line 517) | void
  function AO_short_fetch_compare_and_swap_acquire (line 555) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 672) | AO_INLINE int
  function AO_short_load_acquire (line 808) | AO_INLINE unsigned/**/short
  function AO_short_load_read (line 823) | AO_INLINE unsigned/**/short
  function AO_short_load_read (line 844) | unsigned/**/short
  function AO_short_load_full (line 875) | unsigned/**/short
  function AO_short_load_acquire (line 893) | unsigned/**/short
  function AO_short_load (line 910) | unsigned/**/short
  function AO_short_store_write (line 983) | void
  function AO_short_store (line 1013) | void
  function AO_short_store_release (line 1029) | void
  function AO_short_store_full (line 1045) | void
  function AO_int_fetch_compare_and_swap_acquire (line 1083) | AO_INLINE unsigned
  function AO_INLINE (line 1200) | AO_INLINE int
  function AO_int_load_acquire (line 1336) | AO_INLINE unsigned
  function AO_int_load_read (line 1351) | AO_INLINE unsigned
  function AO_int_load_read (line 1372) | unsigned
  function AO_int_load_full (line 1403) | unsigned
  function AO_int_load_acquire (line 1421) | unsigned
  function AO_int_load (line 1438) | unsigned
  function AO_int_store_write (line 1511) | void
  function AO_int_store (line 1541) | void
  function AO_int_store_release (line 1557) | void
  function AO_int_store_full (line 1573) | void
  function AO_INLINE (line 1611) | AO_INLINE AO_t
  function AO_INLINE (line 1728) | AO_INLINE int
  function AO_INLINE (line 1864) | AO_INLINE AO_t
  function AO_INLINE (line 1879) | AO_INLINE AO_t
  function AO_t (line 1900) | AO_t
  function AO_t (line 1931) | AO_t
  function AO_t (line 1949) | AO_t
  function AO_t (line 1966) | AO_t
  function AO_store_write (line 2039) | void
  function AO_store (line 2069) | void
  function AO_store_release (line 2085) | void
  function AO_store_full (line 2101) | void
  function AO_INLINE (line 2139) | AO_INLINE AO_double_t
  function AO_INLINE (line 2256) | AO_INLINE int
  function AO_INLINE (line 2392) | AO_INLINE AO_double_t
  function AO_INLINE (line 2407) | AO_INLINE AO_double_t
  function AO_double_t (line 2428) | AO_double_t
  function AO_double_t (line 2459) | AO_double_t
  function AO_double_t (line 2477) | AO_double_t
  function AO_double_t (line 2494) | AO_double_t
  function AO_double_store_write (line 2567) | void
  function AO_double_store (line 2597) | void
  function AO_double_store_release (line 2613) | void
  function AO_double_store_full (line 2629) | void

FILE: thirdparty/libatomic_ops/atomic_ops/generalize.h
  function AO_INLINE (line 59) | AO_INLINE int
  function AO_INLINE (line 69) | AO_INLINE int
  function AO_INLINE (line 80) | AO_INLINE int
  function AO_INLINE (line 92) | AO_INLINE int
  function AO_INLINE (line 123) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 137) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 151) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 164) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 178) | AO_INLINE void AO_nop(void) {}
  function AO_INLINE (line 183) | AO_INLINE void
  function AO_INLINE (line 219) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 314) | AO_INLINE int
  function AO_INLINE (line 331) | AO_INLINE int
  function AO_INLINE (line 348) | AO_INLINE int
  function AO_INLINE (line 365) | AO_INLINE int
  function AO_INLINE (line 386) | AO_INLINE int
  function AO_INLINE (line 503) | AO_INLINE int
  function AO_INLINE (line 620) | AO_INLINE int
  function AO_INLINE (line 632) | AO_INLINE int
  function AO_INLINE (line 644) | AO_INLINE int
  function AO_INLINE (line 656) | AO_INLINE int
  function AO_INLINE (line 668) | AO_INLINE int
  function AO_INLINE (line 680) | AO_INLINE int
  function AO_INLINE (line 692) | AO_INLINE int
  function AO_INLINE (line 704) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/armcc/arm_v6.h
  function AO_INLINE (line 50) | AO_INLINE void
  function double_ptr_storage (line 224) | double_ptr_storage AO_load_ex(const volatile AO_double_t *addr) {
  function AO_INLINE (line 243) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/aarch64.h
  function AO_INLINE (line 23) | AO_INLINE void
  function AO_INLINE (line 46) | AO_INLINE AO_double_t
  function AO_INLINE (line 70) | AO_INLINE AO_double_t
  function AO_INLINE (line 92) | AO_INLINE void
  function AO_INLINE (line 117) | AO_INLINE void
  function AO_INLINE (line 140) | AO_INLINE int
  function AO_INLINE (line 171) | AO_INLINE int
  function AO_INLINE (line 202) | AO_INLINE int
  function AO_INLINE (line 233) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/alpha.h
  function AO_INLINE (line 26) | AO_INLINE void
  function AO_INLINE (line 33) | AO_INLINE void
  function AO_INLINE (line 45) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/arm.h
  function AO_INLINE (line 104) | AO_INLINE void
  function AO_INLINE (line 128) | AO_INLINE void
  function AO_INLINE (line 140) | AO_INLINE void
  function AO_INLINE (line 151) | AO_INLINE void
  function AO_INLINE (line 313) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 337) | AO_INLINE AO_t
  function AO_INLINE (line 361) | AO_INLINE AO_t
  function AO_INLINE (line 385) | AO_INLINE AO_t
  function AO_INLINE (line 409) | AO_INLINE void
  function AO_INLINE (line 431) | AO_INLINE void
  function AO_INLINE (line 453) | AO_INLINE void
  function AO_char_fetch_and_add (line 477) | AO_INLINE unsigned char
  function AO_short_fetch_and_add (line 501) | AO_INLINE unsigned short
  function AO_INLINE (line 528) | AO_INLINE int
  function AO_INLINE (line 595) | AO_INLINE AO_double_t
  function AO_INLINE (line 611) | AO_INLINE void
  function AO_INLINE (line 676) | AO_INLINE AO_TS_VAL_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/avr32.h
  function AO_INLINE (line 32) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 48) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/cris.h
  function AO_INLINE (line 46) | AO_INLINE AO_TS_VAL_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/generic-arithm.h
  function AO_char_fetch_and_add (line 20) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 28) | AO_INLINE void
  function AO_INLINE (line 37) | AO_INLINE void
  function AO_INLINE (line 46) | AO_INLINE void
  function AO_short_fetch_and_add (line 74) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 82) | AO_INLINE void
  function AO_INLINE (line 91) | AO_INLINE void
  function AO_INLINE (line 100) | AO_INLINE void
  function AO_int_fetch_and_add (line 128) | AO_INLINE unsigned
  function AO_INLINE (line 136) | AO_INLINE void
  function AO_INLINE (line 145) | AO_INLINE void
  function AO_INLINE (line 154) | AO_INLINE void
  function AO_INLINE (line 182) | AO_INLINE AO_t
  function AO_INLINE (line 190) | AO_INLINE void
  function AO_INLINE (line 199) | AO_INLINE void
  function AO_INLINE (line 208) | AO_INLINE void
  function AO_char_fetch_and_add_acquire (line 236) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 244) | AO_INLINE void
  function AO_INLINE (line 253) | AO_INLINE void
  function AO_INLINE (line 262) | AO_INLINE void
  function AO_short_fetch_and_add_acquire (line 290) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 298) | AO_INLINE void
  function AO_INLINE (line 307) | AO_INLINE void
  function AO_INLINE (line 316) | AO_INLINE void
  function AO_int_fetch_and_add_acquire (line 344) | AO_INLINE unsigned
  function AO_INLINE (line 352) | AO_INLINE void
  function AO_INLINE (line 361) | AO_INLINE void
  function AO_INLINE (line 370) | AO_INLINE void
  function AO_INLINE (line 398) | AO_INLINE AO_t
  function AO_INLINE (line 406) | AO_INLINE void
  function AO_INLINE (line 415) | AO_INLINE void
  function AO_INLINE (line 424) | AO_INLINE void
  function AO_char_fetch_and_add_release (line 452) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 460) | AO_INLINE void
  function AO_INLINE (line 469) | AO_INLINE void
  function AO_INLINE (line 478) | AO_INLINE void
  function AO_short_fetch_and_add_release (line 506) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 514) | AO_INLINE void
  function AO_INLINE (line 523) | AO_INLINE void
  function AO_INLINE (line 532) | AO_INLINE void
  function AO_int_fetch_and_add_release (line 560) | AO_INLINE unsigned
  function AO_INLINE (line 568) | AO_INLINE void
  function AO_INLINE (line 577) | AO_INLINE void
  function AO_INLINE (line 586) | AO_INLINE void
  function AO_INLINE (line 614) | AO_INLINE AO_t
  function AO_INLINE (line 622) | AO_INLINE void
  function AO_INLINE (line 631) | AO_INLINE void
  function AO_INLINE (line 640) | AO_INLINE void
  function AO_char_fetch_and_add_full (line 668) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 676) | AO_INLINE void
  function AO_INLINE (line 685) | AO_INLINE void
  function AO_INLINE (line 694) | AO_INLINE void
  function AO_short_fetch_and_add_full (line 722) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 730) | AO_INLINE void
  function AO_INLINE (line 739) | AO_INLINE void
  function AO_INLINE (line 748) | AO_INLINE void
  function AO_int_fetch_and_add_full (line 776) | AO_INLINE unsigned
  function AO_INLINE (line 784) | AO_INLINE void
  function AO_INLINE (line 793) | AO_INLINE void
  function AO_INLINE (line 802) | AO_INLINE void
  function AO_INLINE (line 830) | AO_INLINE AO_t
  function AO_INLINE (line 838) | AO_INLINE void
  function AO_INLINE (line 847) | AO_INLINE void
  function AO_INLINE (line 856) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/generic-small.h
  function AO_char_load (line 20) | AO_INLINE unsigned/**/char
  function AO_char_load_acquire (line 27) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 50) | AO_INLINE void
  function AO_INLINE (line 59) | AO_INLINE void
  function AO_char_fetch_compare_and_swap (line 71) | AO_INLINE unsigned/**/char
  function AO_char_fetch_compare_and_swap_acquire (line 85) | AO_INLINE unsigned/**/char
  function AO_char_fetch_compare_and_swap_release (line 95) | AO_INLINE unsigned/**/char
  function AO_char_fetch_compare_and_swap_full (line 106) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 118) | AO_INLINE int
  function AO_INLINE (line 127) | AO_INLINE int
  function AO_INLINE (line 136) | AO_INLINE int
  function AO_INLINE (line 146) | AO_INLINE int
  function AO_short_load (line 178) | AO_INLINE unsigned/**/short
  function AO_short_load_acquire (line 185) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 208) | AO_INLINE void
  function AO_INLINE (line 217) | AO_INLINE void
  function AO_short_fetch_compare_and_swap (line 229) | AO_INLINE unsigned/**/short
  function AO_short_fetch_compare_and_swap_acquire (line 243) | AO_INLINE unsigned/**/short
  function AO_short_fetch_compare_and_swap_release (line 253) | AO_INLINE unsigned/**/short
  function AO_short_fetch_compare_and_swap_full (line 264) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 276) | AO_INLINE int
  function AO_INLINE (line 285) | AO_INLINE int
  function AO_INLINE (line 294) | AO_INLINE int
  function AO_INLINE (line 304) | AO_INLINE int
  function AO_int_load (line 336) | AO_INLINE unsigned
  function AO_int_load_acquire (line 343) | AO_INLINE unsigned
  function AO_INLINE (line 366) | AO_INLINE void
  function AO_INLINE (line 375) | AO_INLINE void
  function AO_int_fetch_compare_and_swap (line 387) | AO_INLINE unsigned
  function AO_int_fetch_compare_and_swap_acquire (line 401) | AO_INLINE unsigned
  function AO_int_fetch_compare_and_swap_release (line 411) | AO_INLINE unsigned
  function AO_int_fetch_compare_and_swap_full (line 422) | AO_INLINE unsigned
  function AO_INLINE (line 434) | AO_INLINE int
  function AO_INLINE (line 443) | AO_INLINE int
  function AO_INLINE (line 452) | AO_INLINE int
  function AO_INLINE (line 462) | AO_INLINE int
  function AO_INLINE (line 494) | AO_INLINE AO_t
  function AO_INLINE (line 501) | AO_INLINE AO_t
  function AO_INLINE (line 524) | AO_INLINE void
  function AO_INLINE (line 533) | AO_INLINE void
  function AO_INLINE (line 545) | AO_INLINE AO_t
  function AO_INLINE (line 559) | AO_INLINE AO_t
  function AO_INLINE (line 569) | AO_INLINE AO_t
  function AO_INLINE (line 580) | AO_INLINE AO_t
  function AO_INLINE (line 592) | AO_INLINE int
  function AO_INLINE (line 601) | AO_INLINE int
  function AO_INLINE (line 610) | AO_INLINE int
  function AO_INLINE (line 620) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/generic.h
  function AO_INLINE (line 54) | AO_INLINE void
  function AO_INLINE (line 66) | AO_INLINE void
  function AO_INLINE (line 74) | AO_INLINE void
  function AO_INLINE (line 82) | AO_INLINE void
  function AO_INLINE (line 99) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 107) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 115) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 123) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 145) | AO_INLINE AO_double_t
  function AO_INLINE (line 158) | AO_INLINE AO_double_t
  function AO_INLINE (line 170) | AO_INLINE void
  function AO_INLINE (line 180) | AO_INLINE void
  function AO_INLINE (line 194) | AO_INLINE int
  function AO_INLINE (line 209) | AO_INLINE int
  function AO_INLINE (line 222) | AO_INLINE int
  function AO_INLINE (line 236) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/hexagon.h
  function AO_INLINE (line 33) | AO_INLINE void
  function AO_INLINE (line 44) | AO_INLINE AO_t
  function AO_INLINE (line 62) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 87) | AO_INLINE int
  function AO_INLINE (line 112) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/hppa.h
  type AO_pa_clearable_loc (line 34) | struct AO_pa_clearable_loc {
  type AO_PA_TS_val (line 43) | typedef enum {AO_PA_TS_set = 0, AO_PA_TS_clear = 1} AO_PA_TS_val;
  function AO_INLINE (line 70) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 81) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/ia64.h
  function AO_INLINE (line 57) | AO_INLINE void
  function AO_INLINE (line 65) | AO_INLINE AO_t
  function AO_INLINE (line 77) | AO_INLINE AO_t
  function AO_INLINE (line 89) | AO_INLINE AO_t
  function AO_INLINE (line 101) | AO_INLINE AO_t
  function AO_INLINE (line 114) | AO_INLINE AO_t
  function AO_INLINE (line 129) | AO_INLINE AO_t
  function AO_char_fetch_compare_and_swap_acquire (line 144) | AO_INLINE unsigned char
  function AO_char_fetch_compare_and_swap_release (line 158) | AO_INLINE unsigned char
  function AO_short_fetch_compare_and_swap_acquire (line 172) | AO_INLINE unsigned short
  function AO_short_fetch_compare_and_swap_release (line 186) | AO_INLINE unsigned short
  function AO_int_fetch_and_add1_acquire (line 208) | AO_INLINE unsigned int
  function AO_int_fetch_and_add1_release (line 219) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1_acquire (line 230) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1_release (line 241) | AO_INLINE unsigned int
  function AO_int_fetch_compare_and_swap_acquire (line 253) | AO_INLINE unsigned int
  function AO_int_fetch_compare_and_swap_release (line 266) | AO_INLINE unsigned int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/m68k.h
  type AO_t (line 21) | typedef unsigned long AO_t __attribute__((__aligned__(4)));
  function AO_INLINE (line 32) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 51) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/mips.h
  function AO_INLINE (line 71) | AO_INLINE void
  function AO_INLINE (line 86) | AO_INLINE AO_t
  function AO_INLINE (line 111) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 140) | AO_INLINE int
  function AO_INLINE (line 168) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/powerpc.h
  function AO_INLINE (line 50) | AO_INLINE void
  function AO_INLINE (line 58) | AO_INLINE void
  function AO_INLINE (line 109) | AO_INLINE AO_t
  function AO_INLINE (line 127) | AO_INLINE void
  function AO_INLINE (line 139) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 162) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 170) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 177) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 190) | AO_INLINE int
  function AO_INLINE (line 212) | AO_INLINE int
  function AO_INLINE (line 221) | AO_INLINE int
  function AO_INLINE (line 229) | AO_INLINE int
  function AO_INLINE (line 243) | AO_INLINE AO_t
  function AO_INLINE (line 263) | AO_INLINE AO_t
  function AO_INLINE (line 273) | AO_INLINE AO_t
  function AO_INLINE (line 282) | AO_INLINE AO_t
  function AO_INLINE (line 296) | AO_INLINE AO_t
  function AO_INLINE (line 314) | AO_INLINE AO_t
  function AO_INLINE (line 322) | AO_INLINE AO_t
  function AO_INLINE (line 329) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/riscv.h
  function AO_INLINE (line 38) | AO_INLINE int
  function AO_INLINE (line 51) | AO_INLINE int
  function AO_INLINE (line 64) | AO_INLINE int
  function AO_INLINE (line 77) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/s390.h
  function AO_INLINE (line 53) | AO_INLINE int AO_compare_and_swap_full(volatile AO_t *addr,
  function AO_INLINE (line 73) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/sh.h
  function AO_INLINE (line 21) | AO_INLINE AO_TS_VAL_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/sparc.h
  function AO_INLINE (line 34) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 49) | AO_INLINE int
  function AO_INLINE (line 66) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/tile.h
  function AO_INLINE (line 25) | AO_INLINE void
  function AO_INLINE (line 32) | AO_INLINE AO_t
  function AO_INLINE (line 39) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/gcc/x86.h
  function AO_INLINE (line 105) | AO_INLINE void
  function AO_INLINE (line 123) | AO_INLINE AO_t
  function AO_char_fetch_and_add_full (line 137) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_full (line 150) | AO_INLINE unsigned short
  function AO_INLINE (line 164) | AO_INLINE void
  function AO_INLINE (line 174) | AO_INLINE void
  function AO_INLINE (line 184) | AO_INLINE void
  function AO_INLINE (line 198) | AO_INLINE void
  function AO_INLINE (line 208) | AO_INLINE void
  function AO_INLINE (line 218) | AO_INLINE void
  function AO_INLINE (line 228) | AO_INLINE void
  function AO_INLINE (line 238) | AO_INLINE void
  function AO_INLINE (line 248) | AO_INLINE void
  function AO_INLINE (line 259) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 274) | AO_INLINE int
  function AO_INLINE (line 304) | AO_INLINE AO_t
  function AO_char_fetch_compare_and_swap_full (line 322) | AO_INLINE unsigned char
  function AO_short_fetch_compare_and_swap_full (line 342) | AO_INLINE unsigned short
  function AO_int_fetch_compare_and_swap_full (line 363) | AO_INLINE unsigned int
  function AO_int_fetch_and_add_full (line 384) | AO_INLINE unsigned int
  function AO_INLINE (line 397) | AO_INLINE void
  function AO_INLINE (line 407) | AO_INLINE void
  function AO_INLINE (line 417) | AO_INLINE void
  function AO_INLINE (line 464) | AO_INLINE int
  function AO_INLINE (line 554) | AO_INLINE int
  function AO_INLINE (line 591) | AO_INLINE int
  function AO_INLINE (line 637) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/generic_pthread.h
  function AO_INLINE (line 48) | AO_INLINE void
  function AO_INLINE (line 56) | AO_INLINE AO_t
  function AO_INLINE (line 67) | AO_INLINE void
  function AO_char_load_full (line 76) | AO_INLINE unsigned char
  function AO_INLINE (line 87) | AO_INLINE void
  function AO_short_load_full (line 96) | AO_INLINE unsigned short
  function AO_INLINE (line 107) | AO_INLINE void
  function AO_int_load_full (line 116) | AO_INLINE unsigned int
  function AO_INLINE (line 127) | AO_INLINE void
  function AO_INLINE (line 136) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 149) | AO_INLINE AO_t
  function AO_char_fetch_and_add_full (line 162) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_full (line 175) | AO_INLINE unsigned short
  function AO_int_fetch_and_add_full (line 188) | AO_INLINE unsigned int
  function AO_INLINE (line 201) | AO_INLINE void
  function AO_INLINE (line 210) | AO_INLINE void
  function AO_INLINE (line 219) | AO_INLINE void
  function AO_INLINE (line 228) | AO_INLINE void
  function AO_INLINE (line 237) | AO_INLINE void
  function AO_INLINE (line 246) | AO_INLINE void
  function AO_INLINE (line 255) | AO_INLINE void
  function AO_INLINE (line 264) | AO_INLINE void
  function AO_INLINE (line 273) | AO_INLINE void
  function AO_INLINE (line 282) | AO_INLINE void
  function AO_INLINE (line 291) | AO_INLINE void
  function AO_INLINE (line 300) | AO_INLINE void
  function AO_INLINE (line 309) | AO_INLINE AO_t
  function AO_char_fetch_compare_and_swap_full (line 324) | AO_INLINE unsigned char
  function AO_short_fetch_compare_and_swap_full (line 340) | AO_INLINE unsigned short
  function AO_int_fetch_compare_and_swap_full (line 356) | AO_INLINE unsigned
  type AO_double_t (line 373) | typedef struct {
  function AO_INLINE (line 381) | AO_INLINE AO_double_t
  function AO_INLINE (line 394) | AO_INLINE void
  function AO_INLINE (line 404) | AO_INLINE int
  function AO_INLINE (line 423) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/hpc/hppa.h
  type AO_pa_clearable_loc (line 42) | struct AO_pa_clearable_loc {
  type AO_PA_TS_val (line 51) | typedef enum {AO_PA_TS_set = 0, AO_PA_TS_clear = 1} AO_PA_TS_val;
  function AO_INLINE (line 77) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 91) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/hpc/ia64.h
  function AO_INLINE (line 45) | AO_INLINE void
  function AO_INLINE (line 53) | AO_INLINE AO_t
  function AO_INLINE (line 61) | AO_INLINE AO_t
  function AO_INLINE (line 69) | AO_INLINE AO_t
  function AO_INLINE (line 77) | AO_INLINE AO_t
  function AO_INLINE (line 86) | AO_INLINE AO_t
  function AO_INLINE (line 96) | AO_INLINE AO_t
  function AO_char_fetch_compare_and_swap_acquire (line 106) | AO_INLINE unsigned char
  function AO_char_fetch_compare_and_swap_release (line 116) | AO_INLINE unsigned char
  function AO_short_fetch_compare_and_swap_acquire (line 126) | AO_INLINE unsigned short
  function AO_short_fetch_compare_and_swap_release (line 137) | AO_INLINE unsigned short

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/ibmc/powerpc.h
  function AO_INLINE (line 38) | AO_INLINE AO_t
  function AO_INLINE (line 47) | AO_INLINE void
  function AO_INLINE (line 59) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 95) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 103) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 110) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 121) | AO_INLINE AO_t
  function AO_INLINE (line 152) | AO_INLINE AO_t
  function AO_INLINE (line 162) | AO_INLINE AO_t
  function AO_INLINE (line 171) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/icc/ia64.h
  function AO_INLINE (line 41) | AO_INLINE AO_t
  function AO_INLINE (line 48) | AO_INLINE void
  function AO_char_load_acquire (line 55) | AO_INLINE unsigned char
  function AO_INLINE (line 63) | AO_INLINE void
  function AO_short_load_acquire (line 70) | AO_INLINE unsigned short
  function AO_INLINE (line 78) | AO_INLINE void
  function AO_int_load_acquire (line 85) | AO_INLINE unsigned int
  function AO_INLINE (line 93) | AO_INLINE void
  function AO_INLINE (line 100) | AO_INLINE void
  function AO_INLINE (line 108) | AO_INLINE AO_t
  function AO_INLINE (line 115) | AO_INLINE AO_t
  function AO_INLINE (line 122) | AO_INLINE AO_t
  function AO_INLINE (line 129) | AO_INLINE AO_t
  function AO_INLINE (line 137) | AO_INLINE AO_t
  function AO_INLINE (line 145) | AO_INLINE AO_t
  function AO_char_fetch_compare_and_swap_acquire (line 153) | AO_INLINE unsigned char
  function AO_char_fetch_compare_and_swap_release (line 162) | AO_INLINE unsigned char
  function AO_short_fetch_compare_and_swap_acquire (line 171) | AO_INLINE unsigned short
  function AO_short_fetch_compare_and_swap_release (line 180) | AO_INLINE unsigned short
  function AO_int_fetch_compare_and_swap_acquire (line 189) | AO_INLINE unsigned int
  function AO_int_fetch_compare_and_swap_release (line 198) | AO_INLINE unsigned int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h
  function AO_INLINE (line 44) | AO_INLINE AO_t
  function AO_INLINE (line 55) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/atomic_load.h
  function AO_INLINE (line 27) | AO_INLINE AO_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/atomic_store.h
  function AO_INLINE (line 27) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h
  function AO_char_load_acquire (line 44) | AO_INLINE unsigned/**/char
  function AO_INLINE (line 55) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/char_atomic_load.h
  function AO_char_load (line 27) | AO_INLINE unsigned/**/char

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/char_atomic_store.h
  function AO_INLINE (line 27) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h
  function AO_INLINE (line 28) | AO_INLINE AO_double_t
  function AO_INLINE (line 42) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h
  function AO_int_load_acquire (line 44) | AO_INLINE unsigned
  function AO_INLINE (line 55) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/int_atomic_load.h
  function AO_int_load (line 27) | AO_INLINE unsigned

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/int_atomic_store.h
  function AO_INLINE (line 27) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h
  function AO_short_load_acquire (line 44) | AO_INLINE unsigned/**/short
  function AO_INLINE (line 55) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/short_atomic_load.h
  function AO_short_load (line 27) | AO_INLINE unsigned/**/short

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/loadstore/short_atomic_store.h
  function AO_INLINE (line 27) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/msftc/arm.h
  function AO_INLINE (line 40) | AO_INLINE void AO_nop_full(void)
  function AO_INLINE (line 64) | AO_INLINE int
  function AO_INLINE (line 76) | AO_INLINE int
  function AO_INLINE (line 88) | AO_INLINE int
  function AO_INLINE (line 100) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/msftc/arm64.h
  function AO_INLINE (line 48) | AO_INLINE int
  function AO_INLINE (line 65) | AO_INLINE int
  function AO_INLINE (line 82) | AO_INLINE int
  function AO_INLINE (line 99) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/msftc/common32_defs.h
  function AO_INLINE (line 94) | AO_INLINE AO_t
  function AO_INLINE (line 105) | AO_INLINE AO_t
  function AO_INLINE (line 116) | AO_INLINE AO_t
  function AO_int_fetch_and_add_full (line 128) | AO_INLINE unsigned int
  function AO_int_fetch_and_add1_full (line 135) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1_full (line 142) | AO_INLINE unsigned int
  function AO_INLINE (line 152) | AO_INLINE AO_t
  function AO_int_fetch_compare_and_swap_full (line 171) | AO_INLINE unsigned int
  function AO_INLINE (line 190) | AO_INLINE void
  function AO_INLINE (line 197) | AO_INLINE void
  function AO_INLINE (line 204) | AO_INLINE void
  function AO_short_fetch_compare_and_swap_full (line 214) | AO_INLINE unsigned short
  function AO_short_fetch_and_add1_full (line 228) | AO_INLINE unsigned short
  function AO_short_fetch_and_sub1_full (line 235) | AO_INLINE unsigned short
  function AO_INLINE (line 252) | AO_INLINE void
  function AO_INLINE (line 259) | AO_INLINE void
  function AO_INLINE (line 266) | AO_INLINE void
  function AO_INLINE (line 278) | AO_INLINE void
  function AO_INLINE (line 285) | AO_INLINE void
  function AO_INLINE (line 292) | AO_INLINE void
  function AO_INLINE (line 304) | AO_INLINE void
  function AO_INLINE (line 315) | AO_INLINE void
  function AO_INLINE (line 326) | AO_INLINE void
  function AO_INLINE (line 349) | AO_INLINE void
  function AO_INLINE (line 356) | AO_INLINE void
  function AO_INLINE (line 363) | AO_INLINE void
  function AO_INLINE (line 370) | AO_INLINE void
  function AO_INLINE (line 377) | AO_INLINE void
  function AO_INLINE (line 384) | AO_INLINE void
  function AO_INLINE (line 391) | AO_INLINE void
  function AO_INLINE (line 398) | AO_INLINE void
  function AO_INLINE (line 405) | AO_INLINE void
  function AO_INLINE (line 422) | AO_INLINE void
  function AO_INLINE (line 429) | AO_INLINE void
  function AO_INLINE (line 436) | AO_INLINE void
  function AO_INLINE (line 443) | AO_INLINE void
  function AO_INLINE (line 450) | AO_INLINE void
  function AO_INLINE (line 457) | AO_INLINE void
  function AO_INLINE (line 464) | AO_INLINE void
  function AO_INLINE (line 471) | AO_INLINE void
  function AO_INLINE (line 478) | AO_INLINE void
  function AO_INLINE (line 496) | AO_INLINE void
  function AO_INLINE (line 503) | AO_INLINE void
  function AO_INLINE (line 510) | AO_INLINE void
  function AO_INLINE (line 517) | AO_INLINE void
  function AO_INLINE (line 524) | AO_INLINE void
  function AO_INLINE (line 531) | AO_INLINE void
  function AO_INLINE (line 538) | AO_INLINE void
  function AO_INLINE (line 545) | AO_INLINE void
  function AO_INLINE (line 552) | AO_INLINE void
  function AO_INLINE (line 570) | AO_INLINE void
  function AO_INLINE (line 581) | AO_INLINE void
  function AO_INLINE (line 592) | AO_INLINE void
  function AO_INLINE (line 603) | AO_INLINE void
  function AO_INLINE (line 614) | AO_INLINE void
  function AO_INLINE (line 625) | AO_INLINE void
  function AO_INLINE (line 636) | AO_INLINE void
  function AO_INLINE (line 647) | AO_INLINE void
  function AO_INLINE (line 658) | AO_INLINE void
  function AO_short_fetch_and_add1 (line 676) | AO_INLINE unsigned short
  function AO_short_fetch_and_sub1 (line 683) | AO_INLINE unsigned short
  function AO_short_fetch_and_add1_acquire (line 690) | AO_INLINE unsigned short
  function AO_short_fetch_and_sub1_acquire (line 697) | AO_INLINE unsigned short
  function AO_short_fetch_and_add1_release (line 704) | AO_INLINE unsigned short
  function AO_short_fetch_and_sub1_release (line 711) | AO_INLINE unsigned short
  function AO_INLINE (line 742) | AO_INLINE AO_t
  function AO_INLINE (line 753) | AO_INLINE AO_t
  function AO_INLINE (line 764) | AO_INLINE AO_t
  function AO_INLINE (line 775) | AO_INLINE AO_t
  function AO_INLINE (line 786) | AO_INLINE AO_t
  function AO_INLINE (line 797) | AO_INLINE AO_t
  function AO_INLINE (line 808) | AO_INLINE AO_t
  function AO_INLINE (line 819) | AO_INLINE AO_t
  function AO_INLINE (line 830) | AO_INLINE AO_t
  function AO_int_fetch_and_add (line 842) | AO_INLINE unsigned int
  function AO_int_fetch_and_add1 (line 849) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1 (line 856) | AO_INLINE unsigned int
  function AO_int_fetch_and_add_acquire (line 863) | AO_INLINE unsigned int
  function AO_int_fetch_and_add1_acquire (line 871) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1_acquire (line 878) | AO_INLINE unsigned int
  function AO_int_fetch_and_add_release (line 885) | AO_INLINE unsigned int
  function AO_int_fetch_and_add1_release (line 893) | AO_INLINE unsigned int
  function AO_int_fetch_and_sub1_release (line 900) | AO_INLINE unsigned int
  function AO_char_fetch_compare_and_swap_full (line 912) | AO_INLINE unsigned char
  function AO_INLINE (line 933) | AO_INLINE AO_t
  function AO_INLINE (line 946) | AO_INLINE AO_t
  function AO_INLINE (line 960) | AO_INLINE AO_t
  function AO_int_fetch_compare_and_swap (line 975) | AO_INLINE unsigned int
  function AO_int_fetch_compare_and_swap_acquire (line 985) | AO_INLINE unsigned int
  function AO_int_fetch_compare_and_swap_release (line 995) | AO_INLINE unsigned int
  function AO_short_fetch_compare_and_swap (line 1013) | AO_INLINE unsigned short
  function AO_short_fetch_compare_and_swap_acquire (line 1023) | AO_INLINE unsigned short
  function AO_short_fetch_compare_and_swap_release (line 1033) | AO_INLINE unsigned short
  function AO_char_fetch_compare_and_swap (line 1043) | AO_INLINE unsigned char
  function AO_char_fetch_compare_and_swap_acquire (line 1053) | AO_INLINE unsigned char
  function AO_char_fetch_compare_and_swap_release (line 1063) | AO_INLINE unsigned char
  function AO_char_fetch_and_add_full (line 1078) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_full (line 1085) | AO_INLINE unsigned short
  function AO_char_fetch_and_add (line 1101) | AO_INLINE unsigned char
  function AO_short_fetch_and_add (line 1108) | AO_INLINE unsigned short
  function AO_char_fetch_and_add_acquire (line 1115) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_acquire (line 1123) | AO_INLINE unsigned short
  function AO_char_fetch_and_add_release (line 1131) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_release (line 1139) | AO_INLINE unsigned short
  function AO_INLINE (line 1155) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 1172) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 1180) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 1188) | AO_INLINE AO_TS_VAL_t

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/msftc/x86.h
  function AO_INLINE (line 60) | AO_INLINE void
  function AO_char_fetch_and_add_full (line 76) | AO_INLINE unsigned char
  function AO_INLINE (line 137) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/msftc/x86_64.h
  function AO_INLINE (line 111) | AO_INLINE int
  function AO_INLINE (line 133) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/ordered.h
  function AO_INLINE (line 28) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/ordered_except_wr.h
  function AO_INLINE (line 32) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/read_ordered.h
  function AO_INLINE (line 30) | AO_INLINE void

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/standard_ao_double_t.h
  type double_ptr_storage (line 40) | typedef unsigned __int128 double_ptr_storage;
  type double_ptr_storage (line 43) | typedef unsigned __int128 double_ptr_storage;
  type __m128 (line 55) | typedef __m128 double_ptr_storage;
  type double_ptr_storage (line 57) | typedef unsigned __int64 double_ptr_storage;
  type double_ptr_storage (line 59) | typedef unsigned long long double_ptr_storage
  type double_ptr_storage (line 62) | typedef unsigned long long double_ptr_storage;
  type AO_double_t (line 66) | typedef union {
  type AO_double_t_size_static_assert (line 84) | struct AO_double_t_size_static_assert {

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/sunc/x86.h
  function AO_INLINE (line 31) | AO_INLINE void
  function AO_INLINE (line 49) | AO_INLINE AO_t
  function AO_char_fetch_and_add_full (line 63) | AO_INLINE unsigned char
  function AO_short_fetch_and_add_full (line 76) | AO_INLINE unsigned short
  function AO_INLINE (line 90) | AO_INLINE void
  function AO_INLINE (line 100) | AO_INLINE void
  function AO_INLINE (line 110) | AO_INLINE void
  function AO_INLINE (line 121) | AO_INLINE AO_TS_VAL_t
  function AO_INLINE (line 136) | AO_INLINE int
  function AO_INLINE (line 149) | AO_INLINE AO_t
  function AO_INLINE (line 174) | AO_INLINE int
  function AO_int_fetch_and_add_full (line 196) | AO_INLINE unsigned int
  function AO_INLINE (line 214) | AO_INLINE int

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h
  type AO_TS_val (line 29) | typedef enum {AO_TS_clear = 0, AO_TS_set = 1} AO_TS_val;

FILE: thirdparty/libatomic_ops/atomic_ops/sysdeps/test_and_set_t_is_char.h
  type AO_BYTE_TS_val (line 38) | typedef enum {

FILE: thirdparty/libatomic_ops/atomic_ops_malloc.c
  function AO_API (line 131) | AO_API void
  function AO_free_large (line 207) | static void
  function AO_API (line 218) | AO_API void
  function AO_INLINE (line 232) | AO_INLINE int
  function AO_INLINE (line 240) | AO_INLINE int
  function add_chunk_as (line 307) | static void add_chunk_as(void * chunk, unsigned log_sz)
  function msb (line 331) | static unsigned msb(size_t s)
  function AO_API (line 406) | AO_API void

FILE: thirdparty/libbacktrace/backtrace.h
  type backtrace_state (line 47) | struct backtrace_state
  type backtrace_state (line 87) | struct backtrace_state
  type backtrace_state (line 114) | struct backtrace_state
  type backtrace_state (line 133) | struct backtrace_state
  type backtrace_state (line 143) | struct backtrace_state
  type backtrace_state (line 154) | struct backtrace_state
  type backtrace_state (line 180) | struct backtrace_state

FILE: thirdparty/libbacktrace/base.c
  type backtrace_state (line 15) | struct backtrace_state
  type backtrace_state (line 20) | struct backtrace_state
  type backtrace_state (line 28) | struct backtrace_state
  type backtrace_state (line 34) | struct backtrace_state
  type backtrace_state (line 39) | struct backtrace_state
  type backtrace_state (line 41) | struct backtrace_state
  type backtrace_state (line 50) | struct backtrace_state
  type backtrace_state (line 131) | struct backtrace_state
  type backtrace_state (line 135) | struct backtrace_state
  type backtrace_state (line 139) | struct backtrace_state {
  type backtrace_view (line 165) | struct backtrace_view {
  type backtrace_state (line 173) | struct backtrace_state
  type backtrace_view (line 176) | struct backtrace_view
  type backtrace_state (line 178) | struct backtrace_state
  type backtrace_view (line 179) | struct backtrace_view
  type backtrace_state (line 189) | struct backtrace_state
  type backtrace_state (line 193) | struct backtrace_state
  type backtrace_vector (line 197) | struct backtrace_vector {
  type backtrace_state (line 205) | struct backtrace_state
  type backtrace_vector (line 207) | struct backtrace_vector
  type backtrace_state (line 209) | struct backtrace_state
  type backtrace_vector (line 210) | struct backtrace_vector
  type backtrace_state (line 214) | struct backtrace_state
  type backtrace_vector (line 215) | struct backtrace_vector
  function backtrace_vector_free (line 219) | static inline void backtrace_vector_free(
  type backtrace_state (line 227) | struct backtrace_state
  type dwarf_section (line 232) | enum dwarf_section {
  type dwarf_sections (line 246) | struct dwarf_sections {
  type dwarf_data (line 251) | struct dwarf_data
  type backtrace_state (line 253) | struct backtrace_state
  type dwarf_sections (line 255) | struct dwarf_sections
  type dwarf_data (line 257) | struct dwarf_data
  type dwarf_data (line 260) | struct dwarf_data
  type backtrace_call_full (line 262) | struct backtrace_call_full {
  type backtrace_state (line 276) | struct backtrace_state
  type backtrace_state (line 283) | struct backtrace_state
  type dwarf_tag (line 324) | enum dwarf_tag {
  type dwarf_form (line 332) | enum dwarf_form {
  type dwarf_attribute (line 382) | enum dwarf_attribute {
  type dwarf_line_number_op (line 602) | enum dwarf_line_number_op {
  type dwarf_extended_line_number_op (line 618) | enum dwarf_extended_line_number_op {
  type dwarf_line_number_content_type (line 625) | enum dwarf_line_number_content_type {
  type dwarf_range_list_entry (line 635) | enum dwarf_range_list_entry {
  type dwarf_unit_type (line 646) | enum dwarf_unit_type {
  function xstrnlen (line 659) | static size_t xstrnlen(const char *s, size_t maxlen) {
  type dwarf_buf (line 671) | struct dwarf_buf {
  type attr (line 689) | struct attr {
  type abbrev (line 697) | struct abbrev {
  type abbrevs (line 709) | struct abbrevs {
  type attr_val_encoding (line 715) | enum attr_val_encoding {
  type attr_val (line 748) | struct attr_val {
  type line_header (line 760) | struct line_header {
  type line_header_format (line 786) | struct line_header_format {
  type line (line 791) | struct line {
  type line_vector (line 801) | struct line_vector {
  type function (line 807) | struct function {
  type function_addrs (line 818) | struct function_addrs {
  type function_vector (line 825) | struct function_vector {
  type unit (line 831) | struct unit {
  type unit_addrs (line 872) | struct unit_addrs {
  type unit_addrs_vector (line 879) | struct unit_addrs_vector {
  type unit_vector (line 885) | struct unit_vector {
  type dwarf_data (line 890) | struct dwarf_data {
  function dwarf_buf_error (line 912) | static void dwarf_buf_error(struct dwarf_buf *buf, const char *msg,
  function require (line 921) | static int require(struct dwarf_buf *buf, size_t count) {
  function advance (line 932) | static int advance(struct dwarf_buf *buf, size_t count) {
  type dwarf_buf (line 939) | struct dwarf_buf
  function read_byte (line 950) | static unsigned char read_byte(struct dwarf_buf *buf) {
  function read_sbyte (line 957) | static signed char read_sbyte(struct dwarf_buf *buf) {
  function read_uint16 (line 964) | static uint16_t read_uint16(struct dwarf_buf *buf) {
  function read_uint24 (line 974) | static uint32_t read_uint24(struct dwarf_buf *buf) {
  function read_uint32 (line 984) | static uint32_t read_uint32(struct dwarf_buf *buf) {
  function read_uint64 (line 996) | static uint64_t read_uint64(struct dwarf_buf *buf) {
  function read_offset (line 1012) | static uint64_t read_offset(struct dwarf_buf *buf, int is_dwarf64) {
  function read_address (line 1019) | static uint64_t read_address(struct dwarf_buf *buf, int addrsize) {
  function is_highest_address (line 1035) | static int is_highest_address(uint64_t address, int addrsize) {
  function read_uleb128 (line 1050) | static uint64_t read_uleb128(struct dwarf_buf *buf) {
  function read_sleb128 (line 1077) | static int64_t read_sleb128(struct dwarf_buf *buf) {
  function leb128_len (line 1106) | static size_t leb128_len(const unsigned char *p) {
  function read_initial_length (line 1117) | static uint64_t read_initial_length(struct dwarf_buf *buf, int *is_dwarf...
  function free_abbrevs (line 1130) | static void free_abbrevs(struct backtrace_state *state, struct abbrevs *...
  function read_attribute (line 1145) | static int read_attribute(enum dwarf_form form, uint64_t implicit_val,
  function resolve_string (line 1405) | static int resolve_string(const struct dwarf_sections *dwarf_sections,
  function resolve_addr_index (line 1449) | static int resolve_addr_index(const struct dwarf_sections *dwarf_sections,
  function units_search (line 1476) | static int units_search(const void *vkey, const void *ventry) {
  type unit (line 1490) | struct unit
  type unit (line 1490) | struct unit
  type unit (line 1492) | struct unit
  type unit (line 1493) | struct unit
  function function_addrs_compare (line 1497) | static int function_addrs_compare(const void *v1, const void *v2) {
  function function_addrs_search (line 1508) | static int function_addrs_search(const void *vkey, const void *ventry) {
  function add_unit_addr (line 1522) | static int add_unit_addr(struct backtrace_state *state, void *rdata,
  function unit_addrs_compare (line 1551) | static int unit_addrs_compare(const void *v1, const void *v2) {
  function unit_addrs_search (line 1564) | static int unit_addrs_search(const void *vkey, const void *ventry) {
  function line_compare (line 1578) | static int line_compare(const void *v1, const void *v2) {
  function line_search (line 1594) | static int line_search(const void *vkey, const void *ventry) {
  function abbrev_compare (line 1608) | static int abbrev_compare(const void *v1, const void *v2) {
  function read_abbrevs (line 1621) | static int read_abbrevs(struct backtrace_state *state, uint64_t abbrev_o...
  type abbrev (line 1748) | struct abbrev
  type abbrevs (line 1749) | struct abbrevs
  type abbrev (line 1751) | struct abbrev
  type abbrev (line 1761) | struct abbrev
  type abbrev (line 1766) | struct abbrev
  type pcrange (line 1769) | struct pcrange {
  function update_pcrange (line 1782) | static void update_pcrange(const struct attr *attr, const struct attr_va...
  function add_low_high_range (line 1828) | static int add_low_high_range(
  function add_ranges_from_ranges (line 1862) | static int add_ranges_from_ranges(
  function add_ranges_from_rnglists (line 1912) | static int add_ranges_from_rnglists(
  function add_ranges (line 2055) | static int add_ranges(
  function find_address_ranges (line 2083) | static int find_address_ranges(
  function build_address_map (line 2215) | static int build_address_map(struct backtrace_state *state,
  function add_line (line 2382) | static int add_line(struct backtrace_state *state, struct dwarf_data *dd...
  function free_line_header (line 2409) | static void free_line_header(struct backtrace_state *state,
  function read_v2_paths (line 2420) | static int read_v2_paths(struct backtrace_state *state, struct unit *u,
  function read_lnct (line 2517) | static int read_lnct(struct backtrace_state *state, struct dwarf_data *d...
  function read_line_header_format_entries (line 2588) | static int read_line_header_format_entries(
  function read_line_header (line 2653) | static int read_line_header(struct backtrace_state *state,
  function read_line_program (line 2717) | static int read_line_program(struct backtrace_state *state,
  function read_line_info (line 2885) | static int read_line_info(struct backtrace_state *state,
  type dwarf_data (line 2956) | struct dwarf_data
  type unit (line 2956) | struct unit
  type dwarf_data (line 2961) | struct dwarf_data
  type unit (line 2961) | struct unit
  type attr (line 2961) | struct attr
  type attr_val (line 2962) | struct attr_val
  type unit (line 2974) | struct unit
  type unit (line 2986) | struct unit
  type dwarf_data (line 2998) | struct dwarf_data
  type unit (line 2999) | struct unit
  type dwarf_buf (line 3002) | struct dwarf_buf
  type abbrev (line 3004) | struct abbrev
  type attr_val (line 3036) | struct attr_val
  function add_function_range (line 3085) | static int add_function_range(struct backtrace_state *state, void *rdata,
  function read_function_entry (line 3114) | static int read_function_entry(struct backtrace_state *state,
  function read_function_info (line 3311) | static void read_function_info(
  function report_inlined_functions (line 3375) | static int report_inlined_functions(uintptr_t pc, struct function *funct...
  function dwarf_lookup_pc (line 3420) | static int dwarf_lookup_pc(struct backtrace_state *state,
  function dwarf_fileline (line 3596) | static int dwarf_fileline(struct backtrace_state *state, uintptr_t pc,
  type dwarf_data (line 3629) | struct dwarf_data
  type backtrace_state (line 3630) | struct backtrace_state
  type dwarf_sections (line 3631) | struct dwarf_sections
  type dwarf_data (line 3632) | struct dwarf_data
  type unit_addrs_vector (line 3634) | struct unit_addrs_vector
  type unit_addrs (line 3635) | struct unit_addrs
  type unit_vector (line 3637) | struct unit_vector
  type unit (line 3638) | struct unit
  type dwarf_data (line 3640) | struct dwarf_data
  type unit_addrs (line 3650) | struct unit_addrs
  type unit (line 3651) | struct unit
  type unit_addrs (line 3654) | struct unit_addrs
  type dwarf_data (line 3657) | struct dwarf_data
  type dwarf_data (line 3658) | struct dwarf_data
  function backtrace_dwarf_add (line 3675) | int backtrace_dwarf_add(struct backtrace_state *state, uintptr_t base_ad...
  type backtrace_state (line 3747) | struct backtrace_state
  type backtrace_state (line 3774) | struct backtrace_state
  type backtrace_state (line 3789) | struct backtrace_state
  type backtrace_state (line 3805) | struct backtrace_state
  function fileline_initialize (line 3827) | static int fileline_initialize(struct backtrace_state *state,
  function backtrace_pcinfo (line 3934) | int backtrace_pcinfo(struct backtrace_state *state, uintptr_t pc,
  function backtrace_syminfo (line 3944) | int backtrace_syminfo(struct backtrace_state *state, uintptr_t pc,
  function backtrace_syminfo_to_full_callback (line 3955) | void backtrace_syminfo_to_full_callback(void *data, uintptr_t pc,
  function backtrace_syminfo_to_full_error_callback (line 3964) | void backtrace_syminfo_to_full_error_callback(void *data, const char *msg,
  function backtrace_open (line 3990) | int backtrace_open(const char *filename,
  function backtrace_close (line 4014) | int backtrace_close(int descriptor, backtrace_error_callback error_callb...
  type print_data (line 4028) | struct print_data {
  function print_callback (line 4033) | static int print_callback(void *data, uintptr_t pc, const char *filename,
  function error_callback (line 4043) | static void error_callback(void *data, const char *msg, int errnum) {
  function backtrace_print (line 4053) | void __attribute__((noinline))
  function swap (line 4067) | static void swap(char *a, char *b, size_t size) {
  function backtrace_qsort (line 4079) | void backtrace_qsort(void *basearg, size_t count, size_t size,
  type backtrace_state (line 4116) | struct backtrace_state
  type backtrace_state (line 4119) | struct backtrace_state
  type backtrace_state (line 4120) | struct backtrace_state
  type backtrace_state (line 4133) | struct backtrace_state
  type backtrace_data (line 4147) | struct backtrace_data {
  function _Unwind_Reason_Code (line 4163) | static _Unwind_Reason_Code unwind(struct _Unwind_Context *context,
  function backtrace_full (line 4192) | int __attribute__((noinline))
  function backtrace_full (line 4219) | int
  type backtrace_simple_data (line 4236) | struct backtrace_simple_data {
  function _Unwind_Reason_Code (line 4250) | static _Unwind_Reason_Code simple_unwind(struct _Unwind_Context *context,
  function backtrace_simple (line 4276) | int __attribute__((noinline))
  function backtrace_simple (line 4292) | int

FILE: thirdparty/libbacktrace/darwin.c
  type macho_header_32 (line 11) | struct macho_header_32 {
  type macho_header_64 (line 21) | struct macho_header_64 {
  type macho_header_fat (line 32) | struct macho_header_fat {
  type macho_fat_arch (line 48) | struct macho_fat_arch {
  type macho_fat_arch_64 (line 56) | struct macho_fat_arch_64 {
  type macho_load_command (line 75) | struct macho_load_command {
  type macho_segment_command (line 87) | struct macho_segment_command {
  type macho_segment_64_command (line 101) | struct macho_segment_64_command {
  type macho_symtab_command (line 115) | struct macho_symtab_command {
  type macho_uuid_command (line 126) | struct macho_uuid_command {
  type macho_section (line 132) | struct macho_section {
  type macho_section_64 (line 146) | struct macho_section_64 {
  type macho_nlist (line 161) | struct macho_nlist {
  type macho_nlist_64 (line 169) | struct macho_nlist_64 {
  type macho_symbol (line 183) | struct macho_symbol {
  type macho_syminfo_data (line 188) | struct macho_syminfo_data {
  type backtrace_state (line 201) | struct backtrace_state
  function macho_nodebug (line 205) | static int macho_nodebug(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function macho_nosyms (line 213) | static void macho_nosyms(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function macho_add_dwarf_section (line 220) | static int macho_add_dwarf_section(struct backtrace_state *state,
  function macho_add_dwarf_segment (line 244) | static int macho_add_dwarf_segment(struct backtrace_state *state,
  function macho_symbol_compare (line 302) | static int macho_symbol_compare(const void *v1, const void *v2) {
  function macho_symbol_search (line 314) | static int macho_symbol_search(const void *vkey, const void *ventry) {
  function macho_defined_symbol (line 333) | static int macho_defined_symbol(uint8_t type) {
  function macho_add_symtab (line 346) | static int macho_add_symtab(struct backtrace_state *state, int descriptor,
  function macho_syminfo (line 503) | static void macho_syminfo(
  function macho_add_fat (line 542) | static int macho_add_fat(struct backtrace_state *state, const char *file...
  function macho_add_dsym (line 628) | static int macho_add_dsym(struct backtrace_state *state, const char *fil...
  function macho_add (line 715) | static int macho_add(struct backtrace_state *state, const char *filename,
  function backtrace_initialize (line 920) | int backtrace_initialize(struct backtrace_state *state, const char *file...
  function backtrace_initialize (line 994) | int backtrace_initialize(struct backtrace_state *state, const char *file...
  function backtrace_get_view (line 1046) | int backtrace_get_view(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function backtrace_release_view (line 1080) | void backtrace_release_view(struct backtrace_state *state ATTRIBUTE_UNUSED,
  type backtrace_freelist_struct (line 1114) | struct backtrace_freelist_struct {
  function backtrace_free_locked (line 1120) | static void backtrace_free_locked(struct backtrace_state *state, void *a...
  type backtrace_state (line 1146) | struct backtrace_state
  type backtrace_freelist_struct (line 1150) | struct backtrace_freelist_struct
  type backtrace_freelist_struct (line 1165) | struct backtrace_freelist_struct
  function backtrace_free (line 1203) | void backtrace_free(struct backtrace_state *state, void *addr, size_t size,
  type backtrace_state (line 1230) | struct backtrace_state
  type backtrace_vector (line 1232) | struct backtrace_vector
  type backtrace_state (line 1268) | struct backtrace_state
  type backtrace_vector (line 1269) | struct backtrace_vector
  function backtrace_vector_release (line 1281) | int backtrace_vector_release(struct backtrace_state *state,

FILE: thirdparty/libbacktrace/linux.c
  function xstrnlen (line 32) | static size_t xstrnlen(const char *s, size_t maxlen) {
  function xlstat (line 46) | static int xlstat(const char *path ATTRIBUTE_UNUSED,
  function xreadlink (line 57) | static ssize_t xreadlink(const char *path ATTRIBUTE_UNUSED,
  type dl_phdr_info (line 72) | struct dl_phdr_info {
  function dl_iterate_phdr (line 77) | static int dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t,
  type b_elf_half (line 122) | typedef uint16_t b_elf_half;
  type b_elf_word (line 123) | typedef uint32_t b_elf_word;
  type b_elf_sword (line 124) | typedef int32_t b_elf_sword;
  type b_elf_addr (line 127) | typedef uint32_t b_elf_addr;
  type b_elf_off (line 128) | typedef uint32_t b_elf_off;
  type b_elf_wxword (line 129) | typedef uint32_t b_elf_wxword;
  type b_elf_addr (line 132) | typedef uint64_t b_elf_addr;
  type b_elf_off (line 133) | typedef uint64_t b_elf_off;
  type b_elf_xword (line 134) | typedef uint64_t b_elf_xword;
  type b_elf_sxword (line 135) | typedef int64_t b_elf_sxword;
  type b_elf_wxword (line 136) | typedef uint64_t b_elf_wxword;
  type b_elf_ehdr (line 141) | typedef struct {
  type b_elf_shdr (line 183) | typedef struct {
  type b_elf_sym (line 207) | typedef struct {
  type b_elf_sym (line 216) | typedef struct {
  type b_elf_note (line 228) | typedef struct {
  type b_elf_chdr (line 239) | typedef struct {
  type b_elf_chdr (line 245) | typedef struct {
  type debug_section_info (line 259) | struct debug_section_info {
  type elf_symbol (line 269) | struct elf_symbol {
  type elf_syminfo_data (line 277) | struct elf_syminfo_data {
  type elf_view (line 285) | struct elf_view {
  type elf_ppc64_opd_data (line 290) | struct elf_ppc64_opd_data {
  function elf_get_view (line 300) | static int elf_get_view(struct backtrace_state *state, int descriptor,
  function elf_release_view (line 322) | static void elf_release_view(struct backtrace_state *state,
  function elf_crc32 (line 330) | static uint32_t elf_crc32(uint32_t crc, const unsigned char *buf, size_t...
  function elf_crc32_file (line 383) | static uint32_t elf_crc32_file(struct backtrace_state *state, int descri...
  function elf_nosyms (line 406) | static void elf_nosyms(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function elf_nodebug (line 413) | static int elf_nodebug(struct backtrace_state *state, uintptr_t pc,
  function elf_symbol_compare (line 432) | static int elf_symbol_compare(const void *v1, const void *v2) {
  function elf_symbol_search (line 444) | static int elf_symbol_search(const void *vkey, const void *ventry) {
  function elf_initialize_syminfo (line 458) | static int elf_initialize_syminfo(
  function elf_add_syminfo_data (line 525) | static void elf_add_syminfo_data(struct backtrace_state *state,
  function elf_syminfo (line 555) | static void elf_syminfo(
  function elf_is_symlink (line 593) | static int elf_is_symlink(const char *filename) {
  type backtrace_state (line 600) | struct backtrace_state
  function elf_open_debugfile_by_buildid (line 629) | static int elf_open_debugfile_by_buildid(
  function elf_try_debugfile (line 671) | static int elf_try_debugfile(struct backtrace_state *state, const char *...
  function elf_find_debugfile_by_debuglink (line 699) | static int elf_find_debugfile_by_debuglink(
  function elf_open_debugfile_by_debuglink (line 787) | static int elf_open_debugfile_by_debuglink(
  function elf_uncompress_failed (line 810) | static void elf_uncompress_failed(void) {}
  function elf_zlib_fetch (line 812) | static int elf_zlib_fetch(const unsigned char **ppin,
  function elf_zlib_inflate_table (line 878) | static int elf_zlib_inflate_table(unsigned char *codes, size_t codes_len,
  function elf_zlib_inflate (line 1142) | static int elf_zlib_inflate(const unsigned char *pin, size_t sin,
  function elf_zlib_verify_checksum (line 1658) | static int elf_zlib_verify_checksum(const unsigned char *checkbytes,
  function elf_zlib_inflate_and_verify (line 1769) | static int elf_zlib_inflate_and_verify(const unsigned char *pin, size_t ...
  function elf_uncompress_zdebug (line 1777) | static int elf_uncompress_zdebug(struct backtrace_state *state,
  function elf_uncompress_chdr (line 1812) | static int elf_uncompress_chdr(struct backtrace_state *state,
  function backtrace_uncompress_zdebug (line 1851) | int backtrace_uncompress_zdebug(struct backtrace_state *state,
  function elf_lzma_varint (line 1990) | static int elf_lzma_varint(const unsigned char *compressed,
  function elf_lzma_range_normalize (line 2022) | static void elf_lzma_range_normalize(const unsigned char *compressed,
  function elf_lzma_bit (line 2037) | static int elf_lzma_bit(const unsigned char *compressed, size_t compress...
  function elf_lzma_integer (line 2056) | static uint32_t elf_lzma_integer(const unsigned char *compressed,
  function elf_lzma_reverse_integer (line 2075) | static uint32_t elf_lzma_reverse_integer(const unsigned char *compressed,
  function elf_lzma_len (line 2098) | static uint32_t elf_lzma_len(const unsigned char *compressed,
  function elf_uncompress_lzma_block (line 2137) | static int elf_uncompress_lzma_block(const unsigned char *compressed,
  function elf_uncompress_lzma (line 2657) | static int elf_uncompress_lzma(struct backtrace_state *state,
  function backtrace_uncompress_lzma (line 2829) | int backtrace_uncompress_lzma(struct backtrace_state *state,
  function elf_add (line 2839) | static int elf_add(struct backtrace_state *state, const char *filename,
  type phdr_data (line 3497) | struct phdr_data {
  type dl_phdr_info (line 3512) | struct dl_phdr_info
  type phdr_data (line 3514) | struct phdr_data
  function backtrace_initialize (line 3550) | int backtrace_initialize(struct backtrace_state *state, const char *file...
  function backtrace_get_view (line 3613) | int backtrace_get_view(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function backtrace_release_view (line 3647) | void backtrace_release_view(struct backtrace_state *state ATTRIBUTE_UNUSED,
  type backtrace_freelist_struct (line 3681) | struct backtrace_freelist_struct {
  function backtrace_free_locked (line 3687) | static void backtrace_free_locked(struct backtrace_state *state, void *a...
  type backtrace_state (line 3713) | struct backtrace_state
  type backtrace_freelist_struct (line 3717) | struct backtrace_freelist_struct
  type backtrace_freelist_struct (line 3732) | struct backtrace_freelist_struct
  function backtrace_free (line 3770) | void backtrace_free(struct backtrace_state *state, void *addr, size_t size,
  type backtrace_state (line 3797) | struct backtrace_state
  type backtrace_vector (line 3799) | struct backtrace_vector
  type backtrace_state (line 3835) | struct backtrace_state
  type backtrace_vector (line 3836) | struct backtrace_vector
  function backtrace_vector_release (line 3848) | int backtrace_vector_release(struct backtrace_state *state,

FILE: thirdparty/libbacktrace/windows.c
  type b_coff_file_header (line 6) | typedef struct {
  type b_coff_optional_header (line 16) | typedef struct {
  type b_coff_section_header (line 39) | typedef struct {
  type b_coff_name (line 52) | typedef union {
  type b_coff_external_symbol (line 60) | typedef struct {
  type b_coff_internal_symbol (line 74) | typedef struct {
  type debug_section_info (line 87) | struct debug_section_info {
  type coff_symbol (line 93) | struct coff_symbol {
  type coff_syminfo_data (line 99) | struct coff_syminfo_data {
  function coff_nodebug (line 107) | static int coff_nodebug(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function coff_nosyms (line 115) | static void coff_nosyms(struct backtrace_state *state ATTRIBUTE_UNUSED,
  function coff_read4 (line 122) | static uint32_t coff_read4(const unsigned char *p) {
  function coff_read2 (line 129) | static uint16_t coff_read2(const unsigned char *p) {
  function coff_short_name_len (line 136) | static size_t coff_short_name_len(const char *name) {
  function coff_short_name_eq (line 144) | static int coff_short_name_eq(const char *name, const char *cname) {
  function coff_long_name_eq (line 154) | static int coff_long_name_eq(const char *name, unsigned int off,
  function coff_symbol_compare (line 160) | static int coff_symbol_compare(const void *v1, const void *v2) {
  function coff_expand_symbol (line 172) | static int coff_expand_symbol(b_coff_internal_symbol *isym,
  function coff_is_function_symbol (line 192) | static int coff_is_function_symbol(const b_coff_internal_symbol *isym) {
  function coff_initialize_syminfo (line 196) | static int coff_initialize_syminfo(
  function coff_add_syminfo_data (line 300) | static void coff_add_syminfo_data(struct backtrace_state *state,
  function coff_symbol_search (line 330) | static int coff_symbol_search(const void *vkey, const void *ventry) {
  function coff_syminfo (line 344) | static void coff_syminfo(
  function coff_add (line 382) | static int coff_add(struct backtrace_state *state, int descriptor,
  function backtrace_initialize (line 629) | int backtrace_initialize(struct backtrace_state *state,
  function backtrace_get_view (line 674) | int backtrace_get_view(struct backtrace_state *state, int descriptor,
  function backtrace_release_view (line 717) | void backtrace_release_view(struct backtrace_state *state,
  type backtrace_state (line 731) | struct backtrace_state
  function backtrace_free (line 743) | void backtrace_free(struct backtrace_state *state ATTRIBUTE_UNUSED, void...
  type backtrace_state (line 750) | struct backtrace_state
  type backtrace_vector (line 753) | struct backtrace_vector
  type backtrace_state (line 785) | struct backtrace_state
  type backtrace_vector (line 786) | struct backtrace_vector
  function backtrace_vector_release (line 799) | int backtrace_vector_release(struct backtrace_state *state ATTRIBUTE_UNU...

FILE: thirdparty/libgc/gc.c
  type GC_word (line 471) | typedef GC_word word;
  type GC_bool (line 4142) | typedef bool GC_bool;
  type GC_bool (line 4144) | typedef int GC_bool;
  type GC_bool (line 4146) | typedef char GC_bool;
  type unsigned32 (line 4237) | typedef unsigned int unsigned32;
  type hblk (line 4240) | struct hblk
  type hdr (line 4242) | typedef struct hblkhdr hdr;
  type hdr_cache_entry (line 4317) | typedef struct hce {
  type bottom_index (line 4373) | typedef struct bi {
  type AO_t (line 4594) | typedef size_t AO_t;
  type AO_TS_t (line 4613) | typedef unsigned char AO_TS_t;
  function AO_INLINE (line 4633) | AO_INLINE void
  function AO_INLINE (line 4679) | AO_INLINE int
  function AO_INLINE (line 4726) | AO_INLINE int
  type callinfo (line 5382) | struct callinfo {
  type callinfo (line 5398) | struct callinfo
  type callinfo (line 5402) | struct callinfo
  function GC_INLINE (line 5754) | GC_INLINE char *
  type word (line 6023) | typedef word page_hash_table[PHT_SIZE];
  type hb_map_entry_t (line 6078) | typedef unsigned char hb_map_entry_t;
  type hb_map_entry_t (line 6080) | typedef unsigned short hb_map_entry_t;
  type hblkhdr (line 6084) | struct hblkhdr {
  type hblk (line 6230) | struct hblk {
  type exclusion (line 6266) | struct exclusion {
  type roots (line 6277) | struct roots {
  type mse (line 6316) | typedef struct GC_ms_entry {
  type mark_state_t (line 6333) | typedef int mark_state_t;
  type disappearing_link (line 6335) | struct disappearing_link
  type finalizable_object (line 6336) | struct finalizable_object
  type dl_hashtbl_s (line 6338) | struct dl_hashtbl_s {
  type fnlz_roots_s (line 6344) | struct fnlz_roots_s {
  type typed_ext_descr_t (line 6361) | typedef struct {
  type HeapSect (line 6370) | struct HeapSect {
  type back_edges_s (line 6379) | struct back_edges_s {
  type _GC_arrays (line 6421) | struct _GC_arrays {
  function GC_EXTERN (line 7205) | GC_EXTERN struct obj_kind {
  type hblk (line 7340) | struct hblk
  type blocking_data (line 7345) | struct blocking_data {
  type GC_traced_stack_sect_s (line 7351) | struct GC_traced_stack_sect_s {
  type GC_traced_stack_sect_s (line 7367) | struct GC_traced_stack_sect_s
  type GC_traced_stack_sect_s (line 7398) | struct GC_traced_stack_sect_s
  type hblk (line 7497) | struct hblk
  type hblk (line 7504) | struct hblk
  type hblk (line 8005) | struct hblk
  type hblk (line 8025) | struct hblk
  type hblk (line 8067) | struct hblk
  type hblk (line 8184) | struct hblk
  type hblk (line 8190) | struct hblk
  type hblk (line 8193) | struct hblk
  type hblk (line 8196) | struct hblk
  function GC_INLINE (line 8302) | GC_INLINE int
  type hblk (line 8493) | struct hblk
  type hblk (line 8506) | struct hblk
  type hblk (line 8748) | struct hblk
  type hblk (line 8767) | struct hblk
  function hblk (line 8858) | hblk *
  type oh (line 9359) | typedef struct {
  type callinfo (line 9432) | struct callinfo
  type back_edges (line 9550) | typedef struct back_edges_s back_edges;
  function back_edges (line 9558) | static back_edges *
  function deallocate_back_edges (line 9589) | static void
  function push_in_progress (line 9603) | static void
  function GC_bool (line 9642) | static GC_bool
  function GC_INLINE (line 9653) | GC_INLINE void
  function ensure_struct (line 9667) | static void
  function add_edge (line 9698) | static void
  function GC_CALLBACK (line 9792) | static GC_CALLBACK void
  function GC_INLINE (line 9807) | GC_INLINE void
  function reset_back_edge (line 9813) | static void
  function add_back_edges (line 9854) | static void
  function GC_INNER (line 9879) | GC_INNER void
  function word (line 9890) | static word
  function update_deepest_height (line 9982) | static void
  function GC_INNER (line 10066) | GC_INNER void
  function GC_print_back_graph_stats (line 10078) | void
  function STATIC (line 10141) | STATIC void
  function STATIC (line 10147) | STATIC void
  function STATIC (line 10154) | STATIC void
  function GC_INNER (line 10177) | GC_INNER void
  function GC_INNER (line 10194) | GC_INNER void
  function GC_INNER (line 10215) | GC_INNER void
  function GC_INNER (line 10250) | GC_INNER void
  function GC_INNER (line 10272) | GC_INNER void
  function GC_INNER (line 10302) | GC_INNER void
  type GC_hblk_s (line 10327) | struct GC_hblk_s
  function STATIC (line 10368) | STATIC word
  function word (line 10384) | static word
  type page_entry (line 10424) | typedef struct {
  function GC_reset_check_page (line 10444) | void
  function GC_record_fault (line 10453) | void
  function STATIC (line 10463) | STATIC GC_bool
  function STATIC (line 10476) | STATIC word
  function STATIC (line 10494) | STATIC void
  function GC_check_dirty (line 10535) | void
  function GC_INLINE (line 10703) | GC_INLINE mse *
  function GC_CALL (line 11081) | GC_CALL
  function GC_CALL (line 11090) | GC_CALL
  function GC_INNER (line 11249) | GC_INNER hdr *
  function GC_INNER (line 11319) | GC_INNER ptr_t
  function hdr (line 11384) | static hdr *
  function GC_INLINE (line 11399) | GC_INLINE void
  function GC_INNER (line 11412) | GC_INNER void
  function GC_bool (line 11434) | static GC_bool
  function GC_INNER (line 11487) | GC_INNER hdr *
  function GC_INNER (line 11507) | GC_INNER GC_bool
  function GC_INNER (line 11531) | GC_INNER void
  function GC_INNER (line 11540) | GC_INNER void
  function GC_CALL (line 11564) | GC_CALL
  function hblk (line 11588) | hblk *
  function hblk (line 11624) | hblk *
  function STATIC (line 11680) | STATIC ptr_t
  function STATIC (line 11700) | STATIC ptr_t
  function STATIC (line 11716) | STATIC ptr_t
  function STATIC (line 11736) | STATIC ptr_t
  function GC_INNER (line 11754) | GC_INNER ptr_t
  function GC_INNER (line 11820) | GC_INNER void
  function GC_CALL (line 11849) | GC_CALL
  function GC_INNER (line 11857) | GC_INNER void
  function GC_INNER (line 11871) | GC_INNER GC_bool
  function GC_INNER (line 11914) | GC_INNER void
  function GC_CALLBACK (line 11948) | GC_CALLBACK
  function GC_API (line 11958) | GC_API void *GC_CALL
  function GC_CALLBACK (line 12022) | GC_CALLBACK
  function GC_API (line 12031) | GC_API void *GC_CALL
  function GC_CALLBACK (line 12064) | GC_CALLBACK
  function STATIC (line 12075) | STATIC GC_bool
  function STATIC (line 12082) | STATIC GC_bool
  function GC_API (line 12106) | GC_API void *GC_CALL
  function GC_API (line 12195) | GC_API void *GC_CALL
  function GC_API (line 12208) | GC_API void *GC_CALL
  function GC_CALL (line 12221) | GC_CALL
  function GC_CALL (line 12228) | GC_CALL
  function GC_CALL (line 12234) | GC_CALL
  function GC_CALL (line 12241) | GC_CALL
  function GC_CALL (line 12247) | GC_CALL
  function GC_CALL (line 12254) | GC_CALL
  type hblk (line 12320) | struct hblk
  function GC_CALL (line 12322) | GC_CALL
  function GC_INNER (line 12343) | GC_INNER void
  function GC_INLINE (line 12356) | GC_INLINE size_t
  function STATIC (line 12372) | STATIC size_t
  function add_hb_sz (line 12393) | static void GC_CALLBACK
  function GC_INNER (line 12403) | GC_INNER word
  function print_hblkfreelist_item (line 12414) | static void GC_CALLBACK
  function GC_print_hblkfreelist (line 12439) | void
  function free_list_index_of (line 12457) | static int
  function GC_CALL (line 12475) | GC_CALL
  function dump_regions_proc (line 12544) | static void GC_CALLBACK
  function GC_CALL (line 12584) | GC_CALL
  function GC_bool (line 12595) | static GC_bool
  function STATIC (line 12688) | STATIC void
  function GC_INLINE (line 12716) | GC_INLINE void
  type hblk (line 12723) | struct hblk
  type hblk (line 12724) | struct hblk
  type hblk (line 12726) | struct hblk
  function hblk (line 12744) | hblk *
  function STATIC (line 12763) | STATIC void
  function calc_num_unmapped_regions_delta (line 12813) | static int
  function GC_INLINE (line 12862) | GC_INLINE void
  function GC_INNER (line 12873) | GC_INNER void
  function GC_INNER (line 12924) | GC_INNER GC_bool
  function hblk (line 13016) | hblk *
  function STATIC (line 13061) | STATIC void
  function hblk (line 13101) | hblk *
  function GC_bool (line 13168) | static GC_bool
  type hblk (line 13192) | struct hblk
  type hblk (line 13193) | struct hblk
  type hblk (line 13205) | struct hblk
  function drop_hblk_in_chunks (line 13222) | static void
  function GC_bool (line 13247) | static GC_bool
  type hblk (line 13288) | struct hblk
  type hblk (line 13371) | struct hblk
  function GC_free_profiler_hook (line 13480) | void GC_CALLBACK
  function GC_INNER (line 13491) | GC_INNER void
  function GC_CALL (line 13632) | GC_CALL
  function GC_get_full_gc_total_time (line 13638) | GC_API unsigned long GC_CALL
  function GC_get_stopped_mark_total_time (line 13644) | GC_API unsigned long GC_CALL
  function GC_get_avg_stopped_mark_time_ns (line 13658) | GC_API unsigned long GC_CALL
  function GC_CALL (line 13695) | GC_CALL
  function GC_CALL (line 13721) | GC_CALL
  function GC_CALL (line 13729) | GC_CALL
  function GC_CALL (line 13754) | GC_CALL
  function GC_CALL (line 13761) | GC_CALL
  function GC_CALLBACK (line 13786) | GC_CALLBACK
  function GC_CALL (line 13818) | GC_CALL
  function GC_timeval_s (line 13827) | GC_timeval_s GC_CALL
  function GC_CALL (line 13847) | GC_CALL
  function GC_CALL (line 13856) | GC_CALL
  function GC_CALLBACK (line 13870) | GC_CALLBACK
  function GC_CALL (line 13909) | GC_CALL
  function GC_CALL (line 13916) | GC_CALL
  function word (line 13926) | static word
  function STATIC (line 13977) | STATIC word
  function STATIC (line 14023) | STATIC void
  function GC_CALL (line 14034) | GC_CALL
  function GC_INNER (line 14049) | GC_INNER GC_bool
  function GC_CALL (line 14082) | GC_CALL
  function GC_CALL (line 14090) | GC_CALL
  function GC_INLINE (line 14101) | GC_INLINE void
  function STATIC (line 14118) | STATIC void
  function GC_CALL (line 14173) | GC_CALL
  function GC_CALL (line 14182) | GC_CALL
  function GC_INNER (line 14193) | GC_INNER GC_bool
  function GC_CALL (line 14314) | GC_CALL
  function GC_CALL (line 14321) | GC_CALL
  function GC_CALL (line 14339) | GC_CALL
  function GC_CALL (line 14346) | GC_CALL
  function GC_INNER (line 14352) | GC_INNER void
  function GC_CALL (line 14414) | GC_CALL
  function GC_CALL (line 14435) | GC_CALL
  function GC_CALL (line 14450) | GC_CALL
  function STATIC (line 14483) | STATIC GC_bool
  function GC_INNER (line 14647) | GC_INNER void
  function GC_check_fl_marks (line 14712) | void
  function STATIC (line 14759) | STATIC void
  function set_all_fl_marks (line 14807) | static void
  function clear_all_fl_marks (line 14828) | static void
  function GC_INLINE (line 14852) | GC_INLINE int
  function STATIC (line 14878) | STATIC void
  function STATIC (line 15006) | STATIC GC_bool
  function GC_CALL (line 15054) | GC_CALL
  function GC_CALL (line 15061) | GC_CALL
  function GC_CALL (line 15073) | GC_CALL
  function GC_INNER (line 15080) | GC_INNER ptr_t
  function STATIC (line 15106) | STATIC void
  function GC_print_heap_sects (line 15238) | void
  function GC_CALL (line 15271) | GC_CALL
  function GC_INNER (line 15279) | GC_INNER void
  function GC_INNER (line 15303) | GC_INNER GC_bool
  function GC_CALL (line 15365) | GC_CALL
  function GC_CALL (line 15405) | GC_CALL
  function GC_CALL (line 15411) | GC_CALL
  function GC_INNER (line 15417) | GC_INNER GC_bool
  function GC_INNER (line 15546) | GC_INNER ptr_t
  function GC_rand (line 15642) | static int
  function GC_INNER (line 15652) | GC_INNER void
  function GC_INNER (line 15665) | GC_INNER void
  function GC_CALL (line 15671) | GC_CALL
  function GC_API (line 15726) | GC_API void *GC_CALL
  function GC_API (line 15758) | GC_API void *GC_CALL
  function GC_CALL (line 15771) | GC_CALL
  function GC_CALL (line 15817) | GC_CALL
  function STATIC (line 15846) | STATIC void *
  function STATIC (line 15879) | STATIC ptr_t
  function GC_CALL (line 15910) | GC_CALL
  function STATIC (line 15929) | STATIC void
  function STATIC (line 16003) | STATIC void
  function do_nothing (line 16017) | static void
  function STATIC (line 16027) | STATIC void
  function GC_CALL (line 16071) | GC_CALL
  function GC_CALL (line 16077) | GC_CALL
  function STATIC (line 16091) | STATIC void
  function STATIC (line 16155) | STATIC void *
  function GC_INNER (line 16165) | GC_INNER void *
  function GC_API (line 16186) | GC_API void *GC_CALL
  function GC_CALL (line 16192) | GC_CALL
  function GC_CALL (line 16199) | GC_CALL
  function GC_CALL (line 16210) | GC_CALL
  function GC_CALL (line 16382) | GC_CALL
  function GC_INNER (line 16482) | GC_INNER void
  function GC_API (line 16501) | GC_API void *GC_CALL
  function GC_CALLBACK (line 16572) | GC_CALLBACK
  function STATIC (line 16599) | STATIC void
  type closure (line 16612) | struct closure {
  function STATIC (line 16617) | STATIC void *
  function GC_CALLBACK (line 16637) | GC_CALLBACK
  function store_old (line 16649) | static void
  function GC_CALL (line 16676) | GC_CALL
  function GC_CALL (line 16711) | GC_CALL
  function GC_CALL (line 16745) | GC_CALL
  function GC_CALL (line 16779) | GC_CALL
  function GC_CALL (line 16814) | GC_CALL
  function GC_API (line 16836) | GC_API void *GC_CALL
  type hash_chain_entry (line 16914) | struct hash_chain_entry {
  type disappearing_link (line 16919) | struct disappearing_link {
  type finalizable_object (line 16928) | struct finalizable_object {
  function GC_CALL (line 16954) | GC_CALL
  function STATIC (line 16981) | STATIC void
  function GC_CALL (line 17038) | GC_CALL
  function STATIC (line 17049) | STATIC int
  function GC_CALL (line 17123) | GC_CALL
  function disappearing_link (line 17138) | disappearing_link *
  function GC_CALL (line 17170) | GC_CALL
  function GC_INLINE (line 17196) | GC_INLINE void
  function GC_INLINE (line 17207) | GC_INLINE void
  type GCToggleRef (line 17220) | typedef union toggle_ref_u GCToggleRef;
  function GC_INNER (line 17224) | GC_INNER void
  function STATIC (line 17269) | STATIC void
  function STATIC (line 17290) | STATIC void
  function GC_CALL (line 17309) | GC_CALL
  function GC_CALL (line 17317) | GC_CALL
  function GC_bool (line 17328) | static GC_bool
  function GC_CALL (line 17367) | GC_CALL
  function GC_CALL (line 17400) | GC_CALL
  function GC_CALL (line 17408) | GC_CALL
  function GC_CALL (line 17420) | GC_CALL
  function GC_CALL (line 17429) | GC_CALL
  function STATIC (line 17449) | STATIC int
  function GC_CALL (line 17507) | GC_CALL
  function GC_CALL (line 17526) | GC_CALL
  function STATIC (line 17555) | STATIC void
  function STATIC (line 17567) | STATIC void
  function STATIC (line 17591) | STATIC void
  function STATIC (line 17604) | STATIC void
  function STATIC (line 17624) | STATIC void
  function GC_CALL (line 17776) | GC_CALL
  function GC_CALL (line 17784) | GC_CALL
  function GC_CALL (line 17792) | GC_CALL
  function GC_CALL (line 17800) | GC_CALL
  function STATIC (line 17810) | STATIC void
  function GC_CALL (line 17835) | GC_CALL
  function GC_INLINE (line 17887) | GC_INLINE void
  function GC_INNER (line 17944) | GC_INNER void
  function STATIC (line 18134) | STATIC void
  function GC_CALL (line 18173) | GC_CALL
  function GC_CALL (line 18199) | GC_CALL
  function GC_get_interrupt_finalizers (line 18207) | GC_API unsigned GC_CALL
  function GC_CALL (line 18218) | GC_CALL
  type finalizable_object (line 18236) | struct finalizable_object
  function GC_INNER (line 18288) | GC_INNER void
  function GC_INNER (line 18396) | GC_INNER void
  function GC_CALLBACK (line 18445) | GC_CALLBACK
  function STATIC (line 18477) | STATIC void
  function GC_CALL (line 18489) | GC_CALL
  function GC_CALL (line 18525) | GC_CALL
  type GC_finalizer_closure (line 18536) | struct GC_finalizer_closure
  function STATIC (line 18590) | STATIC GC_bool
  function STATIC (line 18616) | STATIC ptr_t
  function STATIC (line 18679) | STATIC ptr_t
  function STATIC (line 18699) | STATIC void
  function STATIC (line 18757) | STATIC void *
  function GC_INNER (line 18797) | GC_INNER void *
  function GC_INNER (line 18829) | GC_INNER void *
  function GC_INNER (line 18928) | GC_INNER void *
  function GC_INNER (line 19133) | GC_INNER void
  function free_internal (line 19251) | static void
  function GC_CALL (line 19286) | GC_CALL
  function GC_INNER (line 19323) | GC_INNER void
  function free (line 19343) | void
  function GC_CALL (line 19419) | GC_CALL
  function GC_API (line 19447) | GC_API void *GC_CALL
  function GC_incr_bytes_allocd (line 19611) | void GC_CALL
  function GC_incr_bytes_freed (line 19618) | void GC_CALL
  function GC_CALL (line 19624) | GC_CALL
  function GC_CALL (line 19630) | GC_CALL
  function GC_CALL (line 19865) | GC_CALL
  function wchar_t (line 19978) | wchar_t *
  function GC_API (line 19987) | GC_API void *GC_CALL
  function GC_CALL (line 19993) | GC_CALL
  function GC_CALL (line 20000) | GC_CALL
  function GC_CALL (line 20006) | GC_CALL
  function GC_ATTR_NOINLINE (line 20035) | GC_ATTR_NOINLINE
  function GC_CALL (line 20053) | GC_CALL
  function GC_CALL (line 20063) | GC_CALL
  function GC_INNER (line 20111) | GC_INNER void
  function GC_CALL (line 20147) | GC_CALL
  function GC_CALL (line 20166) | GC_CALL
  function GC_CALL (line 20184) | GC_CALL
  function GC_get_pointer_shift (line 20201) | GC_API unsigned GC_CALL
  function GC_INNER (line 20214) | GC_INNER GC_bool
  function GC_INNER (line 20220) | GC_INNER void
  function GC_INNER (line 20241) | GC_INNER void
  function clear_marks_for_block (line 20272) | static void GC_CALLBACK
  function GC_CALL (line 20294) | GC_CALL
  function GC_CALL (line 20307) | GC_CALL
  function GC_CALL (line 20334) | GC_CALL
  function GC_INNER (line 20344) | GC_INNER void
  function GC_INNER (line 20356) | GC_INNER void
  type hblk (line 20389) | struct hblk
  type hblk (line 20392) | struct hblk
  type hblk (line 20393) | struct hblk
  function push_roots_and_advance (line 20397) | static void
  function GC_CALL (line 20412) | GC_CALL
  function GC_CALL (line 20420) | GC_CALL
  function STATIC (line 20437) | STATIC GC_bool
  function GC_INNER (line 20577) | GC_INNER GC_bool
  function GC_INNER (line 20677) | GC_INNER void
  function STATIC (line 20684) | STATIC mse *
  function GC_INNER (line 21056) | GC_INNER void
  function STATIC (line 21104) | STATIC mse *
  function STATIC (line 21146) | STATIC void
  function GC_bool (line 21186) | static GC_bool
  function STATIC (line 21202) | STATIC void
  function STATIC (line 21250) | STATIC void
  function STATIC (line 21365) | STATIC void
  function GC_INNER (line 21395) | GC_INNER void
  function alloc_mark_stack (line 21433) | static void
  function GC_INNER (line 21485) | GC_INNER void
  function GC_CALL (line 21491) | GC_CALL
  function GC_CALL (line 21549) | GC_CALL
  function STATIC (line 21568) | STATIC void
  function GC_CALL (line 21613) | GC_CALL
  function STATIC (line 21637) | STATIC GC_bool
  function GC_INNER (line 21644) | GC_INNER void
  function GC_CALL (line 21664) | GC_CALL
  function GC_push_one (line 21673) | void
  function GC_INNER (line 21681) | GC_INNER void
  type trace_entry (line 21757) | struct trace_entry {
  function GC_add_trace_entry (line 21765) | void
  function GC_CALL (line 21781) | GC_CALL
  function GC_CALL (line 21808) | GC_CALL
  function GC_push_all_eager (line 21818) | void GC_CALL
  function GC_push_conditional_eager (line 21872) | void
  function GC_push_marked1 (line 21937) | void
  function GC_push_marked2 (line 21992) | void
  function GC_push_marked4 (line 22046) | void
  function STATIC (line 22097) | STATIC void
  function GC_push_unconditionally (line 22162) | void
  function STATIC (line 22192) | STATIC GC_bool
  function hblk (line 22220) | hblk *
  function hblk (line 22242) | hblk *
  function hblk (line 22292) | hblk *
  function GC_INNER (line 22356) | GC_INNER word
  function GC_print_static_roots (line 22371) | void
  function GC_INLINE (line 22391) | GC_INLINE size_t
  function GC_INNER (line 22406) | GC_INNER void *
  function GC_INLINE (line 22422) | GC_INLINE void
  function GC_CALL (line 22432) | GC_CALL
  function GC_INNER (line 22442) | GC_INNER void
  function GC_CALL (line 22549) | GC_CALL
  function STATIC (line 22569) | STATIC void
  function STATIC (line 22589) | STATIC void
  function STATIC (line 22601) | STATIC void
  function GC_CALL (line 22626) | GC_CALL
  function STATIC (line 22639) | STATIC void
  function GC_INLINE (line 22667) | GC_INLINE void
  function GC_INNER (line 22683) | GC_INNER void
  function GC_CALL (line 22764) | GC_CALL
  function GC_INNER (line 22809) | GC_INNER ptr_t
  function GC_CALL (line 22822) | GC_CALL
  function exclusion (line 22836) | exclusion *
  function GC_INNER (line 22861) | GC_INNER void
  function GC_CALL (line 22908) | GC_CALL
  function STATIC (line 22938) | STATIC void
  function GC_INNER (line 22961) | GC_INNER void
  function GC_INNER (line 22989) | GC_INNER void
  function STATIC (line 23028) | STATIC void
  function STATIC (line 23061) | STATIC void
  function STATIC (line 23106) | STATIC void
  function GC_INNER (line 23175) | GC_INNER void
  function STATIC (line 23188) | STATIC void
  function GC_INNER (line 23201) | GC_INNER void
  function GC_INNER (line 23353) | GC_INNER void
  function GC_INNER (line 23369) | GC_INNER void
  function GC_INNER (line 23394) | GC_INNER void
  function GC_INNER (line 23417) | GC_INNER int
  function GC_INNER (line 23439) | GC_INNER void
  function GC_INNER (line 23455) | GC_INNER void
  function GC_INNER (line 23520) | GC_INNER GC_bool
  function STATIC (line 23526) | STATIC GC_bool
  function GC_INLINE (line 23537) | GC_INLINE ptr_t
  function STATIC (line 23567) | STATIC ptr_t
  function STATIC (line 23600) | STATIC ptr_t
  function STATIC (line 23633) | STATIC ptr_t
  function GC_INLINE (line 23701) | GC_INLINE void
  function STATIC (line 23719) | STATIC void
  function GC_INNER (line 23753) | GC_INNER ptr_t
  function STATIC (line 23791) | STATIC void
  function STATIC (line 23814) | STATIC void
  function GC_CALLBACK (line 23849) | GC_CALLBACK
  type Print_stats (line 23989) | struct Print_stats {
  function GC_n_set_marks (line 24006) | GC_ATTR_NO_SANITIZE_THREAD
  function count_ones (line 24026) | static unsigned
  function GC_n_set_marks (line 24038) | unsigned
  function GC_count_set_marks_in_hblk (line 24076) | GC_API unsigned GC_CALL
  function GC_CALLBACK (line 24082) | GC_CALLBACK
  function GC_print_block_list (line 24104) | void
  function GC_CALL (line 24121) | GC_CALL
  function STATIC (line 24145) | STATIC void
  function GC_INNER (line 24156) | GC_INNER void
  function GC_INNER (line 24223) | GC_INNER void
  function GC_INNER (line 24250) | GC_INNER GC_bool
  function STATIC (line 24309) | STATIC void
  type enumerate_reachable_s (line 24338) | struct enumerate_reachable_s {
  function GC_CALLBACK (line 24343) | GC_CALLBACK
  function GC_CALL (line 24371) | GC_CALL
  function STATIC (line 24439) | STATIC void
  function STATIC (line 24449) | STATIC GC_signed_word
  function STATIC (line 24513) | STATIC GC_descr
  function STATIC (line 24530) | STATIC void
  function STATIC (line 24556) | STATIC mse *GC_CALLBACK
  function GC_CALL (line 24595) | GC_CALL
  function set_obj_descr (line 24673) | static void
  type LeafDescriptor (line 24739) | struct LeafDescriptor {
  type ComplexArrayDescriptor (line 24750) | struct ComplexArrayDescriptor {
  type SequenceDescriptor (line 24757) | struct SequenceDescriptor {
  type complex_descriptor (line 24764) | typedef union ComplexDescriptor {
  function STATIC (line 24770) | STATIC complex_descriptor *
  function STATIC (line 24787) | STATIC complex_descriptor *
  function STATIC (line 24833) | STATIC int
  type GC_calloc_typed_descr_s (line 24900) | struct GC_calloc_typed_descr_s {
  function GC_CALL (line 24908) | GC_CALL
  type GC_calloc_typed_descr_s (line 24950) | struct GC_calloc_typed_descr_s
  type GC_calloc_typed_descr_s (line 24956) | struct GC_calloc_typed_descr_s
  type LeafDescriptor (line 24977) | struct LeafDescriptor
  type LeafDescriptor (line 24978) | struct LeafDescriptor
  type LeafDescriptor (line 24980) | struct LeafDescriptor
  type LeafDescriptor (line 24999) | struct LeafDescriptor
  type GC_calloc_typed_descr_s (line 25029) | struct GC_calloc_typed_descr_s
  function STATIC (line 25040) | STATIC size_t
  function STATIC (line 25062) | STATIC mse *
  function GC_ATTR_NO_SANITIZE_THREAD (line 25116) | GC_ATTR_NO_SANITIZE_THREAD
  function STATIC (line 25124) | STATIC mse *GC_CALLBACK
  type _GC_arrays (line 25250) | struct _GC_arrays
  function STATIC (line 25346) | STATIC void *GC_CALLBACK
  function GC_CALL (line 25364) | GC_CALL
  function GC_CALL (line 25372) | GC_CALL
  function GC_CALL (line 25378) | GC_CALL
  function GC_CALL (line 25385) | GC_CALL
  function STATIC (line 25417) | STATIC void
  function GC_API (line 25450) | GC_API void *GC_CALL
  function next_random_no (line 25516) | static unsigned
  function GC_API (line 25531) | GC_API void *GC_CALL
  function GC_API (line 25615) | GC_API void *GC_CALL
  function GC_CALL (line 25657) | GC_CALL
  function GC_CALL (line 25667) | GC_CALL
  function GC_CALL (line 25685) | GC_CALL
  function GC_CALL (line 25695) | GC_CALL
  function GC_CALL (line 25701) | GC_CALL
  function GC_CALL (line 25708) | GC_CALL
  function GC_CALL (line 25714) | GC_CALL
  function GC_CALL (line 25720) | GC_CALL
  function GC_CALL (line 25728) | GC_CALL
  function GC_CALL (line 25736) | GC_CALL
  function fill_prof_stats (line 25756) | static void
  function GC_CALL (line 25781) | GC_CALL
  function GC_CALL (line 25804) | GC_CALL
  function GC_CALL (line 25829) | GC_CALL
  function GC_CALL (line 25835) | GC_CALL
  function GC_CALL (line 25841) | GC_CALL
  function GC_CALL (line 25847) | GC_CALL
  function STATIC (line 25868) | STATIC void
  function GC_INNER (line 25938) | GC_INNER char *
  function GC_CALL (line 25976) | GC_CALL
  function STATIC (line 25988) | STATIC void
  function looping_handler (line 26011) | static void
  function maybe_install_looping_handler (line 26022) | static void
  function GC_CALL (line 26054) | GC_CALL
  function STATIC (line 26063) | STATIC void
  function callee_saves_pushed_dummy_fn (line 26084) | static void
  function GC_CALL (line 26098) | GC_CALL
  function GC_CALL (line 26104) | GC_CALL
  function GC_get_supported_vdbs (line 26110) | GC_API unsigned GC_CALL
  function set_incremental_mode_on (line 26149) | static void
  function STATIC (line 26169) | STATIC word
  type hblk (line 26613) | struct hblk
  function GC_CALL (line 26752) | GC_CALL
  function GC_CALL (line 26807) | GC_CALL
  function GC_CALL (line 26825) | GC_CALL
  function GC_bool (line 26887) | static GC_bool
  function STATIC (line 26946) | STATIC HANDLE
  function STATIC (line 27025) | STATIC int
  function STATIC (line 27093) | STATIC void
  function GC_INLINE (line 27107) | GC_INLINE int
  function STATIC (line 27147) | STATIC int
  function GC_printf (line 27245) | void
  function GC_err_printf (line 27265) | void
  function GC_INNER (line 27295) | GC_INNER void
  function GC_INNER (line 27302) | GC_INNER void
  function STATIC (line 27310) | STATIC void
  function GC_err_puts (line 27319) | void
  function GC_CALLBACK (line 27326) | GC_CALLBACK
  function GC_CALLBACK (line 27335) | GC_CALLBACK
  function GC_CALL (line 27344) | GC_CALL
  function GC_CALL (line 27353) | GC_CALL
  function GC_CALLBACK (line 27369) | GC_CALLBACK
  function GC_CALL (line 27431) | GC_CALL
  function GC_CALL (line 27444) | GC_CALL
  function GC_INNER (line 27461) | GC_INNER void
  function GC_CALL (line 27516) | GC_CALL
  function GC_CALL (line 27529) | GC_CALL
  function GC_CALL (line 27539) | GC_CALL
  function GC_API (line 27547) | GC_API void **GC_CALL
  function GC_API (line 27560) | GC_API void **GC_CALL
  function GC_new_kind_inner (line 27571) | GC_API unsigned GC_CALL
  function GC_new_kind (line 27603) | GC_API unsigned GC_CALL
  function GC_new_proc_inner (line 27614) | GC_API unsigned GC_CALL
  function GC_new_proc (line 27628) | GC_API unsigned GC_CALL
  function GC_API (line 27639) | GC_API void *GC_CALL
  function GC_CALL (line 27651) | GC_CALL
  function GC_CALL (line 27657) | GC_CALL
  function GC_API (line 27663) | GC_API void *GC_CALL
  type GC_stack_base (line 27690) | struct GC_stack_base
  type GC_traced_stack_sect_s (line 27732) | struct GC_traced_stack_sect_s
  function STATIC (line 27783) | STATIC void
  function GC_CALL (line 27809) | GC_CALL
  function GC_API (line 27824) | GC_API void *GC_CALL
  function GC_API (line 27839) | GC_API void *GC_CALL
  function GC_CALL (line 27851) | GC_CALL
  function GC_CALL (line 27859) | GC_CALL
  function GC_CALL (line 27892) | GC_CALL
  function GC_CALL (line 27906) | GC_CALL
  function GC_CALL (line 27913) | GC_CALL
  function GC_CALL (line 27920) | GC_CALL
  function GC_CALL (line 27936) | GC_CALL
  function GC_CALL (line 27945) | GC_CALL
  function GC_CALL (line 27956) | GC_CALL
  function GC_CALL (line 27965) | GC_CALL
  function GC_CALL (line 27976) | GC_CALL
  function GC_CALL (line 27985) | GC_CALL
  function GC_CALL (line 28006) | GC_CALL
  function GC_CALL (line 28018) | GC_CALL
  function GC_CALL (line 28024) | GC_CALL
  function GC_CALL (line 28045) | GC_CALL
  function GC_CALL (line 28051) | GC_CALL
  function GC_CALL (line 28060) | GC_CALL
  function GC_CALL (line 28066) | GC_CALL
  function GC_CALL (line 28075) | GC_CALL
  function GC_CALL (line 28081) | GC_CALL
  function GC_CALL (line 28090) | GC_CALL
  function GC_CALL (line 28096) | GC_CALL
  function GC_CALL (line 28105) | GC_CALL
  function GC_CALL (line 28111) | GC_CALL
  function GC_CALL (line 28117) | GC_CALL
  function GC_CALL (line 28123) | GC_CALL
  function GC_CALL (line 28130) | GC_CALL
  function GC_CALL (line 28136) | GC_CALL
  function GC_CALL (line 28144) | GC_CALL
  function GC_CALL (line 28150) | GC_CALL
  function GC_CALL (line 28159) | GC_CALL
  function GC_CALL (line 28165) | GC_CALL
  function GC_CALL (line 28172) | GC_CALL
  function GC_CALL (line 28178) | GC_CALL
  function GC_get_time_limit (line 28186) | GC_API unsigned long GC_CALL
  function GC_CALL (line 28192) | GC_CALL
  function GC_CALL (line 28198) | GC_CALL
  function GC_abort_on_oom (line 28204) | void GC_CALL
  function GC_CALL (line 28211) | GC_CALL
  type caddr_t (line 28283) | typedef long unsigned int caddr_t;
  function STATIC (line 28309) | STATIC ssize_t
  function STATIC (line 28346) | STATIC size_t
  function STATIC (line 28372) | STATIC size_t
  function GC_INNER (line 28388) | GC_INNER const char *
  function GC_INNER (line 28512) | GC_INNER const char *
  function GC_INNER (line 28571) | GC_INNER GC_bool
  function GC_INNER (line 28600) | GC_INNER GC_bool
  function ptr_t (line 28642) | static ptr_t
  function GC_INNER (line 28687) | GC_INNER void
  type sigaction (line 28777) | struct sigaction
  function STATIC (line 28780) | STATIC void
  function STATIC (line 28793) | STATIC ptr_t
  type exe_hdr (line 28837) | struct exe_hdr {
  type e32_exe (line 28847) | struct e32_exe {
  type o32_obj (line 28873) | struct o32_obj {
  function STATIC (line 28947) | STATIC word
  function GC_CALL (line 28965) | GC_CALL
  function GC_CALL (line 28993) | GC_CALL
  function os2_getpagesize (line 29015) | static int
  function GC_INNER (line 29031) | GC_INNER void
  function GC_CALL (line 29118) | GC_CALL
  function GC_CALL (line 29136) | GC_CALL
  function GC_CALL (line 29155) | GC_CALL
  type sigaction (line 29180) | struct sigaction
  type sigaction (line 29183) | struct sigaction
  function GC_INNER (line 29192) | GC_INNER void
  function STATIC (line 29242) | STATIC void
  function GC_INNER (line 29249) | GC_INNER void
  function GC_INNER (line 29260) | GC_INNER void
  function ptr_t (line 29288) | ptr_t
  function GC_INNER (line 29354) | GC_INNER ptr_t
  function GC_INNER (line 29381) | GC_INNER ptr_t
  function ptr_t (line 29426) | static ptr_t
  function ptr_t (line 29458) | static ptr_t
  function ptr_t (line 29548) | static ptr_t
  function ptr_t (line 29565) | static ptr_t
  function GC_INNER (line 29582) | GC_INNER ptr_t
  function ptr_t (line 29594) | ptr_t
  function GC_INNER (line 29604) | GC_INNER ptr_t
  function GC_INNER (line 29631) | GC_INNER ptr_t
  function GC_CALL (line 29717) | GC_CALL
  function GC_CALL (line 29783) | GC_CALL
  function GC_CALL (line 29802) | GC_CALL
  function GC_INNER (line 29832) | GC_INNER void
  function GC_CALL (line 29844) | GC_CALL
  function GC_CALL (line 29888) | GC_CALL
  function GC_CALL (line 29900) | GC_CALL
  function GC_CALL (line 29930) | GC_CALL
  function GC_INNER (line 29947) | GC_INNER ptr_t
  type PVOID (line 29982) | typedef UINT(WINAPI *GetWriteWatch_type)(DWORD, PVOID,
  function detect_GetWriteWatch (line 29990) | static void
  function GC_INNER (line 30095) | GC_INNER void
  function STATIC (line 30130) | STATIC ptr_t
  function STATIC (line 30156) | STATIC void
  function STATIC (line 30210) | STATIC struct GC_malloc_heap_list {
  function STATIC (line 30219) | STATIC GC_bool
  function STATIC (line 30231) | STATIC void *
  function GC_INNER (line 30243) | GC_INNER void
  function STATIC (line 30289) | STATIC void
  function GC_INNER (line 30306) | GC_INNER GC_bool
  function GC_INNER (line 30324) | GC_INNER void
  type scan_bounds_s (line 30349) | struct scan_bounds_s {
  function ld_cap_search (line 30355) | static int
  function ptr_t (line 30371) | static ptr_t
  function GC_INNER (line 30398) | GC_INNER ptr_t
  function GC_INNER (line 30473) | GC_INNER void
  function GC_INNER (line 30553) | GC_INNER void
  function GC_INNER (line 30578) | GC_INNER void
  function STATIC (line 30666) | STATIC void *
  function GC_INNER (line 30741) | GC_INNER void *
  function STATIC (line 30749) | STATIC void *
  function GC_INNER (line 30799) | GC_INNER void *
  function GC_INNER (line 30835) | GC_INNER void *
  function GC_INNER (line 30861) | GC_INNER void *
  function GC_INNER (line 30870) | GC_INNER void *
  function GC_INNER (line 30951) | GC_INNER void *
  function GC_CALL (line 31018) | GC_CALL
  function STATIC (line 31076) | STATIC ptr_t
  function block_unmap_inner (line 31095) | static void
  function GC_INLINE (line 31180) | GC_INLINE ptr_t
  function GC_INNER (line 31186) | GC_INNER void
  function GC_INNER (line 31195) | GC_INNER void
  function GC_INNER (line 31274) | GC_INNER void
  function scan_regs_cb (line 31302) | static void
  function GC_CALLBACK (line 31308) | GC_CALLBACK
  function GC_CALLBACK (line 31322) | GC_CALLBACK
  function GC_INNER (line 31328) | GC_INNER void
  function GC_CALLBACK (line 31335) | GC_CALLBACK
  function GC_CALL (line 31346) | GC_CALL
  function GC_CALL (line 31352) | GC_CALL
  function GC_INNER (line 31360) | GC_INNER int
  function STATIC (line 31437) | STATIC void
  function GC_INNER (line 31460) | GC_INNER GC_bool
  function GC_INLINE (line 31468) | GC_INLINE void
  function GC_INNER (line 31567) | GC_INNER GC_bool
  function async_set_pht_entry_from_index (line 31591) | static void
  type LPTOP_LEVEL_EXCEPTION_FILTER (line 31672) | typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_HNDLR_PTR;
  function GC_ATTR_NO_SANITIZE_THREAD (line 31707) | GC_ATTR_NO_SANITIZE_THREAD
  type _EXCEPTION_POINTERS (line 31783) | struct _EXCEPTION_POINTERS
  type hblk (line 31793) | struct hblk
  function GC_INNER (line 31900) | GC_INNER void
  function GC_INNER (line 31911) | GC_INNER GC_bool
  function STATIC (line 32025) | STATIC void
  function STATIC (line 32108) | STATIC void
  function GC_INNER (line 32122) | GC_INNER void
  type prpageheader (line 32172) | struct prpageheader {
  type prasmap (line 32177) | struct prasmap {
  function GC_bool (line 32195) | static GC_bool
  function GC_INNER (line 32217) | GC_INNER void
  function GC_INNER (line 32233) | GC_INNER GC_bool
  function GC_INLINE (line 32251) | GC_INLINE void
  function open_proc_fd (line 32387) | static int
  type pagemap_elem_t (line 32406) | typedef uint64_t pagemap_elem_t;
  function GC_bool (line 32411) | static GC_bool
  function GC_INNER (line 32433) | GC_INNER void
  function clear_soft_dirty_bits (line 32449) | static void
  function GC_bool (line 32462) | static GC_bool
  function GC_bool (line 32502) | static GC_bool
  function GC_bool (line 32525) | static GC_bool
  function pagemap_elem_t (line 32584) | static const pagemap_elem_t *
  function soft_set_grungy_pages (line 32646) | static void
  function GC_INLINE (line 32753) | GC_INLINE void
  function GC_dirty_inner (line 32806) | void
  function GC_INNER (line 32823) | GC_INNER void
  function GC_INNER (line 32860) | GC_INNER GC_bool
  function GC_INNER (line 32877) | GC_INNER GC_bool
  function GC_INNER (line 32898) | GC_INNER GC_bool
  function GC_INNER (line 32925) | GC_INNER void
  function kern_return_t (line 33038) | kern_return_t
  function GC_API_OSCALL (line 33058) | GC_API_OSCALL kern_return_t
  function STATIC (line 33090) | STATIC struct ports_s {
  type GC_msg_t (line 33105) | typedef struct {
  type GC_mprotect_state_t (line 33109) | typedef enum {
  function STATIC (line 33129) | STATIC void
  function STATIC (line 33155) | STATIC void
  function GC_INNER (line 33174) | GC_INNER void
  function GC_INNER (line 33180) | GC_INNER void
  function GC_INNER (line 33187) | GC_INNER void
  type mp_reply_s (line 33222) | struct mp_reply_s {
  type mp_msg_s (line 33227) | struct mp_msg_s {
  function STATIC (line 33233) | STATIC void *
  function STATIC (line 33339) | STATIC void
  function GC_INNER (line 33357) | GC_INNER GC_bool
  function STATIC (line 33461) | STATIC kern_return_t
  function GC_API_OSCALL (line 33569) | GC_API_OSCALL kern_return_t
  function GC_CALL (line 33697) | GC_CALL
  function GC_get_actual_vdb (line 33717) | GC_API unsigned GC_CALL
  function GC_CALL (line 33755) | GC_CALL
  function GC_CALL (line 33766) | GC_CALL
  type frame (line 33793) | struct frame {
  type frame (line 33806) | struct frame {
  function GC_INNER (line 33862) | GC_INNER void
  function GC_INNER (line 33873) | GC_INNER void
  function GC_INNER (line 33932) | GC_INNER void
  function GC_INNER (line 33974) | GC_INNER void
  function GC_print_address_map (line 34183) | void
  type thread_local_freelists (line 34344) | struct thread_local_freelists {
  type thread_local_freelists (line 34358) | struct thread_local_freelists
  type pthread_key_t (line 34371) | typedef pthread_key_t GC_key_t;
  type DWORD (line 34393) | typedef DWORD GC_key_t;
  type GC_hidden_pointer (line 34452) | typedef GC_hidden_pointer ts_entry_value_t;
  type tse (line 34469) | typedef struct thread_specific_entry {
  type tsd (line 34497) | typedef struct thread_specific_data {
  type tsd (line 34503) | typedef tsd *GC_key_t;
  function GC_INLINE (line 34541) | GC_INLINE void *
  function GC_INNER (line 34628) | GC_INNER void
  function return_single_freelist (line 34640) | static void
  function return_freelists (line 34665) | static void
  function reset_thread_key (line 34697) | static void
  function GC_INNER (line 34706) | GC_INNER void
  function GC_INNER (line 34745) | GC_INNER void
  function STATIC (line 34766) | STATIC void *
  function GC_INNER (line 34898) | GC_INNER void
  function GC_check_tls_for (line 34926) | void
  type GC_NT_TIB_s (line 35013) | struct GC_NT_TIB_s {
  type GC_NT_TIB (line 35019) | typedef struct GC_NT_TIB_s GC_NT_TIB;
  type GC_StackContext_Rep (line 35025) | struct GC_StackContext_Rep {
  type GC_StackContext_Rep (line 35113) | struct GC_StackContext_Rep
  type DWORD (line 35116) | typedef DWORD thread_id_t;
  type pthread_t (line 35126) | typedef pthread_t thread_id_t;
  type GC_Thread_Rep (line 35132) | struct GC_Thread_Rep {
  type GC_Thread_Rep (line 35282) | struct GC_Thread_Rep
  type GC_stack_base (line 35397) | struct GC_stack_base
  type GC_stack_base (line 35407) | struct GC_stack_base
  type GC_stack_base (line 35530) | struct GC_stack_base
  type GC_stack_base (line 35539) | struct GC_stack_base
  type StackFrame (line 35602) | typedef struct StackFrame {
  function GC_INNER (line 35610) | GC_INNER ptr_t
  function GC_CALL (line 35682) | GC_CALL
  function STATIC (line 35710) | STATIC ptr_t
  function GC_INNER (line 35939) | GC_INNER void
  function GC_INNER (line 36024) | GC_INNER void
  type GC_mach_thread (line 36036) | struct GC_mach_thread {
  function STATIC (line 36051) | STATIC GC_bool
  function GC_INNER (line 36150) | GC_INNER void
  function GC_INLINE (line 36265) | GC_INLINE void
  function GC_INNER (line 36296) | GC_INNER void
  function STATIC (line 36456) | STATIC void
  function GC_INNER (line 36492) | GC_INNER GC_bool
  function GC_dump_meminfo (line 36505) | void
  function GC_INNER (line 36530) | GC_INNER void
  type link_map (line 36674) | struct link_map {
  type r_debug (line 36681) | struct r_debug {
  function sort_heap_sects (line 36748) | static void
  function STATIC (line 36776) | STATIC void
  function GC_INNER (line 36883) | GC_INNER void
  function GC_INNER (line 36889) | GC_INNER GC_bool
  type dl_phdr_info (line 36912) | struct dl_phdr_info
  type load_segment (line 36953) | struct load_segment {
  function STATIC (line 36968) | STATIC int
  function GC_INNER (line 37094) | GC_INNER GC_bool
  function STATIC (line 37113) | STATIC GC_bool
  type link_map (line 37241) | struct link_map
  type link_map (line 37244) | struct link_map
  type link_map (line 37279) | struct link_map
  type r_debug (line 37298) | struct r_debug
  type link_map (line 37303) | struct link_map
  function GC_INNER (line 37321) | GC_INNER void
  function GC_INNER (line 37386) | GC_INNER void
  function GC_INNER (line 37520) | GC_INNER void
  type GC_MACH_HEADER (line 37578) | struct GC_MACH_HEADER
  function STATIC (line 37586) | STATIC const struct dyld_sections_s {
  function STATIC (line 37620) | STATIC const char *
  function dyld_section_add_del (line 37644) | static void
  function dyld_image_add_del (line 37693) | static void
  function STATIC (line 37736) | STATIC void
  function STATIC (line 37743) | STATIC void
  function GC_INNER (line 37749) | GC_INNER void
  function GC_INNER (line 37772) | GC_INNER void
  function GC_INNER (line 37848) | GC_INNER GC_bool
  function GC_INNER (line 37861) | GC_INNER void
  function GC_INNER (line 37875) | GC_INNER GC_bool
  function GC_register_dynamic_libraries (line 37896) | void
  function GC_register_dynamic_libraries (line 37960) | void
  function GC_INNER (line 38052) | GC_INNER GC_bool
  function GC_CALL (line 38059) | GC_CALL
  function disable_gc_for_dlopen (line 38113) | static void
  function GC_API (line 38142) | GC_API void *
  function GC_API (line 38170) | GC_API void *
  function GC_INLINE (line 38402) | GC_INLINE void
  function GC_print_sig_mask (line 38466) | void
  function STATIC (line 38485) | STATIC void
  function GC_CALL (line 38569) | GC_CALL
  function GC_CALL (line 38578) | GC_CALL
  function GC_CALL (line 38587) | GC_CALL
  function GC_CALL (line 38593) | GC_CALL
  function STATIC (line 38624) | STATIC void
  function GC_ATTR_NO_SANITIZE_THREAD (line 38669) | GC_ATTR_NO_SANITIZE_THREAD
  function GC_INLINE (line 38686) | GC_INLINE void
  function STATIC (line 38709) | STATIC void
  function suspend_restart_barrier (line 38827) | static void
  function resend_lost_signals (line 38851) | static int
  function resend_lost_signals_retry (line 38905) | static void
  function STATIC (line 38932) | STATIC void
  function raise_signal (line 38970) | static int
  function STATIC (line 39021) | STATIC void
  function GC_INNER (line 39034) | GC_INNER void
  function GC_CALL (line 39054) | GC_CALL
  function GC_CALL (line 39146) | GC_CALL
  function GC_CALL (line 39184) | GC_CALL
  function GC_INNER (line 39205) | GC_INNER void
  function STATIC (line 39371) | STATIC int
  function GC_INNER (line 39482) | GC_INNER void
  function GC_API_OSCALL (line 39598) | GC_API_OSCALL void
  function GC_API_OSCALL (line 39608) | GC_API_OSCALL void
  function GC_API_OSCALL (line 39644) | GC_API_OSCALL void
  type nacl_irt_blockhook (line 39660) | struct nacl_irt_blockhook {
  function GC_nacl_initialize_gc_thread (line 39669) | void
  function GC_INNER (line 39702) | GC_INNER void
  function STATIC (line 39725) | STATIC int
  function GC_INNER (line 39794) | GC_INNER void
  function GC_INNER (line 39842) | GC_INNER void
  type sem_t (line 40004) | typedef struct {
  function GC_INLINE (line 40010) | GC_INLINE int
  function GC_INLINE (line 40034) | GC_INLINE int
  function GC_INLINE (line 40058) | GC_INLINE int
  function GC_INLINE (line 40084) | GC_INLINE int
  type sem_t (line 40145) | typedef unsigned int sem_t;
  function GC_API (line 40245) | GC_API int
  function GC_API (line 40253) | GC_API int
  function GC_API (line 40260) | GC_API int
  function GC_API (line 40266) | GC_API int
  function GC_API (line 40273) | GC_API int
  function GC_pthread_exit (line 40281) | void
  function STATIC (line 40296) | STATIC void
  function GC_INNER (line 40354) | GC_INNER int
  function GC_INNER (line 40366) | GC_INNER void
  function GC_check_tls (line 40385) | void
  function GC_INNER (line 40432) | GC_INNER GC_bool
  function set_marker_thread_name (line 40446) | static void
  function set_marker_thread_name (line 40462) | static void
  function GC_INNER (line 40494) | GC_INNER void
  function set_marker_thread_name (line 40501) | static void
  function GC_INNER (line 40631) | GC_INNER void
  type GC_StackContext_Rep (line 40756) | struct GC_StackContext_Rep
  type GC_Thread_Rep (line 40757) | struct GC_Thread_Rep
  function GC_INNER (line 40760) | GC_INNER void
  function GC_INNER (line 40775) | GC_INNER void
  function GC_INNER (line 40805) | GC_INNER void
  function STATIC (line 40825) | STATIC int
  function GC_INNER_WIN32THREAD (line 40848) | GC_INNER_WIN32THREAD GC_thread
  function GC_INNER_WIN32THREAD (line 40911) | GC_INNER_WIN32THREAD void
  function GC_INNER (line 40973) | GC_INNER GC_thread
  function STATIC (line 40993) | STATIC GC_thread
  function GC_INNER (line 41005) | GC_INNER void
  function GC_bool (line 41056) | GC_bool
  function GC_CALL (line 41065) | GC_CALL
  function GC_CALL (line 41074) | GC_CALL
  function GC_INNER (line 41104) | GC_INNER GC_bool
  function GC_INNER (line 41142) | GC_INNER ptr_t
  function GC_INLINE (line 41182) | GC_INLINE int
  function GC_INLINE (line 41191) | GC_INLINE int
  function STATIC (line 41201) | STATIC int
  function STATIC (line 41259) | STATIC int
  function STATIC (line 41279) | STATIC int
  function STATIC (line 41303) | STATIC int
  function GC_ATTR_NO_SANITIZE_THREAD (line 41349) | GC_ATTR_NO_SANITIZE_THREAD
  function GC_INNER (line 41359) | GC_INNER void
  function store_to_threads_table (line 41446) | static void
  function STATIC (line 41459) | STATIC void
  function fork_prepare_proc (line 41573) | static void
  function fork_parent_proc (line 41627) | static void
  function fork_child_proc (line 41653) | static void
  function GC_CALL (line 41760) | GC_CALL
  function GC_CALL (line 41769) | GC_CALL
  function GC_CALL (line 41776) | GC_CALL
  function GC_INNER_WIN32THREAD (line 41783) | GC_INNER_WIN32THREAD void
  function GC_CALL (line 41814) | GC_CALL
  function GC_INNER_WIN32THREAD (line 41823) | GC_INNER_WIN32THREAD void
  function GC_INNER (line 41846) | GC_INNER GC_bool
  function STATIC (line 41856) | STATIC GC_thread
  type GC_stack_base (line 42033) | struct GC_stack_base
  function GC_INNER (line 42053) | GC_INNER void
  function GC_API (line 42080) | GC_API int
  function do_blocking_enter (line 42134) | static void
  function do_blocking_leave (line 42169) | static void
  function GC_INNER (line 42193) | GC_INNER void
  function GC_INNER (line 42248) | GC_INNER void
  function GC_CALL (line 42275) | GC_CALL
  function GC_API (line 42314) | GC_API void *GC_CALL
  type GC_traced_stack_sect_s (line 42339) | struct GC_traced_stack_sect_s
  function STATIC (line 42444) | STATIC void
  function GC_CALL (line 42485) | GC_CALL
  function GC_API (line 42527) | GC_API int
  function GC_wrap_pthread_exit (line 42556) | void
  function GC_CALL (line 42579) | GC_CALL
  function GC_INNER (line 42599) | GC_INNER void
  function GC_CALL (line 42615) | GC_CALL
  function GC_INNER_PTHRSTART (line 42689) | GC_INNER_PTHRSTART void
  function GC_API (line 42708) | GC_API int
  function GC_API (line 42768) | GC_API int
  type start_info (line 42793) | struct start_info {
  function GC_INNER_PTHRSTART (line 42804) | GC_INNER_PTHRSTART GC_thread
  function STATIC (line 42848) | STATIC void *
  function GC_API (line 42875) | GC_API int
  function STATIC (line 42992) | STATIC void
  function STATIC (line 43040) | STATIC void
  function GC_INNER (line 43117) | GC_INNER void
  function GC_INNER (line 43189) | GC_INNER void
  function GC_INNER (line 43199) | GC_INNER void
  function setup_mark_lock (line 43237) | static void
  function GC_INNER (line 43260) | GC_INNER void
  function GC_INNER (line 43270) | GC_INNER void
  function STATIC (line 43285) | STATIC void
  function GC_INNER (line 43296) | GC_INNER void
  function GC_ATTR_NO_SANITIZE_THREAD (line 43312) | GC_ATTR_NO_SANITIZE_THREAD
  function GC_INNER (line 43323) | GC_INNER void
  function GC_INNER (line 43331) | GC_INNER void
  function GC_INNER (line 43343) | GC_INNER void
  function GC_CALL (line 43355) | GC_CALL
  function GC_CALL (line 43364) | GC_CALL
  function GC_CALL (line 43379) | GC_CALL
  function GC_CALL (line 43391) | GC_CALL
  function EXTERN_C_END (line 43411) | EXTERN_C_END
  function __pthread_unregister_cancel (line 43417) | void
  function GC_INNER (line 43453) | GC_INNER int
  function GC_INNER (line 43482) | GC_INNER int
  function GC_INNER (line 43526) | GC_INNER void
  function GC_INNER (line 43588) | GC_INNER void
  function GC_INNER (line 43614) | GC_INNER void *
  function GC_check_tsd_marks (line 43642) | void
  function GC_CALL (line 43760) | GC_CALL
  function GC_INNER (line 43808) | GC_INNER GC_bool
  type GC_Thread_Rep (line 43845) | struct GC_Thread_Rep
  type GC_StackContext_Rep (line 43847) | struct GC_StackContext_Rep
  function GC_INNER (line 43850) | GC_INNER GC_thread
  function GC_INLINE (line 43984) | GC_INLINE LONG
  function GC_INNER (line 43994) | GC_INNER GC_thread
  function GC_INNER (line 44030) | GC_INNER void
  function GC_INNER (line 44039) | GC_INNER GC_thread
  function STATIC (line 44089) | STATIC void
  function GC_INNER (line 44247) | GC_INNER void
  function GC_INNER (line 44325) | GC_INNER void
  function STATIC (line 44423) | STATIC ptr_t
  function GC_bool (line 44446) | static GC_bool
  function ptr_t (line 44465) | static ptr_t
  function STATIC (line 44549) | STATIC word
  function GC_INNER (line 44776) | GC_INNER void
  function GC_INNER (line 44835) | GC_INNER void
  function GC_INNER (line 44973) | GC_INNER void
  function GC_INNER (line 45084) | GC_INNER void
  function GC_INNER (line 45110) | GC_INNER void
  function GC_INNER (line 45132) | GC_INNER void
  function GC_INNER (line 45149) | GC_INNER void
  function GC_INNER (line 45161) | GC_INNER void
  function GC_INNER (line 45183) | GC_INNER void
  type win32_start_info (line 45203) | struct win32_start_info {
  function STATIC (line 45208) | STATIC void *GC_CALLBACK
  function WINAPI (line 45253) | WINAPI
  function WINAPI (line 45260) | WINAPI
  function GC_ExitThread (line 45313) | void WINAPI
  function GC_CALL (line 45322) | GC_CALL
  function GC_CALL (line 45376) | GC_CALL
  type main_thread_args (line 45400) | typedef struct {
  function DWORD (line 45407) | static DWORD WINAPI
  function STATIC (line 45415) | STATIC void *GC_CALLBACK
  function WinMain (line 45426) | int WINAPI
  function GC_bool (line 45467) | static GC_bool
  function GC_INNER (line 45502) | GC_INNER void
  function BOOL (line 45655) | BOOL WINAPI
  function GC_INNER_PTHRSTART (line 45794) | GC_INNER_PTHRSTART void *GC_CALLBACK

FILE: thirdparty/libgc/include/gc.h
  function GC_CALL (line 5) | GC_CALL GC_noop1_ptr(volatile void *p) {

FILE: thirdparty/libgc/include/gc/cord_pos.h
  type CORD_pe (line 35) | struct CORD_pe {
  type CORD_Pos (line 44) | struct CORD_Pos {

FILE: thirdparty/libgc/include/gc/ec.h
  type CORD_ec_struct (line 58) | struct CORD_ec_struct {

FILE: thirdparty/libgc/include/gc/gc.h
  type GC_UNSIGNEDWORD (line 60) | typedef GC_UNSIGNEDWORD GC_word;
  type GC_SIGNEDWORD (line 61) | typedef GC_SIGNEDWORD GC_signed_word;
  type GC_uintptr_t (line 69) | typedef uintptr_t GC_uintptr_t;
  type GC_word (line 71) | typedef GC_word GC_uintptr_t;
  type GC_EventType (line 170) | typedef enum {
  type GC_timeval_s (line 446) | struct GC_timeval_s {
  type GC_timeval_s (line 463) | struct GC_timeval_s
  type GC_prof_stats_s (line 1011) | struct GC_prof_stats_s {
  type GC_prof_stats_s (line 1095) | struct GC_prof_stats_s
  type GC_prof_stats_s (line 1103) | struct GC_prof_stats_s
  type GC_ToggleRefStatus (line 1701) | typedef enum {
  type GC_uintptr_t (line 1891) | typedef GC_uintptr_t GC_hidden_pointer;
  type GC_stack_base (line 1972) | struct GC_stack_base {
  type GC_stack_base (line 1983) | struct GC_stack_base
  type GC_stack_base (line 2092) | struct GC_stack_base
  type GC_stack_base (line 2200) | struct GC_stack_base
  type GC_stack_base (line 2215) | struct GC_stack_base
  type GC_stack_base (line 2233) | struct GC_stack_base
  type GC_heap_section_type (line 2323) | typedef enum {
  type _SECURITY_ATTRIBUTES (line 2548) | struct _SECURITY_ATTRIBUTES
  type _SECURITY_ATTRIBUTES (line 2549) | struct _SECURITY_ATTRIBUTES

FILE: thirdparty/libgc/include/gc/gc_allocator.h
  function namespace (line 38) | namespace boehmgc
  type GC_ALCTR_PTRDIFF_T (line 209) | typedef GC_ALCTR_PTRDIFF_T difference_type;
  type value_type (line 212) | typedef void value_type;
  type gc_allocator (line 215) | typedef gc_allocator<GC_Tp1> other;
  type GC_ALCTR_PTRDIFF_T (line 240) | typedef GC_ALCTR_PTRDIFF_T difference_type;
  type GC_Tp (line 241) | typedef GC_Tp *pointer;
  type GC_Tp (line 242) | typedef const GC_Tp *const_pointer;
  type GC_Tp (line 243) | typedef GC_Tp &reference;
  type GC_Tp (line 244) | typedef const GC_Tp &const_reference;
  type GC_Tp (line 245) | typedef GC_Tp value_type;
  type gc_allocator_ignore_off_page (line 248) | typedef gc_allocator_ignore_off_page<GC_Tp1> other;
  function GC_CONSTEXPR (line 251) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 257) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 266) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 273) | GC_CONSTEXPR ~gc_allocator_ignore_off_page() GC_NOEXCEPT {}
  function GC_CONSTEXPR (line 275) | GC_CONSTEXPR pointer
  function GC_CONSTEXPR (line 281) | GC_CONSTEXPR const_pointer
  function GC_CONSTEXPR (line 297) | GC_CONSTEXPR void
  function GC_CONSTEXPR (line 309) | GC_CONSTEXPR void
  function GC_CONSTEXPR (line 315) | GC_CONSTEXPR void
  type GC_ALCTR_PTRDIFF_T (line 326) | typedef GC_ALCTR_PTRDIFF_T difference_type;
  type value_type (line 329) | typedef void value_type;
  type gc_allocator_ignore_off_page (line 332) | typedef gc_allocator_ignore_off_page<GC_Tp1> other;
  type GC_ALCTR_PTRDIFF_T (line 362) | typedef GC_ALCTR_PTRDIFF_T difference_type;
  type GC_Tp (line 363) | typedef GC_Tp *pointer;
  type GC_Tp (line 364) | typedef const GC_Tp *const_pointer;
  type GC_Tp (line 365) | typedef GC_Tp &reference;
  type GC_Tp (line 366) | typedef const GC_Tp &const_reference;
  type GC_Tp (line 367) | typedef GC_Tp value_type;
  type traceable_allocator (line 370) | typedef traceable_allocator<GC_Tp1> other;
  function GC_CONSTEXPR (line 373) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 379) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 387) | GC_CONSTEXPR
  function GC_CONSTEXPR (line 393) | GC_CONSTEXPR ~traceable_allocator() GC_NOEXCEPT {}
  function GC_CONSTEXPR (line 395) | GC_CONSTEXPR pointer
  function GC_CONSTEXPR (line 401) | GC_CONSTEXPR const_pointer
  function GC_CONSTEXPR (line 418) | GC_CONSTEXPR void
  function GC_CONSTEXPR (line 430) | GC_CONSTEXPR void
  function GC_CONSTEXPR (line 436) | GC_CONSTEXPR void
  type GC_ALCTR_PTRDIFF_T (line 447) | typedef GC_ALCTR_PTRDIFF_T difference_type;
  type value_type (line 450) | typedef void value_type;
  type traceable_allocator (line 453) | typedef traceable_allocator<GC_Tp1> other;

FILE: thirdparty/libgc/include/gc/gc_backptr.h
  type GC_ref_kind (line 46) | typedef enum {

FILE: thirdparty/libgc/include/gc/gc_disclaim.h
  type GC_finalizer_closure (line 55) | struct GC_finalizer_closure {

FILE: thirdparty/libgc/include/gc/gc_mark.h
  type GC_ms_entry (line 39) | struct GC_ms_entry
  type GC_hblk_s (line 40) | struct GC_hblk_s
  type GC_ms_entry (line 42) | struct GC_ms_entry {
  type GC_hblk_s (line 45) | struct GC_hblk_s {
  type GC_ms_entry (line 78) | struct GC_ms_entry
  type GC_ms_entry (line 79) | struct GC_ms_entry
  type GC_ms_entry (line 80) | struct GC_ms_entry
  type GC_hblk_s (line 241) | struct GC_hblk_s
  type GC_hblk_s (line 254) | struct GC_hblk_s
  type GC_hblk_s (line 280) | struct GC_hblk_s
  type GC_ms_entry (line 506) | struct GC_ms_entry
  type GC_ms_entry (line 507) | struct GC_ms_entry
  type GC_ms_entry (line 508) | struct GC_ms_entry

FILE: thirdparty/libgc/include/gc/gc_typed.h
  type GC_word (line 54) | typedef GC_word *GC_bitmap;
  type GC_word (line 72) | typedef GC_word GC_descr;
  type GC_calloc_typed_descr_s (line 140) | struct GC_calloc_typed_descr_s
  type GC_calloc_typed_descr_s (line 144) | struct GC_calloc_typed_descr_s {
  type GC_calloc_typed_descr_s (line 163) | struct GC_calloc_typed_descr_s
  type GC_calloc_typed_descr_s (line 168) | struct GC_calloc_typed_descr_s

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/everest.h
  type mbedtls_everest_ecdh_side (line 34) | typedef enum
  type mbedtls_ecdh_context_everest (line 40) | typedef struct {

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt128.h
  type FStar_UInt128_uint128 (line 24) | typedef FStar_UInt128_uint128 FStar_UInt128_t;

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h
  type FStar_UInt8_byte (line 277) | typedef uint8_t FStar_UInt8_byte;

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlin/c_endianness.h
  function load16 (line 161) | inline static uint16_t load16(uint8_t *b) {
  function load32 (line 167) | inline static uint32_t load32(uint8_t *b) {
  function load64 (line 173) | inline static uint64_t load64(uint8_t *b) {
  function store16 (line 179) | inline static void store16(uint8_t *b, uint16_t i) {
  function store32 (line 183) | inline static void store32(uint8_t *b, uint32_t i) {
  function store64 (line 187) | inline static void store64(uint8_t *b, uint64_t i) {

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlin/internal/compat.h
  type FStar_Bytes_bytes (line 14) | typedef struct {
  type Prims_pos (line 19) | typedef int32_t Prims_pos, Prims_nat, Prims_nonzero, Prims_int,

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlin/internal/target.h
  function krml_time (line 52) | inline static int32_t krml_time() {

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/kremlin/internal/types.h
  type FStar_UInt64_t (line 15) | typedef uint64_t FStar_UInt64_t, FStar_UInt64_t_;
  type FStar_Int64_t (line 16) | typedef int64_t FStar_Int64_t, FStar_Int64_t_;
  type FStar_UInt32_t (line 17) | typedef uint32_t FStar_UInt32_t, FStar_UInt32_t_;
  type FStar_Int32_t (line 18) | typedef int32_t FStar_Int32_t, FStar_Int32_t_;
  type FStar_UInt16_t (line 19) | typedef uint16_t FStar_UInt16_t, FStar_UInt16_t_;
  type FStar_Int16_t (line 20) | typedef int16_t FStar_Int16_t, FStar_Int16_t_;
  type FStar_UInt8_t (line 21) | typedef uint8_t FStar_UInt8_t, FStar_UInt8_t_;
  type FStar_Int8_t (line 22) | typedef int8_t FStar_Int8_t, FStar_Int8_t_;
  type FStar_UInt63_t (line 26) | typedef uint64_t FStar_UInt63_t, FStar_UInt63_t_;
  type FStar_Int63_t (line 27) | typedef int64_t FStar_Int63_t, FStar_Int63_t_;
  type FStar_Float_float (line 29) | typedef double FStar_Float_float;
  type FStar_Char_char (line 30) | typedef uint32_t FStar_Char_char;
  type FILE (line 31) | typedef FILE *FStar_IO_fd_read, *FStar_IO_fd_write;
  type exit_code (line 37) | typedef int exit_code;
  type FILE (line 38) | typedef FILE *channel;
  type TestLib_cycles (line 40) | typedef unsigned long long TestLib_cycles;
  type FStar_Date_dateTime (line 42) | typedef uint64_t FStar_Date_dateTime, FStar_Date_timeSpan;
  type __m128i (line 49) | typedef __m128i FStar_UInt128_uint128;
  type FStar_UInt128_uint128 (line 51) | typedef unsigned __int128 FStar_UInt128_uint128;
  type FStar_UInt128_uint128 (line 53) | typedef struct FStar_UInt128_uint128_s {
  type FStar_UInt128_uint128 (line 59) | typedef FStar_UInt128_uint128 FStar_UInt128_t, FStar_UInt128_t_, uint128_t;

FILE: thirdparty/mbedtls/3rdparty/everest/include/everest/x25519.h
  type mbedtls_x25519_ecdh_side (line 35) | typedef enum
  type mbedtls_x25519_context (line 44) | typedef struct

FILE: thirdparty/mbedtls/3rdparty/everest/library/Hacl_Curve25519.c
  function Hacl_Bignum_Modulo_carry_top (line 31) | static void Hacl_Bignum_Modulo_carry_top(uint64_t *b)
  function Hacl_Bignum_Fproduct_copy_from_wide_ (line 41) | inline static void Hacl_Bignum_Fproduct_copy_from_wide_(uint64_t *output...
  function Hacl_Bignum_Fproduct_sum_scalar_multiplication_ (line 51) | inline static void
  function Hacl_Bignum_Fproduct_carry_wide_ (line 63) | inline static void Hacl_Bignum_Fproduct_carry_wide_(uint128_t *tmp)
  function Hacl_Bignum_Fmul_shift_reduce (line 78) | inline static void Hacl_Bignum_Fmul_shift_reduce(uint64_t *output)
  function Hacl_Bignum_Fmul_mul_shift_reduce_ (line 96) | static void
  function Hacl_Bignum_Fmul_fmul (line 115) | inline static void Hacl_Bignum_Fmul_fmul(uint64_t *output, uint64_t *inp...
  function Hacl_Bignum_Fsquare_fsquare__ (line 155) | inline static void Hacl_Bignum_Fsquare_fsquare__(uint128_t *tmp, uint64_...
  function Hacl_Bignum_Fsquare_fsquare_ (line 179) | inline static void Hacl_Bignum_Fsquare_fsquare_(uint128_t *tmp, uint64_t...
  function Hacl_Bignum_Fsquare_fsquare_times_ (line 206) | static void
  function Hacl_Bignum_Fsquare_fsquare_times (line 215) | inline static void
  function Hacl_Bignum_Fsquare_fsquare_times_inplace (line 231) | inline static void Hacl_Bignum_Fsquare_fsquare_times_inplace(uint64_t *o...
  function Hacl_Bignum_Crecip_crecip (line 245) | inline static void Hacl_Bignum_Crecip_crecip(uint64_t *out, uint64_t *z)
  function Hacl_Bignum_fsum (line 289) | inline static void Hacl_Bignum_fsum(uint64_t *a, uint64_t *b)
  function Hacl_Bignum_fdifference (line 300) | inline static void Hacl_Bignum_fdifference(uint64_t *a, uint64_t *b)
  function Hacl_Bignum_fscalar (line 330) | inline static void Hacl_Bignum_fscalar(uint64_t *output, uint64_t *b, ui...
  function Hacl_Bignum_fmul (line 365) | inline static void Hacl_Bignum_fmul(uint64_t *output, uint64_t *a, uint6...
  function Hacl_Bignum_crecip (line 370) | inline static void Hacl_Bignum_crecip(uint64_t *output, uint64_t *input)
  function Hacl_EC_Point_swap_conditional_step (line 375) | static void
  function Hacl_EC_Point_swap_conditional_ (line 388) | static void
  function Hacl_EC_Point_swap_conditional (line 400) | static void Hacl_EC_Point_swap_conditional(uint64_t *a, uint64_t *b, uin...
  function Hacl_EC_Point_copy (line 407) | static void Hacl_EC_Point_copy(uint64_t *output, uint64_t *input)
  function Hacl_EC_Format_fexpand (line 415) | static void Hacl_EC_Format_fexpand(uint64_t *output, uint8_t *input)
  function Hacl_EC_Format_fcontract_first_carry_pass (line 438) | static void Hacl_EC_Format_fcontract_first_carry_pass(uint64_t *input)
  function Hacl_EC_Format_fcontract_first_carry_full (line 460) | static void Hacl_EC_Format_fcontract_first_carry_full(uint64_t *input)
  function Hacl_EC_Format_fcontract_second_carry_pass (line 466) | static void Hacl_EC_Format_fcontract_second_carry_pass(uint64_t *input)
  function Hacl_EC_Format_fcontract_second_carry_full (line 488) | static void Hacl_EC_Format_fcontract_second_carry_full(uint64_t *input)
  function Hacl_EC_Format_fcontract_trim (line 504) | static void Hacl_EC_Format_fcontract_trim(uint64_t *input)
  function Hacl_EC_Format_fcontract_store (line 529) | static void Hacl_EC_Format_fcontract_store(uint8_t *output, uint64_t *in...
  function Hacl_EC_Format_fcontract (line 550) | static void Hacl_EC_Format_fcontract(uint8_t *output, uint64_t *input)
  function Hacl_EC_Format_scalar_of_point (line 558) | static void Hacl_EC_Format_scalar_of_point(uint8_t *scalar, uint64_t *po...
  function Hacl_EC_AddAndDouble_fmonty (line 570) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step (line 636) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step (line 654) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop (line 670) | static void
  function Hacl_EC_Ladder_BigLoop_cmult_big_loop (line 691) | static void
  function Hacl_EC_Ladder_cmult (line 711) | static void Hacl_EC_Ladder_cmult(uint64_t *result, uint8_t *n1, uint64_t...
  function Hacl_Curve25519_crypto_scalarmult (line 724) | void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secre...

FILE: thirdparty/mbedtls/3rdparty/everest/library/everest.c
  function mbedtls_everest_setup (line 35) | int mbedtls_everest_setup( mbedtls_ecdh_context_everest *ctx, int grp_id )
  function mbedtls_everest_free (line 43) | void mbedtls_everest_free( mbedtls_ecdh_context_everest *ctx )
  function mbedtls_everest_make_params (line 48) | int mbedtls_everest_make_params( mbedtls_ecdh_context_everest *ctx, size...
  function mbedtls_everest_read_params (line 57) | int mbedtls_everest_read_params( mbedtls_ecdh_context_everest *ctx,
  function mbedtls_everest_get_params (line 65) | int mbedtls_everest_get_params( mbedtls_ecdh_context_everest *ctx,
  function mbedtls_everest_make_public (line 76) | int mbedtls_everest_make_public( mbedtls_ecdh_context_everest *ctx, size...
  function mbedtls_everest_read_public (line 85) | int mbedtls_everest_read_public( mbedtls_ecdh_context_everest *ctx,
  function mbedtls_everest_calc_secret (line 92) | int mbedtls_everest_calc_secret( mbedtls_ecdh_context_everest *ctx, size...

FILE: thirdparty/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt128_extracted.c
  function FStar_UInt128___proj__Mkuint128__item__low (line 15) | uint64_t FStar_UInt128___proj__Mkuint128__item__low(FStar_UInt128_uint12...
  function FStar_UInt128___proj__Mkuint128__item__high (line 20) | uint64_t FStar_UInt128___proj__Mkuint128__item__high(FStar_UInt128_uint1...
  function FStar_UInt128_constant_time_carry (line 25) | static uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b)
  function FStar_UInt128_carry (line 30) | static uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b)
  function FStar_UInt128_uint128 (line 35) | FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_U...
  function FStar_UInt128_uint128 (line 42) | FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 50) | FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a, FSt...
  function FStar_UInt128_uint128 (line 57) | FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_U...
  function FStar_UInt128_uint128 (line 64) | FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 72) | static FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 80) | FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a, FSt...
  function FStar_UInt128_uint128 (line 85) | FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a, FSta...
  function FStar_UInt128_uint128 (line 91) | FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a, FSta...
  function FStar_UInt128_uint128 (line 97) | FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a, FStar...
  function FStar_UInt128_uint128 (line 103) | FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a)
  function FStar_UInt128_add_u64_shift_left (line 111) | static uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t l...
  function FStar_UInt128_add_u64_shift_left_respec (line 116) | static uint64_t FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uin...
  function FStar_UInt128_uint128 (line 121) | static FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 136) | static FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 143) | FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128 a, ...
  function FStar_UInt128_add_u64_shift_right (line 155) | static uint64_t FStar_UInt128_add_u64_shift_right(uint64_t hi, uint64_t ...
  function FStar_UInt128_add_u64_shift_right_respec (line 160) | static uint64_t FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, ui...
  function FStar_UInt128_uint128 (line 165) | static FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 180) | static FStar_UInt128_uint128
  function FStar_UInt128_uint128 (line 187) | FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128 a,...
  function FStar_UInt128_eq (line 199) | bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
  function FStar_UInt128_gt (line 204) | bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
  function FStar_UInt128_lt (line 209) | bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
  function FStar_UInt128_gte (line 214) | bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
  function FStar_UInt128_lte (line 219) | bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
  function FStar_UInt128_uint128 (line 224) | FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a, FSt...
  function FStar_UInt128_uint128 (line 239) | FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128 a, FS...
  function FStar_UInt128_uint128 (line 252) | FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a)
  function FStar_UInt128_uint128_to_uint64 (line 258) | uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a)
  function FStar_UInt128_u64_mod_32 (line 329) | static uint64_t FStar_UInt128_u64_mod_32(uint64_t a)
  function FStar_UInt128_u32_combine (line 336) | static uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo)
  function FStar_UInt128_uint128 (line 341) | FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y)
  type K___uint64_t_uint64_t_uint64_t_uint64_t (line 358) | typedef struct K___uint64_t_uint64_t_uint64_t_uint64_t_s
  function K___uint64_t_uint64_t_uint64_t_uint64_t (line 367) | static K___uint64_t_uint64_t_uint64_t_uint64_t
  function FStar_UInt128_u32_combine_ (line 384) | static uint64_t FStar_UInt128_u32_combine_(uint64_t hi, uint64_t lo)
  function FStar_UInt128_uint128 (line 389) | static FStar_UInt128_uint128 FStar_UInt128_mul_wide_impl(uint64_t x, uin...
  function FStar_UInt128_uint128 (line 409) | FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y)

FILE: thirdparty/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c
  function FStar_UInt64_eq_mask (line 13) | uint64_t FStar_UInt64_eq_mask(uint64_t a, uint64_t b)
  function FStar_UInt64_gte_mask (line 22) | uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b)
  function FStar_UInt32_eq_mask (line 35) | uint32_t FStar_UInt32_eq_mask(uint32_t a, uint32_t b)
  function FStar_UInt32_gte_mask (line 44) | uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b)
  function FStar_UInt16_eq_mask (line 57) | uint16_t FStar_UInt16_eq_mask(uint16_t a, uint16_t b)
  function FStar_UInt16_gte_mask (line 66) | uint16_t FStar_UInt16_gte_mask(uint16_t a, uint16_t b)
  function FStar_UInt8_eq_mask (line 79) | uint8_t FStar_UInt8_eq_mask(uint8_t a, uint8_t b)
  function FStar_UInt8_gte_mask (line 88) | uint8_t FStar_UInt8_gte_mask(uint8_t a, uint8_t b)

FILE: thirdparty/mbedtls/3rdparty/everest/library/legacy/Hacl_Curve25519.c
  function Hacl_Bignum_Modulo_carry_top (line 34) | static void Hacl_Bignum_Modulo_carry_top(uint64_t *b)
  function Hacl_Bignum_Fproduct_copy_from_wide_ (line 44) | inline static void
  function Hacl_Bignum_Fproduct_sum_scalar_multiplication_ (line 55) | inline static void
  function Hacl_Bignum_Fproduct_carry_wide_ (line 71) | inline static void Hacl_Bignum_Fproduct_carry_wide_(FStar_UInt128_uint12...
  function Hacl_Bignum_Fmul_shift_reduce (line 86) | inline static void Hacl_Bignum_Fmul_shift_reduce(uint64_t *output)
  function Hacl_Bignum_Fmul_mul_shift_reduce_ (line 104) | static void
  function Hacl_Bignum_Fmul_fmul (line 127) | inline static void Hacl_Bignum_Fmul_fmul(uint64_t *output, uint64_t *inp...
  function Hacl_Bignum_Fsquare_fsquare__ (line 170) | inline static void Hacl_Bignum_Fsquare_fsquare__(FStar_UInt128_uint128 *...
  function Hacl_Bignum_Fsquare_fsquare_ (line 214) | inline static void Hacl_Bignum_Fsquare_fsquare_(FStar_UInt128_uint128 *t...
  function Hacl_Bignum_Fsquare_fsquare_times_ (line 244) | static void
  function Hacl_Bignum_Fsquare_fsquare_times (line 257) | inline static void
  function Hacl_Bignum_Fsquare_fsquare_times_inplace (line 273) | inline static void Hacl_Bignum_Fsquare_fsquare_times_inplace(uint64_t *o...
  function Hacl_Bignum_Crecip_crecip (line 287) | inline static void Hacl_Bignum_Crecip_crecip(uint64_t *out, uint64_t *z)
  function Hacl_Bignum_fsum (line 331) | inline static void Hacl_Bignum_fsum(uint64_t *a, uint64_t *b)
  function Hacl_Bignum_fdifference (line 342) | inline static void Hacl_Bignum_fdifference(uint64_t *a, uint64_t *b)
  function Hacl_Bignum_fscalar (line 372) | inline static void Hacl_Bignum_fscalar(uint64_t *output, uint64_t *b, ui...
  function Hacl_Bignum_fmul (line 410) | inline static void Hacl_Bignum_fmul(uint64_t *output, uint64_t *a, uint6...
  function Hacl_Bignum_crecip (line 415) | inline static void Hacl_Bignum_crecip(uint64_t *output, uint64_t *input)
  function Hacl_EC_Point_swap_conditional_step (line 420) | static void
  function Hacl_EC_Point_swap_conditional_ (line 433) | static void
  function Hacl_EC_Point_swap_conditional (line 445) | static void Hacl_EC_Point_swap_conditional(uint64_t *a, uint64_t *b, uin...
  function Hacl_EC_Point_copy (line 452) | static void Hacl_EC_Point_copy(uint64_t *output, uint64_t *input)
  function Hacl_EC_Format_fexpand (line 460) | static void Hacl_EC_Format_fexpand(uint64_t *output, uint8_t *input)
  function Hacl_EC_Format_fcontract_first_carry_pass (line 483) | static void Hacl_EC_Format_fcontract_first_carry_pass(uint64_t *input)
  function Hacl_EC_Format_fcontract_first_carry_full (line 505) | static void Hacl_EC_Format_fcontract_first_carry_full(uint64_t *input)
  function Hacl_EC_Format_fcontract_second_carry_pass (line 511) | static void Hacl_EC_Format_fcontract_second_carry_pass(uint64_t *input)
  function Hacl_EC_Format_fcontract_second_carry_full (line 533) | static void Hacl_EC_Format_fcontract_second_carry_full(uint64_t *input)
  function Hacl_EC_Format_fcontract_trim (line 549) | static void Hacl_EC_Format_fcontract_trim(uint64_t *input)
  function Hacl_EC_Format_fcontract_store (line 574) | static void Hacl_EC_Format_fcontract_store(uint8_t *output, uint64_t *in...
  function Hacl_EC_Format_fcontract (line 595) | static void Hacl_EC_Format_fcontract(uint8_t *output, uint64_t *input)
  function Hacl_EC_Format_scalar_of_point (line 603) | static void Hacl_EC_Format_scalar_of_point(uint8_t *scalar, uint64_t *po...
  function Hacl_EC_AddAndDouble_fmonty (line 615) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step (line 681) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step (line 699) | static void
  function Hacl_EC_Ladder_SmallLoop_cmult_small_loop (line 715) | static void
  function Hacl_EC_Ladder_BigLoop_cmult_big_loop (line 736) | static void
  function Hacl_EC_Ladder_cmult (line 756) | static void Hacl_EC_Ladder_cmult(uint64_t *result, uint8_t *n1, uint64_t...
  function Hacl_Curve25519_crypto_scalarmult (line 769) | void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secre...

FILE: thirdparty/mbedtls/3rdparty/everest/library/x25519.c
  function mbedtls_x25519_init (line 42) | void mbedtls_x25519_init( mbedtls_x25519_context *ctx )
  function mbedtls_x25519_free (line 50) | void mbedtls_x25519_free( mbedtls_x25519_context *ctx )
  function mbedtls_x25519_make_params (line 59) | int mbedtls_x25519_make_params( mbedtls_x25519_context *ctx, size_t *olen,
  function mbedtls_x25519_read_params (line 90) | int mbedtls_x25519_read_params( mbedtls_x25519_context *ctx,
  function mbedtls_x25519_get_params (line 104) | int mbedtls_x25519_get_params( mbedtls_x25519_context *ctx, const mbedtl...
  function mbedtls_x25519_calc_secret (line 119) | int mbedtls_x25519_calc_secret( mbedtls_x25519_context *ctx, size_t *olen,
  function mbedtls_x25519_make_public (line 145) | int mbedtls_x25519_make_public( mbedtls_x25519_context *ctx, size_t *olen,
  function mbedtls_x25519_read_public (line 174) | int mbedtls_x25519_read_public( mbedtls_x25519_context *ctx,

FILE: thirdparty/mbedtls/3rdparty/p256-m/p256-m/p256-m.c
  function u256_set32 (line 69) | static void u256_set32(uint32_t z[8], uint32_t x)
  function u256_add (line 87) | static uint32_t u256_add(uint32_t z[8],
  function u256_sub (line 111) | static uint32_t u256_sub(uint32_t z[8],
  function u256_cmov (line 134) | static void u256_cmov(uint32_t z[8], const uint32_t x[8], uint32_t c)
  function u256_diff (line 149) | static uint32_t u256_diff(const uint32_t x[8], const uint32_t y[8])
  function u256_diff0 (line 164) | static uint32_t u256_diff0(const uint32_t x[8])
  function u32_muladd64 (line 217) | static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_...
  function u32_muladd64 (line 242) | static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_...
  function u32_muladd64 (line 304) | static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_...
  function u32_muladd64 (line 310) | static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_...
  function u288_muladd (line 350) | static uint32_t u288_muladd(uint32_t z[9], uint32_t x, const uint32_t y[8])
  function u288_rshift32 (line 393) | static void u288_rshift32(uint32_t z[9], uint32_t c)
  function u256_from_bytes (line 407) | static void u256_from_bytes(uint32_t z[8], const uint8_t p[32])
  function u256_to_bytes (line 425) | static void u256_to_bytes(uint8_t p[32], const uint32_t z[8])
  type m256_mod (line 465) | typedef struct {
  function m256_add (line 511) | static void m256_add(uint32_t z[8],
  function m256_add_p (line 533) | static void m256_add_p(uint32_t z[8],
  function m256_sub (line 548) | static void m256_sub(uint32_t z[8],
  function m256_sub_p (line 569) | static void m256_sub_p(uint32_t z[8],
  function m256_mul (line 584) | static void m256_mul(uint32_t z[8],
  function m256_mul_p (line 624) | static void m256_mul_p(uint32_t z[8],
  function m256_prep (line 637) | static void m256_prep(uint32_t z[8], const m256_mod *mod)
  function m256_done (line 650) | static void m256_done(uint32_t z[8], const m256_mod *mod)
  function m256_set32 (line 665) | static void m256_set32(uint32_t z[8], uint32_t x, const m256_mod *mod)
  function m256_inv (line 684) | static void m256_inv(uint32_t z[8], const uint32_t x[8],
  function m256_from_bytes (line 729) | static int m256_from_bytes(uint32_t z[8],
  function m256_to_bytes (line 751) | static void m256_to_bytes(uint8_t p[32],
  function point_check (line 823) | static uint32_t point_check(const uint32_t x[8], const uint32_t y[8])
  function point_to_affine (line 850) | static void point_to_affine(uint32_t x[8], uint32_t y[8], uint32_t z[8])
  function point_double (line 869) | static void point_double(uint32_t x[8], uint32_t y[8], uint32_t z[8])
  function point_add (line 917) | static void point_add(uint32_t x1[8], uint32_t y1[8], uint32_t z1[8],
  function point_add_or_double_leaky (line 976) | static void point_add_or_double_leaky(
  function point_from_bytes (line 1013) | static int point_from_bytes(uint32_t x[8], uint32_t y[8], const uint8_t ...
  function point_to_bytes (line 1035) | static void point_to_bytes(uint8_t p[64],
  function scalar_mult (line 1057) | static void scalar_mult(uint32_t rx[8], uint32_t ry[8],
  function scalar_from_bytes (line 1140) | static int scalar_from_bytes(uint32_t s[8], const uint8_t p[32])
  function p256_generate_random (line 1159) | int p256_generate_random(uint8_t *output, unsigned output_size)
  function scalar_gen_with_pub (line 1179) | static int scalar_gen_with_pub(uint8_t sbytes[32], uint32_t s[8],
  function p256_gen_keypair (line 1212) | int p256_gen_keypair(uint8_t priv[32], uint8_t pub[64])
  function p256_ecdh_shared_secret (line 1233) | int p256_ecdh_shared_secret(uint8_t secret[32],
  function ecdsa_m256_mod_n (line 1279) | static void ecdsa_m256_mod_n(uint32_t x[8])
  function ecdsa_m256_from_hash (line 1297) | static void ecdsa_m256_from_hash(uint32_t z[8],
  function p256_ecdsa_sign (line 1323) | int p256_ecdsa_sign(uint8_t sig[64], const uint8_t priv[32],
  function p256_ecdsa_verify (line 1397) | int p256_ecdsa_verify(const uint8_t sig[64], const uint8_t pub[64],
  function p256_validate_pubkey (line 1475) | int p256_validate_pubkey(const uint8_t pub[64])
  function p256_validate_privkey (line 1483) | int p256_validate_privkey(const uint8_t priv[32])
  function p256_public_from_private (line 1492) | int p256_public_from_private(uint8_t pub[64], const uint8_t priv[32])

FILE: thirdparty/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.c
  function psa_status_t (line 45) | static psa_status_t p256_to_psa_error(int ret)
  function psa_status_t (line 61) | psa_status_t p256_transparent_import_key(const psa_key_attributes_t *att...
  function psa_status_t (line 106) | psa_status_t p256_transparent_export_public_key(const psa_key_attributes...
  function psa_status_t (line 138) | psa_status_t p256_transparent_generate_key(
  function psa_status_t (line 168) | psa_status_t p256_transparent_key_agreement(
  function psa_status_t (line 203) | psa_status_t p256_transparent_sign_hash(
  function psa_status_t (line 238) | static psa_status_t p256_verify_hash_with_public_key(
  function psa_status_t (line 261) | psa_status_t p256_transparent_verify_hash(

FILE: thirdparty/mbedtls/include/mbedtls/aes.h
  type mbedtls_aes_context (line 63) | typedef struct mbedtls_aes_context {
  type mbedtls_aes_xts_context (line 87) | typedef struct mbedtls_aes_xts_context {

FILE: thirdparty/mbedtls/include/mbedtls/aria.h
  type mbedtls_aria_context (line 52) | typedef struct mbedtls_aria_context {

FILE: thirdparty/mbedtls/include/mbedtls/asn1.h
  type mbedtls_asn1_buf (line 141) | typedef struct mbedtls_asn1_buf {
  type mbedtls_asn1_bitstring (line 151) | typedef struct mbedtls_asn1_bitstring {
  type mbedtls_asn1_sequence (line 161) | typedef struct mbedtls_asn1_sequence {
  type mbedtls_asn1_named_data (line 178) | typedef struct mbedtls_asn1_named_data {

FILE: thirdparty/mbedtls/include/mbedtls/bignum.h
  type mbedtls_mpi_sint (line 119) | typedef  int64_t mbedtls_mpi_sint;
  type mbedtls_mpi_uint (line 120) | typedef uint64_t mbedtls_mpi_uint;
  type mbedtls_mpi_sint (line 132) | typedef  int64_t mbedtls_mpi_sint;
  type mbedtls_mpi_uint (line 133) | typedef uint64_t mbedtls_mpi_uint;
  type mbedtls_t_udbl (line 137) | typedef unsigned int mbedtls_t_udbl __attribute__((mode(TI)));
  type mbedtls_mpi_sint (line 148) | typedef  int64_t mbedtls_mpi_sint;
  type mbedtls_mpi_uint (line 149) | typedef uint64_t mbedtls_mpi_uint;
  type __uint128_t (line 153) | typedef __uint128_t mbedtls_t_udbl;
  type mbedtls_mpi_sint (line 158) | typedef  int64_t mbedtls_mpi_sint;
  type mbedtls_mpi_uint (line 159) | typedef uint64_t mbedtls_mpi_uint;
  type mbedtls_mpi_sint (line 169) | typedef  int32_t mbedtls_mpi_sint;
  type mbedtls_mpi_uint (line 170) | typedef uint32_t mbedtls_mpi_uint;
  type mbedtls_t_udbl (line 173) | typedef uint64_t mbedtls_t_udbl;
  type mbedtls_mpi (line 208) | typedef struct mbedtls_mpi {
  type mbedtls_mpi_gen_prime_flag_t (line 1045) | typedef enum {

FILE: thirdparty/mbedtls/include/mbedtls/block_cipher.h
  type mbedtls_block_cipher_id_t (line 35) | typedef enum {
  type mbedtls_block_cipher_engine_t (line 47) | typedef enum {
  type mbedtls_block_cipher_context_t (line 52) | typedef struct {

FILE: thirdparty/mbedtls/include/mbedtls/camellia.h
  type mbedtls_camellia_context (line 41) | typedef struct mbedtls_camellia_context {

FILE: thirdparty/mbedtls/include/mbedtls/ccm.h
  type mbedtls_ccm_context (line 69) | typedef struct mbedtls_ccm_context {

FILE: thirdparty/mbedtls/include/mbedtls/chacha20.h
  type mbedtls_chacha20_context (line 38) | typedef struct mbedtls_chacha20_context {

FILE: thirdparty/mbedtls/include/mbedtls/chachapoly.h
  type mbedtls_chachapoly_mode_t (line 38) | typedef enum {
  type mbedtls_chachapoly_context (line 48) | typedef struct mbedtls_chachapoly_context {

FILE: thirdparty/mbedtls/include/mbedtls/check_config.h
  type mbedtls_iso_c_forbids_empty_translation_units (line 1147) | typedef int mbedtls_iso_c_forbids_empty_translation_units;

FILE: thirdparty/mbedtls/include/mbedtls/cipher.h
  type mbedtls_cipher_id_t (line 66) | typedef enum {
  type mbedtls_cipher_type_t (line 84) | typedef enum {
  type mbedtls_cipher_mode_t (line 172) | typedef enum {
  type mbedtls_cipher_padding_t (line 190) | typedef enum {
  type mbedtls_operation_t (line 199) | typedef enum {
  type mbedtls_cipher_base_t (line 244) | typedef struct mbedtls_cipher_base_t mbedtls_cipher_base_t;
  type mbedtls_cmac_context_t (line 249) | typedef struct mbedtls_cmac_context_t mbedtls_cmac_context_t;
  type mbedtls_cipher_info_t (line 266) | typedef struct mbedtls_cipher_info_t {
  type mbedtls_cipher_context_t (line 316) | typedef struct mbedtls_cipher_context_t {
  function mbedtls_cipher_type_t (line 444) | static inline mbedtls_cipher_type_t mbedtls_cipher_info_get_type(
  function mbedtls_cipher_mode_t (line 463) | static inline mbedtls_cipher_mode_t mbedtls_cipher_info_get_mode(
  function mbedtls_cipher_info_get_key_bitlen (line 484) | static inline size_t mbedtls_cipher_info_get_key_bitlen(
  function mbedtls_cipher_info_get_iv_size (line 525) | static inline size_t mbedtls_cipher_info_get_iv_size(
  function mbedtls_cipher_info_get_block_size (line 545) | static inline size_t mbedtls_cipher_info_get_block_size(
  function mbedtls_cipher_info_has_variable_key_bitlen (line 564) | static inline int mbedtls_cipher_info_has_variable_key_bitlen(
  function mbedtls_cipher_info_has_variable_iv_size (line 583) | static inline int mbedtls_cipher_info_has_variable_iv_size(
  function mbedtls_cipher_get_block_size (line 685) | static inline unsigned int mbedtls_cipher_get_block_size(
  function mbedtls_cipher_mode_t (line 704) | static inline mbedtls_cipher_mode_t mbedtls_cipher_get_cipher_mode(
  function mbedtls_cipher_get_iv_size (line 724) | static inline int mbedtls_cipher_get_iv_size(
  function mbedtls_cipher_type_t (line 747) | static inline mbedtls_cipher_type_t mbedtls_cipher_get_type(
  function mbedtls_cipher_get_key_bitlen (line 785) | static inline int mbedtls_cipher_get_key_bitlen(
  function mbedtls_operation_t (line 804) | static inline mbedtls_operation_t mbedtls_cipher_get_operation(

FILE: thirdparty/mbedtls/include/mbedtls/cmac.h
  type mbedtls_cmac_context_t (line 59) | struct mbedtls_cmac_context_t {

FILE: thirdparty/mbedtls/include/mbedtls/ctr_drbg.h
  type mbedtls_ctr_drbg_psa_context (line 176) | typedef struct mbedtls_ctr_drbg_psa_context {
  type mbedtls_ctr_drbg_context (line 185) | typedef struct mbedtls_ctr_drbg_context {

FILE: thirdparty/mbedtls/include/mbedtls/des.h
  type mbedtls_des_context (line 48) | typedef struct mbedtls_des_context {
  type mbedtls_des3_context (line 60) | typedef struct mbedtls_des3_context {

FILE: thirdparty/mbedtls/include/mbedtls/dhm.h
  type mbedtls_dhm_parameter (line 83) | typedef enum {
  type mbedtls_dhm_context (line 101) | typedef struct mbedtls_dhm_context {

FILE: thirdparty/mbedtls/include/mbedtls/ecdh.h
  type mbedtls_ecdh_side (line 59) | typedef enum {
  type mbedtls_ecdh_variant (line 71) | typedef enum {
  type mbedtls_ecdh_context_mbed (line 86) | typedef struct mbedtls_ecdh_context_mbed {
  type mbedtls_ecdh_context (line 105) | typedef struct mbedtls_ecdh_context {

FILE: thirdparty/mbedtls/include/mbedtls/ecdsa.h
  type mbedtls_ecp_keypair (line 68) | typedef mbedtls_ecp_keypair mbedtls_ecdsa_context;
  type mbedtls_ecdsa_restart_ver_ctx (line 77) | typedef struct mbedtls_ecdsa_restart_ver mbedtls_ecdsa_restart_ver_ctx;
  type mbedtls_ecdsa_restart_sig_ctx (line 84) | typedef struct mbedtls_ecdsa_restart_sig mbedtls_ecdsa_restart_sig_ctx;
  type mbedtls_ecdsa_restart_det_ctx (line 92) | typedef struct mbedtls_ecdsa_restart_det mbedtls_ecdsa_restart_det_ctx;
  type mbedtls_ecdsa_restart_ctx (line 98) | typedef struct {
  type mbedtls_ecdsa_restart_ctx (line 111) | typedef void mbedtls_ecdsa_restart_ctx;

FILE: thirdparty/mbedtls/include/mbedtls/ecjpake.h
  type mbedtls_ecjpake_role (line 42) | typedef enum {
  type mbedtls_ecjpake_context (line 60) | typedef struct mbedtls_ecjpake_context {

FILE: thirdparty/mbedtls/include/mbedtls/ecp.h
  type mbedtls_ecp_group_id (line 102) | typedef enum {
  type mbedtls_ecp_curve_type (line 127) | typedef enum {
  type mbedtls_ecp_curve_info (line 140) | typedef struct mbedtls_ecp_curve_info {
  type mbedtls_ecp_point (line 158) | typedef struct mbedtls_ecp_point {
  type mbedtls_ecp_group (line 233) | typedef struct mbedtls_ecp_group {
  type mbedtls_ecp_restart_mul_ctx (line 364) | typedef struct mbedtls_ecp_restart_mul mbedtls_ecp_restart_mul_ctx;
  type mbedtls_ecp_restart_muladd_ctx (line 371) | typedef struct mbedtls_ecp_restart_muladd mbedtls_ecp_restart_muladd_ctx;
  type mbedtls_ecp_restart_ctx (line 376) | typedef struct {
  type mbedtls_ecp_restart_ctx (line 416) | typedef void mbedtls_ecp_restart_ctx;
  type mbedtls_ecp_keypair (line 428) | typedef struct mbedtls_ecp_keypair {
  function mbedtls_ecp_group_a_is_minus_3 (line 1022) | static inline int mbedtls_ecp_grou
Copy disabled (too large) Download .json
Condensed preview — 10542 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,617K chars).
[
  {
    "path": ".editorconfig",
    "chars": 673,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.{v,js,"
  },
  {
    "path": ".git/HEAD",
    "chars": 23,
    "preview": "ref: refs/heads/master\n"
  },
  {
    "path": ".git/config",
    "chars": 339,
    "preview": "[core]\n\trepositoryformatversion = 1\n\tfilemode = true\n\tbare = false\n\tlogallrefupdates = true\n[remote \"origin\"]\n\turl = htt"
  },
  {
    "path": ".git/description",
    "chars": 73,
    "preview": "Unnamed repository; edit this file 'description' to name the repository.\n"
  },
  {
    "path": ".git/hooks/applypatch-msg.sample",
    "chars": 478,
    "preview": "#!/bin/sh\n#\n# An example hook script to check the commit log message taken by\n# applypatch from an e-mail message.\n#\n# T"
  },
  {
    "path": ".git/hooks/commit-msg.sample",
    "chars": 896,
    "preview": "#!/bin/sh\n#\n# An example hook script to check the commit log message.\n# Called by \"git commit\" with one argument, the na"
  },
  {
    "path": ".git/hooks/fsmonitor-watchman.sample",
    "chars": 4726,
    "preview": "#!/usr/bin/perl\n\nuse strict;\nuse warnings;\nuse IPC::Open2;\n\n# An example hook script to integrate Watchman\n# (https://fa"
  },
  {
    "path": ".git/hooks/post-update.sample",
    "chars": 189,
    "preview": "#!/bin/sh\n#\n# An example hook script to prepare a packed repository for use over\n# dumb transports.\n#\n# To enable this h"
  },
  {
    "path": ".git/hooks/pre-applypatch.sample",
    "chars": 424,
    "preview": "#!/bin/sh\n#\n# An example hook script to verify what is about to be committed\n# by applypatch from an e-mail message.\n#\n#"
  },
  {
    "path": ".git/hooks/pre-commit.sample",
    "chars": 1649,
    "preview": "#!/bin/sh\n#\n# An example hook script to verify what is about to be committed.\n# Called by \"git commit\" with no arguments"
  },
  {
    "path": ".git/hooks/pre-merge-commit.sample",
    "chars": 416,
    "preview": "#!/bin/sh\n#\n# An example hook script to verify what is about to be committed.\n# Called by \"git merge\" with no arguments."
  },
  {
    "path": ".git/hooks/pre-push.sample",
    "chars": 1374,
    "preview": "#!/bin/sh\n\n# An example hook script to verify what is about to be pushed.  Called by \"git\n# push\" after it has checked t"
  },
  {
    "path": ".git/hooks/pre-rebase.sample",
    "chars": 4898,
    "preview": "#!/bin/sh\n#\n# Copyright (c) 2006, 2008 Junio C Hamano\n#\n# The \"pre-rebase\" hook is run just before \"git rebase\" starts d"
  },
  {
    "path": ".git/hooks/pre-receive.sample",
    "chars": 544,
    "preview": "#!/bin/sh\n#\n# An example hook script to make use of push options.\n# The example simply echoes all push options that star"
  },
  {
    "path": ".git/hooks/prepare-commit-msg.sample",
    "chars": 1492,
    "preview": "#!/bin/sh\n#\n# An example hook script to prepare the commit log message.\n# Called by \"git commit\" with the name of the fi"
  },
  {
    "path": ".git/hooks/push-to-checkout.sample",
    "chars": 2783,
    "preview": "#!/bin/sh\n\n# An example hook script to update a checked-out tree on a git push.\n#\n# This hook is invoked by git-receive-"
  },
  {
    "path": ".git/hooks/sendemail-validate.sample",
    "chars": 2308,
    "preview": "#!/bin/sh\n\n# An example hook script to validate a patch (and/or patch series) before\n# sending it via email.\n#\n# The hoo"
  },
  {
    "path": ".git/hooks/update.sample",
    "chars": 3650,
    "preview": "#!/bin/sh\n#\n# An example hook script to block unannotated tags from entering.\n# Called by \"git receive-pack\" with argume"
  },
  {
    "path": ".git/info/exclude",
    "chars": 240,
    "preview": "# git ls-files --others --exclude-from=.git/info/exclude\n# Lines that start with '#' are comments.\n# For a project mostl"
  },
  {
    "path": ".git/logs/HEAD",
    "chars": 176,
    "preview": "0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> "
  },
  {
    "path": ".git/logs/refs/heads/master",
    "chars": 176,
    "preview": "0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> "
  },
  {
    "path": ".git/logs/refs/remotes/origin/HEAD",
    "chars": 176,
    "preview": "0000000000000000000000000000000000000000 cdfc0bba9081099a0a6a62fcbbe7f364ba38231b appuser <appuser@3c7b4ea3b59f.(none)> "
  },
  {
    "path": ".git/objects/pack/pack-4c5eb4b01e8d20d1b77462674426e18b34b3eb8d.promisor",
    "chars": 59,
    "preview": "cdfc0bba9081099a0a6a62fcbbe7f364ba38231b refs/heads/master\n"
  },
  {
    "path": ".git/objects/pack/pack-a119d32135c98d4d3e4374ad1ecd525e9b537c4c.promisor",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".git/packed-refs",
    "chars": 114,
    "preview": "# pack-refs with: peeled fully-peeled sorted \ncdfc0bba9081099a0a6a62fcbbe7f364ba38231b refs/remotes/origin/master\n"
  },
  {
    "path": ".git/refs/heads/master",
    "chars": 41,
    "preview": "cdfc0bba9081099a0a6a62fcbbe7f364ba38231b\n"
  },
  {
    "path": ".git/refs/remotes/origin/HEAD",
    "chars": 32,
    "preview": "ref: refs/remotes/origin/master\n"
  },
  {
    "path": ".git/shallow",
    "chars": 41,
    "preview": "cdfc0bba9081099a0a6a62fcbbe7f364ba38231b\n"
  },
  {
    "path": ".gitattributes",
    "chars": 216,
    "preview": "* text=auto eol=lf\n*.bat eol=crlf\n\n*.v linguist-language=V\n*.vv linguist-language=V\n*.vsh linguist-language=V\nv.mod ling"
  },
  {
    "path": ".github/.prettierrc",
    "chars": 26,
    "preview": "{\n  \"singleQuote\": true\n}\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 107,
    "preview": "# These are supported funding model platforms\n\nopen_collective: vlang\npatreon: vlang\ngithub: [medvednikov]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 393,
    "preview": "blank_issues_enabled: true\ncontact_links:\n  - name: 💬 General Questions and Answers about V\n    url: https://github.com/"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/documentation.yml",
    "chars": 510,
    "preview": "name: 📕 Documentation Issue\ndescription: Report an issue in the Reference documentation or Developer Guide\nlabels: ['Uni"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.yml",
    "chars": 1762,
    "preview": "name: 🚀 Feature Request\ndescription: Suggest an idea for this project\nlabels: [Feature Request]\nbody:\n  - type: textarea"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE",
    "chars": 717,
    "preview": "\n<!--\n\nPlease title your PR as follows: `module: description` (e.g. `time: fix date format`).\nAlways start with the thin"
  },
  {
    "path": ".github/actions/cache-apt-packages-action/action.yml",
    "chars": 1328,
    "preview": "name: 'Cache Apt Packages'\ndescription: 'Cache all commonly used apt packages to speed up CI jobs'\n\n# imagemagick       "
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 117,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: 'github-actions'\n    directory: '/'\n    schedule:\n      interval: 'daily'\n"
  },
  {
    "path": ".github/problem-matchers/register_all.vsh",
    "chars": 647,
    "preview": "// The task of this program, is to register all available .json files\n// in this folder with Github Actions, so that it "
  },
  {
    "path": ".github/problem-matchers/v.json",
    "chars": 545,
    "preview": "{\n    \"__comment\": \"Based on https://github.com/python/cpython/blob/main/.github/problem-matchers/gcc.json\",\n    \"proble"
  },
  {
    "path": ".github/workflows/Dockerfile.ci_alpine_local",
    "chars": 2057,
    "preview": "#######################################################################################\n## The goal of this file, is to "
  },
  {
    "path": ".github/workflows/add-voting-info.yml",
    "chars": 727,
    "preview": "name: Add voting info to new issue\n\non:\n  issues:\n    types:\n      - opened\n\njobs:\n  add-voting-info:\n    runs-on: ubunt"
  },
  {
    "path": ".github/workflows/alpine.build.sh",
    "chars": 81,
    "preview": "#!/bin/sh -l\n\nset -e\n\npwd\n\nuname -a\n\nmake -j4\n\n./v version\n\ndu -s .\n\necho \"DONE\"\n"
  },
  {
    "path": ".github/workflows/alpine.test.sh",
    "chars": 296,
    "preview": "#!/bin/sh -l\n\nset -e\n\npwd\n\nuname -a\n\ndu -s .\n\nls -lat \n\n##./v -silent test-all\n\n## try running the known failing tests f"
  },
  {
    "path": ".github/workflows/android_cross_compile.vsh",
    "chars": 1946,
    "preview": "#!/usr/bin/env -S v\n\nmodule main\n\nimport os\nimport vab.vxt\nimport vab.android.ndk\n\nfn main() {\n\tassert ndk.found()\n\tasse"
  },
  {
    "path": ".github/workflows/benchmark_footprint_json_decode.yml",
    "chars": 671,
    "preview": "name: json decoder benchmark CI\n\non:\n  push:\n    paths:\n      - 'vlib/x/json2/**' # Trigger on changes in this folder\n\nj"
  },
  {
    "path": ".github/workflows/benchmark_footprint_json_encode.yml",
    "chars": 797,
    "preview": "name: json encoder benchmark CI\n\non:\n  push:\n    paths:\n      - 'vlib/x/json2/**' # Trigger on changes in this folder\n  "
  },
  {
    "path": ".github/workflows/bootstrapping_ci.yml",
    "chars": 3340,
    "preview": "name: Bootstrapping CI\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.yml'\n      - '**.md'\n      - '**."
  },
  {
    "path": ".github/workflows/build_on_ubuntu_25_ci.yml",
    "chars": 1450,
    "preview": "name: CI Ubuntu 25 GCC 14.2\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      -"
  },
  {
    "path": ".github/workflows/build_vinix_locally.sh",
    "chars": 1222,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nV=$PWD/v\n\nif [[ -x \"$V\" ]]\nthen\n\techo \"The v executable exists.\"\nelse\n\techo \"This script sh"
  },
  {
    "path": ".github/workflows/c2v_ci.yml",
    "chars": 5224,
    "preview": "name: C2V apps\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/c2v_ci.yml'\n      - 'doc/**'"
  },
  {
    "path": ".github/workflows/compare_pr_to_master.v",
    "chars": 6004,
    "preview": "import os\nimport time\n\nconst compare_prod = '-prod' in os.args\n\nconst cleanup_tmp = '-no-cleanup' !in os.args\n\nconst fet"
  },
  {
    "path": ".github/workflows/compile_discordv.sh",
    "chars": 398,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nfunction show() {\n\tprintf \"\\u001b[35m$1\\u001b[0m\\n\"\n}\n\nrm -rf discord/\n\nshow \"Clone https:/"
  },
  {
    "path": ".github/workflows/compile_herolib.sh",
    "chars": 1094,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nfunction show() {\n\tprintf \"\\u001b[35m$1\\u001b[0m\\n\"\n}\n\nrm -rf herolib/\n\nshow \"Clone https:/"
  },
  {
    "path": ".github/workflows/compile_shaders_in_examples.sh",
    "chars": 132,
    "preview": "#!/usr/bin/env bash\n\nfor f in examples/sokol/*/ ; do\n\techo \"compiling shaders for $f ...\";\n\ttime ./v shader $f;\n\techo \"d"
  },
  {
    "path": ".github/workflows/compile_v_with_vtcc.sh",
    "chars": 1010,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nfunction show() {\n\tprintf \"\\u001b[35m$1\\u001b[0m\\n\"\n}\n\nshow \"Prepare\"\nrm -rf vtcc/\n\nshow \""
  },
  {
    "path": ".github/workflows/compile_vlang_gui_examples.sh",
    "chars": 610,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nfunction show() {\n\tprintf \"\\u001b[35m$1\\u001b[0m\\n\"\n}\n\nrm -rf ~/.vmodules/gui/\n\nexport VJOB"
  },
  {
    "path": ".github/workflows/cross_ci.yml",
    "chars": 3472,
    "preview": "name: Cross CI\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/cross_ci.yml'\n      - 'cmd/t"
  },
  {
    "path": ".github/workflows/debug.yml",
    "chars": 1133,
    "preview": "name: Debug CI\n\non: [workflow_dispatch]\n\njobs:\n  debug-msvc:\n    runs-on: windows-2025\n    timeout-minutes: 121\n    env:"
  },
  {
    "path": ".github/workflows/disable_azure_mirror.sh",
    "chars": 721,
    "preview": "#!/bin/bash\necho \"APT MIRRORS BEFORE:\"; cat /etc/apt/apt-mirrors.txt\nsudo sed -i 's@http://azure.archive.ubuntu.com@http"
  },
  {
    "path": ".github/workflows/docker_ci.yml",
    "chars": 2783,
    "preview": "name: Docker CI\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/docker_ci.yml'\n      - 'cmd"
  },
  {
    "path": ".github/workflows/docs_ci.yml",
    "chars": 2579,
    "preview": "name: Docs CI\n\n### Run on *EVERY* .v or .md related commit.\n### The documentation *SHOULD* stay valid, and the developer"
  },
  {
    "path": ".github/workflows/download_full_toml_test_suites.sh",
    "chars": 1267,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nrm -rf vlib/toml/tests/testdata/iarna vlib/toml/tests/testdata/toml_rs vlib/toml/tests/tes"
  },
  {
    "path": ".github/workflows/find_openssl.bat",
    "chars": 286,
    "preview": "@echo off\r\nsetlocal EnableDelayedExpansion\r\nREM Find every openssl.exe reachable through PATH:\r\nfor /f \"delims=\" %%F in "
  },
  {
    "path": ".github/workflows/freebsd_ci.yml",
    "chars": 4349,
    "preview": "name: CI FreeBSD\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - 'cmd/tools"
  },
  {
    "path": ".github/workflows/gen_vc_ci.yml",
    "chars": 2433,
    "preview": "name: VC gen\n\non:\n  workflow_dispatch:\n  pull_request:\n    paths-ignore:\n      - '**.vv'\n      - '**.out'\n      - '**.md"
  },
  {
    "path": ".github/workflows/gg_regressions_ci.yml",
    "chars": 2501,
    "preview": "name: Graphics CI\n\non:\n  push:\n    paths:\n      - 'vlib/**'\n      - 'thirdparty/**'\n      - 'cmd/tools/builders/**.v'\n  "
  },
  {
    "path": ".github/workflows/gh_restart_failed.v",
    "chars": 4783,
    "preview": "import os\nimport json\nimport term\nimport time\n\nconst c = term.colorize\nconst tg = term.green\nconst tm = term.magenta\ncon"
  },
  {
    "path": ".github/workflows/hub_docker_ci.yml",
    "chars": 2660,
    "preview": "name: hub_docker_ci\n\n### NB: avoid caching things here, since the action is rare (once per week),\n### and the potential "
  },
  {
    "path": ".github/workflows/linux_ci.yml",
    "chars": 7655,
    "preview": "name: CI Linux\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/linux_c"
  },
  {
    "path": ".github/workflows/macos_ci.yml",
    "chars": 2916,
    "preview": "name: CI macOS\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/macos_ci.yml'\n      - 'cmd/t"
  },
  {
    "path": ".github/workflows/make_sure_ci_run_with_32bit_compiler_test.v",
    "chars": 190,
    "preview": "fn test_ci_run_with_32bit_compiler() {\n\t$if x64 && tinyc {\n\t\t// TODO: uncomment that next assert when tcc32 vs tcc64 det"
  },
  {
    "path": ".github/workflows/make_sure_ci_run_with_64bit_compiler_test.v",
    "chars": 83,
    "preview": "fn test_ci_run_with_64bit_compiler() {\n    $if x32 {\n        assert false\n    }\t\n}\n"
  },
  {
    "path": ".github/workflows/module_docs_ci.yml",
    "chars": 2181,
    "preview": "name: vlib modules CI\n\non:\n  pull_request:\n    paths:\n      - 'vlib/**.v'\n      - 'vlib/**.md'\n      - 'cmd/tools/vdoc/*"
  },
  {
    "path": ".github/workflows/module_docs_lint.yml",
    "chars": 394,
    "preview": "name: Code CI vlib modules\n\non:\n  push:\n    paths:\n      - '**/cmd/tools/vdoc/theme/**'\n  pull_request:\n    paths:\n     "
  },
  {
    "path": ".github/workflows/more_extensive_but_slower_tests_ci.yml",
    "chars": 1091,
    "preview": "name: More extensive but slower tests\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/more_"
  },
  {
    "path": ".github/workflows/native_backend_ci.yml",
    "chars": 2226,
    "preview": "name: native backend CI\n\non:\n  push:\n    paths:\n      - '!**'\n      - '!**.md'\n      - 'vlib/v/gen/native/'\n      - 'cmd"
  },
  {
    "path": ".github/workflows/openbsd_ci.yml",
    "chars": 2749,
    "preview": "name: CI OpenBSD\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - 'cmd/tools"
  },
  {
    "path": ".github/workflows/other_ci.yml",
    "chars": 7382,
    "preview": "name: Other CI\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/other_c"
  },
  {
    "path": ".github/workflows/paths_ci.yml",
    "chars": 3444,
    "preview": "name: Path Testing CI\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/"
  },
  {
    "path": ".github/workflows/periodic_ci.yml",
    "chars": 1048,
    "preview": "name: Periodic CI\n\non:\n  schedule:\n    - cron: '0 */6 * * *'\n  push:\n    paths:\n      - '**/periodic_ci.yml'\n  pull_requ"
  },
  {
    "path": ".github/workflows/prebuilt.yml",
    "chars": 1984,
    "preview": "name: Test prebuilt binaries\n\non:\n  workflow_dispatch:\n  release:\n    types: [edited, published]\n\njobs:\n  prebuilt-linux"
  },
  {
    "path": ".github/workflows/puzzle_vibes_ci.yml",
    "chars": 1591,
    "preview": "name: Shy and PV CI\n\non:\n  workflow_dispatch:\n  push:\n    paths:\n      - 'vlib/v/checker/**.v'\n      - 'vlib/v/gen/c/**."
  },
  {
    "path": ".github/workflows/release_ci.yml",
    "chars": 3798,
    "preview": "name: Release CI\n\non:\n  workflow_dispatch:\n  pull_request:\n    paths:\n      - '.github/workflows/release_ci.yml'\n  push:"
  },
  {
    "path": ".github/workflows/retry.sh",
    "chars": 433,
    "preview": "#!/usr/bin/env bash\n\ncmd=$@\n\nfunction elog() {\n\tmessage=$1\n\tprintf \"%(%Y/%m/%d %H:%M:%S)T | retry.sh $1\\n\"\n}\n\ndeclare -i"
  },
  {
    "path": ".github/workflows/riscv64_linux_ci.yml",
    "chars": 1562,
    "preview": "name: riscv64 CI\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/riscv"
  },
  {
    "path": ".github/workflows/run_sanitizers.sh",
    "chars": 1136,
    "preview": "#!/usr/bin/env bash\n\nexport PS4='\\033[0;33m+ >>>>> (${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }\\033[0m"
  },
  {
    "path": ".github/workflows/run_sanitizers_leak.suppressions",
    "chars": 181,
    "preview": "# websocket tests\nleak:mbedtls_ssl_setup\n\n# sqlite tests\nleak:*sqlite*\n\n# v\nleak:v__*\nleak:os__*\nleak:string__plus\nleak:"
  },
  {
    "path": ".github/workflows/run_sanitizers_thread.suppressions",
    "chars": 341,
    "preview": "## See https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions\n## and https://clang.llvm.org/docs/ThreadSa"
  },
  {
    "path": ".github/workflows/run_sanitizers_undefined.suppressions",
    "chars": 7271,
    "preview": "## See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\n## Most of the supressed functions here use asserts, "
  },
  {
    "path": ".github/workflows/s390x_linux_ci.yml",
    "chars": 1393,
    "preview": "name: s390 CI\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/s390x_li"
  },
  {
    "path": ".github/workflows/sanitized_ci.yml",
    "chars": 12367,
    "preview": "name: Sanitized CI\n\n## Running these jobs is slow (over ~1 hour, sometimes even 2)\n## so we run them only when there is "
  },
  {
    "path": ".github/workflows/sdl_ci.yml",
    "chars": 1929,
    "preview": "name: sdl CI\n\non:\n  workflow_dispatch:\n  push:\n    paths:\n      - 'vlib/**'\n      - 'thirdparty/**'\n      - 'cmd/tools/b"
  },
  {
    "path": ".github/workflows/show_manual_release_cmd.vsh",
    "chars": 705,
    "preview": "import os\nimport time\nimport term\n\nnow := time.now()\nyear := now.year\nweek := now.strftime('%V')\n\nmut remote_name := 'or"
  },
  {
    "path": ".github/workflows/ssa_backends_ci.yml.disabled",
    "chars": 1288,
    "preview": "name: SSA backends CI\n\non:\n  push:\n    paths:\n      - 'vlib/v2/**'\n      - 'cmd/tinyv/**'\n      - '.github/workflows/ssa"
  },
  {
    "path": ".github/workflows/symlink_ci.yml",
    "chars": 1951,
    "preview": "name: Symlink CI\n\non:\n  workflow_dispatch:\n  push:\n    paths:\n      - 'cmd/tools/vsymlink/**.v'\n      - '.github/workflo"
  },
  {
    "path": ".github/workflows/termux_ci.yml",
    "chars": 1531,
    "preview": "name: CI Termux\n\non:\n  workflow_dispatch:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/termux"
  },
  {
    "path": ".github/workflows/time_ci.yml",
    "chars": 2482,
    "preview": "name: Time CI\n\non:\n  push:\n    paths:\n      - 'vlib/**'\n      - 'cmd/tools/builders/**.v'\n      - '**/time_ci.yml'\n     "
  },
  {
    "path": ".github/workflows/toml_ci.yml",
    "chars": 1047,
    "preview": "name: toml CI\n\non:\n  push:\n    paths:\n      - 'vlib/**'\n      - '**/toml_ci.yml'\n      - '!**.md'\n  pull_request:\n    pa"
  },
  {
    "path": ".github/workflows/tools_ci.yml",
    "chars": 7651,
    "preview": "name: Tools CI\n\non:\n  push:\n    paths:\n      - 'cmd/**'\n      - '!cmd/tools/vpm/**'\n      - 'vlib/**'\n      - 'thirdpart"
  },
  {
    "path": ".github/workflows/v_apps_and_modules_compile_ci.yml",
    "chars": 8754,
    "preview": "name: V Apps and Modules\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/v_apps_and_modules"
  },
  {
    "path": ".github/workflows/vab_ci.yml",
    "chars": 2316,
    "preview": "name: vab CI\n\non:\n  workflow_call:\n  push:\n    paths:\n      - 'vlib/**'\n      - 'thirdparty/**'\n      - 'cmd/tools/build"
  },
  {
    "path": ".github/workflows/vinix_ci.yml",
    "chars": 2304,
    "preview": "name: Build Vinix\n\non:\n  workflow_call:\n  pull_request:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/"
  },
  {
    "path": ".github/workflows/vpm_ci.yml",
    "chars": 1857,
    "preview": "name: VPM CI\n\non:\n  push:\n    paths:\n      - '**/vpm_ci.yml'\n      - '**/cmd/tools/vpm/**'\n  pull_request:\n    paths:\n  "
  },
  {
    "path": ".github/workflows/vsl_and_vtl_compile_ci.yml",
    "chars": 2835,
    "preview": "name: VSL and VTL\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/vsl_and_vtl_compile_ci.ym"
  },
  {
    "path": ".github/workflows/vup_works.yml",
    "chars": 2932,
    "preview": "name: Upgrading from a previous release with v up works\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n"
  },
  {
    "path": ".github/workflows/wasm_backend_ci.yml",
    "chars": 2295,
    "preview": "name: wasm backend CI\n\non:\n  push:\n    paths:\n      - 'cmd/tools/builders/**.v'\n      - 'vlib/builtin/**.v'\n      - 'vli"
  },
  {
    "path": ".github/workflows/websockets_ci.yml",
    "chars": 3357,
    "preview": "name: Websockets CI\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**/websockets_ci.yml'\n    "
  },
  {
    "path": ".github/workflows/windows-install-sdl.bat",
    "chars": 772,
    "preview": "@echo off\r\n\r\ncurl -L https://www.libsdl.org/release/SDL2-devel-2.0.10-VC.zip -o SDL2.zip\r\ncurl -L https://www.libsdl.org"
  },
  {
    "path": ".github/workflows/windows-install-sqlite.bat",
    "chars": 125,
    "preview": "REM This file should be run from the top folder of the V compiler itself.\r\n\r\nv vlib/db/sqlite/install_thirdparty_sqlite."
  },
  {
    "path": ".github/workflows/windows_ci_gcc.yml",
    "chars": 2911,
    "preview": "name: CI Windows GCC\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**.bat'\n      - '!**/wind"
  },
  {
    "path": ".github/workflows/windows_ci_msvc.yml",
    "chars": 2049,
    "preview": "name: CI Windows MSVC\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**.bat'\n      - '!**/win"
  },
  {
    "path": ".github/workflows/windows_ci_tcc.yml",
    "chars": 2482,
    "preview": "name: CI Windows TCC\n\non:\n  push:\n    paths-ignore:\n      - '**.md'\n      - '**.yml'\n      - '!**.bat'\n      - '!**/wind"
  },
  {
    "path": ".github/workflows/workflow_lint.yml",
    "chars": 587,
    "preview": "name: Workflow Lint\n\n## Note: to install `prettier` locally, see https://prettier.io/docs/en/install,\n## or just: `npm i"
  },
  {
    "path": ".gitignore",
    "chars": 2125,
    "preview": "# ignore sub-level build binaries and v binary\n*/**/*\nv\nv.exe\nv2\nv2.exe\nvdbg\nvdbg.exe\n!*/\n!*.*\n*.exe\n*.o\n*.so\n.*.c\n*.tmp"
  },
  {
    "path": "AGENTS.md",
    "chars": 31725,
    "preview": "<!-- V_AGENTS.md  v1.1  2026-02-04 -->\n\n# V Repo Guide\n\nPractical quick reference for the V compiler, standard library, "
  },
  {
    "path": "CHANGELOG.md",
    "chars": 333932,
    "preview": "## V 0.5.1\n\n*9 Mar 2026*\n\n#### Improvements in the language\n\n- New clean and fast v2 backends: cleanc (similar to the ol"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 44,
    "preview": "# Code of Conduct\n\nBe nice and respectful.\n\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 17915,
    "preview": "## How to help and contribute to the V project\n\nThe tasks in the lists below are ordered in terms of easiness/time/nerve"
  },
  {
    "path": "Dockerfile",
    "chars": 674,
    "preview": "#same container that golang use\nFROM buildpack-deps:buster-curl\n\nLABEL maintainer=\"ANAGO Ronnel <anagoandy@gmail.com>\"\nW"
  },
  {
    "path": "Dockerfile.alpine",
    "chars": 1777,
    "preview": "## Usage:\n##   1) docker build -t vlang_alpine - < Dockerfile.alpine\n##   2) alias with_alpine='docker run -u 1000:1000 "
  },
  {
    "path": "Dockerfile.cross",
    "chars": 234,
    "preview": "FROM mstorsjo/llvm-mingw\n\nLABEL maintainer=\"Delyan Angelov <delian66@gmail.com>\"\nCOPY . .\nRUN make\nRUN ./v -os windows -"
  },
  {
    "path": "GNUmakefile",
    "chars": 7067,
    "preview": "CC ?= cc\nCFLAGS ?=\nLDFLAGS ?=\nTMPDIR ?= /tmp\nVROOT  ?= .\nVC     ?= ./vc\nVEXE   ?= ./v\nVCREPO ?= https://github.com/vlang"
  },
  {
    "path": "LICENSE",
    "chars": 1083,
    "preview": "MIT License\n\nCopyright (c) 2019-2024 Alexander Medvednikov\n\nPermission is hereby granted, free of charge, to any person "
  },
  {
    "path": "Makefile",
    "chars": 1144,
    "preview": "CC ?= cc\nVFLAGS ?=\nCFLAGS ?=\nLDFLAGS ?=\nBOOTSTRAP_VFLAGS := $(if $(strip $(CFLAGS)),-cflags \"$(CFLAGS)\") $(if $(strip $("
  },
  {
    "path": "README.md",
    "chars": 16667,
    "preview": "<div align=\"center\" style=\"display:grid;place-items:center;\">\n<p>\n    <a href=\"https://vlang.io/\" target=\"_blank\"><img w"
  },
  {
    "path": "ROADMAP.md",
    "chars": 3035,
    "preview": "Roadmap with big features.\nFor a list of all features and fixes, check out the changelog.\n\n## [Version 0.3]\n\n- [x] gc op"
  },
  {
    "path": "TESTS.md",
    "chars": 8127,
    "preview": "# Automated tests\n\nTLDR: do run `v test-all` locally, after making your changes,\nand before submitting PRs.\n\nTip: use `v"
  },
  {
    "path": "bench/README.md",
    "chars": 538,
    "preview": "### Vectors\n\n```bash\nBenchmark 1: ./boids_test/bin/Release/net7.0/linux-x64/publish/boids_test\nTime (mean ± σ):     262."
  },
  {
    "path": "bench/bench_closure.v",
    "chars": 7906,
    "preview": "module main\n\nimport time\nimport sync\nimport os\nimport runtime\nimport v.util.version\n\n// Define closure type alias\ntype C"
  },
  {
    "path": "bench/bench_gc.v",
    "chars": 2102,
    "preview": "// bench_gc.v - Benchmark comparing VGC vs Boehm GC\n// Run with: v -gc boehm -o bench_boehm bench/bench_gc.v && ./bench_"
  },
  {
    "path": "bench/bench_string_dedup.v",
    "chars": 3429,
    "preview": "// Benchmark comparison of four string deduplication methods in V: basic array, pre-allocated array, map, and set\nmodule"
  },
  {
    "path": "bench/crypto/ecdsa/ecdsa.c",
    "chars": 4021,
    "preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n#include <openssl/ec.h>\n#include <openssl/e"
  },
  {
    "path": "bench/crypto/ecdsa/ecdsa.go",
    "chars": 1697,
    "preview": "package main\n\nimport (\n    \"crypto/ecdsa\"\n    \"crypto/elliptic\"\n    \"crypto/rand\"\n    \"fmt\"\n    \"time\"\n)\n\nfunc main() {\n"
  },
  {
    "path": "bench/crypto/ecdsa/ecdsa.v",
    "chars": 1287,
    "preview": "import time\nimport crypto.ecdsa\n\nfn main() {\n\titerations := 1000\n\n\tprintln('Benchmarking key generation...')\n\tmut total_"
  },
  {
    "path": "bench/vectors/README.md",
    "chars": 4812,
    "preview": "# Comparing C# and V Boids Algorithm Implementations\n\n## Running the C# program:\n\n```\ndotnet run\n```\n\nCreating a release"
  },
  {
    "path": "bench/vectors/vectors.cs",
    "chars": 6132,
    "preview": "using System;\n\ninternal readonly struct Vector\n{\n    public readonly double X;\n    public readonly double Y;\n    public "
  },
  {
    "path": "bench/vectors/vectors.csproj",
    "chars": 353,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n\t<PublishSingleFile>true</PublishS"
  },
  {
    "path": "bench/vectors/vectors.runtimeconfig.json",
    "chars": 85,
    "preview": "{\"runtimeOptions\":{\"framework\":{\"name\":\"Microsoft.NETCore.App\",\"version\":\"7.0.10\"}}}\n"
  },
  {
    "path": "bench/vectors/vectors.v",
    "chars": 4094,
    "preview": "module main\n\nimport rand\nimport math\n\nstruct Vector {\n\tx f64\n\ty f64\n\tz f64\n}\n\nconst boids_count = 10000\nconst max_coordi"
  },
  {
    "path": "changelogs0.x/0.4.md",
    "chars": 21906,
    "preview": "## V 0.4\n*1 July 2023*\n\n#### Improvements in the language\n- **Coroutines with a scheduler**. Only Linux/macOS for now, r"
  },
  {
    "path": "changelogs0.x/0.5.md",
    "chars": 261609,
    "preview": "## V 0.5\n\n*3 Sep 2023 - 31 Dec 2025*\n\n#### Improvements in the language\n\n- Add comptime `if is shared` support (fix #256"
  },
  {
    "path": "ci/common/runner.v",
    "chars": 2658,
    "preview": "module common\n\nimport os\nimport log\nimport term\nimport time\n\n// exec is a helper function, to execute commands and exit "
  },
  {
    "path": "ci/freebsd_ci.vsh",
    "chars": 2597,
    "preview": "import os\nimport common { Task, exec }\n\nfn v_doctor() {\n\tprintln('### vdoctor')\n\tdump(os.getenv('PATH'))\n\texec('v doctor"
  },
  {
    "path": "ci/linux_ci.vsh",
    "chars": 18220,
    "preview": "import common { Task, exec }\n\n// Shared tasks/helpers\nfn all_code_is_formatted() {\n\tif common.is_github_job {\n\t\texec('v "
  },
  {
    "path": "ci/macos_ci.vsh",
    "chars": 5138,
    "preview": "import common { Task, exec }\n\nfn test_symlink() {\n\texec('v symlink')\n}\n\nfn test_cross_compilation() {\n\texec('v -o hw -os"
  },
  {
    "path": "ci/openbsd_ci.vsh",
    "chars": 2592,
    "preview": "import os\nimport common { Task, exec }\n\nfn v_doctor() {\n\tprintln('### vdoctor')\n\tdump(os.getenv('PATH'))\n\texec('v doctor"
  },
  {
    "path": "cmd/tools/amalgamate.v",
    "chars": 5943,
    "preview": "// amalgamate multiple C source files into a single\n// C source file.  See https://sqlite.org/amalgamation.html\n// for a"
  },
  {
    "path": "cmd/tools/bench/map_clear.v",
    "chars": 380,
    "preview": "import benchmark\n\nfn main() {\n\tmax_iterations := arguments()[1] or { '1_000_000' }.int()\n\tassert max_iterations > 0\n\tmut"
  },
  {
    "path": "cmd/tools/bench/map_clear_runner.vsh",
    "chars": 680,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\nimport os\n\nconst time_fmt = '\"CPU: %Us\\tReal: %es\\tElapsed: %E\\tRAM: %MKB\\t"
  },
  {
    "path": "cmd/tools/bench/wyhash.v",
    "chars": 1558,
    "preview": "module main\n\nimport hash.fnv1a\nimport hash as wyhash\nimport rand\nimport benchmark\n\nfn main() {\n\trand.seed([u32(42), 0])\n"
  },
  {
    "path": "cmd/tools/builders/c_builder.v",
    "chars": 249,
    "preview": "module main\n\nimport v.builder.cbuilder\n\n// TODO: change bootstrapping to use the C code generated from\n// `VEXE=v cmd/to"
  },
  {
    "path": "cmd/tools/builders/golang_builder.v",
    "chars": 82,
    "preview": "module main\n\nimport v.builder.golangbuilder\n\nfn main() {\n\tgolangbuilder.start()\n}\n"
  },
  {
    "path": "cmd/tools/builders/interpret_builder.v",
    "chars": 92,
    "preview": "module main\n\nimport v.builder.interpreterbuilder\n\nfn main() {\n\tinterpreterbuilder.start()\n}\n"
  },
  {
    "path": "cmd/tools/builders/js_builder.v",
    "chars": 74,
    "preview": "module main\n\nimport v.builder.jsbuilder\n\nfn main() {\n\tjsbuilder.start()\n}\n"
  },
  {
    "path": "cmd/tools/builders/native_builder.v",
    "chars": 82,
    "preview": "module main\n\nimport v.builder.nativebuilder\n\nfn main() {\n\tnativebuilder.start()\n}\n"
  },
  {
    "path": "cmd/tools/builders/wasm_builder.v",
    "chars": 78,
    "preview": "module main\n\nimport v.builder.wasmbuilder\n\nfn main() {\n\twasmbuilder.start()\n}\n"
  },
  {
    "path": "cmd/tools/cc_compilation_failed_non_windows.sh",
    "chars": 212,
    "preview": "#!/bin/sh\n## this script is used by the makefiles in the top level folder\necho\necho 'Compilation of v.c failed.'\necho 'S"
  },
  {
    "path": "cmd/tools/cc_compilation_failed_windows.sh",
    "chars": 204,
    "preview": "#!/bin/sh\n## this script is used by the makefiles in the top level folder\necho\necho 'Compilation of v.c failed.'\necho 'S"
  },
  {
    "path": "cmd/tools/changelog_helper.v",
    "chars": 11986,
    "preview": "module main\n\nimport os\n\nconst delete_skipped = true\n\nconst git_log_cmd = 'git log -n 500 --pretty=format:\"%s\" --simplify"
  },
  {
    "path": "cmd/tools/check_os_api_parity.v",
    "chars": 2853,
    "preview": "module main\n\nimport os\nimport v.util\nimport v.util.diff\nimport v.pref\nimport v.builder\nimport v.builder.cbuilder\nimport "
  },
  {
    "path": "cmd/tools/check_retry.vsh",
    "chars": 377,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\n// This script is used by cmd/tools/vretry_test.v, to check that the `v ret"
  },
  {
    "path": "cmd/tools/detect_tcc.v",
    "chars": 498,
    "preview": "fn main() {\n\t$if tinyc {\n\t\tprintln('Your `tcc` is working. Good - it is much faster at compiling C source code.')\n\t\texit"
  },
  {
    "path": "cmd/tools/find_doc_comments_with_no_dots.v",
    "chars": 1722,
    "preview": "import os\n\nfn main() {\n\targs := arguments()\n\tif args.len < 2 {\n\t\tprintln('Usage: v run doc_comment_checker.v <file1.v> <"
  },
  {
    "path": "cmd/tools/fuzz/fuzz.sh",
    "chars": 309,
    "preview": "#!/bin/sh\n\ncores=$(nproc --all)\n\necho Number of cores: $cores\necho Compiling...\n./v -cc clang -o cmd/tools/fuzz/map_fuzz"
  },
  {
    "path": "cmd/tools/fuzz/fuzz_v_parser_with_radamsa.sh",
    "chars": 612,
    "preview": "#!/usr/bin/env bash\n\n## Note: radamsa is a fuzzer, available from https://gitlab.com/akihe/radamsa\n\nexport VFUZZER=true\n"
  },
  {
    "path": "cmd/tools/fuzz/map_fuzz.v",
    "chars": 2494,
    "preview": "import rand\nimport time\n\nfn generate_strings(str_len int, arr_len int) []string {\n\tmut arr := []string{len: arr_len}\n\tfo"
  },
  {
    "path": "cmd/tools/gen1m.v",
    "chars": 213,
    "preview": "fn main() {\n\tfor i in 0 .. 100000 {\n\t\tprintln('\nfn foo${i}() {\n\tx := ${i}\n\tmut a := 1 + x\n\ta += 2\n\tprint(a)\n\ta = 0\n\ta = "
  },
  {
    "path": "cmd/tools/gen_vc.v",
    "chars": 11938,
    "preview": "module main\n\nimport os\nimport log\nimport flag\nimport time\nimport veb\nimport net.urllib\n\n// This tool regenerates V's boo"
  },
  {
    "path": "cmd/tools/gg_split_memdump_to_frames.vsh",
    "chars": 1388,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\nmodule main\n\nimport os\nimport log\n\nfn write_chunk(n int, min_size int, orig"
  },
  {
    "path": "cmd/tools/git_pre_commit_hook.vsh",
    "chars": 2847,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\nimport os\nimport term\n\n// This script can be used to ensure that all commit"
  },
  {
    "path": "cmd/tools/install_binaryen.vsh",
    "chars": 1934,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\nimport os\nimport net.http\n\nconst github_job = os.getenv('GITHUB_JOB')\n\nstru"
  },
  {
    "path": "cmd/tools/install_wabt.vsh",
    "chars": 1525,
    "preview": "#!/usr/bin/env -S v -raw-vsh-tmp-prefix tmp\n\nimport os\nimport net.http\n\nfn main() {\n\tos.chdir(@VEXEROOT)! // make sure t"
  },
  {
    "path": "cmd/tools/measure/file_lists/expand.v",
    "chars": 773,
    "preview": "module file_lists\n\nimport os\n\n// expand_files accepts a list of files and folders, and returns a list of all the .v and "
  },
  {
    "path": "cmd/tools/measure/fmt_speed.v",
    "chars": 3177,
    "preview": "import os\nimport time\nimport v.ast\nimport v.fmt\nimport v.pref\nimport v.parser\nimport v.errors\nimport v.scanner\nimport te"
  },
  {
    "path": "cmd/tools/measure/parser_speed.v",
    "chars": 2898,
    "preview": "import os\nimport time\nimport v.ast\nimport v.pref\nimport v.parser\nimport v.errors\nimport v.scanner\nimport term\nimport fil"
  },
  {
    "path": "cmd/tools/measure/scanner_speed.v",
    "chars": 2195,
    "preview": "import os\nimport time\nimport term\nimport v.scanner\nimport file_lists\nimport v.pref\n\nconst skip_tests = os.getenv('SKIP_T"
  },
  {
    "path": "cmd/tools/modules/scripting/scripting.v",
    "chars": 4655,
    "preview": "module scripting\n\nimport os\nimport term\nimport time\n\nconst term_colors = term.can_show_color_on_stdout()\n\npub fn set_ver"
  },
  {
    "path": "cmd/tools/modules/testing/common.v",
    "chars": 32539,
    "preview": "module testing\n\nimport os\nimport os.cmdline\nimport time\nimport term\nimport benchmark\nimport sync\nimport sync.pool\nimport"
  },
  {
    "path": "cmd/tools/modules/testing/output.v",
    "chars": 3596,
    "preview": "module testing\n\nimport time\n\npub enum MessageKind {\n\tcompile_begin // sent right before *each* _test.v file compilation,"
  },
  {
    "path": "cmd/tools/modules/testing/output_dump.v",
    "chars": 1650,
    "preview": "module testing\n\n// DumpReporter implements the interface testing.Reporter.\n// It is used by `v -test-runner dump test .`"
  },
  {
    "path": "cmd/tools/modules/testing/output_normal.v",
    "chars": 6526,
    "preview": "module testing\n\nimport os\nimport time\nimport term\nimport strings\nimport runtime\n\npub const empty = term.header(' ', ' ')"
  },
  {
    "path": "cmd/tools/modules/testing/output_teamcity.v",
    "chars": 1647,
    "preview": "module testing\n\n// TeamcityReporter implements the interface `testing.Reporter`.\n// It is used by `v -test-runner teamci"
  },
  {
    "path": "cmd/tools/modules/vgit/vgit.v",
    "chars": 14202,
    "preview": "module vgit\n\nimport os\nimport flag\nimport scripting\n\npub fn check_v_commit_timestamp_before_self_rebuilding(v_timestamp "
  },
  {
    "path": "cmd/tools/oldv.v",
    "chars": 8206,
    "preview": "import os\nimport flag\nimport scripting\nimport vgit\n\nconst tool_version = '0.0.4'\nconst tool_description = '  Checkout an"
  },
  {
    "path": "cmd/tools/performance_compare.v",
    "chars": 8938,
    "preview": "import os\nimport flag\nimport scripting\nimport vgit\n\nconst tool_version = '0.0.6'\nconst tool_description = \"  Compares V "
  },
  {
    "path": "cmd/tools/regress.v",
    "chars": 2519,
    "preview": "import os\nimport term\nimport flag\n\nconst tools_folder = os.real_path(os.dir(os.executable()))\n\nconst oldvexe = fullpath("
  },
  {
    "path": "cmd/tools/report_v_module_folders_without_tests.v",
    "chars": 2135,
    "preview": "module main\n\nimport os\n\nconst vexe = @VEXE\n\nconst known_skip_patterns_env = os.getenv('VKNOWN_SKIP_PATTERNS')\n\nconst kno"
  },
  {
    "path": "cmd/tools/show_ancient_deprecations.v",
    "chars": 2511,
    "preview": "import os\nimport term\nimport time\n\nstruct Context {\nmut:\n\tcut_time     time.Time\n\tdeprecations int\n}\n\nfn (mut ctx Contex"
  },
  {
    "path": "cmd/tools/test_if_v_test_system_works.v",
    "chars": 4816,
    "preview": "module main\n\n// This program verifies that `v test` propagates errors\n// and that it exits with code 1, when at least 1 "
  },
  {
    "path": "cmd/tools/test_os_args.v",
    "chars": 27,
    "preview": "println(arguments()#[1..])\n"
  },
  {
    "path": "cmd/tools/test_os_process.v",
    "chars": 2290,
    "preview": "module main\n\nimport os\nimport time\nimport os.cmdline\n\nenum Target {\n\tboth\n\tstderr\n\tstdout\n\talternate\n}\n\nfn s2target(s st"
  },
  {
    "path": "cmd/tools/translate.v",
    "chars": 1558,
    "preview": "// Copyright (c) 2019-2023 Alexander Medvednikov. All rights reserved.\n// Use of this source code is governed by an MIT "
  },
  {
    "path": "cmd/tools/vast/cjson.v",
    "chars": 1205,
    "preview": "module main\n\nimport json.cjson\n\ntype Node = C.cJSON\n\nfn as_n(p &cjson.Node) &Node {\n\treturn unsafe { &Node(p) }\n}\n\nfn as"
  },
  {
    "path": "cmd/tools/vast/test/.gitignore",
    "chars": 10,
    "preview": "demo.json\n"
  },
  {
    "path": "cmd/tools/vast/test/demo.v",
    "chars": 1595,
    "preview": "// usage test: v ast path_to_v/cmd/tools/vast/test/demo.v\n// will generate demo.json\n\n// comment for module\nmodule main\n"
  },
  {
    "path": "cmd/tools/vast/vast.v",
    "chars": 82059,
    "preview": "module main\n\nimport os\nimport time\nimport flag\nimport v.token\nimport v.parser\nimport v.ast\nimport v.pref\nimport v.errors"
  },
  {
    "path": "cmd/tools/vast2/vast2.v",
    "chars": 4459,
    "preview": "// Copyright (c) 2020-2024 Alexander Medvednikov. All rights reserved.\n// Use of this source code is governed by an MIT "
  },
  {
    "path": "cmd/tools/vbin2v.v",
    "chars": 3809,
    "preview": "module main\n\nimport os\nimport flag\nimport strings\n\nconst tool_version = '0.0.4'\nconst tool_description = 'Converts a lis"
  },
  {
    "path": "cmd/tools/vbug.v",
    "chars": 5846,
    "preview": "import os\nimport term\nimport readline\nimport net.urllib\n\nfn elog(msg string) {\n\teprintln(term.ecolorize(term.gray, msg))"
  },
  {
    "path": "cmd/tools/vbuild-examples.v",
    "chars": 998,
    "preview": "module main\n\nimport os\nimport testing\n\nconst vroot = os.dir(os.real_path(os.getenv_opt('VEXE') or { @VEXE }))\n\n// build "
  }
]

// ... and 10342 more files (download for full content)

About this extraction

This page contains the full source code of the vlang/v GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 10542 files (52.7 MB), approximately 4.6M tokens, and a symbol index with 7476 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!