swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40
- HEAD
- refs/branches/jn/codeinfo-lineno
- refs/heads/KristofferC-patch-1
- refs/heads/KristofferC-patch-2
- refs/heads/KristofferC-patch-3
- refs/heads/KristofferC-patch-4
- refs/heads/KristofferC-patch-5
- refs/heads/KristofferC-patch-6
- refs/heads/KristofferC-patch-7
- refs/heads/SubtypeError
- refs/heads/aa-tcp-write-opt-18
- refs/heads/aa/build-llvm-unwind
- refs/heads/aa/freebsd-llvm-libunwind
- refs/heads/aa/test-throws-nothing
- refs/heads/add-buffer-type
- refs/heads/add-buffer-type2
- refs/heads/adnan-alhomssi-aa-export-numstacks-counter
- refs/heads/adr/snapshot
- refs/heads/ajf/arrays-are-tables
- refs/heads/ajf/broadcast-dicts
- refs/heads/ajf/cartesianrange-array
- refs/heads/ajf/default-length-definition
- refs/heads/ajf/deprecatemultivaluenonscalarindexedassignment
- refs/heads/ajf/dict-iterate-values
- refs/heads/ajf/mappedarray
- refs/heads/ajf/pairs2
- refs/heads/ajf/propage_inbounds_broadcast
- refs/heads/ajf/skipmissing-length
- refs/heads/ajf/strides-trait
- refs/heads/amp-ref
- refs/heads/anj/map
- refs/heads/asan_tasks_eh
- refs/heads/avi/1.11-precompile-ext-absint
- refs/heads/avi/46713
- refs/heads/avi/47137-again
- refs/heads/avi/52991
- refs/heads/avi/EASROA
- refs/heads/avi/async-completion
- refs/heads/avi/bailout-effects
- refs/heads/avi/bailoutintrinsics
- refs/heads/avi/boundscheck-docs
- refs/heads/avi/boundserror
- refs/heads/avi/callinfo-effects
- refs/heads/avi/codegen-custom-lookup-oc
- refs/heads/avi/configconstprop
- refs/heads/avi/constType-Union
- refs/heads/avi/early_const_prop
- refs/heads/avi/effects-override-bittype
- refs/heads/avi/effects_constprop
- refs/heads/avi/elim-wasterful-constprop
- refs/heads/avi/follow-52415
- refs/heads/avi/gpucompiler-384
- refs/heads/avi/hunt-type-instabilities
- refs/heads/avi/inbounds-nothrow
- refs/heads/avi/infer_effects
- refs/heads/avi/infresult_iterator
- refs/heads/avi/inline_string
- refs/heads/avi/inlining-policy
- refs/heads/avi/inlining_cost
- refs/heads/avi/interval
- refs/heads/avi/jet413
- refs/heads/avi/kwinline
- refs/heads/avi/moreeffects
- refs/heads/avi/multisroa
- refs/heads/avi/mutablephi
- refs/heads/avi/optlifetime
- refs/heads/avi/plugin8
- refs/heads/avi/plugin8-2
- refs/heads/avi/remove-throw-block-unopt
- refs/heads/avi/return_type-max_methods
- refs/heads/avi/rm-allow_abstract
- refs/heads/avi/temp-methodinstance-to-invoke
- refs/heads/avi/turn-on-aliasedfieldanalysis
- refs/heads/avi/typed_hvcat-return_type
- refs/heads/avi/typelattice
- refs/heads/avi/typetypeinf
- refs/heads/avi/undef
- refs/heads/backport-1.1.0
- refs/heads/backports-release-1.1
- refs/heads/backports-release-1.10
- refs/heads/backports-release-1.11
- refs/heads/backports-release-1.6
- refs/heads/backports-release-1.8
- refs/heads/breakmore
- refs/heads/caf/bump-juliasyntax-0.4.7
- refs/heads/cjf/disallow-infix-macros
- refs/heads/cjf/fpe-exceptions
- refs/heads/cjf/hide-in-stacktrace-meta
- refs/heads/cjf/hide-stacktrace-frames
- refs/heads/cjf/internal-properties
- refs/heads/cjf/logging-custom-levels
- refs/heads/cjf/logging-custom-levels-wip
- refs/heads/cjf/remove-loaderror
- refs/heads/cjf/toplevel-backtraces
- refs/heads/cjf/toplevel-backtraces-via-interpframe-stack
- refs/heads/cjh/doxygen
- refs/heads/cjh/fix-4774
- refs/heads/cjh/parallel-bench
- refs/heads/ct/julia-opt-zone
- refs/heads/curry
- refs/heads/cv/abstractstring-eq
- refs/heads/cv/arm-hotfix
- refs/heads/cv/broadcast-steprange-timetype
- refs/heads/cv/char-code-reservation
- refs/heads/cv/dates-replace
- refs/heads/cv/fix-redundant-dict-error
- refs/heads/cv/generator-indexing
- refs/heads/cv/invalid-rational
- refs/heads/cv/namedtuple-pair
- refs/heads/cv/no-color-force-color
- refs/heads/da/devcontainer-update
- refs/heads/dcn-1.9-with-mem-pressure-callback
- refs/heads/dcn-3-color
- refs/heads/dcn-canonicalize-callable-names
- refs/heads/dcn-check-oldest-object-in-size-class
- refs/heads/dcn-compiler-obj-pools
- refs/heads/dcn-count-stack-bytes
- refs/heads/dcn-gc-interface
- refs/heads/dcn-gc-paper-1.9-branch
- refs/heads/dcn-gc-paper-dev-branch
- refs/heads/dcn-heap-size-hint-env
- refs/heads/dcn-null-out-gc-slots
- refs/heads/dcn-page-profiler-more-verbose-types
- refs/heads/dcn/docs
- refs/heads/dcn/mq
- refs/heads/dk/banded
- refs/heads/dk/blaspromo
- refs/heads/dk/choleskypivot
- refs/heads/dk/hvcat_scaling_number
- refs/heads/dk/missing
- refs/heads/dk/muladdmul
- refs/heads/dk/stable_div
- refs/heads/dont-tabcomplete-internals
- refs/heads/dpa/base-prompt-public-api
- refs/heads/dpa/ci-environment-variable
- refs/heads/dpa/deprecation_exec
- refs/heads/dpa/diagnostics-interactiveutils
- refs/heads/dpa/infodump-interactiveutils
- refs/heads/dpa/more-public-task-local-storage-methods
- refs/heads/dpa/new-global-load-path-entry
- refs/heads/dpa/parentmodule
- refs/heads/dpa/pidfile-windows-eacces
- refs/heads/dpa/sparsearrays
- refs/heads/dpa/versioninfo-official-release
- refs/heads/fe/--threads-propagate
- refs/heads/fe/-P
- refs/heads/fe/active-depot
- refs/heads/fe/backport-31967
- refs/heads/fe/deprecate-logging
- refs/heads/fe/depwarn-default
- refs/heads/fe/doctest-fix
- refs/heads/fe/errorexception
- refs/heads/fe/helpmode-stdout
- refs/heads/fe/hermsym-matrixfunc
- refs/heads/fe/integer-construction
- refs/heads/fe/misc
- refs/heads/fe/nvr
- refs/heads/fe/repr-versioninfo
- refs/heads/fe/rm-artifacts
- refs/heads/fe/ssh
- refs/heads/fe/structured-matrix-constructor
- refs/heads/fe/version-v2
- refs/heads/fix9475
- refs/heads/gb/analyzer-fun
- refs/heads/gb/branch-bits
- refs/heads/gb/gc-correct-constraint
- refs/heads/gb/gc-other-impl
- refs/heads/gb/gc-rever
- refs/heads/gb/hashtable_typelist
- refs/heads/gb/libfuncattrs
- refs/heads/gb/llvmpasses-dep
- refs/heads/gb/memcmo
- refs/heads/gb/memory-extra-check
- refs/heads/gb/mi-alias
- refs/heads/gb/pipeline-fun
- refs/heads/gb/rpath-fun
- refs/heads/gb/small-image
- refs/heads/gb/small-image2
- refs/heads/gb/stack-protect
- refs/heads/gb/vecalign
- refs/heads/gpu-broadcast
- refs/heads/id_norm
- refs/heads/jb/06_compiler_perf
- refs/heads/jb/39698
- refs/heads/jb/AbstractOneTo
- refs/heads/jb/IdUnitRangeparent
- refs/heads/jb/allowoverwrite
- refs/heads/jb/analyzevars
- refs/heads/jb/arraygcperf
- refs/heads/jb/badidentifierstart
- refs/heads/jb/bidi16
- refs/heads/jb/cg_temp
- refs/heads/jb/codeinfostuff
- refs/heads/jb/copyanonfns
- refs/heads/jb/copyfile
- refs/heads/jb/diagblockdiagonal
- refs/heads/jb/dotcolon
- refs/heads/jb/fastercat
- refs/heads/jb/fix14106
- refs/heads/jb/fix29501
- refs/heads/jb/fix38902
- refs/heads/jb/fix39834
- refs/heads/jb/fix47318
- refs/heads/jb/fix49318
- refs/heads/jb/fix52120
- refs/heads/jb/freethreadstate
- refs/heads/jb/gotofromtry
- refs/heads/jb/implicitssa
- refs/heads/jb/interpreter_opt
- refs/heads/jb/iowriteperf
- refs/heads/jb/jr/tuplelattice
- refs/heads/jb/latency10
- refs/heads/jb/latency12
- refs/heads/jb/latency3
- refs/heads/jb/latency33615
- refs/heads/jb/latency_experiments
- refs/heads/jb/limitedmethods
- refs/heads/jb/macrostuff
- refs/heads/jb/modprefixshow
- refs/heads/jb/news111
- refs/heads/jb/novaoverride
- refs/heads/jb/nullableget
- refs/heads/jb/open3
- refs/heads/jb/quietparams
- refs/heads/jb/r5rs
- refs/heads/jb/revinlinethresh
- refs/heads/jb/ruleinlinecost
- refs/heads/jb/serializeperf
- refs/heads/jb/shortstrlen
- refs/heads/jb/silentparams
- refs/heads/jb/simpler_intersection2
- refs/heads/jb/sjkelly-sjk/precomp_trace2
- refs/heads/jb/steprangegetindex
- refs/heads/jb/stripmeta
- refs/heads/jb/sysimgLogging
- refs/heads/jb/tasksize
- refs/heads/jb/taskwaitswitch
- refs/heads/jb/threadedregion-test
- refs/heads/jb/typedefIR2
- refs/heads/jb/typegetfield
- refs/heads/jb/typemap0
- refs/heads/jb/varlocs
- refs/heads/jcb/arrayviews
- refs/heads/jcb/evalmacrocallthrows
- refs/heads/jcb/juliarepl
- refs/heads/jcb/simdmdloop
- refs/heads/jh/setops
- refs/heads/jishnub/abstractqsimilar
- refs/heads/jishnub/blocktridiagonalindexing
- refs/heads/jishnub/getindexint
- refs/heads/jishnub/ntupleshow
- refs/heads/jishnub/onetopromoterule
- refs/heads/jishnub/oopmuldisambiguate
- refs/heads/jishnub/rangebroadcastambiguity
- refs/heads/jishnub/rangezero
- refs/heads/jishnub/tricopyto
- refs/heads/jishnub/twiceprecisionzero
- refs/heads/jishnub/upperlowertriangularfn
- refs/heads/jmw/null-syntax
- refs/heads/jn/26512
- refs/heads/jn/29872-compare
- refs/heads/jn/34886
- refs/heads/jn/37349
- refs/heads/jn/StructRet_abi
- refs/heads/jn/Tuple-applytype-bottom
- refs/heads/jn/array-inbounds-audit
- refs/heads/jn/atomic-modify-opt
- refs/heads/jn/avi/noopt-interp-irinterp-compare
- refs/heads/jn/backedge-fixup
- refs/heads/jn/backports-release-1.4
- refs/heads/jn/better-broadcast-inlining
- refs/heads/jn/bigfloat-mem
- refs/heads/jn/broadcast-some-more
- refs/heads/jn/check_sadd
- refs/heads/jn/compile-all-0.6
- refs/heads/jn/compile_all_generic_box
- refs/heads/jn/drop-inexact
- refs/heads/jn/exposed-hygiene
- refs/heads/jn/fix-macro-scope-design
- refs/heads/jn/fix34159
- refs/heads/jn/gc-pool-lazy
- refs/heads/jn/generalized-LOAD_PATH-compilecache
- refs/heads/jn/have_fma_sysimg
- refs/heads/jn/iddict
- refs/heads/jn/import-strtod
- refs/heads/jn/in-isequal
- refs/heads/jn/iocolor
- refs/heads/jn/iocolor2
- refs/heads/jn/ircode-memory
- refs/heads/jn/isdefined-safely
- refs/heads/jn/iterate
- refs/heads/jn/jb-subtype
- refs/heads/jn/jb-subtype-const-type-fix
- refs/heads/jn/jb-subtype-faster-isa-Type
- refs/heads/jn/jlinterpreter
- refs/heads/jn/kf-linecolstr
- refs/heads/jn/kf/iterate-wip
- refs/heads/jn/kf/newlocs
- refs/heads/jn/lazydoc
- refs/heads/jn/license-committers
- refs/heads/jn/llvmcall2
- refs/heads/jn/localize-multiversioning
- refs/heads/jn/memoize-freevars
- refs/heads/jn/methmatch-cache
- refs/heads/jn/mixed-equal
- refs/heads/jn/ml-match-opt
- refs/heads/jn/ml-matches-leaf-cache2
- refs/heads/jn/modulecoalescing
- refs/heads/jn/more-faster-typeset
- refs/heads/jn/more-inline-costs
- refs/heads/jn/msvclink
- refs/heads/jn/new-stdlib-script-docs
- refs/heads/jn/newir-test-fixes
- refs/heads/jn/noinline-structs
- refs/heads/jn/opt-makefile-compile-take2
- refs/heads/jn/release0.6-26833
- refs/heads/jn/requirenewmodule
- refs/heads/jn/simple-scope
- refs/heads/jn/slot-type-infer-optimize
- refs/heads/jn/steprange
- refs/heads/jn/subtype-sig-equal
- refs/heads/jn/test-warn-repr
- refs/heads/jn/threading
- refs/heads/jn/tune_whos
- refs/heads/jn/tuplecc
- refs/heads/jn/type-construction-normalization
- refs/heads/jn/typeinfo_arg
- refs/heads/jn/typename_hide_null_svec
- refs/heads/jn/undeffield-codegen-opt
- refs/heads/jn/unhandled_exception_handler
- refs/heads/jn/union-bits-layout
- refs/heads/jn/update-precompile-heuristic
- refs/heads/jn/widen_method_matchs
- refs/heads/jq-19-backport
- refs/heads/jq-dense-strings
- refs/heads/jq-tcp-socket-keepalive
- refs/heads/jq/40303
- refs/heads/jq/buffer
- refs/heads/jq/bufferall
- refs/heads/jr/betterspoof
- refs/heads/jr/cinfoworldboundstmp
- refs/heads/jr/compiledebug
- refs/heads/jr/moarpartialtuple
- refs/heads/jr/ptupleprop
- refs/heads/jr/tmp2
- refs/heads/jr/tupleconst
- refs/heads/jr/tuplekindtypefix
- refs/heads/jr/tuplelatticeold
- refs/heads/jr/wip
- refs/heads/julia-in-julia
- refs/heads/kc/1.9.0-beta3
- refs/heads/kc/JULIA_ENV
- refs/heads/kc/TM
- refs/heads/kc/arg_usings
- refs/heads/kc/artifact_str_world
- refs/heads/kc/assume_unchanged_loading
- refs/heads/kc/backport_gcc10
- refs/heads/kc/backport_vtj
- refs/heads/kc/backporter
- refs/heads/kc/backports-release-1.10
- refs/heads/kc/build_stdlib_env
- refs/heads/kc/cache_precompile
- refs/heads/kc/cglobal
- refs/heads/kc/codeloading2.0
- refs/heads/kc/complete_num
- refs/heads/kc/core_compiler_tracy
- refs/heads/kc/creating_packages_revert
- refs/heads/kc/debug_mode
- refs/heads/kc/debug_mode2
- refs/heads/kc/debug_precompile
- refs/heads/kc/debug_release-1.9
- refs/heads/kc/dir_dlload
- refs/heads/kc/doctest_meta2
- refs/heads/kc/doctests_CI
- refs/heads/kc/exception_trait
- refs/heads/kc/excise_libgit2_v2
- refs/heads/kc/extension
- refs/heads/kc/fix_init
- refs/heads/kc/fix_print_type
- refs/heads/kc/glue_modules
- refs/heads/kc/immut_dict
- refs/heads/kc/inline_print
- refs/heads/kc/inval
- refs/heads/kc/llvm-opt-zone
- refs/heads/kc/llvm-opt-zone2
- refs/heads/kc/llvm_pass_trac
- refs/heads/kc/loading_debug_error
- refs/heads/kc/loading_stuff
- refs/heads/kc/move_dates_anub
- refs/heads/kc/n_triggers
- refs/heads/kc/perf_ident
- refs/heads/kc/pidlock_repl_history
- refs/heads/kc/pkg3_patch
- refs/heads/kc/pkgdir_fix
- refs/heads/kc/pkgstdlib
- refs/heads/kc/precompile_overhead
- refs/heads/kc/precompile_with_pkg3
- refs/heads/kc/repl_fast
- refs/heads/kc/reuse_compile
- refs/heads/kc/reuse_precompile
- refs/heads/kc/seed_fast
- refs/heads/kc/set_threads
- refs/heads/kc/so_long_and_thanks_for_the_packages
- refs/heads/kc/sprint_displaysize
- refs/heads/kc/stat_reductions
- refs/heads/kc/stdlib
- refs/heads/kc/stdlib_markdown
- refs/heads/kc/stdlib_path_internal
- refs/heads/kc/stdlib_printing
- refs/heads/kc/str_lit_cont
- refs/heads/kc/substr_toml
- refs/heads/kc/substring_parse
- refs/heads/kc/test
- refs/heads/kc/test_inline
- refs/heads/kc/toml_loading
- refs/heads/kc/tracy_plot
- refs/heads/kc/tuple_afoldl
- refs/heads/kc/type_cache_insert_default
- refs/heads/kc/unused
- refs/heads/kc/upgradable_stdlibs
- refs/heads/kc/warn_using
- refs/heads/kc/was
- refs/heads/kc/weak_deps_2
- refs/heads/kc/whatdocstoshow
- refs/heads/kc/wip_stacktraces
- refs/heads/kc/zone
- refs/heads/kf/53515
- refs/heads/kf/anysparamlattice
- refs/heads/kf/asan2
- refs/heads/kf/bbmsan
- refs/heads/kf/cedarwip
- refs/heads/kf/cfgwip
- refs/heads/kf/circshift
- refs/heads/kf/closestcandidates
- refs/heads/kf/codegen
- refs/heads/kf/codeinstwip
- refs/heads/kf/codetypedconst
- refs/heads/kf/compiler_wip_dont_look
- refs/heads/kf/compilerperfwip
- refs/heads/kf/customlattice
- refs/heads/kf/cvppipeline
- refs/heads/kf/cwip
- refs/heads/kf/cyclepostorder
- refs/heads/kf/effectpreconds
- refs/heads/kf/erroroptwip
- refs/heads/kf/expzerocase
- refs/heads/kf/fastsysimg
- refs/heads/kf/fieldtypetfuncunion
- refs/heads/kf/filestdio
- refs/heads/kf/forcedartemp
- refs/heads/kf/gallium
- refs/heads/kf/getfieldlowering
- refs/heads/kf/heappromote
- refs/heads/kf/hooks3
- refs/heads/kf/ia/conditionalbug
- refs/heads/kf/incomplete2
- refs/heads/kf/incomplete_type
- refs/heads/kf/inferencefaster
- refs/heads/kf/interphook
- refs/heads/kf/iter
- refs/heads/kf/iteratewip
- refs/heads/kf/jb/rm_deps_3
- refs/heads/kf/jscall
- refs/heads/kf/loosenhardlimit
- refs/heads/kf/magiccompilerdustforceleste2
- refs/heads/kf/magiccompilerdustforceleste3
- refs/heads/kf/magiccompilerdustforceleste4
- refs/heads/kf/mimedata
- refs/heads/kf/mmap
- refs/heads/kf/multiany
- refs/heads/kf/newclidrivers
- refs/heads/kf/newdinfo
- refs/heads/kf/notworkingbadwip
- refs/heads/kf/opaque_closures2
- refs/heads/kf/permuteddimssimilar
- refs/heads/kf/reclimit
- refs/heads/kf/refactortodo
- refs/heads/kf/replfixes
- refs/heads/kf/rmwatchers
- refs/heads/kf/sanitizermake
- refs/heads/kf/stdioredirect
- refs/heads/kf/switchwip
- refs/heads/kf/sysimglinkopenlibm
- refs/heads/kf/topush
- refs/heads/kf/tpu
- refs/heads/kf/tpu2
- refs/heads/kf/tpu3
- refs/heads/kf/typeoftypes
- refs/heads/kf/typeofvalid
- refs/heads/kf/unionpenalties2
- refs/heads/kf/unionsplit2
- refs/heads/kf/uvint32
- refs/heads/kf/wasm
- refs/heads/kf/wasm2
- refs/heads/kf/wasm3
- refs/heads/kf/wasm4
- refs/heads/kf/wine-check_ws
- refs/heads/kf/winefix2
- refs/heads/kf/winfix
- refs/heads/kf/wip
- refs/heads/kf/wrapintops
- refs/heads/kf/xlademo
- refs/heads/kp-improve-rl
- refs/heads/kp/disable-gc-atexit
- refs/heads/kp/fix-53325
- refs/heads/kp/old_partr
- refs/heads/kp/schedtask
- refs/heads/ksh/pkgtestset
- refs/heads/ksh/sockdoc
- refs/heads/ksh/transcode
- refs/heads/lh/bump-jls
- refs/heads/lh/dict-token-api
- refs/heads/lh/fix-typos
- refs/heads/lh/fix-typos-base
- refs/heads/lh/prepared-comparisons
- refs/heads/lh/stacktrace-reverse-print
- refs/heads/lh/typos-fixup-base
- refs/heads/lh/using-as
- refs/heads/master
- refs/heads/mb/I,broadcast
- refs/heads/mb/aliasscopebroadcast
- refs/heads/mb/inbounds-expression
- refs/heads/mb/outline-broadcast
- refs/heads/mb/recursive-cat
- refs/heads/mb/self-aliasing-broadcasts
- refs/heads/mb/thisshouldhaveoccurredtome
- refs/heads/mb/transpose
- refs/heads/mb/true28866
- refs/heads/mb/viewdefault
- refs/heads/mh/circular_types
- refs/heads/mh/ctor-inferability
- refs/heads/mh/fix-38327
- refs/heads/mh/fix-38364
- refs/heads/mh/fix-50548
- refs/heads/mh/fix-50617
- refs/heads/mh/improve-tmeet-for-vararg-partialstruct
- refs/heads/mh/patch_rdims
- refs/heads/mh/rework_apply
- refs/heads/mh/totuple_builtin
- refs/heads/mji/zygote
- refs/heads/mp/ssh-key-debug
- refs/heads/nhd-alloc-profiler-types+reasons
- refs/heads/nhd-apply-generic-stack-args
- refs/heads/nhd-channel-funcs-nospecialize
- refs/heads/nhd-fix-typo
- refs/heads/nhd-getindex-propagate_inbounds
- refs/heads/nhd-heap-snapshot-sampling-3
- refs/heads/nhd-parse-type
- refs/heads/nhd-test_logs-kwargs
- refs/heads/nhd/REPL-completions-usings
- refs/heads/nhd/names-usings
- refs/heads/nl/Dict
- refs/heads/nl/broadcast2
- refs/heads/nl/cat
- refs/heads/nl/length
- refs/heads/nl/mapreducedim
- refs/heads/ob/cttx
- refs/heads/ob/rref
- refs/heads/ob/stackmaps
- refs/heads/origin/kf/ccsisdefined
- refs/heads/os/better-givens
- refs/heads/oscardssmith-exhaustive-Float160-tests
- refs/heads/pc/codeinfo-args
- refs/heads/pc/codlayer8
- refs/heads/pc/gm-stack
- refs/heads/pc/more-licm
- refs/heads/pc/reoptimize
- refs/heads/pc/sleep
- refs/heads/pc/zone
- refs/heads/pepijndevos-constpropcrimes
- refs/heads/pop-abstractset
- refs/heads/pv-alloc-profile-wrap-pool-alloc
- refs/heads/release-0.1
- refs/heads/release-0.2
- refs/heads/release-0.3
- refs/heads/release-0.4
- refs/heads/release-0.5
- refs/heads/release-0.6
- refs/heads/release-0.7
- refs/heads/release-1.0
- refs/heads/release-1.1
- refs/heads/release-1.10
- refs/heads/release-1.11
- refs/heads/release-1.2
- refs/heads/release-1.3
- refs/heads/release-1.4
- refs/heads/release-1.5
- refs/heads/release-1.6
- refs/heads/release-1.7
- refs/heads/release-1.8
- refs/heads/release-1.9
- refs/heads/revert-22049-kf/memcpyopt
- refs/heads/revert-26854-kc/bump_pkg3_6
- refs/heads/revert-28319-kc/precompiler_build2
- refs/heads/revert-29494-kf/uncolon_recursion
- refs/heads/revert-37410-slurp_assignment
- refs/heads/revert-44205-patch-1
- refs/heads/revert-45153-heaphoist-fix
- refs/heads/revert-45677-revert-45195-vc/llvm_14.0.2
- refs/heads/revert-50466-dcn/fix-50419
- refs/heads/revert-52003-revert-29919-sb/reduce-empty
- refs/heads/revert-52086-jn/sort-nonvector-collect
- refs/heads/rf/Bit
- refs/heads/rf/broaden-hash
- refs/heads/rf/conv-str-regex
- refs/heads/rf/defaults
- refs/heads/rf/digits-unsigned-nonrecur
- refs/heads/rf/iter-access
- refs/heads/rf/merge-iter
- refs/heads/rf/ndigits-bases
- refs/heads/rf/pure-push
- refs/heads/rf/pure-push-iocontext
- refs/heads/rf/rand-distrib
- refs/heads/rf/rand-f16-shift
- refs/heads/rf/rand-same-same
- refs/heads/rf/rand/default_rng_dispatch
- refs/heads/rf/rand/hash-seed
- refs/heads/rf/randn-bigfloat
- refs/heads/rf/randn-fillarray
- refs/heads/rf/randperm-ndl
- refs/heads/rf/regex-partial
- refs/heads/rf/regex-testset
- refs/heads/rf/repl/simplify
- refs/heads/rf/repl/switch-mode
- refs/heads/rf/seed-rng
- refs/heads/rf/show/sorted
- refs/heads/rf/typed-hash
- refs/heads/rf/union-immutable-set
- refs/heads/rf/unmerge-merge
- refs/heads/rf/xoshiro/randn
- refs/heads/rf/zeros-bang
- refs/heads/sb/accumulate
- refs/heads/sb/float-div
- refs/heads/sb/libgit2/peel
- refs/heads/sb/reduce-and
- refs/heads/sb/sigfpe2
- refs/heads/sb/task-fenv
- refs/heads/sb/test-scope
- refs/heads/sb/tmstruct-utc
- refs/heads/sds/codegen_globals_wip
- refs/heads/sds/eachindex
- refs/heads/sds/extended_slurp2
- refs/heads/sds/fix_hash_factorization
- refs/heads/sds/inline_bindings
- refs/heads/sds/invalid_argument
- refs/heads/sds/ir_indent
- refs/heads/sds/iter_cartesian
- refs/heads/sds/less_demangle
- refs/heads/sds/named_opaque
- refs/heads/sds/nonstandard_expr_printing
- refs/heads/sds/prop_destruct_macroexpand
- refs/heads/sds/repl_paste
- refs/heads/sds/shell_complete
- refs/heads/sds/timestimes
- refs/heads/sds/tkf/type-capturing
- refs/heads/sds/typedglobals2
- refs/heads/sds/unesc_backslash_cmd
- refs/heads/sf/DO_NOT_DELETE_THIS_BRANCH_unbuildable_commits_test
- refs/heads/sf/altered_treehashes
- refs/heads/sf/armv7l_fixes
- refs/heads/sf/cedar
- refs/heads/sf/cedar2
- refs/heads/sf/core_o_rama
- refs/heads/sf/lazy_jlls
- refs/heads/sf/no_more_base_blas
- refs/heads/sf/patchelf_builddir_not_srccache
- refs/heads/sf/phi_node_replacement
- refs/heads/sf/simplify_threading_check
- refs/heads/sgj/Test.GenericDimensionful
- refs/heads/sgj/combiningchardisplay
- refs/heads/sgj/displaydigits
- refs/heads/sgj/hess_eig
- refs/heads/sgj/iteratedfunction
- refs/heads/sgj/mapreduce_pairwise
- refs/heads/sgj/no_Lm_start
- refs/heads/shell_mode_windows
- refs/heads/show-container-type
- refs/heads/sjk/spqr
- refs/heads/sk/debuginfo=none
- refs/heads/sk/hash_uint
- refs/heads/sk/highlander.alt
- refs/heads/sk/highlander.alt1
- refs/heads/sk/highlander.alt2
- refs/heads/sk/jl_rng_split-comment
- refs/heads/sk/libgit2-ssh-network-options
- refs/heads/sk/newchar
- refs/heads/sk/precompile-blacklist
- refs/heads/sk/stringstate
- refs/heads/sk/unzip
- refs/heads/sk/vendored-packages
- refs/heads/sk/void
- refs/heads/sk/winpaths
- refs/heads/sort_readdir
- refs/heads/srp/repl-undo
- refs/heads/staging
- refs/heads/stevengj-patch-1
- refs/heads/stevengj-patch-2
- refs/heads/stevengj-patch-3
- refs/heads/stevengj-patch-5
- refs/heads/tan/readdlm2
- refs/heads/tb/avoid_oom
- refs/heads/tb/codegen-norecursion
- refs/heads/tb/cuda
- refs/heads/tb/debug_intrinsics
- refs/heads/tb/dinfo_abspath
- refs/heads/tb/excstack_without_handler_backport
- refs/heads/tb/features
- refs/heads/tb/generator_error
- refs/heads/tb/have_fminmax
- refs/heads/tb/inference_hooks
- refs/heads/tb/ircompact_ssavalue_render
- refs/heads/tb/llvm_type_ctor
- refs/heads/tb/map!_boundschecks
- refs/heads/tb/method_lookup_assertion
- refs/heads/tb/pmb_test
- refs/heads/tb/pointerref_addrspace
- refs/heads/tb/poison
- refs/heads/tb/riscv
- refs/heads/tb/strip_as
- refs/heads/tb/task_debug_build
- refs/heads/tb/task_switch_hook
- refs/heads/tb/tdma
- refs/heads/tb/tpu
- refs/heads/teh-vc/serialize_partial_rebase
- refs/heads/teh/bcast_range
- refs/heads/teh/cache_native
- refs/heads/teh/checkindex_traits
- refs/heads/teh/doc_skip_warn
- refs/heads/teh/make_backref_just_visited
- refs/heads/teh/minmax_isless
- refs/heads/teh/pctools
- refs/heads/teh/serialize_partial_recache
- refs/heads/teh/shareindexes
- refs/heads/teh/tuple_limit
- refs/heads/teh/unwrap_isequal
- refs/heads/teh/valgrind-codegen-suppress
- refs/heads/tk/geev
- refs/heads/tkf/jltapir-pr
- refs/heads/topolarity-ct/macroexpand-no-toplevel-recursion
- refs/heads/v1.0
- refs/heads/vc-gb/pc/sleep
- refs/heads/vc/TTLI
- refs/heads/vc/aliasscopes
- refs/heads/vc/amdas
- refs/heads/vc/backport_threadsafety
- refs/heads/vc/bump_llvm
- refs/heads/vc/ccall_safe_gc
- refs/heads/vc/compiler_instance_v2
- refs/heads/vc/dsweep
- refs/heads/vc/dynamicdomtree
- refs/heads/vc/eabi_half
- refs/heads/vc/excise_random
- refs/heads/vc/external_functions_rebase
- refs/heads/vc/fattr_pgcstack
- refs/heads/vc/fixthreadswitching
- refs/heads/vc/float128
- refs/heads/vc/float128_basic
- refs/heads/vc/float16_intrinsics
- refs/heads/vc/gdb-pp
- refs/heads/vc/hwloc
- refs/heads/vc/instrumentations
- refs/heads/vc/int128_atomics
- refs/heads/vc/ittapi_integration
- refs/heads/vc/julia_cong
- refs/heads/vc/julia_vec_shm
- refs/heads/vc/libffi
- refs/heads/vc/libuv_lock
- refs/heads/vc/licm
- refs/heads/vc/llvm-11-svm-back
- refs/heads/vc/llvm-dialects
- refs/heads/vc/llvm11_debug
- refs/heads/vc/llvm11again
- refs/heads/vc/llvm8
- refs/heads/vc/llvm_undef
- refs/heads/vc/loop-unroll
- refs/heads/vc/mlir
- refs/heads/vc/no_copy_stacks
- refs/heads/vc/pappa_demo
- refs/heads/vc/pir
- refs/heads/vc/ppc-llvm6
- refs/heads/vc/ppc_fixes
- refs/heads/vc/ppc_llvm9_revert
- refs/heads/vc/ppc_patch
- refs/heads/vc/ppc_unix_signals
- refs/heads/vc/ppc_yield
- refs/heads/vc/pragmas
- refs/heads/vc/preload_zlib
- refs/heads/vc/remove_track_allocations
- refs/heads/vc/restored-1.0.1
- refs/heads/vc/round_even
- refs/heads/vc/rv_passes
- refs/heads/vc/smallints
- refs/heads/vc/tapir
- refs/heads/vc/tapir2_rts
- refs/heads/vc/tapir3-codegen-chi
- refs/heads/vc/tapir_build
- refs/heads/vc/tomlcc
- refs/heads/vc/tsan_nort
- refs/heads/vc/uring
- refs/heads/vc/vsts
- refs/heads/vc/wasm
- refs/heads/vc/wasm2
- refs/heads/vc/weakref_tasks
- refs/heads/vc/win_poolalignment
- refs/heads/vc/ws
- refs/heads/vc/x86low
- refs/heads/vc/yhls/dynamicdomtree
- refs/heads/vs/SparseArrays-bump-ss7.5.1
- refs/heads/vs/rm-openlibm
- refs/heads/yyc/arm/crc32c
- refs/heads/yyc/arm/fenv-0.5
- refs/heads/yyc/bigint
- refs/heads/yyc/codegen/eh
- refs/heads/yyc/codegen/local-push
- refs/heads/yyc/codegen/no-safepoint
- refs/heads/yyc/codegen/wb2
- refs/heads/yyc/dft_split
- refs/heads/yyc/dftnew_rebase
- refs/heads/yyc/gc-alloc
- refs/heads/yyc/gc-debug-env
- refs/heads/yyc/gc/safepoint-rt
- refs/heads/yyc/gc/thread-DO-NOT-merge
- refs/heads/yyc/less-getfield
- refs/heads/yyc/ovldot
- refs/heads/yyc/test/release-0.6
- refs/heads/yyc/tests/appveyor
- refs/heads/yyc/tests/arm
- refs/heads/yyc/tests/llvm39
- refs/heads/yyc/tests/master
- refs/heads/yyc/travis-test
- refs/heads/yyc/typeinf/egal
- refs/heads/yyc/typeinf/pure
- refs/heads/zierenberg-master
- refs/remotes/KC/kc/error_msgs
- refs/remotes/origin/avi/validwidenconst
- refs/remotes/origin/backports-release-1.6
- refs/remotes/origin/dcn-canonicalize-callable-names
- refs/remotes/origin/dcn/adjust-n-gc-threads
- refs/remotes/origin/sgj/readuntil_inplace
- refs/tags/v0.1
- refs/tags/v0.1.1
- refs/tags/v0.1.2
- refs/tags/v0.2.0-rc1
- refs/tags/v0.2.0-rc2
- refs/tags/v0.3.0
- refs/tags/v0.3.0-rc1
- refs/tags/v0.3.0-rc2
- refs/tags/v0.3.0-rc3
- refs/tags/v0.3.0-rc4
- refs/tags/v0.3.1
- refs/tags/v0.3.10
- refs/tags/v0.3.11
- refs/tags/v0.3.12
- refs/tags/v0.3.2
- refs/tags/v0.3.3
- refs/tags/v0.3.4
- refs/tags/v0.3.5
- refs/tags/v0.3.6
- refs/tags/v0.3.7
- refs/tags/v0.3.8
- refs/tags/v0.3.9
- refs/tags/v0.4.0
- refs/tags/v0.4.0-rc1
- refs/tags/v0.4.0-rc2
- refs/tags/v0.4.0-rc3
- refs/tags/v0.4.0-rc4
- refs/tags/v0.4.1
- refs/tags/v0.4.2
- refs/tags/v0.4.3
- refs/tags/v0.4.4
- refs/tags/v0.4.5
- refs/tags/v0.4.6
- refs/tags/v0.4.7
- refs/tags/v0.5.0
- refs/tags/v0.5.0-rc0
- refs/tags/v0.5.0-rc1
- refs/tags/v0.5.0-rc2
- refs/tags/v0.5.0-rc3
- refs/tags/v0.5.0-rc4
- refs/tags/v0.5.1
- refs/tags/v0.5.2
- refs/tags/v0.6.0
- refs/tags/v0.6.0-pre.alpha
- refs/tags/v0.6.0-pre.beta
- refs/tags/v0.6.0-rc1
- refs/tags/v0.6.0-rc2
- refs/tags/v0.6.0-rc3
- refs/tags/v0.6.1
- refs/tags/v0.6.2
- refs/tags/v0.6.3
- refs/tags/v0.6.4
- refs/tags/v0.7.0
- refs/tags/v0.7.0-alpha
- refs/tags/v0.7.0-beta
- refs/tags/v0.7.0-beta2
- refs/tags/v0.7.0-rc1
- refs/tags/v0.7.0-rc2
- refs/tags/v0.7.0-rc3
- refs/tags/v1.0.0
- refs/tags/v1.0.0-rc1
- refs/tags/v1.0.1
- refs/tags/v1.0.2
- refs/tags/v1.0.3
- refs/tags/v1.0.4
- refs/tags/v1.0.5
- refs/tags/v1.1.0
- refs/tags/v1.1.0-rc1
- refs/tags/v1.1.0-rc2
- refs/tags/v1.1.1
- refs/tags/v1.10.0
- refs/tags/v1.10.0-alpha1
- refs/tags/v1.10.0-beta1
- refs/tags/v1.10.0-beta2
- refs/tags/v1.10.0-beta3
- refs/tags/v1.10.0-rc1
- refs/tags/v1.10.0-rc2
- refs/tags/v1.10.0-rc3
- refs/tags/v1.10.1
- refs/tags/v1.10.2
- refs/tags/v1.11.0-alpha1
- refs/tags/v1.11.0-alpha2
- refs/tags/v1.2.0
- refs/tags/v1.2.0-rc1
- refs/tags/v1.2.0-rc2
- refs/tags/v1.2.0-rc3
- refs/tags/v1.3.0
- refs/tags/v1.3.0-alpha
- refs/tags/v1.3.0-rc1
- refs/tags/v1.3.0-rc2
- refs/tags/v1.3.0-rc3
- refs/tags/v1.3.0-rc4
- refs/tags/v1.3.0-rc5
- refs/tags/v1.3.1
- refs/tags/v1.4.0
- refs/tags/v1.4.0-rc1
- refs/tags/v1.4.0-rc2
- refs/tags/v1.4.1
- refs/tags/v1.4.2
- refs/tags/v1.5.0
- refs/tags/v1.5.0-beta1
- refs/tags/v1.5.0-rc1
- refs/tags/v1.5.0-rc2
- refs/tags/v1.5.1
- refs/tags/v1.5.2
- refs/tags/v1.5.3
- refs/tags/v1.5.4
- refs/tags/v1.6.0
- refs/tags/v1.6.0-beta1
- refs/tags/v1.6.0-rc1
- refs/tags/v1.6.0-rc2
- refs/tags/v1.6.0-rc3
- refs/tags/v1.6.1
- refs/tags/v1.6.2
- refs/tags/v1.6.3
- refs/tags/v1.6.4
- refs/tags/v1.6.5
- refs/tags/v1.6.6
- refs/tags/v1.6.7
- refs/tags/v1.7.0
- refs/tags/v1.7.0-beta1
- refs/tags/v1.7.0-beta2
- refs/tags/v1.7.0-beta3
- refs/tags/v1.7.0-beta4
- refs/tags/v1.7.0-rc1
- refs/tags/v1.7.0-rc2
- refs/tags/v1.7.0-rc3
- refs/tags/v1.7.1
- refs/tags/v1.7.2
- refs/tags/v1.7.3
- refs/tags/v1.8.0
- refs/tags/v1.8.0-beta1
- refs/tags/v1.8.0-beta2
- refs/tags/v1.8.0-beta3
- refs/tags/v1.8.0-rc1
- refs/tags/v1.8.0-rc2
- refs/tags/v1.8.0-rc3
- refs/tags/v1.8.0-rc4
- refs/tags/v1.8.1
- refs/tags/v1.8.2
- refs/tags/v1.8.3
- refs/tags/v1.8.4
- refs/tags/v1.8.5
- refs/tags/v1.9.0
- refs/tags/v1.9.0-alpha1
- refs/tags/v1.9.0-beta1
- refs/tags/v1.9.0-beta2
- refs/tags/v1.9.0-beta3
- refs/tags/v1.9.0-beta4
- refs/tags/v1.9.0-rc1
- refs/tags/v1.9.0-rc2
- refs/tags/v1.9.0-rc3
- refs/tags/v1.9.1
- refs/tags/v1.9.2
- refs/tags/v1.9.3
- refs/tags/v1.9.4
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
ae3bf27 | Valentin Churavy | 15 June 2023, 10:30:51 UTC | Add tomlcc to loader | 15 June 2023, 10:30:51 UTC |
f8827f1 | Jishnu Bhattacharya | 09 June 2023, 14:46:41 UTC | Structured display for adjoint/transpose (#49979) * Structured display for adjoint/transpose * structured display for Symmetric/Hermitian * tests with Symmetric and Transpose | 09 June 2023, 14:46:41 UTC |
2584b59 | Jishnu Bhattacharya | 09 June 2023, 13:17:47 UTC | Fill zeros only if necessary in `Matrix(::Diagonal)` and friends (#50008) * delay filling zeros while convering (sym)tridiag to matrix * conditional zero fill for bidiagonal/diagonal | 09 June 2023, 13:17:47 UTC |
43d7f88 | Shuhei Kadowaki | 09 June 2023, 04:28:41 UTC | effects: audit `EFFECTS_UNKNOWN` usages (#50106) | 09 June 2023, 04:28:41 UTC |
d041162 | Viral B. Shah | 09 June 2023, 01:42:26 UTC | Update mailmap (#50116) | 09 June 2023, 01:42:26 UTC |
7ceea13 | Erik Schnetter | 09 June 2023, 01:39:18 UTC | Update Unicode.jl (#50087) Correct confusing typo in documentation | 09 June 2023, 01:39:18 UTC |
746a15b | Lilith Orion Hafner | 08 June 2023, 21:52:57 UTC | Fail gracefully when attempting pair destructuring (#49368) `a => b = x` was interpreted as a function definition. Now it's an error unless you `import Base: =>` | 08 June 2023, 21:52:57 UTC |
c4d162e | Max Horn | 08 June 2023, 15:55:41 UTC | mkpidlock: clarify that stale_age is given in seconds (#50014) | 08 June 2023, 15:55:41 UTC |
0a2d6fc | Gabriel Baraldi | 08 June 2023, 15:28:34 UTC | Don't use exchange in the hot path of the GC (#50021) * Don't use exchange in the hot path of the GC and save one extra load | 08 June 2023, 15:28:34 UTC |
2c80455 | Lars Göttgens | 08 June 2023, 14:54:42 UTC | Revert "allow artifact string macro to take an explicit path to the artifact file (#46755)" (#50036) This reverts commit 1720a54011f7520f30ae69088e5c1b6f9643b35e. | 08 June 2023, 14:54:42 UTC |
4200aa9 | pchintalapudi | 07 June 2023, 21:15:19 UTC | Unify and split the pass pipeline (#49798) Unify and split the pass pipeline | 07 June 2023, 21:15:19 UTC |
2e76fc4 | Jishnu Bhattacharya | 07 June 2023, 19:27:36 UTC | Update return type in collect(::Dict) docs (#50056) | 07 June 2023, 19:27:36 UTC |
1f174a6 | Lilith Orion Hafner | 07 June 2023, 19:14:20 UTC | Fix typo in CONTRIBUTING.md (#50104) | 07 June 2023, 19:14:20 UTC |
d7d7ffa | pchintalapudi | 07 June 2023, 16:46:41 UTC | Invoke the passbuilder's extension point callbacks when possible (#50095) Invoke the passbuilder's extension point callbacks when possible | 07 June 2023, 16:46:41 UTC |
13e40af | Lilith Orion Hafner | 07 June 2023, 14:01:12 UTC | Skip flakey tests in CI (#50071) | 07 June 2023, 14:01:12 UTC |
36c5953 | Oscar Smith | 07 June 2023, 13:26:17 UTC | More `hash` optimization (#50041) * speed up hash of Float32/Float16 since they never are big numbers, and hash of arbitrary real types by not hashing the denominator when it is one | 07 June 2023, 13:26:17 UTC |
dbd82a4 | pchintalapudi | 07 June 2023, 04:40:07 UTC | Update newpm pass pipeline (#49747) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> | 07 June 2023, 04:40:07 UTC |
0b47546 | Shuhei Kadowaki | 07 June 2023, 01:04:05 UTC | array: make `DimensionMismatch` lazy-string friendly (#50079) At the moment, the `msg` field of `DimensionMismatch` is typed as `String`. This means lazy strings passed to `DimensionMismatch` are instantly instantiated, defeating the whole purpose of using `LazyString`. This commit tweaks the field type to `AbstractString`. This way, lazy strings get instantiated during the exception handling later on. | 07 June 2023, 01:04:05 UTC |
e111c01 | Valentin Churavy | 06 June 2023, 23:34:53 UTC | add default order for atomics to docstring (#50086) | 06 June 2023, 23:34:53 UTC |
bbbe8c3 | Shuhei Kadowaki | 06 June 2023, 22:08:30 UTC | missing: improve effects for some missing operations (#50080) | 06 June 2023, 22:08:30 UTC |
c3ea5dc | Oscar Smith | 06 June 2023, 17:26:20 UTC | fix `hash(::BigInt)` on 32 bit systems (#50076) * don't define hash(::BigInt) on 32 bit systems | 06 June 2023, 17:26:20 UTC |
4d2f35e | Mike Boyle | 06 June 2023, 16:23:45 UTC | Update URL for "lexical scoping" (#50085) | 06 June 2023, 16:23:45 UTC |
53bcb39 | Lilith Orion Hafner | 06 June 2023, 13:25:00 UTC | Fixup `hash(::Real)` broken by #49996 (#50067) * fixup for 49996 and add test from 50065 --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 06 June 2023, 13:25:00 UTC |
1bb3d26 | DilumAluthgeBot | 06 June 2023, 11:39:36 UTC | 🤖 [master] Bump the Pkg stdlib from 9c01707a2 to 4de1826bc (#50078) | 06 June 2023, 11:39:36 UTC |
112554e | Mosè Giordano | 06 June 2023, 00:01:44 UTC | [test] Automatically install `llvm-tools` when runnning `llvmpasses` (#49985) | 06 June 2023, 00:01:44 UTC |
c16891d | Zachary P Christensen | 05 June 2023, 23:20:47 UTC | Atomic pointer operations APIs (#49811) This provides and interface to `Intrinsics.atomic_pointerref` and `Intrinsics.atomic_pointerset` through `unsafe_load` and `unsafe_store!`. Added the following atomic pointer operations: unsafe_modify! unsafe_replace! unsafe_swap! elsize(::Type{<:Ptr}) Tests previously using the explicit intrinsic method here are replaced by the new user facing variants. Add notes about atomic implementation and refs to relevant field and property method docs. Move general atomic doc strings to kw doc and ref in multi-threading. Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> | 05 June 2023, 23:20:47 UTC |
32e2986 | pchintalapudi | 05 June 2023, 22:44:49 UTC | Add LLVMExtra stubs for newpm (#50042) | 05 June 2023, 22:44:49 UTC |
3051f47 | Takafumi Arakaki | 05 June 2023, 18:29:23 UTC | Use xchg to swap boxed values (#45147) * Use xchg to swap boxed values * Update src/cgutils.cpp Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> * Update src/cgutils.cpp Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> | 05 June 2023, 18:29:23 UTC |
270a1d8 | Fons van der Plas | 05 June 2023, 18:26:51 UTC | Docs: simple docstring for `write(filename::AbstractString, x)` (#49835) * Docs: simple docstring for `write(filename::AbstractString, x)` * use `content` instead of `x` * Update base/io.jl Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Update base/io.jl --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 05 June 2023, 18:26:51 UTC |
3c29942 | Nathan Daly | 05 June 2023, 17:18:44 UTC | Remove printlns from test/atexit.jl (#50066) | 05 June 2023, 17:18:44 UTC |
f407a4c | Shuhei Kadowaki | 04 June 2023, 03:20:02 UTC | inlining: allow callsite inlining with cached results (#50048) In some rare cases with callsite inlining, we try to inline an inferred result from a local cache (`inf_result::InferenceResult`), whose source has been transformed by `transform_result_for_cache`. At present, `inf_result.src` stays to be `OptimizationState` in such cases, causing `inlining_policy` to handle the callsite inlining. This commit adjusts `transform_result_for_cache` so that it stores the transformed source in `inf_result.src`, letting the callsite inliner use it. Down the line, we might revisit this change to align it with 532125d51d23f22c3fd117fe8a37c158fe16ac62, which isn't enabled yet. | 04 June 2023, 03:20:02 UTC |
ff23b37 | Ian Butterworth | 04 June 2023, 01:27:33 UTC | add docs on task migration (#50047) | 04 June 2023, 01:27:33 UTC |
0c774c7 | Alexander Plavin | 03 June 2023, 05:13:14 UTC | fix empty string error in Printf (#50011) * fix empty string error in Printf * Update runtests.jl * Update runtests.jl | 03 June 2023, 05:13:14 UTC |
c3d70e8 | Colin Caine | 03 June 2023, 05:02:18 UTC | Update Printf.jl reference link (#50029) The old link described %g inaccurately. The new one is better (tho it mentions %n, which we don't support). | 03 June 2023, 05:02:18 UTC |
f4a264a | pchintalapudi | 02 June 2023, 23:31:22 UTC | Rename LLVM passes to be suffixed with Pass (#50043) | 02 June 2023, 23:31:22 UTC |
1961019 | Lilith Orion Hafner | 02 June 2023, 14:45:38 UTC | Optimize top_set_bit(::BigInt) and hash(::Real) (#49996) * implement top_set_bit in Julia for increased performance * simplify and optimize hash(::Real) --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 02 June 2023, 14:45:38 UTC |
f09e46d | Steve Kelly | 02 June 2023, 13:27:26 UTC | add Compiler diagram (#49893) This is inspired by the diagram presented by Lionel Zoubritzky in his 2018 JuliaCon talk. This gives a visual overview of what is happening in the compiler. | 02 June 2023, 13:27:26 UTC |
0efb7c5 | Steve Kelly | 02 June 2023, 13:26:41 UTC | add docs for `Base.shred!` (#50032) It was mentioned in `Base.SecretBuffer`. | 02 June 2023, 13:26:41 UTC |
be2c35a | Steve Kelly | 02 June 2023, 13:26:11 UTC | mention `Cmd(::Vector{String})` in `Cmd` docstring (#49684) * mention `Cmd(::Vector{String})` in `Cmd` docstring This seems like a cyclical definition without it, and naively `Cmd` and `String` seem on the surface to be similar so it can be surprising that `Cmd("a string")` does not work. Adding this signature in the docstring should obviate the issues for first time users that read the docstring without having reviewed the manual. We also clarify the behavior of `exec` and command literals. --------- Co-authored-by: Steven G. Johnson <stevenj@mit.edu> | 02 June 2023, 13:26:11 UTC |
a35e53d | Cody Tapscott | 02 June 2023, 03:25:46 UTC | Merge pull request #49901 from topolarity/julia-side-timing Allocate timing counts on-the-fly + support dynamic events | 02 June 2023, 03:25:46 UTC |
3c915f3 | Cody Tapscott | 26 May 2023, 02:30:52 UTC | Sort jl_timing counts events before printing | 01 June 2023, 19:38:42 UTC |
3b90d5e | Cody Tapscott | 26 May 2023, 00:49:51 UTC | Use `jl_timing_set_enable` instead of `DISABLE_SUBSYSTEM` | 01 June 2023, 19:38:41 UTC |
5850227 | Cody Tapscott | 25 May 2023, 16:11:45 UTC | Add timing event locks + de-duplicate ITTAPI events | 01 June 2023, 19:37:48 UTC |
cb0537f | Cody Tapscott | 19 May 2023, 07:46:07 UTC | timing: Allocate all timing events dynamically This paves the way for a Julia-side API that can create new events on-the-fly without having to modify timing.h The core of the change is to introduce two different structs: - An "event" stores all of the statically-determined attributes of a profiler event (typically, zone name and source location info) - A "timing block" stores the dynamic information relevant to a particular span/measurement in the timing run Events and timing blocks have a one-to-many relationship. The intended pattern for a Julia-side API is to construct an event once at parse-time using `jl_timing_event_create` (since this is relatively expensive due to profiler traffic and allocations) and then to create its own timing block on-the-fly for each block entry/exit. This also re-factors the API a bit to hopefully be more consistently named | 01 June 2023, 19:37:46 UTC |
f61bbfb | Stefan Karpinski | 01 June 2023, 12:45:04 UTC | Some mailmap updates (#49997) | 01 June 2023, 12:45:04 UTC |
e0761b3 | Shuhei Kadowaki | 01 June 2023, 04:37:51 UTC | inlining: some refactoring on the inlining code (#50016) - clean up the edge tracking: * removed `valid_worlds` tracking since it is never updated * removed `EdgeTracker` object and make `InliningEdgeTracker` update inlining edges always - clean up dead `OptimizationParams` arguments | 01 June 2023, 04:37:51 UTC |
304e9a0 | Kiran | 31 May 2023, 20:16:01 UTC | Add GC metric `last_full_sweep` (#50018) Records the time that the last full sweep ran. | 31 May 2023, 20:16:01 UTC |
e4cf096 | Kristoffer Carlsson | 31 May 2023, 18:50:46 UTC | Merge pull request #50010 from JuliaLang/kc/profiling_changes Minor tweaks to the runtime profiling | 31 May 2023, 18:50:46 UTC |
28630ee | Elliot Saba | 31 May 2023, 18:39:13 UTC | Merge pull request #50002 from topolarity/clangsa-gcc-error Makefile: Use Clang CFLAGS when running `analyzegc` | 31 May 2023, 18:39:13 UTC |
dd44113 | Shuhei Kadowaki | 31 May 2023, 17:25:03 UTC | add `@inline` annotation to `Core.Compiler.specialize_method` (#50015) Since the return type of `Core.Compiler.specialize_method` relies on the boolean keyword argument `preexisting`, it is profitable to constant propagate it to get better inferrability. | 31 May 2023, 17:25:03 UTC |
9b27a8f | Shuhei Kadowaki | 31 May 2023, 15:49:36 UTC | errorshow: simplify printing of keyword argument types using a new macro format (#49959) In Julia, keyword arguments are represented as `Base.Pairs` objects. However, the object type often appears unnecessarily complex, especially when printed in a stack trace. This commit aims to simplify the printing of stack traces that involve keyword method calls, while still allowing us to reconstruct the actual method signature types from the printed signature types. The approach is similar to #49117: this commit introduces a new macro called `Base.@Kwargs`. It follows the same syntax as `@NamedTuple` and returns a `Base.Pairs` type that is used for keyword method calls. We use this syntax when printing keyword argument types. Here's an example of a stack trace: ```diff diff --git a/b.jl b/a.jl index 91dd6f0464..b804ae4be5 100644 --- a/b.jl +++ b/a.jl @@ -22,12 +22,11 @@ Stacktrace: @ Base ./reduce.jl:44 [inlined] [6] mapfoldl(f::typeof(identity), op::typeof(Base.add_sum), itr::String; init::Int64) @ Base ./reduce.jl:175 [inlined] - [7] mapreduce(f::typeof(identity), op::typeof(Base.add_sum), itr::String; kw::Base.Pairs{…}) + [7] mapreduce(f::typeof(identity), op::typeof(Base.add_sum), itr::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:307 [inlined] - [8] sum(f::typeof(identity), a::String; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, @NamedTuple{init::Int64}}) + [8] sum(f::typeof(identity), a::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:535 [inlined] - [9] sum(a::String; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, @NamedTuple{init::Int64}}) + [9] sum(a::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:564 [inlined] [10] top-level scope ``` --- * RFC: errorshow: simplify printing of keyword argument types using a new macro format * export and document `Base.@Kwargs` and further simplify the stack trace view * use the `@Kwargs` syntax only when printing kwmethod signature within stack trace view And add tests. * add news entry * more type stability * Apply suggestions from code review * enable the type-repr simplification unconditionally in the stack trace Since keyword pairs can appear within positional arguments, it can be confusing if we print the same type with different representations. * omit type annotation for splat keyword argument * add test for `@Kwargs` * clean up test/errorshow.jl | 31 May 2023, 15:49:36 UTC |
d3d09c1 | Kristoffer Carlsson | 31 May 2023, 14:04:41 UTC | add a timing zone for `call_require` (#49723) | 31 May 2023, 14:04:41 UTC |
d5145de | Lilith Orion Hafner | 31 May 2023, 13:44:55 UTC | fix and test sorting arrays with >1 dimension and custom `similar` (#49392) * fix and test sorting arrays with >1 dimension and custom `similar` * add PR number --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 31 May 2023, 13:44:55 UTC |
faca5bd | KristofferC | 31 May 2023, 10:18:36 UTC | disable `TYPE_CACHE_INSERT` profile zone by default This one tend to be very fast, produce many entries and it tends to be not very interesting in most cases | 31 May 2023, 11:16:15 UTC |
b050ca9 | KristofferC | 31 May 2023, 10:17:45 UTC | only add an entry for `METHOD_MATCH` if it does some work | 31 May 2023, 11:16:15 UTC |
da98f54 | KristofferC | 31 May 2023, 10:17:23 UTC | move `jl_timing_apply_env` to a later place where it uses initialized data Also, move it after `DISABLE_SUBSYSTEM` to avoid it clobbering the results. | 31 May 2023, 11:15:40 UTC |
ca3270b | Jameson Nash | 31 May 2023, 09:33:03 UTC | lowering: apply let hygiene in let environment (#49999) Not just a regression, since this test also fails on old versions, but #49897 applied the wrong environment to make this hygiene correct which broke it worse. Fix #49984 | 31 May 2023, 09:33:03 UTC |
7e25ebf | DilumAluthgeBot | 31 May 2023, 09:32:18 UTC | 🤖 [master] Bump the Pkg stdlib from daf02a458 to 9c01707a2 (#50005) * 🤖 [master] Bump the Pkg stdlib from daf02a458 to 9c01707a2 * remove Pkg.LazilyInitializedFields from docs --------- Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Co-authored-by: Ian <i.r.butterworth@gmail.com> | 31 May 2023, 09:32:18 UTC |
c3a08fe | Cody Tapscott | 30 May 2023, 20:13:57 UTC | Makefile: For gcanalyze, use Clang's CFLAGS not GCC's It's supported to build the analysis plugin with GCC, but the flags we actually run it with need to match Clang. | 31 May 2023, 02:47:09 UTC |
84bf67c | Lilith Orion Hafner | 30 May 2023, 19:55:28 UTC | Support sorting iterators (#46104) * widen sort's type signature * throw on AbstractString * Throw on infinite iterator * make sort(::NTuple) return a tuple (use vector internally for sorting for large tuples) | 30 May 2023, 19:55:28 UTC |
d912d85 | Fons van der Plas | 30 May 2023, 19:32:58 UTC | doc: simple docstring for `read(filename::AbstractString)` (#49836) | 30 May 2023, 19:32:58 UTC |
318f0ea | Fons van der Plas | 30 May 2023, 19:29:25 UTC | docs: first describe simple `read` and `write` without streaming (#49834) | 30 May 2023, 19:29:25 UTC |
c63feee | Fabian Zickgraf | 30 May 2023, 19:25:24 UTC | show: fix printing of "function (x...) end" (#49874) Previously, the parentheses were missing. | 30 May 2023, 19:25:24 UTC |
bd5e6da | Jameson Nash | 30 May 2023, 19:11:00 UTC | fix atomic intrinsics implementation issues (#49967) * jltypes: add missing GC root for cmpswap_type Tuple. This is called with a fieldtype, which might not even be a DataType. * support Ptr{Union{}} and Ptr{Cvoid} better | 30 May 2023, 19:11:00 UTC |
f6f637a | Jameson Nash | 30 May 2023, 19:09:40 UTC | cleanup: some fixes from effort to break up monolithic sysimg build (#49953) From #38119 | 30 May 2023, 19:09:40 UTC |
20752db | Nathan Daly | 30 May 2023, 16:23:39 UTC | thread safety: lock around atexit_hooks global (#49868) Ensure the lock is precise, so that we are allowed to register new atexit hooks from inside an atexit hook. But then disable `atexit()` when shutting down after it finishes running. Add tests that cover all the cases: 1. registering a hook from inside a hook 2. registering a hook from another thread while hooks are running 3. attempting to register a hook after all hooks have finished (disallowed) Fixes #49841 Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 30 May 2023, 16:23:39 UTC |
ed5bd4c | Shuhei Kadowaki | 30 May 2023, 06:09:08 UTC | Revert "Use `top_set_bit` to optimize `hash(Real)` (#49986)" (#49993) This reverts commit 18d02c249a90a7c2d25ac5a99a14cf7a414a3295. | 30 May 2023, 06:09:08 UTC |
18d02c2 | Lilith Orion Hafner | 29 May 2023, 23:23:15 UTC | Use `top_set_bit` to optimize `hash(Real)` (#49986) | 29 May 2023, 23:23:15 UTC |
957972e | Gabriel Baraldi | 29 May 2023, 19:21:26 UTC | Expose the Julia JIT with a C API (#49858) | 29 May 2023, 19:21:26 UTC |
1cc10a6 | Shuhei Kadowaki | 29 May 2023, 09:20:39 UTC | refactor `Base.StackTraces.show_spec_linfo` (#49951) This commit separates the `MethodInstance` handling of `Base.StackTraces.show_spec_linfo` into `Base.StackTraces.show_spec_sig`, which can be generally useful for external code inspection tools or debuggers (like JET.jl). | 29 May 2023, 09:20:39 UTC |
0d5bd2f | Navid C. Constantinou | 29 May 2023, 09:16:17 UTC | Add missing code formatting (#49983) | 29 May 2023, 09:16:17 UTC |
248ceda | Lilith Orion Hafner | 27 May 2023, 13:39:33 UTC | Abbreviate varinfo signature and re-order for consistency (#48860) | 27 May 2023, 13:39:33 UTC |
e727afb | Lilith Orion Hafner | 27 May 2023, 11:36:10 UTC | Move reflection documentation from devdocs to base (#47800) | 27 May 2023, 11:36:10 UTC |
fb3df69 | romaindegivry | 26 May 2023, 22:56:56 UTC | Improve error when indexing is interpreted as a typed comprehension (#49939) * Improve errors for typed_hcat by adding a special error for indexing that gets resolved as a typed comprehension. * Add a test for issue #49676 | 26 May 2023, 22:56:56 UTC |
ba2aa30 | Stephan Hilb | 26 May 2023, 21:44:37 UTC | Enum: fix stackoverflow in `hash` for custom enum subtypes introduced in #49777 (#49964) | 26 May 2023, 21:44:37 UTC |
f8dd16e | Zachary P Christensen | 26 May 2023, 18:53:31 UTC | Add Libc methods for memmove/memcpy/memset/memcmp (#49550) These are used in many places (and are actually LLVM compiler intrinsics), so it probably makes more sense to define them one and export them to users. The Libc module contains some code that we might not care to have as part of bootstrapping. However, the C-memory methods are directly called throughout bootstrapping so these are now defined in a seperate "cmem.jl" file that is defined in Base then imported into `Libc` for the public interface. Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 26 May 2023, 18:53:31 UTC |
ba1391a | Jameson Nash | 26 May 2023, 18:51:09 UTC | some minor hygiene fixes (#49897) This code does a bad job handling `(escape symbol)` in a lot of places. This attempts to fix some of them by peeking through it more. | 26 May 2023, 18:51:09 UTC |
23e0b2d | Tim Besard | 26 May 2023, 17:09:12 UTC | Hide safepoint prologue and CFI instructions from reflection. (#49948) | 26 May 2023, 17:09:12 UTC |
666d325 | Thomas Graham | 26 May 2023, 12:53:34 UTC | Fix conversion of infinities to integers (#49624) Fixes #49422 | 26 May 2023, 12:53:34 UTC |
4ef9fb1 | Tim Besard | 26 May 2023, 12:25:37 UTC | When adopting a thread, spin until GC isn't running. (#49934) Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> | 26 May 2023, 12:25:37 UTC |
91cd521 | Cody Tapscott | 26 May 2023, 01:55:35 UTC | Extend comparison lifting to `Core.ifelse` (#49882) This change extends our existing transformation for: φ(a,b) === Const(c) => φ(a === c, b === c) to perform the analogous transformation for `Core.ifelse`: Core.ifelse(cond, a, b) === Const(c) => Core.ifelse(cond, a === c, b === c) | 26 May 2023, 01:55:35 UTC |
229269b | Gabriel Baraldi | 25 May 2023, 17:37:20 UTC | Don't permalloc the pkgimgs, but with an option (#49940) | 25 May 2023, 17:37:20 UTC |
01ddf80 | Jameson Nash | 25 May 2023, 13:52:51 UTC | lowering: preserve line numbers over julia-expand-macroscope pass (#44995) This is to preserve the line number of the macro caller in the output, in case we don't have context from eval on where it occured. But we make slightly more changes than strictly necessary to prepare for future improvements in this area. | 25 May 2023, 13:52:51 UTC |
94bc2f3 | pchintalapudi | 25 May 2023, 00:11:36 UTC | Merge pull request #49679 from JuliaLang/pc/timing-events | 25 May 2023, 00:11:36 UTC |
e370e4e | Cody Tapscott | 24 May 2023, 18:26:14 UTC | Slightly re-factor timing counts back-end This should make it clearer what the responsibilities for each function are, and fix a bug where conditionally-triggered events could end up with an invalid total time. | 24 May 2023, 18:42:19 UTC |
aea56a9 | Kiran | 24 May 2023, 15:01:20 UTC | Ensure Distributed workers inherit threads spec properly (#49942) | 24 May 2023, 15:01:20 UTC |
310f590 | Daniel Karrasch | 24 May 2023, 12:30:14 UTC | Include `HermOrSym` in character-based `mul!` dispatch (#49865) | 24 May 2023, 12:30:14 UTC |
bee2c30 | Vasily Ilin | 24 May 2023, 07:01:37 UTC | doc: add rand! and randn! to docstrings of rand and randn (#49808) | 24 May 2023, 07:01:37 UTC |
c470dc3 | Kiran | 23 May 2023, 13:26:41 UTC | Lock finalizers lists at exit (#49931) | 23 May 2023, 13:26:41 UTC |
1143b8f | Oscar Smith | 23 May 2023, 13:04:40 UTC | improve error message when calling argextype on invalid ir (#49923) | 23 May 2023, 13:04:40 UTC |
22551a2 | Stephan Hilb | 23 May 2023, 11:15:31 UTC | allow specializing `Base.hash` for enum types without overwriting method (#49777) Previously `@enum` defined `Base.hash(::MyEnumType, ::UInt)` on the user-defined enum type `MyEnumType`. When the user wants to specialize the hash function for his own enum type he will define exactly that method signature again which overwrites it and leads to the warning WARNING: Method definition hash(TestPackage.MyEnumType, UInt64) in module TestPackage at Enums.jl:210 overwritten at [...] ** incremental compilation may be fatally broken for this module ** This commit changes `@enum` so that an internal method is used instead which is called through a fallback `Base.hash(::Enum, ::UInt)`. | 23 May 2023, 11:15:31 UTC |
f44be79 | Shuhei Kadowaki | 23 May 2023, 06:16:47 UTC | Merge pull request #41931 from JuliaLang/avi/noinfer * introduce `@nospecializeinfer` macro to tell the compiler to avoid excess inference This commit introduces a new compiler annotation called `@nospecializeinfer`, which allows us to request the compiler to avoid excessive inference. \## `@nospecialize` mechanism T discuss `@nospecializeinfer`, let's first understand the behavior of `@nospecialize`. Its docstring says that > This is only a hint for the compiler to avoid excess code generation. , and it works by suppressing dispatches with complex runtime occurrences of the annotated arguments. This could be understood with the example below: ```julia julia> function call_func_itr(func, itr) local r = 0 r += func(itr[1]) r += func(itr[2]) r += func(itr[3]) r end; julia> _isa = isa; # just for the sake of explanation, global variable to prevent inlining julia> func_specialize(a) = _isa(a, Function); julia> func_nospecialize(@nospecialize a) = _isa(a, Function); julia> dispatchonly = Any[sin, muladd, nothing]; # untyped container can cause excessive runtime dispatch julia> @code_typed call_func_itr(func_specialize, dispatchonly) CodeInfo( 1 ─ %1 = π (0, Int64) │ %2 = Base.arrayref(true, itr, 1)::Any │ %3 = (func)(%2)::Any │ %4 = (%1 + %3)::Any │ %5 = Base.arrayref(true, itr, 2)::Any │ %6 = (func)(%5)::Any │ %7 = (%4 + %6)::Any │ %8 = Base.arrayref(true, itr, 3)::Any │ %9 = (func)(%8)::Any │ %10 = (%7 + %9)::Any └── return %10 ) => Any julia> @code_typed call_func_itr(func_nospecialize, dispatchonly) CodeInfo( 1 ─ %1 = π (0, Int64) │ %2 = Base.arrayref(true, itr, 1)::Any │ %3 = invoke func(%2::Any)::Any │ %4 = (%1 + %3)::Any │ %5 = Base.arrayref(true, itr, 2)::Any │ %6 = invoke func(%5::Any)::Any │ %7 = (%4 + %6)::Any │ %8 = Base.arrayref(true, itr, 3)::Any │ %9 = invoke func(%8::Any)::Any │ %10 = (%7 + %9)::Any └── return %10 ) => Any ``` The calls of `func_specialize` remain to be `:call` expression (so that they are dispatched and compiled at runtime) while the calls of `func_nospecialize` are resolved as `:invoke` expressions. This is because `@nospecialize` requests the compiler to give up compiling `func_nospecialize` with runtime argument types but with the declared argument types, allowing `call_func_itr(func_nospecialize, dispatchonly)` to avoid runtime dispatches and accompanying JIT compilations (i.e. "excess code generation"). The difference is evident when checking `specializations`: ```julia julia> call_func_itr(func_specialize, dispatchonly) 2 julia> length(Base.specializations(only(methods(func_specialize)))) 3 # w/ runtime dispatch, multiple specializations julia> call_func_itr(func_nospecialize, dispatchonly) 2 julia> length(Base.specializations(only(methods(func_nospecialize)))) 1 # w/o runtime dispatch, the single specialization ``` The problem here is that it influences dispatch only, and does not intervene into inference in anyway. So there is still a possibility of "excess inference" when the compiler sees a considerable complexity of argument types during inference: ```julia julia> func_specialize(a) = _isa(a, Function); # redefine func to clear the specializations julia> @assert length(Base.specializations(only(methods(func_specialize)))) == 0; julia> func_nospecialize(@nospecialize a) = _isa(a, Function); # redefine func to clear the specializations julia> @assert length(Base.specializations(only(methods(func_nospecialize)))) == 0; julia> withinfernce = tuple(sin, muladd, "foo"); # typed container can cause excessive inference julia> @time @code_typed call_func_itr(func_specialize, withinfernce); 0.000812 seconds (3.77 k allocations: 217.938 KiB, 94.34% compilation time) julia> length(Base.specializations(only(methods(func_specialize)))) 4 # multiple method instances inferred julia> @time @code_typed call_func_itr(func_nospecialize, withinfernce); 0.000753 seconds (3.77 k allocations: 218.047 KiB, 92.42% compilation time) julia> length(Base.specializations(only(methods(func_nospecialize)))) 4 # multiple method instances inferred ``` The purpose of this PR is to implement a mechanism that allows us to avoid excessive inference to reduce the compilation latency when inference sees a considerable complexity of argument types. \## Design Here are some ideas to implement the functionality: 1. make `@nospecialize` block inference 2. add nospecializeinfer effect when `@nospecialize`d method is annotated as `@noinline` 3. implement as `@pure`-like boolean annotation to request nospecializeinfer effect on top of `@nospecialize` 4. implement as annotation that is orthogonal to `@nospecialize` After trying 1 ~ 3., I decided to submit 3. \### 1. make `@nospecialize` block inference This is almost same as what Jameson has done at <https://github.com/vtjnash/julia/commit/8ab7b6b94079b842b5db9f3fe29eb9d2708f5d1e>. It turned out that this approach performs very badly because some of `@nospecialize`'d arguments still need inference to perform reasonably. For example, it's obvious that the following definition of `getindex(@nospecialize(t::Tuple), i::Int)` would perform very badly if `@nospecialize` blocks inference, because of a lack of useful type information for succeeding optimizations: <https://github.com/JuliaLang/julia/blob/12d364e8249a07097a233ce7ea2886002459cc50/base/tuple.jl#L29-L30> \### 2. add nospecializeinfer effect when `@nospecialize`d method is annotated as `@noinline` The important observation is that we often use `@nospecialize` even when we expect inference to forward type and constant information. Adversely, we may be able to exploit the fact that we usually don't expect inference to forward information to a callee when we annotate it with `@noinline` (i.e. when adding `@noinline`, we're usually fine with disabling inter-procedural optimizations other than resolving dispatch). So the idea is to enable the inference suppression when `@nospecialize`'d method is annotated as `@noinline` too. It's a reasonable choice and can be efficiently implemented with #41922. But it sounds a bit weird to me to associate no infer effect with `@noinline`, and I also think there may be some cases we want to inline a method while partly avoiding inference, e.g.: ```julia \# the compiler will always infer with `f::Any` @noinline function twof(@nospecialize(f), n) # this method body is very simple and should be eligible for inlining if occursin('+', string(typeof(f).name.name::Symbol)) 2 + n elseif occursin('*', string(typeof(f).name.name::Symbol)) 2n else zero(n) end end ``` \### 3. implement as `@pure`-like boolean annotation to request nospecializeinfer effect on top of `@nospecialize` This is what this commit implements. It basically replaces the previous `@noinline` flag with a newly-introduced annotation named `@nospecializeinfer`. It is still associated with `@nospecialize` and it only has effect when used together with `@nospecialize`, but now it is not associated to `@noinline`, and it would help us reason about the behavior of `@nospecializeinfer` and experiment its effect more safely: ```julia \# the compiler will always infer with `f::Any` Base.@nospecializeinfer function twof(@nospecialize(f), n) # the compiler may or not inline this method if occursin('+', string(typeof(f).name.name::Symbol)) 2 + n elseif occursin('*', string(typeof(f).name.name::Symbol)) 2n else zero(n) end end ``` \### 4. implement as annotation that is orthogonal to `@nospecialize` Actually, we can have `@nospecialize` and `@nospecializeinfer` separately, and it would allow us to configure compilation strategies in a more fine-grained way. ```julia function noinfspec(Base.@nospecializeinfer(f), @nospecialize(g)) ... end ``` I'm fine with this approach but at the same time I'm afraid to have too many annotations that are related to some sort (I expect we will annotate both `@nospecializeinfer` and `@nospecialize` in this scheme). --- experiment `@nospecializeinfer` on `Core.Compiler` This commit adds `@nospecializeinfer` macro on various `Core.Compiler` functions and achieves the following sysimage size reduction: | | this commit | master | % | | --------------------------------- | ----------- | ----------- | ------- | | `Core.Compiler` compilation (sec) | `66.4551` | `71.0846` | `0.935` | | `corecompiler.jl` (KB) | `17638080` | `18407248` | `0.958` | | `sys.jl` (KB) | `88736432` | `89361280` | `0.993` | | `sys-o.a` (KB) | `189484400` | `189907096` | `0.998` | --------- Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Tim Holy <tim.holy@gmail.com> | 23 May 2023, 06:16:47 UTC |
944b28c | Diogo Netto | 22 May 2023, 19:29:39 UTC | show mark-queue on GC critical error (#49902) Re-adds the capability of showing the mark-queue on a GC critical error. | 22 May 2023, 19:29:39 UTC |
e02d3ba | Jameson Nash | 22 May 2023, 15:21:03 UTC | jltypes: always run parameter normalization (#49845) This simplifies the types, which may help subtyping other other similar lookup code any time this is later used as a parameter, so it is probably worthwhile to do. This is a followup to #49820, where we reorganized the code to make this more straightforward. | 22 May 2023, 15:21:03 UTC |
1c21cbb | Elliot Saba | 22 May 2023, 14:32:54 UTC | Merge pull request #48793 from stahta01/libgit_find_libssh2_fix [WINDOWS][BUILD] Fix for Cygwin using USE_BINARYBUILDER_LIBGIT2=0 | 22 May 2023, 14:32:54 UTC |
672f609 | Katharine Hyatt | 22 May 2023, 11:06:39 UTC | Two simple examples for Threads (#49704) | 22 May 2023, 11:06:39 UTC |
3b84b08 | Katharine Hyatt | 22 May 2023, 10:50:56 UTC | xref and doctest for regexmatch and occursin (#49911) | 22 May 2023, 10:50:56 UTC |
e4a563a | Tim Stahlhut | 25 February 2023, 16:34:49 UTC | deps/libgit2: Add LIBSSH2 paths | 21 May 2023, 17:41:00 UTC |
a6ad9ea | Cody Tapscott | 21 May 2023, 08:01:27 UTC | Fix jl_timing_show_method_instance for top-level thunks (#49862) This was causing invalid pointer dereferences when the method instance had no backing method. | 21 May 2023, 08:01:27 UTC |
0495278 | Jameson Nash | 21 May 2023, 08:00:10 UTC | lowering: avoid copying the entire module back to flisp just to get its name (#49898) | 21 May 2023, 08:00:10 UTC |