https://github.com/JuliaLang/julia
- 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/LilithHafner-patch-1
- 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/an/genericgivens
- 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/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/inlined-stacktrace
- 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-uninit-isbits-check
- 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/avi/unused-noconstprop
- 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/bump-llvm17
- 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/UndefVarError-scope-nothing
- 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/test_throws-undefined-fields
- 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/asan-fun
- refs/heads/gb/branch-bits
- refs/heads/gb/codegen-fun
- refs/heads/gb/gc-correct-constraint
- refs/heads/gb/gc-other-impl
- refs/heads/gb/hashtable_typelist
- refs/heads/gb/libfuncattrs
- refs/heads/gb/llvmpasses-dep
- refs/heads/gb/memcmo
- refs/heads/gb/mi-alias
- refs/heads/gb/opt-global
- refs/heads/gb/pipeline-fun
- refs/heads/gb/rpath-fun
- refs/heads/gb/small-image
- refs/heads/gb/small-image2
- refs/heads/gb/small-image3
- 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/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/small-image3
- refs/heads/jb/steprangegetindex
- refs/heads/jb/stripmeta
- refs/heads/jb/stripnewdbg
- 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/bandindexing
- refs/heads/jishnub/bidiagbroadcast
- refs/heads/jishnub/bitridiagcomplexadj
- refs/heads/jishnub/blocktridiagonalindexing
- refs/heads/jishnub/copytostructured
- refs/heads/jishnub/getindexint
- refs/heads/jishnub/ntupleshow
- refs/heads/jishnub/onebasedranges
- refs/heads/jishnub/onetopromoterule
- refs/heads/jishnub/oopmuldisambiguate
- refs/heads/jishnub/rangebroadcastambiguity
- refs/heads/jishnub/rangezero
- refs/heads/jishnub/tricopyto
- 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/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/cpu_target_pkgimage
- 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/extension_indirect_deps
- refs/heads/kc/filtering_precompile
- 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/io_take_size
- 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/53832
- 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/currygetproperty
- 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/fillrevert
- refs/heads/kf/forcedar
- refs/heads/kf/forcedartemp
- refs/heads/kf/gallium
- refs/heads/kf/getfieldlowering
- refs/heads/kf/hasinternalchange
- 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/loopyegal
- 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/ubdocs
- 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/mb/what-is-init
- 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-enforce-stable
- 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-specialized-in-tuples
- 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/makedocs
- refs/heads/nl/mapreducedim
- refs/heads/ob/cttx
- refs/heads/ob/rref
- refs/heads/ob/stackmaps
- refs/heads/openssl
- 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-4
- refs/heads/stevengj-patch-5
- refs/heads/stevengj-patch-6
- 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/getpointeraddrspace
- 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.11.0-beta1
- 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
- Branches list truncated to 996 entries, 28 were omitted.
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
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 |
---|---|---|---|---|
9cbee21 | Alexander Plavin | 21 May 2023, 07:58:19 UTC | parentindices and parent of substring (#49511) * parentindices and parent of substring * upd docs * Update base/abstractarray.jl Co-authored-by: Jakob Nybo Nissen <jakobnybonissen@gmail.com> * Update test/strings/basic.jl Co-authored-by: Jakob Nybo Nissen <jakobnybonissen@gmail.com> --------- Co-authored-by: Jakob Nybo Nissen <jakobnybonissen@gmail.com> | 21 May 2023, 07:58:19 UTC |
046f610 | Prem Chintalapudi | 21 May 2023, 01:00:18 UTC | t0 is in counts_ctx | 21 May 2023, 01:00:18 UTC |
8e03be1 | Zachary P Christensen | 20 May 2023, 20:52:22 UTC | Improve `isassigned` implementation (#49827) Unless `isassigned` is called on `Array` with `Int`s, it uses a try catch, which is notoriously slow. This PR provides changes the default implementation of `isassigned` to coerce the indices provided to `Int`s and converts to linear or cartesian indices, depending on the arrays `IndexStyle`. This also overloads `isassigned` for many of the array types defined in Base. Fixes: https://github.com/JuliaLang/julia/issues/44720 | 20 May 2023, 20:52:22 UTC |
d2f5bbd | Shuhei Kadowaki | 20 May 2023, 10:45:15 UTC | REPLCompletions: use a fixed world age for `REPLInterpreter` inference (#49880) This commit uses a fixed world age for `REPLInterpreter` inference, making `REPLInterpreter` robust against potential invalidations of `Core.Compiler` methods. It also generates code cache for `REPLinterpreter` at the fixed world age so that the first-time to completion stays the (almost) same. | 20 May 2023, 10:45:15 UTC |
4d3000b | Shuhei Kadowaki | 20 May 2023, 07:08:45 UTC | follow up #49889, pass `sv::AbsIntState` to `concrete_eval_call` (#49904) `sv` is not used by `NativeInterpreter`, but is used by external `AbstractInterpreter` like JET.jl. | 20 May 2023, 07:08:45 UTC |
1ef9f37 | Shuhei Kadowaki | 20 May 2023, 04:49:20 UTC | [NFC] cosmetic refactor of `abstract_call_method_with_const_args` (#49889) This commit is a collection of minor NFC (No Functional Change) modifications. Essentially, it is a cosmetic refactor, so there should be no changes in terms of compiler functionality. The specific changes include: - Making `concrete_eval_eligible` always return a value of `Symbol`, either of `:concrete_eval`, `:semi_concrete_eval` and `:none`, clarifying its return value's meaning - Splitting `abstract_call_method_with_const_args` into more granular subroutines - Rearranged the subroutines in `abstract_call_method_with_const_args` to ensure that the processing flow of the code can be followed when read from top to bottom | 20 May 2023, 04:49:20 UTC |
5dafc84 | N5N3 | 20 May 2023, 01:14:15 UTC | subtype: add a fast-path for Union parameters (#49878) For #49857 performance The union explosion is caused by the following MWE: `Type{Vector{Union{....}} <: Type{Array{T}} where {T}` 280f9993608956f76eac30fc85e1c6ebbca4f5e6 only fixes for `Union{......}` without free `Typevar`. This fast-path makes sure the remaining get fixed. | 20 May 2023, 01:14:15 UTC |
6d70d2a | Nathan Daly | 19 May 2023, 21:49:47 UTC | Attempting to add debug logs for ENQUEUING an invalid object (#49741) * Attempting to add debug logs for ENQUEUING an invalid object Check for the object's validity _before enqueuing_ so that we can hopefully give a more useful error message (which object's pointer was corrupted). --------- Co-authored-by: Diogo Netto <diogonetto.dcn@gmail.com> | 19 May 2023, 21:49:47 UTC |
6b2ba1d | pchintalapudi | 19 May 2023, 21:49:18 UTC | Update src/timing.h Co-authored-by: Cody Tapscott <84105208+topolarity@users.noreply.github.com> | 19 May 2023, 21:49:18 UTC |
3500ba4 | Prem Chintalapudi | 19 May 2023, 21:30:43 UTC | Move t0 init to jl_timing_block_start | 19 May 2023, 21:30:43 UTC |
a43ca05 | Jeff Bezanson | 19 May 2023, 20:14:26 UTC | limit printing depth of argument types in stack traces (#49795) Co-authored-by: Tim Holy <tim.holy@gmail.com> | 19 May 2023, 20:14:26 UTC |
1acec74 | Martin Holters | 19 May 2023, 10:04:55 UTC | Make `apply_type_nothrow` robust against `TypeVar`s in upper bounds (#49863) For types like `Foo{S, T<:S}`, `apply_type_nothrow` could in some situations check whether the argument is a subtype of the upper bound of `T`, i.e. `S`, but subtyping agaist a plain `TypeVar` would fail. Instead return `false` in this case. Fixes #49785. | 19 May 2023, 10:04:55 UTC |
863e131 | Prem Chintalapudi | 19 May 2023, 01:27:01 UTC | Time events instead of subsystems | 19 May 2023, 01:27:01 UTC |
c99d839 | Elliot Saba | 18 May 2023, 19:18:32 UTC | Merge pull request #49861 from JuliaLang/sf/null_terminate_path [cli] Ensure that probed `libstdc++` path is NULL-terminated | 18 May 2023, 19:18:32 UTC |
7111597 | Elliot Saba | 17 May 2023, 17:25:10 UTC | [cli] Ensure that probed `libstdc++` path is NULL-terminated It appears that we were assuming our path was initialized with zeros, but that is not a safe assumption. | 18 May 2023, 17:26:52 UTC |
ce3909c | Shuhei Kadowaki | 18 May 2023, 02:54:39 UTC | inference: prioritize `SlotNumber`-constraint over `MustAlias`-constraint (#49856) Currently external `AbstractInterpreter` that uses `MustAliasesLattice` can fail to propagate type constraint on `SlotNumber` in the call-site refinement, e.g. fail to infer the return type of `firstitem(::ItrList)` in the following code: ```julia struct ItrList list::Union{Tuple{},Vector{Int}} end hasitems(list) = length(list) >= 1 function firstitem(ilist::ItrList) list = ilist.list if hasitems(list) return list end error("list is empty") end ``` (xref: <https://github.com/aviatesk/JET.jl/issues/509#issuecomment-1546658476>) This commit fixes it up as well as fixes the implementation of `from_interprocedural!` so that it uses the correct lattice. | 18 May 2023, 02:54:39 UTC |
a612388 | Shuhei Kadowaki | 18 May 2023, 01:27:57 UTC | reflection: declare keyword arguments types for reflection methods (#49783) | 18 May 2023, 01:27:57 UTC |
cb7d141 | Prem Chintalapudi | 17 May 2023, 19:54:18 UTC | Overwrite random value in root timing slot | 17 May 2023, 19:54:18 UTC |
5a503b0 | Prem Chintalapudi | 17 May 2023, 19:48:24 UTC | Print total time and self timing with timing counts | 17 May 2023, 19:48:24 UTC |
5774029 | Prem Chintalapudi | 17 May 2023, 19:30:37 UTC | Sort timing names | 17 May 2023, 19:30:37 UTC |
8b4bb89 | Prem Chintalapudi | 17 May 2023, 19:15:15 UTC | Allow number of subsystems to exceed 64 | 17 May 2023, 19:15:15 UTC |
8e3a756 | Prem Chintalapudi | 17 May 2023, 19:04:17 UTC | jl_timing_enable_mask -> jl_timing_disable_mask | 17 May 2023, 19:04:17 UTC |
98b64b2 | Elliot Saba | 17 May 2023, 19:00:26 UTC | Merge pull request #49842 from JuliaLang/sf/dont_eagerly_load_libgomp Don't depend on `CompilerSupportLibraries_jll` from `OpenBLAS_jll` | 17 May 2023, 19:00:26 UTC |
4dc683b | Prem Chintalapudi | 17 May 2023, 18:55:40 UTC | Make jl_timing_enable_mask atomic | 17 May 2023, 18:55:40 UTC |
84d4b92 | Prem Chintalapudi | 17 May 2023, 18:49:17 UTC | Print timing outputs as CSV | 17 May 2023, 18:49:17 UTC |
d50e25e | Prem Chintalapudi | 17 May 2023, 18:31:19 UTC | Make jl_timing_counts atomic | 17 May 2023, 18:31:19 UTC |
3583fae | Tim Besard | 17 May 2023, 18:14:39 UTC | Tracy: add source-code information to lowering and macro zones. (#49802) | 17 May 2023, 18:14:39 UTC |
869c70e | Shuhei Kadowaki | 17 May 2023, 17:47:43 UTC | follow up #49812, fix the wrong type declaration (#49854) JuliaLang/julia#49812 introduced a bug and broke the CI. This commit fixes it up. | 17 May 2023, 17:47:43 UTC |
34a2436 | Elliot Saba | 17 May 2023, 16:12:36 UTC | Remove CSL from the test suite | 17 May 2023, 16:12:36 UTC |
becaa78 | pchintalapudi | 17 May 2023, 15:31:14 UTC | Add optnone to invoke wrappers (#44590) | 17 May 2023, 15:31:14 UTC |
0b599ce | pchintalapudi | 17 May 2023, 13:16:35 UTC | Fix --image-codegen (#49631) | 17 May 2023, 13:16:35 UTC |
10dc33e | Kristoffer Carlsson | 17 May 2023, 09:59:10 UTC | Revert "Dark and light images for README.md" (#49819) | 17 May 2023, 09:59:10 UTC |
ff012aa | Shuhei Kadowaki | 17 May 2023, 08:52:36 UTC | improve inferrability of loading.jl (#49812) | 17 May 2023, 08:52:36 UTC |
c245179 | Jameson Nash | 16 May 2023, 20:14:58 UTC | fix missing gc root on store to iparams (#49820) Try to optimize the order of this code a bit more, given that these checks are somewhat infrequently to be needed. Fix #49762 | 16 May 2023, 20:14:58 UTC |
45748b8 | Jameson Nash | 16 May 2023, 20:14:14 UTC | [Profile] fix overhead counts in format=:flat (#49824) Regression caused by #41742, which inverted the loop without inverting the logic. And fix a number of related formatting mistakes. Fix #49732 | 16 May 2023, 20:14:14 UTC |
ee0199f | Viral B. Shah | 16 May 2023, 19:44:55 UTC | Various improvements to peakflops() (#49833) * Various improvements to peakflops Use 4096 as the default matrix size Add kwarg to pick the type of elements in the matrix Add kwarg for number of trials and pick best time | 16 May 2023, 19:44:55 UTC |
520b639 | Cody Tapscott | 16 May 2023, 19:19:12 UTC | Merge pull request #49647 from topolarity/timing-refactor Make `jl_timer_block_t` allocation separate from timer-start (JL_TIMING) | 16 May 2023, 19:19:12 UTC |
4d0f35d | Elliot Saba | 16 May 2023, 18:35:37 UTC | Don't depend on `CompilerSupportLibraries_jll` from `OpenBLAS_jll` This is important because CSL_jll loads in many other libraries that we may or may not care that much about, such as `libstdc++` and `libgomp`. We load `libstdc++` eagerly on Linux, so that will already be loaded in all cases that we care about, however on macOS we don't generally want that loaded, and this suppresses that. `libgomp` is needed by BB-provided software that uses OpenMP during compilation, however it can conflict with software compiled by the Intel compilers, such as `MKL`. It's best to allow MKL to load its OpenMP libraries first, so delaying loading `libgomp` until someone actually calls `using CompilerSupportLibraries_jll` is the right thing to do. In the future, we want to rework JLLs such that libraries aren't eagerly loaded at JLL `__init__()` time, but rather they should be JIT loaded upon first usage of the library handle itself. This would allow BB to emit much more fine-grained dependency structures, so that the distribution of a set of libraries can happen together, but the loading of said libraries would be independent. | 16 May 2023, 18:35:37 UTC |
c55000a | Jameson Nash | 16 May 2023, 18:09:57 UTC | add a hash value to Typeofwrapper objects (#49725) We probably should not do this in full correctness, but the performance gain is too great to ignore. | 16 May 2023, 18:09:57 UTC |
78fbf1b | Navid C. Constantinou | 16 May 2023, 06:11:38 UTC | docs: fix code formatting and add some spaces (#49814) | 16 May 2023, 06:11:38 UTC |
dfbcc45 | Shuhei Kadowaki | 16 May 2023, 02:10:13 UTC | ensure all `isequal` methods to be inferred to return `Bool` (#49800) This would help inference on `Core.Compiler.return_type(isequal, tt)` when `tt` is not well inferred (e.g. `tt` is inferred to `Tuple{Any,Any}`). (although JuliaLang/julia#46810 may disable this `Core.Compiler.return_type` improvement for good reasons). Anyway, it is explicitly stated in the documentation that the `isequal` method should always return a value of `Bool`. So, not only does this annotation assist inference, it also serves to ensure the correctness of our code base, and therefore should be beneficial. We may need to take similar measures for `isless` and `isgreater` (in separate PRs). | 16 May 2023, 02:10:13 UTC |
909c57f | pchintalapudi | 15 May 2023, 21:46:22 UTC | Merge pull request #49535 from JuliaLang/pc/ittapi-invalidations Count invalidations, JIT memory, and image memory in profiling reports | 15 May 2023, 21:46:22 UTC |
b9806d6 | Keno Fischer | 15 May 2023, 20:47:14 UTC | irinterp: Don't try to rekill fall-through terminators (#49815) If a fall-through terminator was already Bottom, we should not attempt to rekill the successor edge, because it was already deleted. Yet another fix in the #49692, #49750, #49797 series, which is turning out to be quite a rabit hole. Also fix a typo in the verifer tweak where we were looking at the BB idx rather than the terminator idx. | 15 May 2023, 20:47:14 UTC |
d489203 | pchintalapudi | 15 May 2023, 20:33:58 UTC | Merge pull request #49822 from JuliaLang/jn/jit-dylib-order jitlayers: move the local dylibs ahead of the global one | 15 May 2023, 20:33:58 UTC |
74addd3 | Cody Tapscott | 15 May 2023, 19:14:50 UTC | Reset `active` status for timing zone upon block entry | 15 May 2023, 19:14:50 UTC |
76fbd61 | Jameson Nash | 15 May 2023, 18:19:26 UTC | jitlayers: move the local dylibs ahead of the global one | 15 May 2023, 18:19:26 UTC |
3cadb6c | Cody Tapscott | 15 May 2023, 16:29:12 UTC | Remove pointer indirection in `_TRACY_STOP` | 15 May 2023, 16:29:12 UTC |
1f161b4 | Kristoffer Carlsson | 15 May 2023, 14:44:03 UTC | only time inference if any work is actually done (#49817) | 15 May 2023, 14:44:03 UTC |
15d7bd8 | Daniel Karrasch | 15 May 2023, 14:42:34 UTC | Simplify `mul!` dispatch (#49806) | 15 May 2023, 14:42:34 UTC |
fbbe9ed | Jameson Nash | 15 May 2023, 14:38:44 UTC | Merge pull request #49664 from JuliaLang/jn/ml-matches-rewritten reorder ml-matches to avoid catastrophic performance case | 15 May 2023, 14:38:44 UTC |
9dd3090 | Nathan Daly | 15 May 2023, 14:09:02 UTC | Fix thread safety in `atexit(f)`: Lock access to atexit_hooks (#49774) - atexit(f) mutates global shared state. - atexit(f) can be called anytime by any thread. - Accesses & mutations to global shared state must be locked if they can be accessed from multiple threads. Add unit test for thread safety of adding many atexit functions in parallel | 15 May 2023, 14:09:02 UTC |
f7b0cf2 | Steven G. Johnson | 15 May 2023, 14:05:37 UTC | fix cross-reference link in variables.md (#49779) | 15 May 2023, 14:05:37 UTC |
be33e66 | Kristoffer Carlsson | 15 May 2023, 14:04:28 UTC | Core.Compiler: remove unused variable `phi_ssas` (#49816) | 15 May 2023, 14:04:28 UTC |
edf55b9 | Cody Tapscott | 11 May 2023, 19:40:35 UTC | timing: Create ITTAPI events on the fly Instead of initializing all ITTAPI events during init, this change makes ITTAPI events use a statically-allocated object to track whether the event has been created. This makes our generation of events more similar to the Tracy API, where source locations are generated statically, in-line at each macro call-site instead of constructing them all up front. | 15 May 2023, 11:04:35 UTC |
f9c9d22 | Cody Tapscott | 05 May 2023, 17:00:17 UTC | Split GC_Sweep JL_TIMING event into incremental/full versions | 15 May 2023, 11:04:33 UTC |
2e7f2ef | Cody Tapscott | 05 May 2023, 06:08:23 UTC | timing: Introduce `JL_TIMING_CREATE_BLOCK` to separate alloc/init This includes several changes to the TIMING API: - Adds `JL_TIMING_CREATE_BLOCK(block, subsystem, event)` to create a timing block _without_ starting it - Adds `jl_timing_block_start` to start a timing block which was created with JL_TIMING_CREATE_BLOCK - Removes the C++-specific RAII implementation for JL_TIMING. Although it'd be nice to support JL_TIMING without GCC/Clang, the reality is that the C API prevents that from being achievable. - Renames `JL_TIMING_CURRENT_BLOCK` to `JL_TIMING_DEFAULT_BLOCK` To summarize, `JL_TIMING(subsystem, event)` is now equivalent to: ``` JL_TIMING_CREATE(__timing_block, subsystem, event); jl_timing_block_start(&__timing_block); ``` which also means that conditional events can be supported with: ``` JL_TIMING_CREATE(__timing_block, subsystem, event); if (condition) jl_timing_block_start(&__timing_block); ``` | 15 May 2023, 11:04:00 UTC |
e4924c5 | Kristoffer Carlsson | 15 May 2023, 07:58:29 UTC | add devdocs how to profile package precompilation with tracy (#49784) | 15 May 2023, 07:58:29 UTC |
344f1f5 | Lilith Orion Hafner | 14 May 2023, 17:56:11 UTC | Fixups for the `reinterpret` docstring (#49807) | 14 May 2023, 17:56:11 UTC |
4ed4195 | Elliot Saba | 14 May 2023, 00:32:34 UTC | Merge pull request #49790 from topolarity/tracy-checksums Update LibTracyClient checksums | 14 May 2023, 00:32:34 UTC |
7e1431f | Keno Fischer | 13 May 2023, 21:27:41 UTC | irinterp: Don't introduce invalid CFGs (#49797) This is yet another followup to #49692 and #49750. With the introduced change, we kill the CFG edge from the basic block with the discovered error to its successors. However, we have an invariant in the verifier that the CFG should always match the IR. Turns out this is for good reason, as we assume in a number of places (including, ironically in the irinterp) that a GotoNode/GotoIfNot terminator means that the BB has the corresponding number of successors in the IR. Fix all this by killing the rest of the basic block when we discover that it is unreachable and if possible introducing an unreachable node at the end. However, of course if the erroring statement is the fallthrough terminator itself, there is no space for an unreachable node. We fix this by tweaking the verification to allow this case, as its really no worse than the other problems with fall-through terminators (#41476), but of course it would be good to address that as part of a more general IR refactor. | 13 May 2023, 21:27:41 UTC |
ee86c06 | Prem Chintalapudi | 13 May 2023, 15:56:18 UTC | orc::MemProt -> jitlink::MemProt | 13 May 2023, 15:56:18 UTC |
6fbb9b7 | Prem Chintalapudi | 13 May 2023, 15:50:56 UTC | Track loaded image size | 13 May 2023, 15:50:56 UTC |
60273a5 | Prem Chintalapudi | 13 May 2023, 15:44:52 UTC | Add JIT memory counters | 13 May 2023, 15:46:12 UTC |
e10dbd0 | Prem Chintalapudi | 13 May 2023, 15:26:05 UTC | Address reviews | 13 May 2023, 15:44:29 UTC |
0a05a5b | Shuhei Kadowaki | 13 May 2023, 14:18:09 UTC | improve type inference of `Base.aligned_sizeof` (#49801) This commit includes a bit of refactoring of `Base.aligned_sizeof` to make it more inference-friendly, especially in cases like `Base.aligned_sizeof(::Union{DataType,Union})`. In particular, it eliminates the chance of inference accounting for a method error of `datatype_alignment(::Union)` in the second branch. xref: <https://github.com/aviatesk/JET.jl/issues/512> | 13 May 2023, 14:18:09 UTC |
ac1cb1c | Jameson Nash | 09 May 2023, 14:35:21 UTC | optimize reordering of ml-matches to avoid unnecessary computations This now chooses the optimal SCC set based on the size of lim, which ensures we can assume this algorithm is now << O(n^2) in all reasonable cases, even though the algorithm we are using is O(n + e), where e may require up to n^2 work to compute in the worst case, but should require only about n*min(lim, log(n)) work in the expected average case. This also further pre-optimizes quick work (checking for existing coverage) and delays unnecessary work (computing for *ambig return). | 12 May 2023, 19:02:39 UTC |
6a5f51b | Jameson Nash | 04 May 2023, 21:21:29 UTC | reorder ml-matches to avoid catastrophic performance case This ordering of the algorithm abandons the elegant insertion in favor of using another copy of Tarjan's SCC code. This enables us to abort the algorithm in O(k*n) time, instead of always running full O(n*n) time, where k is `min(lim,n)`. For example, to sort 1338 methods: Before: julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 3, Base.get_world_counter()); 0.136609 seconds (22.74 k allocations: 1.104 MiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, -1, Base.get_world_counter()); 0.046280 seconds (9.95 k allocations: 497.453 KiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 30000, Base.get_world_counter()); 0.132588 seconds (22.73 k allocations: 1.103 MiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 30000, Base.get_world_counter()); 0.135912 seconds (22.73 k allocations: 1.103 MiB) After: julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 3, Base.get_world_counter()); 0.001040 seconds (1.47 k allocations: 88.375 KiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, -1, Base.get_world_counter()); 0.039167 seconds (8.24 k allocations: 423.984 KiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 30000, Base.get_world_counter()); 0.081354 seconds (8.26 k allocations: 424.734 KiB) julia> @time Base._methods_by_ftype(Tuple{typeof(Core.kwcall), NamedTuple, Any, Vararg{Any}}, 30000, Base.get_world_counter()); 0.080849 seconds (8.26 k allocations: 424.734 KiB) And makes inference faster in rare cases (this particular example came up because the expression below occurs appears in `@test` macroexpansion), both before loading loading more packages, such as OmniPackage, and afterwards, where the cost is almost unchanged afterwards, versus increasing about 50x. julia> f() = x(args...; kwargs...); @time @code_typed optimize=false f(); 0.143523 seconds (23.25 k allocations: 1.128 MiB, 99.96% compilation time) # before 0.001172 seconds (1.86 k allocations: 108.656 KiB, 97.71% compilation time) # after | 12 May 2023, 19:02:39 UTC |
d55314c | Kristoffer Carlsson | 12 May 2023, 18:54:17 UTC | allow loading extensions when a trigger is loaded from below the parent's load path (#49701) also allow loading extensions of the active project | 12 May 2023, 18:54:17 UTC |
c6fc12c | Jameson Nash | 12 May 2023, 14:02:12 UTC | fix build failure with dyld4 deadlock workaround (#49776) Accidentally missed in #49740 Fixes #49773 | 12 May 2023, 14:02:12 UTC |
e365e57 | Cody Tapscott | 12 May 2023, 01:45:15 UTC | Add LibTracyClient checksums | 12 May 2023, 13:01:34 UTC |
7bd3977 | Páll Haraldsson | 12 May 2023, 12:00:44 UTC | Update NEWS.md for grammar (#49759) [skip ci] | 12 May 2023, 12:00:44 UTC |
46b8a35 | Diogo Netto | 12 May 2023, 12:00:21 UTC | remove duplicate gc_try_claim_and_push (#49780) | 12 May 2023, 12:00:21 UTC |
2f6941f | Christian Guinard | 12 May 2023, 11:59:41 UTC | Update stable version in README.md to 1.9.0 (#49767) | 12 May 2023, 11:59:41 UTC |
ae6484d | Valentin Churavy | 12 May 2023, 11:59:29 UTC | Update toolchain requirements and LLVM build docs (#49742) | 12 May 2023, 11:59:29 UTC |
6733197 | Kristoffer Carlsson | 12 May 2023, 09:13:17 UTC | Artifacts: pull out a recursive function from a closure to a stand alone function (#49755) | 12 May 2023, 09:13:17 UTC |
021015d | Lasse Peters | 12 May 2023, 08:13:47 UTC | Remove 1.9 package extension news item from NEWS.md (#49786) This feature was already shipped with 1.9 so it probably shouldn't be mentioned a second time in the 1.10 NEWS.md. | 12 May 2023, 08:13:47 UTC |
9002d16 | Shuhei Kadowaki | 12 May 2023, 06:35:06 UTC | abstractarray: fix `append!(::AbstractVector, ...)` interface (#49754) JuliaLang/julia#47154 mistakenly added `@_safeindex` macro on the `_append!(a::AbstractVector, ::Union{HasLength,HasShape}, iter)` method, although `@_safeindex` is only valid for builtin vectors i.e. `Vector`. This commit adds `isa` check so that `@_safeindex` is only applied to builtin vectors. The `isa` check should be removed at compile time, so it should not affect the runtime performance. closes #49748 | 12 May 2023, 06:35:06 UTC |
1d58f24 | Shuhei Kadowaki | 12 May 2023, 05:55:49 UTC | adopt `Core.Compiler.get_max_methods` changes from #46810 (#49781) Since this part of refactoring is generally useful and I would like to utilize it for other PRs that may be merged before #46810. | 12 May 2023, 05:55:49 UTC |
1dc2ed6 | Shuhei Kadowaki | 12 April 2023, 10:19:35 UTC | 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` | | 12 May 2023, 05:16:31 UTC |
ce2275c | Shuhei Kadowaki | 19 August 2021, 13:09:51 UTC | 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). Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Tim Holy <tim.holy@gmail.com> | 12 May 2023, 05:16:31 UTC |
6a2e50d | Steve Kelly | 12 May 2023, 02:35:20 UTC | add docs for `Base.return_types` (#49744) Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> | 12 May 2023, 02:35:20 UTC |
8d0282c | Cody Tapscott | 12 May 2023, 00:12:55 UTC | Merge pull request #49770 from topolarity/fix-timing-warnings Fix various warnings with JL_TIMING enabled | 12 May 2023, 00:12:55 UTC |
b21f100 | Daniel Karrasch | 11 May 2023, 19:06:25 UTC | Make `*Triangular` handle units (#43972) | 11 May 2023, 19:06:25 UTC |
a09f426 | Cody Tapscott | 11 May 2023, 17:48:00 UTC | Fix visibility of `timing.h` exports | 11 May 2023, 17:53:22 UTC |
e642cb9 | Cody Tapscott | 11 May 2023, 17:46:29 UTC | Enable `TRACY_TIMER_FALLBACK` for libTracyClient This fallback is most likely to kick in on VM's that may not have support for the rdtsc instruction. The loss in timer fidelity can be pretty severe (8 ns -> 15.6 ms) but we pack lots of other metadata into our traces, so it can still be useful to run with the fallback (and forcefully crashing the application as Tracy does now is just not the Julian way to communicate a hard error anyway) | 11 May 2023, 17:52:39 UTC |
65c3b41 | Cody Tapscott | 11 May 2023, 17:22:19 UTC | Initialize `last_alloc` The uninit usage analyzer appears to be thrown off by the `__attribute__((cleanup(*)))` used by the `JL_TIMING` macro, so work around it by explicitly initializing `last_alloc`. | 11 May 2023, 17:52:39 UTC |
528949f | Jameson Nash | 11 May 2023, 17:29:07 UTC | macOS: avoid deadlock inside dyld4 deadlock workaround (#49740) Extend the fix for #43578 (2939272af2ef3fe9d8921f7ed0a6500e31a550c9) to cover the deadlock bug present internally in dyld4 inside the function we use to avoid the previous deadlock issue. Fix #49733 | 11 May 2023, 17:29:07 UTC |
c714e2e | pchintalapudi | 11 May 2023, 17:09:54 UTC | Add JITLink ELF debugger support (#47037) | 11 May 2023, 17:09:54 UTC |
e4633e0 | Mason Protter | 11 May 2023, 17:04:35 UTC | add note about references in `Out` (#49729) | 11 May 2023, 17:04:35 UTC |
e3e5eaa | DilumAluthgeBot | 11 May 2023, 16:26:38 UTC | 🤖 [master] Bump the Pkg stdlib from 94f668cee to daf02a458 (#49764) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 11 May 2023, 16:26:38 UTC |
6618d44 | Shuhei Kadowaki | 11 May 2023, 08:40:56 UTC | minor follow up on #49692 (#49752) | 11 May 2023, 08:40:56 UTC |
0b5ec1f | Keno Fischer | 11 May 2023, 03:35:44 UTC | irinterp: Fix accidentally introduced deletion of effectful statement (#49750) I moved around some code in #49692 that broadened the replacement of statements by their const results. This is fine for how we're currently using irinterp in base, because we're requiring some fairly strong effects, but some downstream pipelines (and potentially Base in the future) want to use irinterp on code with arbitrary effects, so put in an appropriate check. | 11 May 2023, 03:35:44 UTC |
7757e46 | Valentin Churavy | 10 May 2023, 22:05:42 UTC | Excise support for LLVM 13 (#49722) | 10 May 2023, 22:05:42 UTC |
21d4c2f | Valentin Churavy | 10 May 2023, 21:59:41 UTC | Merge pull request #48700 from JuliaLang/vc/upgrade_llvm15 Update LLVM to 15.0.7 | 10 May 2023, 21:59:41 UTC |
056112e | Jameson Nash | 10 May 2023, 16:54:47 UTC | make better use of visibility attributes (#49600) This pragma enables compilers to generate more optimal code than the identical command line flag, for better performance, by moving objects out of the GOT into direct references and eliminating the unnecessary PLT jump. Note that setting dllimport similarly enables more performance optimizations, at the cost of making duplicate symbols for functions so that they no longer have unique addresses (similar to the side-effect of setting -Bsymbolic-functions on ELF). | 10 May 2023, 16:54:47 UTC |
24a5dc4 | Dheepak Krishnamurthy | 10 May 2023, 15:43:22 UTC | Add `@eval using REPL` to the `atreplinit` do block in REPL documentation. (#49717) | 10 May 2023, 15:43:22 UTC |
77c13ad | Valentin Churavy | 10 May 2023, 14:51:16 UTC | Reenable NonTrivial Loop Unswitch | 10 May 2023, 14:51:16 UTC |
2ddbb5a | Valentin Churavy | 27 April 2023, 00:49:16 UTC | Fix tests and static analyzer for LLVM 15 Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> | 10 May 2023, 14:15:09 UTC |
9e3da19 | pchintalapudi | 04 May 2023, 02:47:22 UTC | Activate NewPM support Co-authored-by: Valentin Churavy <v.churavy@gmail.com> | 10 May 2023, 14:15:09 UTC |
190f841 | Valentin Churavy | 27 April 2023, 00:48:45 UTC | Upgrade Julia to LLVM 15.0.7+5 Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> | 10 May 2023, 14:15:09 UTC |