Skip to content

Instantly share code, notes, and snippets.

@straight-shoota
Last active January 13, 2024 23:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save straight-shoota/f7c9120b3bdbc067b4877f88def9c51e to your computer and use it in GitHub Desktop.
Save straight-shoota/f7c9120b3bdbc067b4877f88def9c51e to your computer and use it in GitHub Desktop.
Crystal combined `unreachable` tallies

This gist contains a database with combined tallies of methods call counts in https://github.com/crystal-lang/crystal It uses a new compiler feature crystal tool unreachable --tallies, proposed in crystal-lang/crystal#13969 It helps identify unreachable methods across multiple entry points (compiler, compiler_spec and std_spec) .

The following query finds the most interesting entries in this dataset, methods that are never called. Excluded are library methods, deprecated methods and pseudo methods in Crystal::Macros.

SELECT name, file, line, length
FROM combined
WHERE
  count = 0
  AND annotations NOT LIKE '%@[Deprecated'
  AND name NOT LIKE 'Crystal::Macros%'
  AND name NOT LIKE 'Lib%'

Open in Datasette Lite

## Generate database of def tallies
## $ make
SOURCES := $(shell find src -name '*.cr')
SPEC_SOURCES := $(shell find spec -name '*.cr')
CRYSTAL := bin/crystal
SQLITE := sqlite3
SQLITE-UTILS := sqlite-utils
.PHONY: all
all: ## Generates a database of def tallies
all: csv
unreachable-tallies-%.csv: spec/%.cr $(SOURCES) $(SPEC_SOURCES)
$(CRYSTAL) tool unreachable -i src --format=csv --tallies $< > $@
unreachable-tallies-compiler.csv: src/compiler/crystal.cr $(SOURCES)
$(CRYSTAL) tool unreachable -i src --format=csv --tallies $< > $@
unreachable.db: unreachable-tallies-std_spec.csv unreachable-tallies-compiler_spec.csv unreachable-tallies-compiler.csv
rm -f $@
$(SQLITE) $@ < scripts/unreachable.sql
$(SQLITE-UTILS) insert $@ tallies unreachable-tallies-std_spec.csv --csv --convert 'row["entrypoint"] = "spec/std_spec.cr"'
@echo
$(SQLITE-UTILS) insert $@ tallies unreachable-tallies-compiler_spec.csv --csv --convert 'row["entrypoint"] = "spec/compiler_spec.cr"'
@echo
$(SQLITE-UTILS) insert $@ tallies unreachable-tallies-compiler.csv --csv --convert 'row["entrypoint"] = "src/compiler/crystal.cr"'
@echo
.PHONY: csv
csv: unreachable-compiler.csv unreachable-stdlib.csv
unreachable-compiler.csv: unreachable.db
@echo "SELECT name, file, line, length FROM combined \
WHERE count = 0 AND annotations NOT LIKE '%@[Deprecated' \
AND name NOT LIKE 'Crystal::Macros%' AND name NOT LIKE 'Lib%' \
AND file LIKE 'src/compiler/%' \
ORDER BY file" | $(SQLITE) --csv --header $< > $@
unreachable-stdlib.csv: unreachable.db
@echo "SELECT name, file, line, length FROM combined \
WHERE count = 0 AND annotations NOT LIKE '%@[Deprecated' \
AND name NOT LIKE 'Crystal::Macros%' AND name NOT LIKE 'Lib%' \
AND file NOT LIKE 'src/compiler/%' \
ORDER BY file" | $(SQLITE) --csv --header $< > $@
.PHONY: clean
clean:
rm -f unreachable-*.csv unreachable.db
.PHONY: help
help: ## Show this help
@echo
@printf '\033[34mtargets:\033[0m\n'
@grep -hE '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) |\
sort |\
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
@echo
@printf '\033[34moptional variables:\033[0m\n'
@grep -hE '^[a-zA-Z_-]+ \?=.*?## .*$$' $(MAKEFILE_LIST) |\
sort |\
awk 'BEGIN {FS = " \\?=.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
@echo
@printf '\033[34mrecipes:\033[0m\n'
@grep -hE '^##.*$$' $(MAKEFILE_LIST) |\
awk 'BEGIN {FS = "## "}; /^## [a-zA-Z_-]/ {printf " \033[36m%s\033[0m\n", $$2}; /^## / {printf " %s\n", $$2}'
name file line length
Crystal::CodeGenVisitor#debug_codegen_log src/compiler/crystal/codegen/codegen.cr 2013 3
Crystal::CrystalLLVMBuilder#printf src/compiler/crystal/codegen/crystal_llvm_builder.cr 41 9
Crystal::CrystalLLVMBuilder#to_unsafe src/compiler/crystal/codegen/crystal_llvm_builder.cr 72 3
Crystal::LLVMBuilderHelper#gep src/compiler/crystal/codegen/llvm_builder_helper.cr 84 3
Crystal::LLVMBuilderHelper#gep src/compiler/crystal/codegen/llvm_builder_helper.cr 88 3
Crystal::LLVMBuilderHelper#gep src/compiler/crystal/codegen/llvm_builder_helper.cr 92 3
Crystal::LLVMBuilderHelper#gep src/compiler/crystal/codegen/llvm_builder_helper.cr 96 3
Crystal::LLVMBuilderHelper#not_equal? src/compiler/crystal/codegen/llvm_builder_helper.cr 72 3
Crystal::LLVMBuilderHelper#ret src/compiler/crystal/codegen/llvm_builder_helper.cr 152 3
Crystal::Codegen::Target#musl? src/compiler/crystal/codegen/target.cr 147 3
Crystal::LLVMTyper#union_value_type src/compiler/crystal/codegen/unions.cr 50 3
Crystal::Compiler#run_dsymutil src/compiler/crystal/compiler.cr 339 8
Crystal::Compiler::CompilationUnit#bc_name_new src/compiler/crystal/compiler.cr 874 3
Crystal::CodeError#to_s_with_source src/compiler/crystal/exception.cr 43 5
Crystal::FFI::CallInterface#inspect src/compiler/crystal/ffi/call_interface.cr 67 5
Crystal::FFI::Closure#cast src/compiler/crystal/ffi/closure.cr 17 3
Crystal::LibFFI#closure_free src/compiler/crystal/ffi/lib_ffi.cr 168 1
Crystal::LibFFI::Cif#initialize src/compiler/crystal/ffi/lib_ffi.cr 95
Crystal::FFI::Type#inspect src/compiler/crystal/ffi/type.cr 78 5
Crystal::Repl::Compiler#append src/compiler/crystal/interpreter/compiler.cr 3289 3
Crystal::Repl::Compiler#append src/compiler/crystal/interpreter/compiler.cr 3315 5
Crystal::Repl::Compiler#append src/compiler/crystal/interpreter/compiler.cr 3327 3
Crystal::Repl::Compiler#append src/compiler/crystal/interpreter/compiler.cr 3331 5
Crystal::Repl::Compiler#put_def src/compiler/crystal/interpreter/compiler.cr 3243 2
Crystal::Repl::Interpreter#current_local_vars src/compiler/crystal/interpreter/interpreter.cr 512 7
Crystal::Repl::LocalVars#names src/compiler/crystal/interpreter/local_vars.cr 77 3
Crystal::Loader#close_all src/compiler/crystal/loader.cr 97 2
Crystal::Loader#load_library src/compiler/crystal/loader.cr 80 3
Crystal::NoReturnMacroType#to_s src/compiler/crystal/macros/types.cr 181 3
Crystal::NonGenericMacroType#to_s src/compiler/crystal/macros/types.cr 173 3
Crystal::Program#ast_node src/compiler/crystal/macros/types.cr 146 3
Crystal::UnionMacroType#to_s src/compiler/crystal/macros/types.cr 194 5
Crystal::AbstractDefChecker#this_warning_will_become_an_error src/compiler/crystal/semantic/abstract_def_checker.cr 399 3
Crystal::MetaVar#local_vars? src/compiler/crystal/semantic/ast.cr 490 3
Crystal::CleanupTransformer#simple_constant? src/compiler/crystal/semantic/cleanup_transformer.cr 1108 3
Crystal::CleanupTransformer#simple_constant? src/compiler/crystal/semantic/cleanup_transformer.cr 1112 31
Crystal::AndTypeFilter#not src/compiler/crystal/semantic/filters.cr 90 4
Crystal::NotFilter#not src/compiler/crystal/semantic/filters.cr 215 3
Crystal::OrTypeFilter#not src/compiler/crystal/semantic/filters.cr 119 4
Crystal::MainVisitor#first_time_accessing_meta_type_var? src/compiler/crystal/semantic/main_visitor.cr 606 12
Crystal::MatchContext#self_type src/compiler/crystal/semantic/match.cr 96 3
Crystal::Matches#[] src/compiler/crystal/semantic/match.cr 168 3
Crystal::Type#lookup_similar_instance_var_name src/compiler/crystal/semantic/suggestions.cr 76 3
Crystal::TypeDeclarationProcessor#check_non_nilable_for_generic_module src/compiler/crystal/semantic/type_declaration_processor.cr 332 27
Crystal::TypeDeclarationProcessor#has_syntax_nil? src/compiler/crystal/semantic/type_declaration_processor.cr 360 11
Crystal::TypeDeclarationProcessor#raise_not_initialized_in_all_initialize src/compiler/crystal/semantic/type_declaration_processor.cr 762 3
Crystal::Arg#clone_without_location src/compiler/crystal/syntax/ast.cr 1029 3
Crystal::Call#clone_without_location src/compiler/crystal/syntax/ast.cr 701 8
Crystal::Call.global src/compiler/crystal/syntax/ast.cr 680 3
Crystal::Def#clone_without_location src/compiler/crystal/syntax/ast.cr 1110 11
Crystal::If#clone_without_location src/compiler/crystal/syntax/ast.cr 774 3
Crystal::NumberLiteral#has_sign? src/compiler/crystal/syntax/ast.cr 318 3
Crystal::Lexer#string src/compiler/crystal/syntax/lexer.cr 2810 3
Crystal::ToSVisitor#to_s src/compiler/crystal/syntax/to_s.cr 1571 3
Crystal::ToSVisitor#to_s src/compiler/crystal/syntax/to_s.cr 1575 3
Crystal::ToSVisitor#visit src/compiler/crystal/syntax/to_s.cr 787 35
Crystal::Doc::Type#full_name_without_type_vars src/compiler/crystal/tools/doc/type.cr 342 3
Crystal::Doc::Type#lookup_macro src/compiler/crystal/tools/doc/type.cr 439 3
Crystal::Doc::Type#to_s src/compiler/crystal/tools/doc/type.cr 468 4
Crystal::Formatter#indent src/compiler/crystal/tools/formatter.cr 4799 3
Crystal::Formatter#write_indent src/compiler/crystal/tools/formatter.cr 4840 4
Crystal::Formatter#write_keyword src/compiler/crystal/tools/formatter.cr 5110 4
Crystal::Playground::Agent#initialize src/compiler/crystal/tools/playground/agent.cr 7 3
Crystal::ClassVarContainer#class_vars? src/compiler/crystal/types.cr 1014 3
Crystal::GenericType#add_inherited src/compiler/crystal/types.cr 1658 4
Crystal::NamedTupleInstanceType#var src/compiler/crystal/types.cr 2609 3
Crystal::TupleInstanceType#var src/compiler/crystal/types.cr 2477 3
Crystal::Type#private= src/compiler/crystal/types.cr 721 2
Crystal::TypeDefType#type_def_type? src/compiler/crystal/types.cr 2709 3
Crystal::VirtualType#name src/compiler/crystal/types.cr 3457 3
Crystal::WarningCollection#exclude_lib_path? src/compiler/crystal/warnings.cr 20 3
name file line length
JSON::PullParser#assert spec/std/json/pull_parser_spec.cr 5 4
JSON::PullParser#assert_array spec/std/json/pull_parser_spec.cr 72 3
JSON::PullParser#assert_error spec/std/json/pull_parser_spec.cr 88 5
JSON::PullParser#assert_object spec/std/json/pull_parser_spec.cr 84 3
JSONAttrEmptyClassWithUnmapped#initialize spec/std/json/serializable_spec.cr 29 1
JSONAttrModuleTest#initialize spec/std/json/serializable_spec.cr 326 1
JSONAttrModuleTest2#initialize spec/std/json/serializable_spec.cr 336 1
top-level make_tu spec/std/random_spec.cr 5 3
top-level parse_time spec/std/time/format_spec.cr 8 3
YAMLAttrEmptyClassWithUnmapped#initialize spec/std/yaml/serializable_spec.cr 25 1
YAMLAttrModuleTest#initialize spec/std/yaml/serializable_spec.cr 317 1
YAMLAttrModuleTest2#initialize spec/std/yaml/serializable_spec.cr 327 1
String#call spec/support/syntax.cr 69 3
String#float64 spec/support/syntax.cr 105 3
Array(T)#[]= src/array.cr 465 3
Array(T)#[]= src/array.cr 530 3
Array(T)#delete_at src/array.cr 865 3
Array(T)#fill src/array.cr 904 3
Array(T)#fill src/array.cr 910 3
Array(T)#fill src/array.cr 928 3
Array(T)#fill src/array.cr 948 3
Array(T)#fill src/array.cr 954 3
Array(T)#fill src/array.cr 979 3
Array(T)#to_unsafe_slice src/array.cr 2159 4
Array(T).additive_identity src/array.cr 332 3
Array::FlattenHelper(T)#initialize src/array.cr 2183
Atomic(T)#lazy_get src/atomic.cr 225 3
Benchmark#ips src/benchmark.cr 108 11
Benchmark#realtime src/benchmark.cr 138 3
BigDecimal#% src/big/big_decimal.cr 216 3
BigDecimal#clone src/big/big_decimal.cr 752 3
BigDecimal#div src/big/big_decimal.cr 315 3
BigDecimal#to_big_d src/big/big_decimal.cr 574 3
BigDecimal#to_big_f src/big/big_decimal.cr 570 3
BigDecimal#to_f32! src/big/big_decimal.cr 736 3
BigDecimal#to_i16! src/big/big_decimal.cr 620 3
BigDecimal#to_i64! src/big/big_decimal.cr 632 3
BigDecimal#to_i8! src/big/big_decimal.cr 614 3
BigDecimal#to_u16! src/big/big_decimal.cr 691 3
BigDecimal#to_u64! src/big/big_decimal.cr 705 3
BigDecimal#to_u8! src/big/big_decimal.cr 684 3
BigFloat#<=> src/big/big_float.cr 113 3
BigFloat#initialize src/big/big_float.cr 14 3
BigFloat#to_i16! src/big/big_float.cr 257 3
BigFloat#to_i8! src/big/big_float.cr 253 3
BigFloat#to_u16! src/big/big_float.cr 298 3
BigFloat#to_u8! src/big/big_float.cr 294 3
Crystal::Hasher#float src/big/big_float.cr 492 15
Number#+ src/big/big_float.cr 418 3
Number#- src/big/big_float.cr 422 3
BigInt#to_big_r src/big/big_int.cr 770 3
BigInt#to_f! src/big/big_int.cr 746 3
BigInt#to_f32! src/big/big_int.cr 750 3
BigInt#to_f64! src/big/big_int.cr 754 3
BigInt#unsafe_truncated_divmod src/big/big_int.cr 347 11
Crystal::Hasher#int src/big/big_int.cr 967 11
Float#to_big_i src/big/big_int.cr 869 3
BigRational#inspect src/big/big_rational.cr 316 3
BigRational#to_s src/big/big_rational.cr 307 4
Crystal::Hasher#float src/big/big_rational.cr 419 11
Int#/ src/big/big_rational.cr 367 3
BigDecimal#to_json_object_key src/big/json.cr 85 3
BigFloat#to_json_object_key src/big/json.cr 58 3
BitArray#hash src/bit_array.cr 631 5
Colorize::Object(T)#on src/colorize.cr 412 3
Colorize::ObjectExtensions#colorize src/colorize.cr 192 3
Complex#== src/complex.cr 44 3
Complex#to_c src/complex.cr 49 3
Complex#to_f src/complex.cr 63 3
Complex#to_i src/complex.cr 72 3
Compress::Deflate::Reader.gzip src/compress/deflate/reader.cr 43 3
Compress::Deflate::Reader.gzip src/compress/deflate/reader.cr 49 4
Compress::Gzip::Reader.new src/compress/gzip/reader.cr 62 3
Compress::Gzip::Reader.open src/compress/gzip/reader.cr 75 4
Compress::Gzip::Writer.new src/compress/gzip/writer.cr 47 3
Compress::Gzip::Writer.open src/compress/gzip/writer.cr 60 4
Compress::Zip::Reader#each_entry src/compress/zip/reader.cr 97 5
Compress::Zlib::Reader.open src/compress/zlib/reader.cr 25 4
Compress::Zlib::Writer.new src/compress/zlib/writer.cr 23 3
Compress::Zlib::Writer.open src/compress/zlib/writer.cr 29 4
Compress::Zlib::Writer.open src/compress/zlib/writer.cr 36 4
CRAP::Parser#react src/crap.cr 129 6
Crypto::Bcrypt::Password#inspect src/crypto/bcrypt/password.cr 83 3
Crypto::Bcrypt::Password#to_s src/crypto/bcrypt/password.cr 79 3
Crystal::DWARF::AT#unknown? src/crystal/dwarf/abbrev.cr 163 3
Crystal::DWARF::Abbrev#children? src/crystal/dwarf/abbrev.cr 236 3
Crystal::ELF::SectionHeader::Flags#short src/crystal/elf.cr 107 10
Crystal::FiberChannel#initialize src/crystal/fiber_channel.cr 11 3
Crystal::FiberChannel#receive src/crystal/fiber_channel.cr 19 4
Crystal::FiberChannel#send src/crystal/fiber_channel.cr 15 3
Crystal::Hasher#float src/crystal/hasher.cr 214 7
Crystal::Hasher#float_normalize_reference src/crystal/hasher.cr 139 18
Crystal::Hasher#int src/crystal/hasher.cr 126 3
top-level main src/crystal/main.cr 140 3
top-level __crystal_once src/crystal/once.cr 49 3
top-level __crystal_once_init src/crystal/once.cr 44 3
Crystal::Scheduler#enqueue src/crystal/scheduler.cr 92 3
Crystal::Scheduler#set_current_thread src/crystal/scheduler.cr 133 3
Crystal::Scheduler#yield src/crystal/scheduler.cr 184 4
Crystal::Scheduler.yield src/crystal/scheduler.cr 65 3
Crystal::SmallDeque(T, N)#unsafe_fetch src/crystal/small_deque.cr 13 3
Crystal::SpinLock#unsync src/crystal/spin_lock.cr 38 8
Thread.unsafe_each src/crystal/system/thread.cr 52 3
Crystal::System::Dir.rewind src/crystal/system/unix/dir.cr 34 3
Crystal::LibEvent::Event.callback src/crystal/system/unix/event_libevent.cr 14 3
Crystal::LibEvent::Event::Base#loop_break src/crystal/system/unix/event_libevent.cr 70 3
Crystal::LibEvent::Event::Base#new_dns_base src/crystal/system/unix/event_libevent.cr 74 3
Crystal::LibEvent::Event::Base#run_loop src/crystal/system/unix/event_libevent.cr 62 3
Crystal::LibEvent::Event::DnsBase#getaddrinfo src/crystal/system/unix/event_libevent.cr 83 4
Crystal::LibEvent::Event::DnsBase#initialize src/crystal/system/unix/event_libevent.cr 80 2
Crystal::LibEvent::Event::DnsBase::GetAddrInfoRequest#cancel src/crystal/system/unix/event_libevent.cr 92 3
Crystal::LibEvent::Event::DnsBase::GetAddrInfoRequest#initialize src/crystal/system/unix/event_libevent.cr 89 2
Crystal::System::FileDescriptor#system_blocking? src/crystal/system/unix/file_descriptor.cr 34 4
Crystal::System::FileInfo#system_flags src/crystal/system/unix/file_info.cr 34 7
Crystal::System::FileInfo#system_group_id src/crystal/system/unix/file_info.cr 54 3
Crystal::System::FileInfo#system_owner_id src/crystal/system/unix/file_info.cr 50 3
Crystal::System::Process.chroot src/crystal/system/unix/process.cr 286 13
Crystal::System::Process.start_interrupt_loop src/crystal/system/unix/process.cr 73 3
Crystal::System::Thread#to_unsafe src/crystal/system/unix/pthread.cr 7 3
Crystal::System::Sigset#to_unsafe src/crystal/system/unix/signal.cr 193 3
Crystal::System::Socket#system_close_on_exec= src/crystal/system/unix/socket.cr 238 4
Crystal::System::Socket#system_close_on_exec? src/crystal/system/unix/socket.cr 233 4
Crystal::System::Socket#system_close_read src/crystal/system/unix/socket.cr 111 5
Crystal::System::Socket#system_close_write src/crystal/system/unix/socket.cr 117 5
Crystal::System::Socket#system_keepalive= src/crystal/system/unix/socket.cr 175 3
Crystal::System::Socket#system_keepalive? src/crystal/system/unix/socket.cr 171 3
Crystal::System::Socket#system_linger src/crystal/system/unix/socket.cr 179 5
Crystal::System::Time.android_tzdata_sources src/crystal/system/unix/time.cr 81 3
Crystal::ThreadLocalValue(T)#set src/crystal/thread_local_value.cr 21 5
CSV#[]? src/csv.cr 261 3
CSV#[]? src/csv.cr 275 3
CSV::Lexer::IOBased#consume_string src/csv/lexer/io_based.cr 41 3
Deque(T)#+ src/deque.cr 124 3
Deque(T)#concat_indexable src/deque.cr 230 8
Deque(T).additive_identity src/deque.cr 131 3
Digest#hexfinal src/digest/digest.cr 196 9
Dir#inspect src/dir.cr 328 3
Dir#pretty_print src/dir.cr 332 3
Dir#rewind src/dir.cr 162 4
Dir.each src/dir.cr 217 7
Dir.open src/dir.cr 35 3
Dir.[] src/dir/glob.cr 23 3
Dir.[] src/dir/glob.cr 34 3
Dir.glob src/dir/glob.cr 74 7
Dir.glob src/dir/glob.cr 107 5
Dir.glob src/dir/glob.cr 120 5
ECR#process_file src/ecr/processor.cr 9 3
Enum#^ src/enum.cr 313 3
Enum#value src/enum.cr 124 3
Enumerable(T)#index src/enumerable.cr 736 3
Enumerable(T)#index! src/enumerable.cr 747 3
Enumerable(T)#index! src/enumerable.cr 758 3
Enumerable(T)#skip src/enumerable.cr 1700 9
Enumerable::Reflect(X)#initialize src/enumerable.cr 2263
ENV.inspect src/env.cr 121 12
ENV.pretty_print src/env.cr 134 12
TypeCastError#initialize src/exception.cr 101 3
File#touch src/file.cr 975 3
File::Info#flags src/file/info.cr 101 3
File::Info#group_id src/file/info.cr 116 3
File::Info#owner_id src/file/info.cr 111 3
File::Info#symlink? src/file/info.cr 142 3
File::Type#device? src/file/info.cr 26 3
FileUtils#rm_r src/file_utils.cr 411 5
Float::Printer::DiyFP#new src/float/printer/diy_fp.cr 56 3
top-level __crystal_malloc src/gc.cr 2 3
top-level __crystal_malloc64 src/gc.cr 17 9
top-level __crystal_malloc_atomic src/gc.cr 7 3
top-level __crystal_malloc_atomic64 src/gc.cr 28 9
top-level __crystal_realloc src/gc.cr 12 3
top-level __crystal_realloc64 src/gc.cr 39 9
GC.add_finalizer src/gc/boehm.cr 192 3
GC.add_root src/gc/boehm.cr 203 4
GC.disable src/gc/boehm.cr 180 3
GC.lock_read src/gc/boehm.cr 309 5
Hash(K, V)#first_value? src/hash.cr 1803 3
Hash(K, V)#last_key? src/hash.cr 1821 3
Hash(K, V)#last_value? src/hash.cr 1839 3
HTTP::Client#connect_timeout= src/http/client.cr 349 3
HTTP::Client#dns_timeout= src/http/client.cr 368 3
HTTP::Client#dns_timeout= src/http/client.cr 387 3
HTTP::Client#write_timeout= src/http/client.cr 315 3
HTTP.serialize_headers src/http/common.cr 293 4
HTTP::Cookie#to_cookie_header src/http/cookie.cr 126 5
HTTP::Cookies#fill_from_headers src/http/cookie.cr 295 5
HTTP::Cookies.from_headers src/http/cookie.cr 288 3
HTTP::Headers#inspect src/http/headers.cr 294 3
HTTP::Request#content_length src/http/request.cr 119 3
HTTP::Server#listen src/http/server.cr 432 5
HTTP::Server#listen src/http/server.cr 442 5
HTTP::StaticFileHandler.new src/http/server/handlers/static_file_handler.cr 40 3
HTTP::WebSocket#on_ping src/http/web_socket.cr 55 2
HTTP::WebSocket#on_pong src/http/web_socket.cr 61 2
HTTP::WebSocket#ping src/http/web_socket.cr 89 4
HTTP::WebSocket::Protocol#ping src/http/web_socket/protocol.cr 245 7
Number#humanize src/humanize.cr 279 5
Indexable(T)#equals? src/indexable.cr 739 7
Indexable(T)#rindex! src/indexable.cr 901 3
Indexable::Mutable(T)#sort! src/indexable/mutable.cr 324 7
Indexable::Mutable(T)#sort! src/indexable/mutable.cr 375 11
Indexable::Mutable(T)#sort_by! src/indexable/mutable.cr 438 11
Indexable::Mutable(T)#unstable_sort! src/indexable/mutable.cr 347 7
Indexable::Mutable(T)#unstable_sort! src/indexable/mutable.cr 407 11
Indexable::Mutable(T)#unstable_sort_by! src/indexable/mutable.cr 468 11
INI::ParseException#location src/ini.cr 12 3
Int#modulo src/int.cr 606 3
Int#round src/int.cr 251 3
Intrinsics.read_cycle_counter src/intrinsics.cr 193 3
IO#tty? src/io.cr 946 3
IO#write_utf8 src/io.cr 494 3
IO::ByteFormat#encode src/io/byte_format.cr 84 3
IO::ByteFormat#encode src/io/byte_format.cr 100 3
IO::Evented#read_timeout src/io/evented.cr 19 3
IO::Evented#write_timeout src/io/evented.cr 35 3
IO::FileDescriptor#blocking src/io/file_descriptor.cr 43 3
IO::FileDescriptor.fcntl src/io/file_descriptor.cr 59 3
IO::Hexdump#read src/io/hexdump.cr 44 3
IO::Hexdump#write src/io/hexdump.cr 49 3
Iterable(T)#each_cons_pair src/iterable.cr 50 3
Hash(K, V)#== src/json/any.cr 354 3
JSON::Any#to_s src/json/any.cr 287 3
JSON::Builder#scalar src/json/builder.cr 258 3
JSON::Builder#scalar src/json/builder.cr 263 3
Deque(T).from_json src/json/from_json.cr 61 6
JSON::PullParser#column_number src/json/pull_parser.cr 585 3
JSON::PullParser#line_number src/json/pull_parser.cr 580 3
Path#to_json_object_key src/json/to_json.cr 78 3
Symbol#to_json src/json/to_json.cr 84 3
top-level gets src/kernel.cr 116 3
top-level p src/kernel.cr 435 6
top-level p src/kernel.cr 450 3
top-level pp src/kernel.cr 468 6
top-level pp src/kernel.cr 483 3
top-level read_line src/kernel.cr 123 3
LLVM.multithreaded? src/llvm.cr 87 3
LLVM.start_multithreaded src/llvm.cr 72 7
LLVM.stop_multithreaded src/llvm.cr 81 5
LLVM::BasicBlockCollection#[] src/llvm/basic_block_collection.cr 36 3
LLVM::BasicBlockCollection#[]? src/llvm/basic_block_collection.cr 32 3
LLVM::Builder#call src/llvm/builder.cr 53 5
LLVM::Builder#call src/llvm/builder.cr 59 6
LLVM::Builder#call src/llvm/builder.cr 67 7
LLVM::Builder#call src/llvm/builder.cr 75 8
LLVM::Builder#call src/llvm/builder.cr 85 6
LLVM::Builder#call src/llvm/builder.cr 108 3
LLVM::Builder#invoke src/llvm/builder.cr 290 5
LLVM::Builder#invoke src/llvm/builder.cr 296 6
LLVM::Builder#load src/llvm/builder.cr 126 5
LLVM::Builder#load_volatile src/llvm/builder.cr 143 3
LLVM::Builder#load_volatile src/llvm/builder.cr 147 3
LLVM::Builder#set_metadata src/llvm/builder.cr 340 3
LLVM::Builder#store_volatile src/llvm/builder.cr 139 3
LLVM::Context#== src/llvm/context.cr 118 3
LLVM::Context#md_node src/llvm/context.cr 106 3
LLVM::Context#md_string src/llvm/context.cr 102 3
LLVM::Context#parse_ir src/llvm/context.cr 110 7
LLVM::DIBuilder#create_array_type src/llvm/di_builder.cr 189 3
LLVM::DIBuilder#create_compile_unit src/llvm/di_builder.cr 35 12
LLVM::DIBuilder#create_enumeration_type src/llvm/di_builder.cr 174 3
LLVM::DIBuilder#create_struct_type src/llvm/di_builder.cr 179 3
LLVM::DIBuilder#create_subroutine_type src/llvm/di_builder.cr 169 3
LLVM::DIBuilder#create_union_type src/llvm/di_builder.cr 184 3
LLVM::DIBuilder#extract_metadata_array src/llvm/di_builder.cr 193 7
LLVM::DIBuilder#get_or_create_array src/llvm/di_builder.cr 97 3
LLVM::DIBuilder#get_or_create_type_array src/llvm/di_builder.cr 52 3
LLVM::DIBuilder#insert_declare_at_end src/llvm/di_builder.cr 163 4
LLVM::Attribute.kind_for src/llvm/enums.cr 152 3
LLVM::Metadata#initialize src/llvm/enums.cr 477
LLVM::Function#call_convention src/llvm/function.cr 14 3
LLVM::Function#function_type src/llvm/function.cr 56 3
LLVM::Function#return_type src/llvm/function.cr 61 3
LLVM::Function#varargs? src/llvm/function.cr 66 3
LLVM::FunctionCollection#[] src/llvm/function_collection.cr 27 4
LLVM::FunctionCollection#add src/llvm/function_collection.cr 5 4
LLVM::FunctionCollection#add src/llvm/function_collection.cr 10 5
LLVM::FunctionCollection#each src/llvm/function_collection.cr 37 7
LLVM::FunctionPassManager#finalize src/llvm/function_pass_manager.cr 33 3
LLVM::FunctionPassManager#initialize src/llvm/function_pass_manager.cr 5 2
LLVM::FunctionPassManager#run src/llvm/function_pass_manager.cr 8 9
LLVM::FunctionPassManager#run src/llvm/function_pass_manager.cr 18 10
LLVM::FunctionPassManager#to_unsafe src/llvm/function_pass_manager.cr 29 3
LLVM::FunctionPassManager::Runner#initialize src/llvm/function_pass_manager.cr 43 2
LLVM::FunctionPassManager::Runner#run src/llvm/function_pass_manager.cr 46 3
LLVM::JITCompiler#get_pointer_to_global src/llvm/jit_compiler.cr 30 3
LLVM::JITCompiler#run_function src/llvm/jit_compiler.cr 20 4
LLVM::MemoryBuffer#to_unsafe src/llvm/memory_buffer.cr 33 3
LLVM::MemoryBuffer.from_file src/llvm/memory_buffer.cr 2 7
LLVM::Module#name= src/llvm/module.cr 18 3
LLVM::Module#new_function_pass_manager src/llvm/module.cr 90 3
LLVM::Module#write_bitcode_to_fd src/llvm/module.cr 65 3
LLVM::Module#write_bitcode_to_file src/llvm/module.cr 52 3
LLVM::Module#write_bitcode_with_summary_to_file src/llvm/module.cr 57 3
LLVM::ModulePassManager#finalize src/llvm/module_pass_manager.cr 17 3
LLVM::ModulePassManager#initialize src/llvm/module_pass_manager.cr 5 3
LLVM::ModulePassManager#run src/llvm/module_pass_manager.cr 9 3
LLVM::ModulePassManager#to_unsafe src/llvm/module_pass_manager.cr 13 3
LLVM::ParameterCollection#types src/llvm/parameter_collection.cr 23 3
LLVM::PassManagerBuilder#disable_simplify_lib_calls= src/llvm/pass_manager_builder.cr 21 3
LLVM::PassManagerBuilder#disable_unroll_loops= src/llvm/pass_manager_builder.cr 17 3
LLVM::PassManagerBuilder#finalize src/llvm/pass_manager_builder.cr 41 3
LLVM::PassManagerBuilder#initialize src/llvm/pass_manager_builder.cr 5 3
LLVM::PassManagerBuilder#opt_level= src/llvm/pass_manager_builder.cr 9 3
LLVM::PassManagerBuilder#populate src/llvm/pass_manager_builder.cr 29 3
LLVM::PassManagerBuilder#populate src/llvm/pass_manager_builder.cr 33 3
LLVM::PassManagerBuilder#size_level= src/llvm/pass_manager_builder.cr 13 3
LLVM::PassManagerBuilder#to_unsafe src/llvm/pass_manager_builder.cr 37 3
LLVM::PassManagerBuilder#use_inliner_with_threshold= src/llvm/pass_manager_builder.cr 25 3
LLVM::PassRegistry#initialize src/llvm/pass_registry.cr 9 2
LLVM::PassRegistry#initialize_all src/llvm/pass_registry.cr 20 5
LLVM::PassRegistry#to_unsafe src/llvm/pass_registry.cr 26 3
LLVM::PassRegistry.instance src/llvm/pass_registry.cr 5 3
LLVM::PhiTable#size src/llvm/phi_table.cr 19 3
LLVM::Target#description src/llvm/target.cr 32 3
LLVM::Target#inspect src/llvm/target.cr 52 3
LLVM::Target#name src/llvm/target.cr 28 3
LLVM::Target#to_s src/llvm/target.cr 44 7
LLVM::Target.each src/llvm/target.cr 2 7
LLVM::Target.first src/llvm/target.cr 10 3
LLVM::Target.first? src/llvm/target.cr 14 4
LLVM::TargetData#to_data_layout_string src/llvm/target_data.cr 32 3
LLVM::TargetMachine#target src/llvm/target_machine.cr 5 4
LLVM::Type#undef src/llvm/type.cr 40 3
LLVM::ValueMethods#call_convention src/llvm/value_methods.cr 70 3
LLVM::ValueMethods#const_int_get_zext_value src/llvm/value_methods.cr 107 3
LLVM::ValueMethods#dump src/llvm/value_methods.cr 115 3
LLVM::ValueMethods#global_constant? src/llvm/value_methods.cr 78 3
LLVM::ValueMethods#kind src/llvm/value_methods.cr 14 3
LLVM::ValueMethods#linkage src/llvm/value_methods.cr 58 3
LLVM::ValueMethods#thread_local? src/llvm/value_methods.cr 50 3
Log::Backend#initialize src/log/backend.cr 11 2
Log::StaticFormatter#pid src/log/format.cr 147 3
Log#context= src/log/main.cr 80 3
Log#with_context src/log/main.cr 125 5
Log::Metadata#== src/log/metadata.cr 182 3
Log::Metadata#hash src/log/metadata.cr 186 3
Log.setup src/log/setup.cr 9 5
Math#acos src/math/math.cr 86 3
Math#acosh src/math/math.cr 191 3
Math#asin src/math/math.cr 71 3
Math#asinh src/math/math.cr 176 3
Math#atan src/math/math.cr 101 3
Math#atanh src/math/math.cr 206 3
Math#besselj src/math/math.cr 459 3
Math#besselj0 src/math/math.cr 478 3
Math#besselj1 src/math/math.cr 497 3
Math#bessely src/math/math.cr 516 3
Math#bessely0 src/math/math.cr 535 3
Math#bessely1 src/math/math.cr 554 3
Math#cbrt src/math/math.cr 365 3
Math#copysign src/math/math.cr 707 3
Math#cos src/math/math.cr 41 3
Math#cosh src/math/math.cr 146 3
Math#erf src/math/math.cr 380 3
Math#erfc src/math/math.cr 395 3
Math#exp src/math/math.cr 221 3
Math#exp2 src/math/math.cr 251 3
Math#expm1 src/math/math.cr 236 3
Math#fma src/math/math.cr 595 3
Math#frexp src/math/math.cr 702 3
Math#hypot src/math/math.cr 574 3
Math#ilogb src/math/math.cr 610 3
Math#ldexp src/math/math.cr 647 3
Math#log1p src/math/math.cr 281 3
Math#logb src/math/math.cr 627 3
Math#max src/math/math.cr 722 3
Math#min src/math/math.cr 737 3
Math#scalbln src/math/math.cr 669 3
Math#scalbn src/math/math.cr 664 3
Math#sin src/math/math.cr 26 3
Math#sinh src/math/math.cr 131 3
Math#tan src/math/math.cr 56 3
Math#tanh src/math/math.cr 161 3
MIME::Multipart.build src/mime/multipart.cr 133 5
NamedTuple(T)#first_key_internal src/named_tuple.cr 683 4
NamedTuple(T)#first_value_internal src/named_tuple.cr 688 4
Nil#crystal_type_id src/nil.cr 53 3
OAuth::AccessToken#authenticate src/oauth/access_token.cr 8 3
OAuth::AccessToken#to_json src/oauth/access_token.cr 58 9
OAuth::AccessToken.new src/oauth/access_token.cr 34 23
OAuth::AuthorizationHeader#to_s src/oauth/authorization_header.cr 20 3
OAuth::Consumer#handle_response src/oauth/consumer.cr 158 8
OAuth::Error#initialize src/oauth/error.cr 2 3
Object#!~ src/object.cr 18 3
OpenSSL::Cipher#padding= src/openssl/cipher.cr 119 7
OpenSSL::Cipher#random_iv src/openssl/cipher.cr 85 4
OpenSSL::Cipher#random_key src/openssl/cipher.cr 79 4
OpenSSL::Cipher#reset src/openssl/cipher.cr 91 3
OpenSSL::MD5.hash src/openssl/md5.cr 10 3
OpenSSL::MD5.hash src/openssl/md5.cr 14 5
OpenSSL::SSL::Context#add_x509_verify_flags src/openssl/ssl/context.cr 489 9
OpenSSL::SSL::Context#default_verify_param= src/openssl/ssl/context.cr 476 10
OpenSSL::SSL::Context#finalize src/openssl/ssl/context.cr 259 3
OpenSSL::SSL::Context::Client#set_cert_verify_callback src/openssl/ssl/context.cr 89 15
OpenSSL::SSL::Socket#read_timeout src/openssl/ssl/socket.cr 232 8
OpenSSL::SSL::Socket#read_timeout= src/openssl/ssl/socket.cr 241 8
OpenSSL::SSL::Socket#write_timeout src/openssl/ssl/socket.cr 250 8
OpenSSL::SSL::Socket#write_timeout= src/openssl/ssl/socket.cr 259 8
OpenSSL::SSL::Socket::Server.open src/openssl/ssl/socket.cr 81 9
OpenSSL::X509::Certificate#digest src/openssl/x509/certificate.cr 98 9
OpenSSL::X509::Certificate#dup src/openssl/x509/certificate.cr 23 3
OpenSSL::X509::Certificate.from_der? src/openssl/x509/certificate.cr 35 8
OpenSSL::X509::Extension#dup src/openssl/x509/extension.cr 32 3
OpenSSL::X509::Extension#nid src/openssl/x509/extension.cr 40 4
OpenSSL::X509::Name#dup src/openssl/x509/name.cr 38 3
Path#hash src/path.cr 1105 8
Path#sibling src/path.cr 949 7
Path#to_uri src/path.cr 1357 4
Path.[] src/path.cr 123 3
Path.posix src/path.cr 143 3
Path.windows src/path.cr 163 3
Pointer(T)#move_from src/pointer.cr 210 7
Pointer::Appender(T)#pointer src/pointer.cr 52 3
Pointer(T)#initialize src/primitives.cr 135
Proc(*T, R)#=== src/proc.cr 195 3
Proc(*T, R)#=== src/proc.cr 199 3
Process.chroot src/process.cr 418 3
Process.fork src/process.cr 111 7
top-level system src/process.cr 447 5
Process::Status#exit_status src/process/status.cr 88 3
top-level __crystal_raise_overflow src/raise.cr 272 3
top-level __crystal_raise_string src/raise.cr 267 3
Random::ISAAC#new_seed src/random/isaac.cr 27 4
Range(B, E)#covers? src/range.cr 289 3
Regex#match src/regex.cr 581 3
Regex#matches? src/regex.cr 664 3
Regex::MatchData#clone src/regex/match_data.cr 378 3
Regex::MatchData#dup src/regex/match_data.cr 374 3
Set(T)#=== src/set.cr 355 3
Set(T).additive_identity src/set.cr 246 3
Slice(T)#[]? src/slice.cr 274 4
Slice(T)#move_from src/slice.cr 531 6
Slice(T)#move_to src/slice.cr 538 3
Socket#close_on_exec= src/socket.cr 382 3
Socket#close_on_exec? src/socket.cr 378 3
Socket#close_read src/socket.cr 262 3
Socket#close_write src/socket.cr 267 3
Socket#getsockopt src/socket.cr 351 3
Socket#keepalive= src/socket.cr 324 4
Socket#keepalive? src/socket.cr 320 3
Socket#linger src/socket.cr 329 3
Socket#receive src/socket.cr 256 4
Socket.udp src/socket.cr 34 3
Socket::Address#initialize src/socket/address.cr 49 2
Socket::Addrinfo::Error#error_code src/socket/addrinfo.cr 86 3
Socket::Addrinfo::Error.new src/socket/addrinfo.cr 96 3
Socket::Server#accept? src/socket/server.cr 71 10
TCPServer#initialize src/socket/tcp_server.cr 56 3
TCPServer.new src/socket/tcp_server.cr 31 3
TCPSocket#initialize src/socket/tcp_socket.cr 48 3
UNIXServer#initialize src/socket/unix_server.cr 56 3
UNIXSocket#receive src/socket/unix_socket.cr 113 4
Spec.after_each src/spec/dsl.cr 138 3
Spec.after_suite src/spec/dsl.cr 174 3
Spec.around_each src/spec/dsl.cr 198 3
Spec.before_each src/spec/dsl.cr 120 3
Spec.before_suite src/spec/dsl.cr 156 3
StaticArray(T, N)#index src/static_array.cr 412 9
StaticArray(T, N)#initialize src/static_array.cr 87 2
String#delete_at src/string.cr 1120 3
String#do_unicode_normalize src/string.cr 1586 24
String#to_i src/string.cr 372 3
String#unicode_normalize src/string.cr 1573 4
String#unicode_normalize src/string.cr 1581 4
String#unicode_normalized? src/string.cr 1623 10
String#unsafe_byte_at src/string.cr 1387 3
String::Builder.new src/string/builder.cr 30 5
String::Formatter(A)#pad_int src/string/formatter.cr 376 5
String::Grapheme.break? src/string/grapheme/grapheme.cr 211 3
StringScanner#skip_until src/string_scanner.cr 226 4
StringScanner::StringMatchData#[] src/string_scanner.cr 419 3
StringScanner::StringMatchData#[]? src/string_scanner.cr 412 6
SystemError::ClassMethods#from_errno src/system_error.cr 80 3
SystemError::ClassMethods#from_winerror src/system_error.cr 114 3
SystemError::ClassMethods#from_wsa_error src/system_error.cr 122 3
Time.parse_iso8601 src/time.cr 1154 3
Time.parse_local src/time.cr 1246 3
Time::Format::Parser#http_date_rfc1123? src/time/format/custom/http_date.cr 93 3
Time::Format::Formatter#hour_minute_second_iso8601 src/time/format/custom/iso_8601.cr 113 3
Time::Format::ISO_8601_TIME.format src/time/format/custom/iso_8601.cr 191 5
Time::Format::ISO_8601_TIME.format src/time/format/custom/iso_8601.cr 198 5
Time::Format::ISO_8601_TIME.parse src/time/format/custom/iso_8601.cr 184 5
Time::Format::Formatter#char? src/time/format/formatter.cr 233 3
Time::Format::Parser#short_day_name_with_comma? src/time/format/parser.cr 221 7
Time::Format::Parser#time_zone_gmt src/time/format/parser.cr 456 4
Time::Location::ZoneTransition#inspect src/time/location.cr 178 13
Time::Location::InvalidTZDataError.initialize src/time/location/loader.cr 9 3
Int#year src/time/span.cr 604 3
Int#years src/time/span.cr 599 3
Time::Span#sign src/time/span.cr 234 7
Time::Span#total_weeks src/time/span.cr 172 3
Tuple(*T)#+ src/tuple.cr 501 3
Tuple(*T)#[] src/tuple.cr 293 3
Tuple(*T)#plus_implementation src/tuple.cr 505 12
Tuple(*T).[] src/tuple.cr 319 3
Unicode.put src/unicode/data.cr 14803 3
Unicode.put src/unicode/data.cr 14811 3
Unicode.canonical_combining_class src/unicode/unicode.cr 577 3
Unicode.canonical_compose! src/unicode/unicode.cr 504 3
Unicode.canonical_compose! src/unicode/unicode.cr 508 36
Unicode.canonical_composition src/unicode/unicode.cr 581 3
Unicode.canonical_decompose src/unicode/unicode.cr 416 3
Unicode.canonical_decompose src/unicode/unicode.cr 420 11
Unicode.canonical_order! src/unicode/unicode.cr 456 3
Unicode.canonical_order! src/unicode/unicode.cr 460 42
Unicode.compatibility_decompose src/unicode/unicode.cr 433 3
Unicode.compatibility_decompose src/unicode/unicode.cr 437 17
Unicode.quick_check_normalized src/unicode/unicode.cr 546 30
Unicode::Hangul.canonical_composition src/unicode/unicode.cr 614 16
Unicode::Hangul.canonical_decompose src/unicode/unicode.cr 599 14
Union(*T)#initialize src/union.cr 19
UUID#to_unsafe src/uuid.cr 388 3
UUID#to_json_object_key src/uuid/json.cr 40 3
VaList#initialize src/va_list.cr 8 2
VaList.open src/va_list.cr 11 9
WasiError#to_errno src/wasi_error.cr 90 81
WinError#formatted_message src/winerror.cr 79 12
WinError#to_errno src/winerror.cr 96 79
XML::Builder#attribute src/xml/builder.cr 140 4
XML::Builder#attributes src/xml/builder.cr 156 3
XML::Builder#document src/xml/builder.cr 43 4
XML::Builder#end_attribute src/xml/builder.cr 134 3
XML::Builder#start_attribute src/xml/builder.cr 124 3
XML::Builder#start_attribute src/xml/builder.cr 129 3
XML::Node#comment? src/xml/node.cr 81 3
XML::Node#processing_instruction? src/xml/node.cr 393 3
XML::Node#xml? src/xml/node.cr 482 3
XML::NodeSet#object_id src/xml/node_set.cr 44 3
XML::NodeSet#to_unsafe src/xml/node_set.cr 52 3
YAML::Nodes::Parser#add_to_documents src/yaml/nodes/parser.cr 71 3
YAML::Nodes::Parser#new_documents src/yaml/nodes/parser.cr 13 3
YAML::PullParser.new src/yaml/pull_parser.cr 39 4
YAML::Schema::Core::Parser#add_to_mapping src/yaml/schema/core/parser.cr 51 3
Iterator(T)#to_yaml src/yaml/to_yaml.cr 47 5
This file has been truncated, but you can view the full file.
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment