From 6905ec153061783032eac21bfa236d0d94572e9c Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Fri, 29 Nov 2024 16:01:15 -0300 Subject: [PATCH 1/3] Add a script to test the parser against the Crystal stdlib. There's a file with a list of files that are expected to fail, if they doesn't match the test will fail. Bad news, current grammar has only 0.01% of success on compiler stdlib. --- .github/workflows/ci.yml | 4 + .gitignore | 2 + package.json | 2 +- test/real_world/stdlib | 69 + test/real_world/stdlib_expected_to_fail.txt | 1407 +++++++++++++++++++ 5 files changed, 1483 insertions(+), 1 deletion(-) create mode 100755 test/real_world/stdlib create mode 100644 test/real_world/stdlib_expected_to_fail.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d34302..4daba8b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,10 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 18 + - name: Install Crystal + uses: crystal-lang/install-crystal@v1 + with: + crystal: latest - run: npm install - run: npm test diff --git a/.gitignore b/.gitignore index ca9a28f..99127f5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ build/ node_modules/ +test/real_world/stdlib_failed.txt package-lock.json +tree-sitter-crystal.wasm diff --git a/package.json b/package.json index 0e0bb76..870f694 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "format": "prettier --write ./grammar.js", "lint": "eslint grammar.js", "generate": "tree-sitter generate", - "test": "tree-sitter test", + "test": "tree-sitter test;test/real_world/stdlib", "install": "node-gyp-build", "prebuildify": "prebuildify --napi --strip" }, diff --git a/test/real_world/stdlib b/test/real_world/stdlib new file mode 100755 index 0000000..f131b19 --- /dev/null +++ b/test/real_world/stdlib @@ -0,0 +1,69 @@ +#!/bin/env crystal +require "colorize" + +PASS = "pass".colorize.green +FAIL = "fail".colorize.red + +class Test + getter file_path : String + getter label : String + getter elapsed : Time::Span = Time::Span::ZERO + + def initialize(@file_path, @label) + end + + def execute : Bool + process = Process.new("tree-sitter parse #{@file_path}", shell: true) + start_time = Time.monotonic + status = process.wait + @elapsed = Time.monotonic - start_time + status.success? + end +end + +def info(key, value) + puts "#{key}: #{value.colorize.blue}" +end + +def find_stdlib_files + # Find stdlib path and version + stdlib_path = Crystal::PATH.split(":").find do |path| + File.exists?(Path[path, "array.cr"]) + end + abort("Stdlib path not found.") if stdlib_path.nil? + + stdlib_version = File.read(Path[stdlib_path, "VERSION"]).strip + + info("stdlib version", stdlib_version) + info("stdlib path", stdlib_path) + + # Grab all stdlib files + {stdlib_path, Dir["#{stdlib_path}/**/*.cr"].sort!} +end + +stdlib_path, stdlib_files = find_stdlib_files +pass = 0 + +expected_fail = File.read("#{__DIR__}/stdlib_expected_to_fail.txt").split +failed = [] of String + +stdlib_files.each do |stdlib_file| + test = Test.new(stdlib_file, stdlib_file[(stdlib_path.size + 1)..]) + success = test.execute + + if success + pass += 1 + else + failed << test.label + end + elapsed_ms = "#{test.elapsed.total_milliseconds}ms".colorize.dark_gray + # Why 63? So we match 80 columns. + printf("%-63s %s %s\n", test.label, success ? PASS : FAIL, elapsed_ms) +end + +printf("%% of success: %.2f%%\n", pass / stdlib_files.size) + +File.write("#{__DIR__}/stdlib_failed.txt", failed.join("\n")) +if failed != expected_fail + abort("List of failed tests difer, check stdlib_failed.txt and stdlib_expected_to_fail.txt".colorize.red) +end diff --git a/test/real_world/stdlib_expected_to_fail.txt b/test/real_world/stdlib_expected_to_fail.txt new file mode 100644 index 0000000..a66aec3 --- /dev/null +++ b/test/real_world/stdlib_expected_to_fail.txt @@ -0,0 +1,1407 @@ +annotations.cr +array.cr +atomic.cr +base64.cr +benchmark.cr +benchmark/bm.cr +benchmark/ips.cr +big/big_decimal.cr +big/big_float.cr +big/big_int.cr +big/big_rational.cr +big/json.cr +big/lib_gmp.cr +big/number.cr +big/yaml.cr +bit_array.cr +bool.cr +box.cr +channel.cr +channel/select.cr +channel/select/select_action.cr +channel/select/timeout_action.cr +char.cr +char/reader.cr +class.cr +colorize.cr +comparable.cr +compiler/crystal.cr +compiler/crystal/annotatable.cr +compiler/crystal/codegen/asm.cr +compiler/crystal/codegen/ast.cr +compiler/crystal/codegen/cache_dir.cr +compiler/crystal/codegen/call.cr +compiler/crystal/codegen/cast.cr +compiler/crystal/codegen/class_var.cr +compiler/crystal/codegen/codegen.cr +compiler/crystal/codegen/cond.cr +compiler/crystal/codegen/const.cr +compiler/crystal/codegen/context.cr +compiler/crystal/codegen/crystal_llvm_builder.cr +compiler/crystal/codegen/debug.cr +compiler/crystal/codegen/exception.cr +compiler/crystal/codegen/experimental.cr +compiler/crystal/codegen/fun.cr +compiler/crystal/codegen/link.cr +compiler/crystal/codegen/llvm_builder_helper.cr +compiler/crystal/codegen/llvm_id.cr +compiler/crystal/codegen/llvm_typer.cr +compiler/crystal/codegen/match.cr +compiler/crystal/codegen/once.cr +compiler/crystal/codegen/phi.cr +compiler/crystal/codegen/primitives.cr +compiler/crystal/codegen/target.cr +compiler/crystal/codegen/type_id.cr +compiler/crystal/codegen/types.cr +compiler/crystal/codegen/unions.cr +compiler/crystal/command.cr +compiler/crystal/command/clear_cache.cr +compiler/crystal/command/cursor.cr +compiler/crystal/command/docs.cr +compiler/crystal/command/env.cr +compiler/crystal/command/eval.cr +compiler/crystal/command/format.cr +compiler/crystal/command/playground.cr +compiler/crystal/command/repl.cr +compiler/crystal/command/spec.cr +compiler/crystal/compiler.cr +compiler/crystal/config.cr +compiler/crystal/crystal_path.cr +compiler/crystal/exception.cr +compiler/crystal/ffi/call_interface.cr +compiler/crystal/ffi/closure.cr +compiler/crystal/ffi/ffi.cr +compiler/crystal/ffi/lib_ffi.cr +compiler/crystal/ffi/type.cr +compiler/crystal/interpreter.cr +compiler/crystal/interpreter/c.cr +compiler/crystal/interpreter/cast.cr +compiler/crystal/interpreter/class_vars.cr +compiler/crystal/interpreter/closure.cr +compiler/crystal/interpreter/closure_context.cr +compiler/crystal/interpreter/compiled_block.cr +compiler/crystal/interpreter/compiled_def.cr +compiler/crystal/interpreter/compiled_instructions.cr +compiler/crystal/interpreter/compiler.cr +compiler/crystal/interpreter/constants.cr +compiler/crystal/interpreter/context.cr +compiler/crystal/interpreter/debug.cr +compiler/crystal/interpreter/disassembler.cr +compiler/crystal/interpreter/escaping_exception.cr +compiler/crystal/interpreter/ffi_closure_context.cr +compiler/crystal/interpreter/instruction.cr +compiler/crystal/interpreter/instructions.cr +compiler/crystal/interpreter/interpreter.cr +compiler/crystal/interpreter/lib_function.cr +compiler/crystal/interpreter/local_vars.cr +compiler/crystal/interpreter/local_vars_gatherer.cr +compiler/crystal/interpreter/multidispatch.cr +compiler/crystal/interpreter/op_code.cr +compiler/crystal/interpreter/primitives.cr +compiler/crystal/interpreter/pry_reader.cr +compiler/crystal/interpreter/repl.cr +compiler/crystal/interpreter/repl_reader.cr +compiler/crystal/interpreter/to_bool.cr +compiler/crystal/interpreter/value.cr +compiler/crystal/loader.cr +compiler/crystal/loader/msvc.cr +compiler/crystal/loader/unix.cr +compiler/crystal/macros.cr +compiler/crystal/macros/interpreter.cr +compiler/crystal/macros/macros.cr +compiler/crystal/macros/methods.cr +compiler/crystal/macros/types.cr +compiler/crystal/program.cr +compiler/crystal/progress_tracker.cr +compiler/crystal/semantic.cr +compiler/crystal/semantic/abstract_def_checker.cr +compiler/crystal/semantic/ast.cr +compiler/crystal/semantic/bindings.cr +compiler/crystal/semantic/call.cr +compiler/crystal/semantic/call_error.cr +compiler/crystal/semantic/class_vars_initializer_visitor.cr +compiler/crystal/semantic/cleanup_transformer.cr +compiler/crystal/semantic/conversions.cr +compiler/crystal/semantic/cover.cr +compiler/crystal/semantic/default_arguments.cr +compiler/crystal/semantic/exception.cr +compiler/crystal/semantic/exhaustiveness_checker.cr +compiler/crystal/semantic/filters.cr +compiler/crystal/semantic/fix_missing_types.cr +compiler/crystal/semantic/flags.cr +compiler/crystal/semantic/hooks.cr +compiler/crystal/semantic/instance_vars_initializer_visitor.cr +compiler/crystal/semantic/lib.cr +compiler/crystal/semantic/literal_expander.cr +compiler/crystal/semantic/main_visitor.cr +compiler/crystal/semantic/match.cr +compiler/crystal/semantic/math_interpreter.cr +compiler/crystal/semantic/method_lookup.cr +compiler/crystal/semantic/method_missing.cr +compiler/crystal/semantic/new.cr +compiler/crystal/semantic/normalizer.cr +compiler/crystal/semantic/path_lookup.cr +compiler/crystal/semantic/recursive_struct_checker.cr +compiler/crystal/semantic/restrictions.cr +compiler/crystal/semantic/restrictions_augmenter.cr +compiler/crystal/semantic/semantic_visitor.cr +compiler/crystal/semantic/suggestions.cr +compiler/crystal/semantic/to_s.cr +compiler/crystal/semantic/top_level_visitor.cr +compiler/crystal/semantic/transformer.cr +compiler/crystal/semantic/type_declaration_processor.cr +compiler/crystal/semantic/type_declaration_visitor.cr +compiler/crystal/semantic/type_guess_visitor.cr +compiler/crystal/semantic/type_intersect.cr +compiler/crystal/semantic/type_lookup.cr +compiler/crystal/semantic/type_merge.cr +compiler/crystal/semantic/type_to_restriction.cr +compiler/crystal/semantic/warnings.cr +compiler/crystal/syntax/ast.cr +compiler/crystal/syntax/exception.cr +compiler/crystal/syntax/lexer.cr +compiler/crystal/syntax/location.cr +compiler/crystal/syntax/parser.cr +compiler/crystal/syntax/to_s.cr +compiler/crystal/syntax/token.cr +compiler/crystal/syntax/transformer.cr +compiler/crystal/syntax/virtual_file.cr +compiler/crystal/syntax/visitor.cr +compiler/crystal/tools/context.cr +compiler/crystal/tools/dependencies.cr +compiler/crystal/tools/doc/constant.cr +compiler/crystal/tools/doc/generator.cr +compiler/crystal/tools/doc/item.cr +compiler/crystal/tools/doc/macro.cr +compiler/crystal/tools/doc/main.cr +compiler/crystal/tools/doc/markd_doc_renderer.cr +compiler/crystal/tools/doc/method.cr +compiler/crystal/tools/doc/project_info.cr +compiler/crystal/tools/doc/relative_location.cr +compiler/crystal/tools/doc/templates.cr +compiler/crystal/tools/doc/to_json.cr +compiler/crystal/tools/doc/type.cr +compiler/crystal/tools/expand.cr +compiler/crystal/tools/flags.cr +compiler/crystal/tools/formatter.cr +compiler/crystal/tools/git.cr +compiler/crystal/tools/implementations.cr +compiler/crystal/tools/init.cr +compiler/crystal/tools/playground.cr +compiler/crystal/tools/playground/agent.cr +compiler/crystal/tools/playground/agent_instrumentor_transformer.cr +compiler/crystal/tools/playground/server.cr +compiler/crystal/tools/print_hierarchy.cr +compiler/crystal/tools/print_types_visitor.cr +compiler/crystal/tools/table_print.cr +compiler/crystal/tools/typed_def_processor.cr +compiler/crystal/tools/unreachable.cr +compiler/crystal/types.cr +compiler/crystal/util.cr +compiler/crystal/warnings.cr +complex.cr +compress/deflate/deflate.cr +compress/deflate/reader.cr +compress/deflate/writer.cr +compress/gzip/gzip.cr +compress/gzip/header.cr +compress/gzip/reader.cr +compress/gzip/writer.cr +compress/zip/checksum_reader.cr +compress/zip/checksum_writer.cr +compress/zip/compression_method.cr +compress/zip/file.cr +compress/zip/file_info.cr +compress/zip/reader.cr +compress/zip/writer.cr +compress/zip/zip.cr +compress/zlib/reader.cr +compress/zlib/writer.cr +compress/zlib/zlib.cr +concurrent.cr +crypto/bcrypt.cr +crypto/bcrypt/base64.cr +crypto/bcrypt/blowfish.cr +crypto/bcrypt/password.cr +crypto/blowfish.cr +crypto/subtle.cr +crystal/at_exit_handlers.cr +crystal/atomic_semaphore.cr +crystal/compiler_rt.cr +crystal/compiler_rt/divmod128.cr +crystal/compiler_rt/fixint.cr +crystal/compiler_rt/float.cr +crystal/compiler_rt/mul.cr +crystal/compiler_rt/multi3.cr +crystal/compiler_rt/pow.cr +crystal/compiler_rt/shift.cr +crystal/datum.cr +crystal/digest/md5.cr +crystal/digest/sha1.cr +crystal/dwarf.cr +crystal/dwarf/abbrev.cr +crystal/dwarf/info.cr +crystal/dwarf/line_numbers.cr +crystal/dwarf/strings.cr +crystal/elf.cr +crystal/fiber_channel.cr +crystal/hasher.cr +crystal/iconv.cr +crystal/interpreter.cr +crystal/lib_iconv.cr +crystal/mach_o.cr +crystal/main.cr +crystal/once.cr +crystal/pointer_linked_list.cr +crystal/rw_lock.cr +crystal/scheduler.cr +crystal/small_deque.cr +crystal/spin_lock.cr +crystal/syntax_highlighter.cr +crystal/syntax_highlighter/colorize.cr +crystal/syntax_highlighter/html.cr +crystal/system.cr +crystal/system/addrinfo.cr +crystal/system/dir.cr +crystal/system/env.cr +crystal/system/event_loop.cr +crystal/system/event_loop/socket.cr +crystal/system/fiber.cr +crystal/system/file.cr +crystal/system/file_descriptor.cr +crystal/system/file_info.cr +crystal/system/group.cr +crystal/system/mime.cr +crystal/system/panic.cr +crystal/system/path.cr +crystal/system/print_error.cr +crystal/system/process.cr +crystal/system/random.cr +crystal/system/signal.cr +crystal/system/socket.cr +crystal/system/thread.cr +crystal/system/thread_condition_variable.cr +crystal/system/thread_linked_list.cr +crystal/system/thread_mutex.cr +crystal/system/time.cr +crystal/system/unix.cr +crystal/system/unix/addrinfo.cr +crystal/system/unix/arc4random.cr +crystal/system/unix/dir.cr +crystal/system/unix/env.cr +crystal/system/unix/event_libevent.cr +crystal/system/unix/event_loop_libevent.cr +crystal/system/unix/fiber.cr +crystal/system/unix/file.cr +crystal/system/unix/file_descriptor.cr +crystal/system/unix/file_info.cr +crystal/system/unix/getrandom.cr +crystal/system/unix/group.cr +crystal/system/unix/hostname.cr +crystal/system/unix/lib_event2.cr +crystal/system/unix/mime.cr +crystal/system/unix/path.cr +crystal/system/unix/process.cr +crystal/system/unix/pthread.cr +crystal/system/unix/pthread_condition_variable.cr +crystal/system/unix/pthread_mutex.cr +crystal/system/unix/signal.cr +crystal/system/unix/socket.cr +crystal/system/unix/syscall.cr +crystal/system/unix/sysconf_cpucount.cr +crystal/system/unix/sysctl_cpucount.cr +crystal/system/unix/time.cr +crystal/system/unix/urandom.cr +crystal/system/unix/user.cr +crystal/system/user.cr +crystal/system/wasi/addrinfo.cr +crystal/system/wasi/dir.cr +crystal/system/wasi/event_loop.cr +crystal/system/wasi/fiber.cr +crystal/system/wasi/file.cr +crystal/system/wasi/file_descriptor.cr +crystal/system/wasi/group.cr +crystal/system/wasi/hostname.cr +crystal/system/wasi/lib_wasi.cr +crystal/system/wasi/main.cr +crystal/system/wasi/path.cr +crystal/system/wasi/process.cr +crystal/system/wasi/random.cr +crystal/system/wasi/signal.cr +crystal/system/wasi/socket.cr +crystal/system/wasi/thread.cr +crystal/system/wasi/thread_condition_variable.cr +crystal/system/wasi/thread_mutex.cr +crystal/system/wasi/user.cr +crystal/system/wasi/wasi.cr +crystal/system/win32/addrinfo.cr +crystal/system/win32/addrinfo_win7.cr +crystal/system/win32/cpucount.cr +crystal/system/win32/crypto.cr +crystal/system/win32/dir.cr +crystal/system/win32/env.cr +crystal/system/win32/event_loop_iocp.cr +crystal/system/win32/fiber.cr +crystal/system/win32/file.cr +crystal/system/win32/file_descriptor.cr +crystal/system/win32/file_info.cr +crystal/system/win32/group.cr +crystal/system/win32/hostname.cr +crystal/system/win32/iocp.cr +crystal/system/win32/library_archive.cr +crystal/system/win32/mime.cr +crystal/system/win32/path.cr +crystal/system/win32/process.cr +crystal/system/win32/random.cr +crystal/system/win32/signal.cr +crystal/system/win32/socket.cr +crystal/system/win32/thread.cr +crystal/system/win32/thread_condition_variable.cr +crystal/system/win32/thread_mutex.cr +crystal/system/win32/time.cr +crystal/system/win32/user.cr +crystal/system/win32/visual_studio.cr +crystal/system/win32/windows_registry.cr +crystal/system/win32/windows_sdk.cr +crystal/system/win32/wmain.cr +crystal/system/win32/zone_names.cr +crystal/system/windows.cr +crystal/thread_local_value.cr +crystal/tracing.cr +csv.cr +csv/builder.cr +csv/error.cr +csv/lexer.cr +csv/lexer/io_based.cr +csv/lexer/string_based.cr +csv/parser.cr +csv/token.cr +deque.cr +digest/adler32.cr +digest/crc32.cr +digest/digest.cr +digest/io_digest.cr +digest/md5.cr +digest/sha1.cr +digest/sha256.cr +digest/sha512.cr +dir.cr +dir/glob.cr +docs_pseudo_methods.cr +ecr/lexer.cr +ecr/macros.cr +ecr/process.cr +ecr/processor.cr +empty.cr +enum.cr +enumerable.cr +env.cr +errno.cr +exception.cr +exception/call_stack.cr +exception/call_stack/dwarf.cr +exception/call_stack/elf.cr +exception/call_stack/interpreter.cr +exception/call_stack/libunwind.cr +exception/call_stack/mach_o.cr +exception/call_stack/null.cr +exception/call_stack/stackwalk.cr +exception/lib_unwind.cr +fiber.cr +fiber/context.cr +fiber/context/aarch64.cr +fiber/context/arm.cr +fiber/context/i386.cr +fiber/context/interpreted.cr +fiber/context/wasm32.cr +fiber/context/x86_64-microsoft.cr +fiber/context/x86_64-sysv.cr +fiber/stack_pool.cr +file.cr +file/error.cr +file/info.cr +file/preader.cr +file/tempfile.cr +file_utils.cr +float.cr +float/printer.cr +float/printer/cached_powers.cr +float/printer/diy_fp.cr +float/printer/dragonbox.cr +float/printer/dragonbox_cache.cr +float/printer/grisu3.cr +float/printer/hexfloat.cr +float/printer/ieee.cr +float/printer/ryu_printf.cr +float/printer/ryu_printf_table.cr +gc.cr +gc/boehm.cr +gc/none.cr +hash.cr +html.cr +html/entities.cr +http/client.cr +http/client/response.cr +http/common.cr +http/content.cr +http/cookie.cr +http/formdata.cr +http/formdata/builder.cr +http/formdata/parser.cr +http/formdata/part.cr +http/headers.cr +http/log.cr +http/params.cr +http/request.cr +http/server.cr +http/server/context.cr +http/server/handler.cr +http/server/handlers/compress_handler.cr +http/server/handlers/error_handler.cr +http/server/handlers/log_handler.cr +http/server/handlers/static_file_handler.cr +http/server/handlers/websocket_handler.cr +http/server/request_processor.cr +http/server/response.cr +http/status.cr +http/web_socket.cr +http/web_socket/close_code.cr +http/web_socket/protocol.cr +humanize.cr +indexable.cr +indexable/mutable.cr +ini.cr +int.cr +intrinsics.cr +io.cr +io/argf.cr +io/buffered.cr +io/byte_format.cr +io/console.cr +io/delimited.cr +io/encoding.cr +io/encoding_stubs.cr +io/error.cr +io/evented.cr +io/file_descriptor.cr +io/hexdump.cr +io/memory.cr +io/multi_writer.cr +io/sized.cr +io/stapled.cr +iterable.cr +iterator.cr +json.cr +json/any.cr +json/builder.cr +json/from_json.cr +json/lexer.cr +json/lexer/io_based.cr +json/lexer/string_based.cr +json/parser.cr +json/pull_parser.cr +json/serialization.cr +json/to_json.cr +json/token.cr +kernel.cr +levenshtein.cr +lib_c.cr +lib_c/aarch64-android/c/arpa/inet.cr +lib_c/aarch64-android/c/dirent.cr +lib_c/aarch64-android/c/dlfcn.cr +lib_c/aarch64-android/c/elf.cr +lib_c/aarch64-android/c/errno.cr +lib_c/aarch64-android/c/fcntl.cr +lib_c/aarch64-android/c/grp.cr +lib_c/aarch64-android/c/iconv.cr +lib_c/aarch64-android/c/link.cr +lib_c/aarch64-android/c/netdb.cr +lib_c/aarch64-android/c/netinet/in.cr +lib_c/aarch64-android/c/netinet/tcp.cr +lib_c/aarch64-android/c/pthread.cr +lib_c/aarch64-android/c/pwd.cr +lib_c/aarch64-android/c/sched.cr +lib_c/aarch64-android/c/signal.cr +lib_c/aarch64-android/c/stdarg.cr +lib_c/aarch64-android/c/stddef.cr +lib_c/aarch64-android/c/stdint.cr +lib_c/aarch64-android/c/stdio.cr +lib_c/aarch64-android/c/stdlib.cr +lib_c/aarch64-android/c/string.cr +lib_c/aarch64-android/c/sys/file.cr +lib_c/aarch64-android/c/sys/ioctl.cr +lib_c/aarch64-android/c/sys/mman.cr +lib_c/aarch64-android/c/sys/resource.cr +lib_c/aarch64-android/c/sys/select.cr +lib_c/aarch64-android/c/sys/socket.cr +lib_c/aarch64-android/c/sys/stat.cr +lib_c/aarch64-android/c/sys/syscall.cr +lib_c/aarch64-android/c/sys/system_properties.cr +lib_c/aarch64-android/c/sys/time.cr +lib_c/aarch64-android/c/sys/types.cr +lib_c/aarch64-android/c/sys/un.cr +lib_c/aarch64-android/c/sys/wait.cr +lib_c/aarch64-android/c/termios.cr +lib_c/aarch64-android/c/time.cr +lib_c/aarch64-android/c/unistd.cr +lib_c/aarch64-darwin/c/arpa/inet.cr +lib_c/aarch64-darwin/c/dirent.cr +lib_c/aarch64-darwin/c/dlfcn.cr +lib_c/aarch64-darwin/c/errno.cr +lib_c/aarch64-darwin/c/fcntl.cr +lib_c/aarch64-darwin/c/grp.cr +lib_c/aarch64-darwin/c/iconv.cr +lib_c/aarch64-darwin/c/mach/mach_time.cr +lib_c/aarch64-darwin/c/netdb.cr +lib_c/aarch64-darwin/c/netinet/in.cr +lib_c/aarch64-darwin/c/netinet/tcp.cr +lib_c/aarch64-darwin/c/pthread.cr +lib_c/aarch64-darwin/c/pwd.cr +lib_c/aarch64-darwin/c/sched.cr +lib_c/aarch64-darwin/c/signal.cr +lib_c/aarch64-darwin/c/stdarg.cr +lib_c/aarch64-darwin/c/stddef.cr +lib_c/aarch64-darwin/c/stdint.cr +lib_c/aarch64-darwin/c/stdio.cr +lib_c/aarch64-darwin/c/stdlib.cr +lib_c/aarch64-darwin/c/string.cr +lib_c/aarch64-darwin/c/sys/file.cr +lib_c/aarch64-darwin/c/sys/mman.cr +lib_c/aarch64-darwin/c/sys/resource.cr +lib_c/aarch64-darwin/c/sys/select.cr +lib_c/aarch64-darwin/c/sys/socket.cr +lib_c/aarch64-darwin/c/sys/stat.cr +lib_c/aarch64-darwin/c/sys/time.cr +lib_c/aarch64-darwin/c/sys/types.cr +lib_c/aarch64-darwin/c/sys/un.cr +lib_c/aarch64-darwin/c/sys/wait.cr +lib_c/aarch64-darwin/c/termios.cr +lib_c/aarch64-darwin/c/time.cr +lib_c/aarch64-darwin/c/unistd.cr +lib_c/aarch64-linux-gnu/c/arpa/inet.cr +lib_c/aarch64-linux-gnu/c/dirent.cr +lib_c/aarch64-linux-gnu/c/dlfcn.cr +lib_c/aarch64-linux-gnu/c/elf.cr +lib_c/aarch64-linux-gnu/c/errno.cr +lib_c/aarch64-linux-gnu/c/fcntl.cr +lib_c/aarch64-linux-gnu/c/grp.cr +lib_c/aarch64-linux-gnu/c/iconv.cr +lib_c/aarch64-linux-gnu/c/link.cr +lib_c/aarch64-linux-gnu/c/netdb.cr +lib_c/aarch64-linux-gnu/c/netinet/in.cr +lib_c/aarch64-linux-gnu/c/netinet/tcp.cr +lib_c/aarch64-linux-gnu/c/pthread.cr +lib_c/aarch64-linux-gnu/c/pwd.cr +lib_c/aarch64-linux-gnu/c/sched.cr +lib_c/aarch64-linux-gnu/c/signal.cr +lib_c/aarch64-linux-gnu/c/stdarg.cr +lib_c/aarch64-linux-gnu/c/stddef.cr +lib_c/aarch64-linux-gnu/c/stdint.cr +lib_c/aarch64-linux-gnu/c/stdio.cr +lib_c/aarch64-linux-gnu/c/stdlib.cr +lib_c/aarch64-linux-gnu/c/string.cr +lib_c/aarch64-linux-gnu/c/sys/file.cr +lib_c/aarch64-linux-gnu/c/sys/mman.cr +lib_c/aarch64-linux-gnu/c/sys/resource.cr +lib_c/aarch64-linux-gnu/c/sys/select.cr +lib_c/aarch64-linux-gnu/c/sys/socket.cr +lib_c/aarch64-linux-gnu/c/sys/stat.cr +lib_c/aarch64-linux-gnu/c/sys/time.cr +lib_c/aarch64-linux-gnu/c/sys/types.cr +lib_c/aarch64-linux-gnu/c/sys/un.cr +lib_c/aarch64-linux-gnu/c/sys/wait.cr +lib_c/aarch64-linux-gnu/c/termios.cr +lib_c/aarch64-linux-gnu/c/time.cr +lib_c/aarch64-linux-gnu/c/unistd.cr +lib_c/aarch64-linux-musl/c/arpa/inet.cr +lib_c/aarch64-linux-musl/c/dirent.cr +lib_c/aarch64-linux-musl/c/dlfcn.cr +lib_c/aarch64-linux-musl/c/elf.cr +lib_c/aarch64-linux-musl/c/errno.cr +lib_c/aarch64-linux-musl/c/fcntl.cr +lib_c/aarch64-linux-musl/c/grp.cr +lib_c/aarch64-linux-musl/c/iconv.cr +lib_c/aarch64-linux-musl/c/link.cr +lib_c/aarch64-linux-musl/c/netdb.cr +lib_c/aarch64-linux-musl/c/netinet/in.cr +lib_c/aarch64-linux-musl/c/netinet/tcp.cr +lib_c/aarch64-linux-musl/c/pthread.cr +lib_c/aarch64-linux-musl/c/pwd.cr +lib_c/aarch64-linux-musl/c/sched.cr +lib_c/aarch64-linux-musl/c/signal.cr +lib_c/aarch64-linux-musl/c/stdarg.cr +lib_c/aarch64-linux-musl/c/stddef.cr +lib_c/aarch64-linux-musl/c/stdint.cr +lib_c/aarch64-linux-musl/c/stdio.cr +lib_c/aarch64-linux-musl/c/stdlib.cr +lib_c/aarch64-linux-musl/c/string.cr +lib_c/aarch64-linux-musl/c/sys/file.cr +lib_c/aarch64-linux-musl/c/sys/mman.cr +lib_c/aarch64-linux-musl/c/sys/resource.cr +lib_c/aarch64-linux-musl/c/sys/select.cr +lib_c/aarch64-linux-musl/c/sys/socket.cr +lib_c/aarch64-linux-musl/c/sys/stat.cr +lib_c/aarch64-linux-musl/c/sys/time.cr +lib_c/aarch64-linux-musl/c/sys/types.cr +lib_c/aarch64-linux-musl/c/sys/un.cr +lib_c/aarch64-linux-musl/c/sys/wait.cr +lib_c/aarch64-linux-musl/c/termios.cr +lib_c/aarch64-linux-musl/c/time.cr +lib_c/aarch64-linux-musl/c/unistd.cr +lib_c/arm-linux-gnueabihf/c/arpa/inet.cr +lib_c/arm-linux-gnueabihf/c/dirent.cr +lib_c/arm-linux-gnueabihf/c/dlfcn.cr +lib_c/arm-linux-gnueabihf/c/elf.cr +lib_c/arm-linux-gnueabihf/c/errno.cr +lib_c/arm-linux-gnueabihf/c/fcntl.cr +lib_c/arm-linux-gnueabihf/c/grp.cr +lib_c/arm-linux-gnueabihf/c/iconv.cr +lib_c/arm-linux-gnueabihf/c/link.cr +lib_c/arm-linux-gnueabihf/c/netdb.cr +lib_c/arm-linux-gnueabihf/c/netinet/in.cr +lib_c/arm-linux-gnueabihf/c/netinet/tcp.cr +lib_c/arm-linux-gnueabihf/c/pthread.cr +lib_c/arm-linux-gnueabihf/c/pwd.cr +lib_c/arm-linux-gnueabihf/c/sched.cr +lib_c/arm-linux-gnueabihf/c/signal.cr +lib_c/arm-linux-gnueabihf/c/stdarg.cr +lib_c/arm-linux-gnueabihf/c/stddef.cr +lib_c/arm-linux-gnueabihf/c/stdint.cr +lib_c/arm-linux-gnueabihf/c/stdio.cr +lib_c/arm-linux-gnueabihf/c/stdlib.cr +lib_c/arm-linux-gnueabihf/c/string.cr +lib_c/arm-linux-gnueabihf/c/sys/file.cr +lib_c/arm-linux-gnueabihf/c/sys/mman.cr +lib_c/arm-linux-gnueabihf/c/sys/resource.cr +lib_c/arm-linux-gnueabihf/c/sys/select.cr +lib_c/arm-linux-gnueabihf/c/sys/socket.cr +lib_c/arm-linux-gnueabihf/c/sys/stat.cr +lib_c/arm-linux-gnueabihf/c/sys/time.cr +lib_c/arm-linux-gnueabihf/c/sys/types.cr +lib_c/arm-linux-gnueabihf/c/sys/un.cr +lib_c/arm-linux-gnueabihf/c/sys/wait.cr +lib_c/arm-linux-gnueabihf/c/termios.cr +lib_c/arm-linux-gnueabihf/c/time.cr +lib_c/arm-linux-gnueabihf/c/unistd.cr +lib_c/i386-linux-gnu/c/arpa/inet.cr +lib_c/i386-linux-gnu/c/dirent.cr +lib_c/i386-linux-gnu/c/dlfcn.cr +lib_c/i386-linux-gnu/c/elf.cr +lib_c/i386-linux-gnu/c/errno.cr +lib_c/i386-linux-gnu/c/fcntl.cr +lib_c/i386-linux-gnu/c/grp.cr +lib_c/i386-linux-gnu/c/iconv.cr +lib_c/i386-linux-gnu/c/link.cr +lib_c/i386-linux-gnu/c/netdb.cr +lib_c/i386-linux-gnu/c/netinet/in.cr +lib_c/i386-linux-gnu/c/netinet/tcp.cr +lib_c/i386-linux-gnu/c/pthread.cr +lib_c/i386-linux-gnu/c/pwd.cr +lib_c/i386-linux-gnu/c/sched.cr +lib_c/i386-linux-gnu/c/signal.cr +lib_c/i386-linux-gnu/c/stdarg.cr +lib_c/i386-linux-gnu/c/stddef.cr +lib_c/i386-linux-gnu/c/stdint.cr +lib_c/i386-linux-gnu/c/stdio.cr +lib_c/i386-linux-gnu/c/stdlib.cr +lib_c/i386-linux-gnu/c/string.cr +lib_c/i386-linux-gnu/c/sys/file.cr +lib_c/i386-linux-gnu/c/sys/mman.cr +lib_c/i386-linux-gnu/c/sys/resource.cr +lib_c/i386-linux-gnu/c/sys/select.cr +lib_c/i386-linux-gnu/c/sys/socket.cr +lib_c/i386-linux-gnu/c/sys/stat.cr +lib_c/i386-linux-gnu/c/sys/time.cr +lib_c/i386-linux-gnu/c/sys/types.cr +lib_c/i386-linux-gnu/c/sys/un.cr +lib_c/i386-linux-gnu/c/sys/wait.cr +lib_c/i386-linux-gnu/c/termios.cr +lib_c/i386-linux-gnu/c/time.cr +lib_c/i386-linux-gnu/c/unistd.cr +lib_c/i386-linux-musl/c/arpa/inet.cr +lib_c/i386-linux-musl/c/dirent.cr +lib_c/i386-linux-musl/c/dlfcn.cr +lib_c/i386-linux-musl/c/elf.cr +lib_c/i386-linux-musl/c/errno.cr +lib_c/i386-linux-musl/c/fcntl.cr +lib_c/i386-linux-musl/c/grp.cr +lib_c/i386-linux-musl/c/iconv.cr +lib_c/i386-linux-musl/c/link.cr +lib_c/i386-linux-musl/c/netdb.cr +lib_c/i386-linux-musl/c/netinet/in.cr +lib_c/i386-linux-musl/c/netinet/tcp.cr +lib_c/i386-linux-musl/c/pthread.cr +lib_c/i386-linux-musl/c/pwd.cr +lib_c/i386-linux-musl/c/sched.cr +lib_c/i386-linux-musl/c/signal.cr +lib_c/i386-linux-musl/c/stdarg.cr +lib_c/i386-linux-musl/c/stddef.cr +lib_c/i386-linux-musl/c/stdint.cr +lib_c/i386-linux-musl/c/stdio.cr +lib_c/i386-linux-musl/c/stdlib.cr +lib_c/i386-linux-musl/c/string.cr +lib_c/i386-linux-musl/c/sys/file.cr +lib_c/i386-linux-musl/c/sys/mman.cr +lib_c/i386-linux-musl/c/sys/resource.cr +lib_c/i386-linux-musl/c/sys/select.cr +lib_c/i386-linux-musl/c/sys/socket.cr +lib_c/i386-linux-musl/c/sys/stat.cr +lib_c/i386-linux-musl/c/sys/time.cr +lib_c/i386-linux-musl/c/sys/types.cr +lib_c/i386-linux-musl/c/sys/un.cr +lib_c/i386-linux-musl/c/sys/wait.cr +lib_c/i386-linux-musl/c/termios.cr +lib_c/i386-linux-musl/c/time.cr +lib_c/i386-linux-musl/c/unistd.cr +lib_c/wasm32-wasi/c/arpa/inet.cr +lib_c/wasm32-wasi/c/errno.cr +lib_c/wasm32-wasi/c/fcntl.cr +lib_c/wasm32-wasi/c/iconv.cr +lib_c/wasm32-wasi/c/netdb.cr +lib_c/wasm32-wasi/c/netinet/in.cr +lib_c/wasm32-wasi/c/netinet/tcp.cr +lib_c/wasm32-wasi/c/sched.cr +lib_c/wasm32-wasi/c/stdarg.cr +lib_c/wasm32-wasi/c/stddef.cr +lib_c/wasm32-wasi/c/stdint.cr +lib_c/wasm32-wasi/c/stdio.cr +lib_c/wasm32-wasi/c/stdlib.cr +lib_c/wasm32-wasi/c/string.cr +lib_c/wasm32-wasi/c/sys/resource.cr +lib_c/wasm32-wasi/c/sys/select.cr +lib_c/wasm32-wasi/c/sys/socket.cr +lib_c/wasm32-wasi/c/sys/stat.cr +lib_c/wasm32-wasi/c/sys/time.cr +lib_c/wasm32-wasi/c/sys/times.cr +lib_c/wasm32-wasi/c/sys/types.cr +lib_c/wasm32-wasi/c/termios.cr +lib_c/wasm32-wasi/c/time.cr +lib_c/wasm32-wasi/c/unistd.cr +lib_c/x86_64-darwin/c/arpa/inet.cr +lib_c/x86_64-darwin/c/dirent.cr +lib_c/x86_64-darwin/c/dlfcn.cr +lib_c/x86_64-darwin/c/errno.cr +lib_c/x86_64-darwin/c/fcntl.cr +lib_c/x86_64-darwin/c/grp.cr +lib_c/x86_64-darwin/c/iconv.cr +lib_c/x86_64-darwin/c/mach/mach_time.cr +lib_c/x86_64-darwin/c/netdb.cr +lib_c/x86_64-darwin/c/netinet/in.cr +lib_c/x86_64-darwin/c/netinet/tcp.cr +lib_c/x86_64-darwin/c/pthread.cr +lib_c/x86_64-darwin/c/pwd.cr +lib_c/x86_64-darwin/c/sched.cr +lib_c/x86_64-darwin/c/signal.cr +lib_c/x86_64-darwin/c/stdarg.cr +lib_c/x86_64-darwin/c/stddef.cr +lib_c/x86_64-darwin/c/stdint.cr +lib_c/x86_64-darwin/c/stdio.cr +lib_c/x86_64-darwin/c/stdlib.cr +lib_c/x86_64-darwin/c/string.cr +lib_c/x86_64-darwin/c/sys/file.cr +lib_c/x86_64-darwin/c/sys/mman.cr +lib_c/x86_64-darwin/c/sys/resource.cr +lib_c/x86_64-darwin/c/sys/select.cr +lib_c/x86_64-darwin/c/sys/socket.cr +lib_c/x86_64-darwin/c/sys/stat.cr +lib_c/x86_64-darwin/c/sys/time.cr +lib_c/x86_64-darwin/c/sys/types.cr +lib_c/x86_64-darwin/c/sys/un.cr +lib_c/x86_64-darwin/c/sys/wait.cr +lib_c/x86_64-darwin/c/termios.cr +lib_c/x86_64-darwin/c/time.cr +lib_c/x86_64-darwin/c/unistd.cr +lib_c/x86_64-dragonfly/c/arpa/inet.cr +lib_c/x86_64-dragonfly/c/dirent.cr +lib_c/x86_64-dragonfly/c/dlfcn.cr +lib_c/x86_64-dragonfly/c/elf.cr +lib_c/x86_64-dragonfly/c/errno.cr +lib_c/x86_64-dragonfly/c/fcntl.cr +lib_c/x86_64-dragonfly/c/grp.cr +lib_c/x86_64-dragonfly/c/iconv.cr +lib_c/x86_64-dragonfly/c/link.cr +lib_c/x86_64-dragonfly/c/netdb.cr +lib_c/x86_64-dragonfly/c/netinet/in.cr +lib_c/x86_64-dragonfly/c/netinet/tcp.cr +lib_c/x86_64-dragonfly/c/pthread.cr +lib_c/x86_64-dragonfly/c/pwd.cr +lib_c/x86_64-dragonfly/c/sched.cr +lib_c/x86_64-dragonfly/c/signal.cr +lib_c/x86_64-dragonfly/c/stdarg.cr +lib_c/x86_64-dragonfly/c/stddef.cr +lib_c/x86_64-dragonfly/c/stdint.cr +lib_c/x86_64-dragonfly/c/stdio.cr +lib_c/x86_64-dragonfly/c/stdlib.cr +lib_c/x86_64-dragonfly/c/string.cr +lib_c/x86_64-dragonfly/c/sys/file.cr +lib_c/x86_64-dragonfly/c/sys/mman.cr +lib_c/x86_64-dragonfly/c/sys/resource.cr +lib_c/x86_64-dragonfly/c/sys/select.cr +lib_c/x86_64-dragonfly/c/sys/socket.cr +lib_c/x86_64-dragonfly/c/sys/stat.cr +lib_c/x86_64-dragonfly/c/sys/time.cr +lib_c/x86_64-dragonfly/c/sys/types.cr +lib_c/x86_64-dragonfly/c/sys/un.cr +lib_c/x86_64-dragonfly/c/sys/wait.cr +lib_c/x86_64-dragonfly/c/sysctl.cr +lib_c/x86_64-dragonfly/c/termios.cr +lib_c/x86_64-dragonfly/c/time.cr +lib_c/x86_64-dragonfly/c/unistd.cr +lib_c/x86_64-freebsd/c/arpa/inet.cr +lib_c/x86_64-freebsd/c/dirent.cr +lib_c/x86_64-freebsd/c/dlfcn.cr +lib_c/x86_64-freebsd/c/elf.cr +lib_c/x86_64-freebsd/c/errno.cr +lib_c/x86_64-freebsd/c/fcntl.cr +lib_c/x86_64-freebsd/c/grp.cr +lib_c/x86_64-freebsd/c/iconv.cr +lib_c/x86_64-freebsd/c/link.cr +lib_c/x86_64-freebsd/c/netdb.cr +lib_c/x86_64-freebsd/c/netinet/in.cr +lib_c/x86_64-freebsd/c/netinet/tcp.cr +lib_c/x86_64-freebsd/c/pthread.cr +lib_c/x86_64-freebsd/c/pwd.cr +lib_c/x86_64-freebsd/c/sched.cr +lib_c/x86_64-freebsd/c/signal.cr +lib_c/x86_64-freebsd/c/stdarg.cr +lib_c/x86_64-freebsd/c/stddef.cr +lib_c/x86_64-freebsd/c/stdint.cr +lib_c/x86_64-freebsd/c/stdio.cr +lib_c/x86_64-freebsd/c/stdlib.cr +lib_c/x86_64-freebsd/c/string.cr +lib_c/x86_64-freebsd/c/sys/file.cr +lib_c/x86_64-freebsd/c/sys/mman.cr +lib_c/x86_64-freebsd/c/sys/resource.cr +lib_c/x86_64-freebsd/c/sys/select.cr +lib_c/x86_64-freebsd/c/sys/socket.cr +lib_c/x86_64-freebsd/c/sys/stat.cr +lib_c/x86_64-freebsd/c/sys/time.cr +lib_c/x86_64-freebsd/c/sys/types.cr +lib_c/x86_64-freebsd/c/sys/un.cr +lib_c/x86_64-freebsd/c/sys/wait.cr +lib_c/x86_64-freebsd/c/sysctl.cr +lib_c/x86_64-freebsd/c/termios.cr +lib_c/x86_64-freebsd/c/time.cr +lib_c/x86_64-freebsd/c/unistd.cr +lib_c/x86_64-linux-gnu/c/arpa/inet.cr +lib_c/x86_64-linux-gnu/c/dirent.cr +lib_c/x86_64-linux-gnu/c/dlfcn.cr +lib_c/x86_64-linux-gnu/c/elf.cr +lib_c/x86_64-linux-gnu/c/errno.cr +lib_c/x86_64-linux-gnu/c/fcntl.cr +lib_c/x86_64-linux-gnu/c/grp.cr +lib_c/x86_64-linux-gnu/c/iconv.cr +lib_c/x86_64-linux-gnu/c/link.cr +lib_c/x86_64-linux-gnu/c/netdb.cr +lib_c/x86_64-linux-gnu/c/netinet/in.cr +lib_c/x86_64-linux-gnu/c/netinet/tcp.cr +lib_c/x86_64-linux-gnu/c/pthread.cr +lib_c/x86_64-linux-gnu/c/pwd.cr +lib_c/x86_64-linux-gnu/c/sched.cr +lib_c/x86_64-linux-gnu/c/signal.cr +lib_c/x86_64-linux-gnu/c/stdarg.cr +lib_c/x86_64-linux-gnu/c/stddef.cr +lib_c/x86_64-linux-gnu/c/stdint.cr +lib_c/x86_64-linux-gnu/c/stdio.cr +lib_c/x86_64-linux-gnu/c/stdlib.cr +lib_c/x86_64-linux-gnu/c/string.cr +lib_c/x86_64-linux-gnu/c/sys/file.cr +lib_c/x86_64-linux-gnu/c/sys/mman.cr +lib_c/x86_64-linux-gnu/c/sys/resource.cr +lib_c/x86_64-linux-gnu/c/sys/select.cr +lib_c/x86_64-linux-gnu/c/sys/socket.cr +lib_c/x86_64-linux-gnu/c/sys/stat.cr +lib_c/x86_64-linux-gnu/c/sys/time.cr +lib_c/x86_64-linux-gnu/c/sys/types.cr +lib_c/x86_64-linux-gnu/c/sys/un.cr +lib_c/x86_64-linux-gnu/c/sys/wait.cr +lib_c/x86_64-linux-gnu/c/termios.cr +lib_c/x86_64-linux-gnu/c/time.cr +lib_c/x86_64-linux-gnu/c/unistd.cr +lib_c/x86_64-linux-musl/c/arpa/inet.cr +lib_c/x86_64-linux-musl/c/dirent.cr +lib_c/x86_64-linux-musl/c/dlfcn.cr +lib_c/x86_64-linux-musl/c/elf.cr +lib_c/x86_64-linux-musl/c/errno.cr +lib_c/x86_64-linux-musl/c/fcntl.cr +lib_c/x86_64-linux-musl/c/grp.cr +lib_c/x86_64-linux-musl/c/iconv.cr +lib_c/x86_64-linux-musl/c/link.cr +lib_c/x86_64-linux-musl/c/netdb.cr +lib_c/x86_64-linux-musl/c/netinet/in.cr +lib_c/x86_64-linux-musl/c/netinet/tcp.cr +lib_c/x86_64-linux-musl/c/pthread.cr +lib_c/x86_64-linux-musl/c/pwd.cr +lib_c/x86_64-linux-musl/c/sched.cr +lib_c/x86_64-linux-musl/c/signal.cr +lib_c/x86_64-linux-musl/c/stdarg.cr +lib_c/x86_64-linux-musl/c/stddef.cr +lib_c/x86_64-linux-musl/c/stdint.cr +lib_c/x86_64-linux-musl/c/stdio.cr +lib_c/x86_64-linux-musl/c/stdlib.cr +lib_c/x86_64-linux-musl/c/string.cr +lib_c/x86_64-linux-musl/c/sys/file.cr +lib_c/x86_64-linux-musl/c/sys/mman.cr +lib_c/x86_64-linux-musl/c/sys/resource.cr +lib_c/x86_64-linux-musl/c/sys/select.cr +lib_c/x86_64-linux-musl/c/sys/socket.cr +lib_c/x86_64-linux-musl/c/sys/stat.cr +lib_c/x86_64-linux-musl/c/sys/time.cr +lib_c/x86_64-linux-musl/c/sys/types.cr +lib_c/x86_64-linux-musl/c/sys/un.cr +lib_c/x86_64-linux-musl/c/sys/wait.cr +lib_c/x86_64-linux-musl/c/termios.cr +lib_c/x86_64-linux-musl/c/time.cr +lib_c/x86_64-linux-musl/c/unistd.cr +lib_c/x86_64-netbsd/c/arpa/inet.cr +lib_c/x86_64-netbsd/c/dirent.cr +lib_c/x86_64-netbsd/c/dlfcn.cr +lib_c/x86_64-netbsd/c/elf.cr +lib_c/x86_64-netbsd/c/errno.cr +lib_c/x86_64-netbsd/c/fcntl.cr +lib_c/x86_64-netbsd/c/grp.cr +lib_c/x86_64-netbsd/c/iconv.cr +lib_c/x86_64-netbsd/c/link.cr +lib_c/x86_64-netbsd/c/netdb.cr +lib_c/x86_64-netbsd/c/netinet/in.cr +lib_c/x86_64-netbsd/c/netinet/tcp.cr +lib_c/x86_64-netbsd/c/pthread.cr +lib_c/x86_64-netbsd/c/pwd.cr +lib_c/x86_64-netbsd/c/sched.cr +lib_c/x86_64-netbsd/c/signal.cr +lib_c/x86_64-netbsd/c/stdarg.cr +lib_c/x86_64-netbsd/c/stddef.cr +lib_c/x86_64-netbsd/c/stdint.cr +lib_c/x86_64-netbsd/c/stdio.cr +lib_c/x86_64-netbsd/c/stdlib.cr +lib_c/x86_64-netbsd/c/string.cr +lib_c/x86_64-netbsd/c/sys/file.cr +lib_c/x86_64-netbsd/c/sys/mman.cr +lib_c/x86_64-netbsd/c/sys/resource.cr +lib_c/x86_64-netbsd/c/sys/select.cr +lib_c/x86_64-netbsd/c/sys/socket.cr +lib_c/x86_64-netbsd/c/sys/stat.cr +lib_c/x86_64-netbsd/c/sys/time.cr +lib_c/x86_64-netbsd/c/sys/types.cr +lib_c/x86_64-netbsd/c/sys/un.cr +lib_c/x86_64-netbsd/c/sys/wait.cr +lib_c/x86_64-netbsd/c/sysctl.cr +lib_c/x86_64-netbsd/c/termios.cr +lib_c/x86_64-netbsd/c/time.cr +lib_c/x86_64-netbsd/c/unistd.cr +lib_c/x86_64-openbsd/c/arpa/inet.cr +lib_c/x86_64-openbsd/c/dirent.cr +lib_c/x86_64-openbsd/c/dlfcn.cr +lib_c/x86_64-openbsd/c/elf.cr +lib_c/x86_64-openbsd/c/errno.cr +lib_c/x86_64-openbsd/c/fcntl.cr +lib_c/x86_64-openbsd/c/grp.cr +lib_c/x86_64-openbsd/c/iconv.cr +lib_c/x86_64-openbsd/c/link.cr +lib_c/x86_64-openbsd/c/netdb.cr +lib_c/x86_64-openbsd/c/netinet/in.cr +lib_c/x86_64-openbsd/c/netinet/tcp.cr +lib_c/x86_64-openbsd/c/pthread.cr +lib_c/x86_64-openbsd/c/pwd.cr +lib_c/x86_64-openbsd/c/sched.cr +lib_c/x86_64-openbsd/c/signal.cr +lib_c/x86_64-openbsd/c/stdarg.cr +lib_c/x86_64-openbsd/c/stddef.cr +lib_c/x86_64-openbsd/c/stdint.cr +lib_c/x86_64-openbsd/c/stdio.cr +lib_c/x86_64-openbsd/c/stdlib.cr +lib_c/x86_64-openbsd/c/string.cr +lib_c/x86_64-openbsd/c/sys/file.cr +lib_c/x86_64-openbsd/c/sys/mman.cr +lib_c/x86_64-openbsd/c/sys/resource.cr +lib_c/x86_64-openbsd/c/sys/select.cr +lib_c/x86_64-openbsd/c/sys/socket.cr +lib_c/x86_64-openbsd/c/sys/stat.cr +lib_c/x86_64-openbsd/c/sys/time.cr +lib_c/x86_64-openbsd/c/sys/types.cr +lib_c/x86_64-openbsd/c/sys/un.cr +lib_c/x86_64-openbsd/c/sys/wait.cr +lib_c/x86_64-openbsd/c/sysctl.cr +lib_c/x86_64-openbsd/c/termios.cr +lib_c/x86_64-openbsd/c/time.cr +lib_c/x86_64-openbsd/c/unistd.cr +lib_c/x86_64-solaris/c/arpa/inet.cr +lib_c/x86_64-solaris/c/dirent.cr +lib_c/x86_64-solaris/c/dlfcn.cr +lib_c/x86_64-solaris/c/elf.cr +lib_c/x86_64-solaris/c/errno.cr +lib_c/x86_64-solaris/c/fcntl.cr +lib_c/x86_64-solaris/c/grp.cr +lib_c/x86_64-solaris/c/iconv.cr +lib_c/x86_64-solaris/c/link.cr +lib_c/x86_64-solaris/c/netdb.cr +lib_c/x86_64-solaris/c/netinet/in.cr +lib_c/x86_64-solaris/c/netinet/tcp.cr +lib_c/x86_64-solaris/c/pthread.cr +lib_c/x86_64-solaris/c/pwd.cr +lib_c/x86_64-solaris/c/sched.cr +lib_c/x86_64-solaris/c/signal.cr +lib_c/x86_64-solaris/c/stdarg.cr +lib_c/x86_64-solaris/c/stddef.cr +lib_c/x86_64-solaris/c/stdint.cr +lib_c/x86_64-solaris/c/stdio.cr +lib_c/x86_64-solaris/c/stdlib.cr +lib_c/x86_64-solaris/c/string.cr +lib_c/x86_64-solaris/c/sys/file.cr +lib_c/x86_64-solaris/c/sys/mman.cr +lib_c/x86_64-solaris/c/sys/resource.cr +lib_c/x86_64-solaris/c/sys/select.cr +lib_c/x86_64-solaris/c/sys/socket.cr +lib_c/x86_64-solaris/c/sys/stat.cr +lib_c/x86_64-solaris/c/sys/time.cr +lib_c/x86_64-solaris/c/sys/types.cr +lib_c/x86_64-solaris/c/sys/un.cr +lib_c/x86_64-solaris/c/sys/wait.cr +lib_c/x86_64-solaris/c/termios.cr +lib_c/x86_64-solaris/c/time.cr +lib_c/x86_64-solaris/c/unistd.cr +lib_c/x86_64-windows-msvc/c/afunix.cr +lib_c/x86_64-windows-msvc/c/basetsd.cr +lib_c/x86_64-windows-msvc/c/combaseapi.cr +lib_c/x86_64-windows-msvc/c/consoleapi.cr +lib_c/x86_64-windows-msvc/c/consoleapi2.cr +lib_c/x86_64-windows-msvc/c/corecrt.cr +lib_c/x86_64-windows-msvc/c/dbghelp.cr +lib_c/x86_64-windows-msvc/c/delayimp.cr +lib_c/x86_64-windows-msvc/c/direct.cr +lib_c/x86_64-windows-msvc/c/errhandlingapi.cr +lib_c/x86_64-windows-msvc/c/errno.cr +lib_c/x86_64-windows-msvc/c/fcntl.cr +lib_c/x86_64-windows-msvc/c/fileapi.cr +lib_c/x86_64-windows-msvc/c/guiddef.cr +lib_c/x86_64-windows-msvc/c/handleapi.cr +lib_c/x86_64-windows-msvc/c/heapapi.cr +lib_c/x86_64-windows-msvc/c/in6addr.cr +lib_c/x86_64-windows-msvc/c/inaddr.cr +lib_c/x86_64-windows-msvc/c/int_safe.cr +lib_c/x86_64-windows-msvc/c/io.cr +lib_c/x86_64-windows-msvc/c/ioapiset.cr +lib_c/x86_64-windows-msvc/c/jobapi2.cr +lib_c/x86_64-windows-msvc/c/knownfolders.cr +lib_c/x86_64-windows-msvc/c/libloaderapi.cr +lib_c/x86_64-windows-msvc/c/lm.cr +lib_c/x86_64-windows-msvc/c/malloc.cr +lib_c/x86_64-windows-msvc/c/memoryapi.cr +lib_c/x86_64-windows-msvc/c/minwinbase.cr +lib_c/x86_64-windows-msvc/c/mswsock.cr +lib_c/x86_64-windows-msvc/c/ntifs.cr +lib_c/x86_64-windows-msvc/c/ntsecapi.cr +lib_c/x86_64-windows-msvc/c/ntstatus.cr +lib_c/x86_64-windows-msvc/c/process.cr +lib_c/x86_64-windows-msvc/c/processenv.cr +lib_c/x86_64-windows-msvc/c/processthreadsapi.cr +lib_c/x86_64-windows-msvc/c/profileapi.cr +lib_c/x86_64-windows-msvc/c/regapix.cr +lib_c/x86_64-windows-msvc/c/sddl.cr +lib_c/x86_64-windows-msvc/c/sdkddkver.cr +lib_c/x86_64-windows-msvc/c/security.cr +lib_c/x86_64-windows-msvc/c/shlobj_core.cr +lib_c/x86_64-windows-msvc/c/signal.cr +lib_c/x86_64-windows-msvc/c/stdarg.cr +lib_c/x86_64-windows-msvc/c/stddef.cr +lib_c/x86_64-windows-msvc/c/stdint.cr +lib_c/x86_64-windows-msvc/c/stdio.cr +lib_c/x86_64-windows-msvc/c/stdlib.cr +lib_c/x86_64-windows-msvc/c/string.cr +lib_c/x86_64-windows-msvc/c/stringapiset.cr +lib_c/x86_64-windows-msvc/c/synchapi.cr +lib_c/x86_64-windows-msvc/c/sys/stat.cr +lib_c/x86_64-windows-msvc/c/sys/types.cr +lib_c/x86_64-windows-msvc/c/sys/utime.cr +lib_c/x86_64-windows-msvc/c/sysinfoapi.cr +lib_c/x86_64-windows-msvc/c/timezoneapi.cr +lib_c/x86_64-windows-msvc/c/tlhelp32.cr +lib_c/x86_64-windows-msvc/c/userenv.cr +lib_c/x86_64-windows-msvc/c/win_def.cr +lib_c/x86_64-windows-msvc/c/winbase.cr +lib_c/x86_64-windows-msvc/c/wincrypt.cr +lib_c/x86_64-windows-msvc/c/winioctl.cr +lib_c/x86_64-windows-msvc/c/winnls.cr +lib_c/x86_64-windows-msvc/c/winnt.cr +lib_c/x86_64-windows-msvc/c/winreg.cr +lib_c/x86_64-windows-msvc/c/winsock2.cr +lib_c/x86_64-windows-msvc/c/ws2def.cr +lib_c/x86_64-windows-msvc/c/ws2ipdef.cr +lib_c/x86_64-windows-msvc/c/ws2tcpip.cr +lib_c/x86_64-windows-msvc/c/wtypesbase.cr +lib_z/lib_z.cr +llvm.cr +llvm/abi.cr +llvm/abi/aarch64.cr +llvm/abi/arm.cr +llvm/abi/avr.cr +llvm/abi/wasm32.cr +llvm/abi/x86.cr +llvm/abi/x86_64.cr +llvm/abi/x86_win64.cr +llvm/basic_block.cr +llvm/basic_block_collection.cr +llvm/builder.cr +llvm/context.cr +llvm/di_builder.cr +llvm/enums.cr +llvm/enums/atomic.cr +llvm/function.cr +llvm/function_collection.cr +llvm/function_pass_manager.cr +llvm/generic_value.cr +llvm/global_collection.cr +llvm/instruction_collection.cr +llvm/jit_compiler.cr +llvm/lib_llvm.cr +llvm/lib_llvm/analysis.cr +llvm/lib_llvm/bit_reader.cr +llvm/lib_llvm/bit_writer.cr +llvm/lib_llvm/core.cr +llvm/lib_llvm/debug_info.cr +llvm/lib_llvm/error.cr +llvm/lib_llvm/execution_engine.cr +llvm/lib_llvm/initialization.cr +llvm/lib_llvm/ir_reader.cr +llvm/lib_llvm/lljit.cr +llvm/lib_llvm/orc.cr +llvm/lib_llvm/target.cr +llvm/lib_llvm/target_machine.cr +llvm/lib_llvm/transforms/pass_builder.cr +llvm/lib_llvm/transforms/pass_manager_builder.cr +llvm/lib_llvm/types.cr +llvm/lib_llvm_ext.cr +llvm/memory_buffer.cr +llvm/module.cr +llvm/module_pass_manager.cr +llvm/operand_bundle_def.cr +llvm/orc/jit_dylib.cr +llvm/orc/lljit.cr +llvm/orc/lljit_builder.cr +llvm/orc/thread_safe_context.cr +llvm/orc/thread_safe_module.cr +llvm/parameter_collection.cr +llvm/pass_builder_options.cr +llvm/pass_manager_builder.cr +llvm/pass_registry.cr +llvm/phi_table.cr +llvm/target.cr +llvm/target_data.cr +llvm/target_machine.cr +llvm/type.cr +llvm/value.cr +llvm/value_methods.cr +log.cr +log/backend.cr +log/broadcast_backend.cr +log/builder.cr +log/dispatch.cr +log/entry.cr +log/format.cr +log/io_backend.cr +log/json.cr +log/log.cr +log/main.cr +log/memory_backend.cr +log/metadata.cr +log/setup.cr +log/spec.cr +macros.cr +math/libm.cr +math/math.cr +mime.cr +mime/media_type.cr +mime/multipart.cr +mime/multipart/builder.cr +mime/multipart/parser.cr +mime/multipart/state.cr +mutex.cr +named_tuple.cr +nil.cr +number.cr +oauth/access_token.cr +oauth/authorization_header.cr +oauth/consumer.cr +oauth/error.cr +oauth/oauth.cr +oauth/params.cr +oauth/request_token.cr +oauth/signature.cr +oauth2/access_token/access_token.cr +oauth2/access_token/bearer.cr +oauth2/access_token/mac.cr +oauth2/auth_scheme.cr +oauth2/client.cr +oauth2/session.cr +object.cr +openssl.cr +openssl/algorithm.cr +openssl/bio.cr +openssl/cipher.cr +openssl/digest.cr +openssl/error.cr +openssl/hmac.cr +openssl/lib_crypto.cr +openssl/lib_ssl.cr +openssl/md5.cr +openssl/pkcs5.cr +openssl/sha1.cr +openssl/ssl/context.cr +openssl/ssl/defaults.cr +openssl/ssl/hostname_validation.cr +openssl/ssl/server.cr +openssl/ssl/socket.cr +openssl/x509/certificate.cr +openssl/x509/extension.cr +openssl/x509/name.cr +option_parser.cr +path.cr +pointer.cr +prelude.cr +pretty_print.cr +primitives.cr +proc.cr +process.cr +process/executable_path.cr +process/shell.cr +process/status.cr +raise.cr +random.cr +random/isaac.cr +random/pcg32.cr +random/secure.cr +range.cr +range/bsearch.cr +reference.cr +reference_storage.cr +regex.cr +regex/engine.cr +regex/lib_pcre.cr +regex/lib_pcre2.cr +regex/match_data.cr +regex/pcre.cr +regex/pcre2.cr +semantic_version.cr +set.cr +signal.cr +slice.cr +slice/sort.cr +socket.cr +socket/address.cr +socket/addrinfo.cr +socket/common.cr +socket/ip_socket.cr +socket/server.cr +socket/tcp_server.cr +socket/tcp_socket.cr +socket/udp_socket.cr +socket/unix_server.cr +socket/unix_socket.cr +spec.cr +spec/cli.cr +spec/context.cr +spec/dsl.cr +spec/example.cr +spec/example/procsy.cr +spec/example_group/procsy.cr +spec/expectations.cr +spec/filters.cr +spec/formatter.cr +spec/helpers/iterate.cr +spec/helpers/string.cr +spec/item.cr +spec/junit_formatter.cr +spec/methods.cr +spec/source.cr +spec/tap_formatter.cr +static_array.cr +steppable.cr +string.cr +string/builder.cr +string/formatter.cr +string/grapheme.cr +string/grapheme/grapheme.cr +string/grapheme/properties.cr +string/utf16.cr +string_pool.cr +string_scanner.cr +struct.cr +symbol.cr +syscall.cr +syscall/aarch64-linux.cr +syscall/arm-linux.cr +syscall/i386-linux.cr +syscall/x86_64-linux.cr +system.cr +system/group.cr +system/user.cr +system_error.cr +termios.cr +time.cr +time/format.cr +time/format/custom/http_date.cr +time/format/custom/iso_8601.cr +time/format/custom/rfc_2822.cr +time/format/custom/rfc_3339.cr +time/format/custom/yaml_date.cr +time/format/formatter.cr +time/format/parser.cr +time/format/pattern.cr +time/location.cr +time/location/loader.cr +time/span.cr +tuple.cr +unicode/data.cr +unicode/unicode.cr +uri.cr +uri/encoding.cr +uri/json.cr +uri/params.cr +uri/params/from_www_form.cr +uri/params/serializable.cr +uri/params/to_www_form.cr +uri/punycode.cr +uri/uri_parser.cr +uri/yaml.cr +uuid.cr +uuid/json.cr +uuid/yaml.cr +va_list.cr +wait_group.cr +wasi_error.cr +weak_ref.cr +winerror.cr +xml.cr +xml/attribute_type.cr +xml/attributes.cr +xml/builder.cr +xml/error.cr +xml/html_parser_options.cr +xml/libxml2.cr +xml/namespace.cr +xml/node.cr +xml/node/type.cr +xml/node_set.cr +xml/parser_options.cr +xml/reader.cr +xml/reader/type.cr +xml/save_options.cr +xml/xpath_context.cr +yaml.cr +yaml/any.cr +yaml/builder.cr +yaml/enums.cr +yaml/from_yaml.cr +yaml/lib_yaml.cr +yaml/nodes.cr +yaml/nodes/builder.cr +yaml/nodes/nodes.cr +yaml/nodes/parser.cr +yaml/parse_context.cr +yaml/parser.cr +yaml/pull_parser.cr +yaml/schema/core.cr +yaml/schema/core/parser.cr +yaml/schema/fail_safe.cr +yaml/serialization.cr +yaml/to_yaml.cr From ea9f614c87627a1cc1e228ceb22d2bdcfb84b519 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Fri, 29 Nov 2024 16:27:32 -0300 Subject: [PATCH 2/3] Make windows CI happy. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 870f694..91c931a 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "format": "prettier --write ./grammar.js", "lint": "eslint grammar.js", "generate": "tree-sitter generate", - "test": "tree-sitter test;test/real_world/stdlib", + "test": "tree-sitter test && crystal run test/real_world/stdlib", "install": "node-gyp-build", "prebuildify": "prebuildify --napi --strip" }, From 544119dc76d63b17644c4a072881609627f7df6c Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Fri, 29 Nov 2024 17:04:06 -0300 Subject: [PATCH 3/3] Skip stdlib tests on Windows. --- test/real_world/stdlib | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/real_world/stdlib b/test/real_world/stdlib index f131b19..2d74ebc 100755 --- a/test/real_world/stdlib +++ b/test/real_world/stdlib @@ -1,4 +1,7 @@ #!/bin/env crystal + +{% skip_file unless flag?(:linux) %} + require "colorize" PASS = "pass".colorize.green @@ -63,7 +66,9 @@ end printf("%% of success: %.2f%%\n", pass / stdlib_files.size) -File.write("#{__DIR__}/stdlib_failed.txt", failed.join("\n")) if failed != expected_fail abort("List of failed tests difer, check stdlib_failed.txt and stdlib_expected_to_fail.txt".colorize.red) + + File.write("#{__DIR__}/stdlib_failed.txt", failed.join("\n")) + system("diff -u #{__DIR__}/stdlib_failed.txt #{__DIR__}/stdlib_failed.txt") end