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 |
---|---|---|---|---|
735729f | d-netto | 08 December 2023, 17:54:15 UTC | create separate object pools for compiler types | 31 January 2024, 19:38:03 UTC |
886d7a4 | Ian Butterworth | 31 January 2024, 17:19:45 UTC | get_bool_env: add method with a lazy default option. Add kwarg to throw (#52950) Based on need here https://github.com/JuliaLang/Pkg.jl/pull/3764#discussion_r1456534459 | 31 January 2024, 17:19:45 UTC |
95ae27f | Mason Protter | 31 January 2024, 17:10:30 UTC | Try to fix incorrect documentation of `nthreads` (#53117) Since https://github.com/JuliaLang/julia/pull/49094, the docstring of `nthreads` has been incorrect. It currently states that > The threads in default have id numbers `1:nthreads(:default)`. whereas that is no longer true: ```julia julia> filter(i -> Threads.threadpool(i) == :interactive, 1:Threads.maxthreadid()) 3-element Vector{Int64}: 1 2 3 julia> filter(i -> Threads.threadpool(i) == :default, 1:Threads.maxthreadid()) 6-element Vector{Int64}: 4 5 6 7 8 9 ``` | 31 January 2024, 17:10:30 UTC |
8304111 | Nathan Daly | 31 January 2024, 16:49:59 UTC | Add `Base.checked_pow(x,y)` to `Base.Checked` library (#52849) Fixes #52262. Performs `^(x, y)` but throws OverflowError on overflow. Example: ```julia julia> 2^62 4611686018427387904 julia> 2^63 -9223372036854775808 julia> checked_pow(2, 63) ERROR: OverflowError: 2147483648 * 4294967296 overflowed for type Int64 ``` Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> | 31 January 2024, 16:49:59 UTC |
81deb5e | Ian Butterworth | 31 January 2024, 16:01:30 UTC | fix pkgimage.mk tree (#53133) Taken from https://github.com/JuliaLang/julia/pull/53111 | 31 January 2024, 16:01:30 UTC |
cc74d24 | Jishnu Bhattacharya | 31 January 2024, 12:09:57 UTC | Inplace transpose for unit Triangular may skip diagonal (#53101) Since the diagonal elements of a `UnitUpperTriangular` are given by `onelement`, these should be unchanged under `transpose/adjoint`, and we don't need to access these elements in the parent array when performing in-place operations. Fixes ```julia julia> using LinearAlgebra julia> M = Matrix{BigFloat}(undef, 2, 2); julia> M[1,2] = 3; julia> U = UnitUpperTriangular(M) 2×2 UnitUpperTriangular{BigFloat, Matrix{BigFloat}}: 1.0 3.0 ⋅ 1.0 julia> transpose!(U) ERROR: UndefRefError: access to undefined reference Stacktrace: [1] getindex @ ./essentials.jl:882 [inlined] [2] getindex @ ./array.jl:915 [inlined] [3] copytri! @ ~/packages/julias/julia-latest/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:414 [inlined] [4] transpose!(A::UnitUpperTriangular{BigFloat, Matrix{BigFloat}}) @ LinearAlgebra ~/packages/julias/julia-latest/share/julia/stdlib/v1.11/LinearAlgebra/src/triangular.jl:470 [5] top-level scope @ REPL[5]:1 ``` After this PR: ```julia julia> transpose!(U) 2×2 UnitLowerTriangular{BigFloat, Matrix{BigFloat}}: 1.0 ⋅ 3.0 1.0 ``` | 31 January 2024, 12:09:57 UTC |
cb9b00d | Shuhei Kadowaki | 31 January 2024, 08:18:01 UTC | follow up #53127, fix the broken test case (#53134) | 31 January 2024, 08:18:01 UTC |
dc474d8 | Jameson Nash | 31 January 2024, 01:28:11 UTC | inference: avoid adding duplicate edges as invoke targets (#53121) This was inefficient, though not wrong. Fixes #53020 | 31 January 2024, 01:28:11 UTC |
1295379 | Oscar Smith | 31 January 2024, 01:24:10 UTC | put a try catch around calls to `propertynames` in tab completion. (#53127) fixes https://github.com/JuliaLang/julia/issues/53126 | 31 January 2024, 01:24:10 UTC |
9df7a67 | DilumAluthgeBot | 30 January 2024, 23:09:05 UTC | 🤖 [master] Bump the ArgTools stdlib from 4eccde4 to 997089b (#53124) Stdlib: ArgTools URL: https://github.com/JuliaIO/ArgTools.jl.git Stdlib branch: master Julia branch: master Old commit: 4eccde4 New commit: 997089b Julia version: 1.11.0-DEV ArgTools version: 1.1.2(Does not match) Bump invoked by: @vtjnash Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaIO/ArgTools.jl/compare/4eccde45ddc27e4f7fc9094b2861c684e062adb2...997089b9cd56404b40ff766759662e16dc1aab4b ``` $ git log --oneline 4eccde4..997089b 997089b fix tests for TEMP_CLEANUP, which might be a Lockable (#35) 4a5f003 build(deps): bump actions/cache from 3 to 4 (#36) 84ba9e8 Hardcode doc edit backlink (#34) 9238839 build(deps): bump actions/checkout from 3 to 4 (#33) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 30 January 2024, 23:09:05 UTC |
4b1bbeb | Lorenzo Van Munoz | 30 January 2024, 22:27:09 UTC | make `Base.reduced_indices` more type-stable (#52905) This fixes #35199 by rewriting `Base.reduced_indices` to be type stable (and grounded). I was also able to remove a method since that case is covered by the general case. The changes are illustrated by the following quick benchmarks: ```julia julia> VERSION v"1.10.0" julia> using BenchmarkTools julia> M = [1 2; 3 4] 2×2 Matrix{Int64}: 1 2 3 4 julia> @btime sum($M, dims=$(2)) 194.816 ns (5 allocations: 160 bytes) 2×1 Matrix{Int64}: 3 7 julia> @btime sum($M, dims=$((2,))) 209.385 ns (5 allocations: 224 bytes) 2×1 Matrix{Int64}: 3 7 julia> function my_reduced_indices(inds::Base.Indices{N}, region) where N rinds = inds for i in region isa(i, Integer) || throw(ArgumentError("reduced dimension(s) must be integers")) d = Int(i) if d < 1 throw(ArgumentError("region dimension(s) must be ≥ 1, got $d")) elseif d <= N rinds = let rinds_=rinds ntuple(j -> j == d ? Base.reduced_index(rinds_[d]) : rinds_[j], Val(N)) end end end rinds end my_reduced_indices (generic function with 1 method) julia> Base.reduced_indices(inds::Base.Indices{N}, region::Int) where N = my_reduced_indices(inds, region) julia> Base.reduced_indices(inds::Base.Indices{N}, region) where N = my_reduced_indices(inds, region) julia> @btime sum($M, dims=$(2)) 43.582 ns (1 allocation: 80 bytes) 2×1 Matrix{Int64}: 3 7 julia> @btime sum($M, dims=$((2,))) 43.882 ns (1 allocation: 80 bytes) 2×1 Matrix{Int64}: 3 7 ``` I also rewrote `Base.reduced_indices0` in the same fashion. I wasn't sure how to add tests for this since the improvements are to type-groundedness. Since these changes affect all reductions I hope this solution is robust. | 30 January 2024, 22:27:09 UTC |
432d248 | Max Horn | 30 January 2024, 22:13:49 UTC | Restrict some argument types for _truncate_at_width_or_chars (#53031) This resolved some invalidations for me in a package | 30 January 2024, 22:13:49 UTC |
9f643a0 | Matt Bauman | 30 January 2024, 21:06:19 UTC | Fix invalid let syntax from LHS views (#53108) When the frontend lowers an expression like `lhs .+= rhs`, it needs to prevent evaluating the LHS more than once before re-writing to `lhs .= lhs .+ rhs`. If the LHS was a `let` block — commonly generated by `@views` and (since #53064) `@view` — the lowering pass had previously been emitting an invalid `let` temporary. This very directly addresses that case. Fixes #53107. Fixes #44356. | 30 January 2024, 21:06:19 UTC |
fdb342c | Neven Sajko | 30 January 2024, 20:40:35 UTC | make `keytype` and `valtype` work for `UnionAll` `AbstractDict`s (#53116) Fixes #53115 | 30 January 2024, 20:40:35 UTC |
ef69db6 | Frames White | 30 January 2024, 20:40:16 UTC | Don't mention __precompile__(false) in error message (#53099) I am fairly sure nothing in my dep tree uses `__precompile__(false)` so this message is misleading. I know we changed another of them a while ago | 30 January 2024, 20:40:16 UTC |
3510f4e | Jameson Nash | 30 January 2024, 18:58:40 UTC | Improve inferrability of large unions, as seen in `LinearAlgebra.wrap` (#53084) The `LinearAlgebra.wrap` makes a large (5 element) union with some almost-similar types. This was intended to be permitted currently in `tmerge`, but due to some unintended interactions in some heuristics, was not. Closes https://github.com/JuliaLang/julia/issues/53075 | 30 January 2024, 18:58:40 UTC |
9f5f540 | Jameson Nash | 30 January 2024, 18:58:00 UTC | remove length from Stateful (#51747) Stateful iterators do not have a consistent notion of length, as it is continuously changing as elements are removed. As the main purpose of Stateful is to take elements from multiple places, any notion of HaveShape is invalid for those cases, and thus not useful in general. Fix #47790 | 30 January 2024, 18:58:00 UTC |
b7520d9 | Florian | 30 January 2024, 14:55:20 UTC | `stale_cachefile`: account for path separator when checking @depot (#53058) | 30 January 2024, 14:55:20 UTC |
75c38e3 | Mosè Giordano | 30 January 2024, 08:30:00 UTC | Make relocatedepot test more robust (#53110) As discussed in the `#ci-dev` call (see https://github.com/JuliaLang/julia/issues/53103#issuecomment-1915458694 and https://github.com/JuliaLang/julia/pull/53104#discussion_r1470021366) there were two problems: * the use of `Base.require` caused the package to be loaded * the name of the package was a generic placeholder, and clashed with other packages loaded during the tests called with the same generic name. The solution was to rename test module with a more specific name, and replace `Base.require` with `Base.compilecache`, the latter only compiles the package without loading it. Should fix #53103, close #53104. | 30 January 2024, 08:30:00 UTC |
9816a0b | Lilith Orion Hafner | 30 January 2024, 05:34:15 UTC | Reland "Don't export Dates.adjust" (#53092) | 30 January 2024, 05:34:15 UTC |
8cb5854 | Steven G. Johnson | 30 January 2024, 02:42:51 UTC | fix fd_in_limits test on Windows (#52779) Closes #52506 Note that this test dates back to #26341 | 30 January 2024, 02:42:51 UTC |
2f845bb | Jameson Nash | 30 January 2024, 02:36:22 UTC | some minor code cleanup of getHostCPUName handling (#53083) Try to minimize the places the code depends on this library function, since it is useful for generic code as long as LLVM is available, but we would also be happy with returning the text "native" here in most cases. Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> | 30 January 2024, 02:36:22 UTC |
8fdda09 | Jameson Nash | 27 January 2024, 18:09:46 UTC | reorder the code in LinearAlgebra.wrap to be slightly more inferrable abstractly By adding a type-assert at the end, we can try to ensure that eltype and ndims info is preserved, even if inference decides not to preserve the giant Union in detail. This avoids complete loss of precision in the subsequent calls (generic_matmatmul! -> _generic_matmatmul!), which has a type-assert on each input of AbstractVecOrMat. Closes #53075 | 30 January 2024, 02:35:12 UTC |
eeebb6e | Jameson Nash | 27 January 2024, 18:07:47 UTC | inference: slightly relax union complexity limit Permits forming AbstractVecOrMat from tmerge(AbstractVector, AbstractMatrix}. With the standard limit of 3, this now permits a maximum of either: - 2 dispatch-leaf types + 1 other type - 2 non-dispatch-leaf types | 30 January 2024, 02:33:23 UTC |
aa10573 | Jameson Nash | 27 January 2024, 18:05:03 UTC | inference: avoid having one over-widened type poison the whole union I observed `UnitLowerTriangular{T, AbstractMatrix{T}} where T` being widened to `UnitLowerTriangular{F64, <:Matrix}`, which then forced it to become `Any`. Avoid that by only widening at most to the wrapper as required by the earlier check in this function. | 30 January 2024, 02:33:23 UTC |
fbd14a2 | Shuhei Kadowaki | 30 January 2024, 00:57:05 UTC | post-opt: fix minor logic errors (#53100) I've identified and am addressing some minor bugs and optimizations in the post-opt analysis code upon reviewing it. | 30 January 2024, 00:57:05 UTC |
3f468cd | Pablo San-Jose | 30 January 2024, 00:39:11 UTC | Add a test to avoid #53054 regressions (#53079) Tests issue #53054. The same test is included in backport #53074. | 30 January 2024, 00:39:11 UTC |
9edf1dd | Pablo San-Jose | 30 January 2024, 00:25:02 UTC | Ensure elision of `require_one_based_indexing` with high-dim array views (#53091) Closes #49332 --------- Co-authored-by: Denis Barucic <barucic.d@gmail.com> | 30 January 2024, 00:25:02 UTC |
a3357cd | Denis Barucic | 29 January 2024, 21:04:24 UTC | Docs: cross-reference `username` and `homedir` (#52451) To improve discoverability (mainly) of `username`. | 29 January 2024, 21:04:24 UTC |
a26bd7f | Shuhei Kadowaki | 29 January 2024, 19:29:12 UTC | optimize away `ifelse` when given values are egal (#53102) | 29 January 2024, 19:29:12 UTC |
b16c4d4 | Neven Sajko | 29 January 2024, 19:28:38 UTC | extend `divrem(x, y)` for `BigInt` to `divrem(x, y, rm)` (#53106) Previously `divrem(x, y, rm)` was dispatched to a more generic code path that called `div`, causing unnecessary allocation. Xref #45159. Also replaced the `big` call with `BigInt`, which seems more correct to me. The issue is that a user may define some `<:Integer` type for which `big` doesn't convert to `BigInt`, which seems like it would lead to infinite recursion in this case. | 29 January 2024, 19:28:38 UTC |
67f7320 | Jameson Nash | 29 January 2024, 17:35:30 UTC | builtin: allow equal types in set_global_type without error (#53086) Use the julia notion of equality (type-equal) instead of the strictly C notion (pointer-equal). Also add tests and docs for this function. | 29 January 2024, 17:35:30 UTC |
aec8823 | Jameson Nash | 29 January 2024, 17:35:06 UTC | gf: small perf optimization to jl_method_table_add_backedge (#53085) If this table gets very large, doing a jl_types_equal against every element can be costly. Often they might all be the same signature also, just from different specializations. Try to short-circuit the comparisons to scan in a more optimal order. | 29 January 2024, 17:35:06 UTC |
08d229f | Kristoffer Carlsson | 29 January 2024, 11:51:55 UTC | Extensions: make loading of extensions independent of what packages are in the sysimage (#52841) When triggers of extension are in the sysimage it is easy to end up with cycles in package loading. Say we have a package A with exts BExt and CExt and say that B and C is in the sysimage. - Upon loading A, we will immidiately start to precompile BExt (because the trigger B is "loaded" by virtue of being in the sysimage). - BExt will load A which will cause CExt to start precompiling (again because C is in the sysimage). - CExt will load A which will now cause BExt to start loading and we get a cycle. This is fixed in this PR by instead of looking at what modules are loaded, we look at what modules are actually `require`d and only use that to drive the loading of extensions. Fixes https://github.com/JuliaLang/julia/issues/52132. | 29 January 2024, 11:51:55 UTC |
9669eec | Mosè Giordano | 29 January 2024, 08:34:37 UTC | Drop support for LLVM 14 (#53094) | 29 January 2024, 08:34:37 UTC |
741b5da | Shuhei Kadowaki | 29 January 2024, 06:28:39 UTC | forward-port #53096 to nightly, fix the intermittent REPL test failure (#53097) While the original issue #52739 has been observed only in v1.10, the necessity to enhance the robustness of the corresponding test code is still applicable in the nightly. See #53096 for the details. | 29 January 2024, 06:28:39 UTC |
0588cd4 | Shuhei Kadowaki | 29 January 2024, 02:21:47 UTC | remove unnecessary `true &&` part from `at-view` macro (#53064) The modification that expands `@view A[i]` to `true && view(A, i)` appears to go back as far as #20247. However, I'm not entirely sure why this is necessary. Considering that just expanding it to `view(A, i)` still seems to pass the base test suite, I wonder if it might be just better to get rid of that part. | 29 January 2024, 02:21:47 UTC |
5b64a0d | Shuhei Kadowaki | 29 January 2024, 02:15:18 UTC | forward-port the test cases added in #53076 (#53077) The fix for #53062 was included in #50805, but it lacked explicit test cases added. This commit cherry-picks the test cases from #53076 to prevent future regression. | 29 January 2024, 02:15:18 UTC |
746fad0 | Max Horn | 29 January 2024, 01:43:22 UTC | doc: replace harr HTML entity by unicode (#53066) Documenter does not support HTML entities. See discussion in PR #52078 for further background. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 29 January 2024, 01:43:22 UTC |
dcb196e | Dilum Aluthge | 28 January 2024, 21:53:31 UTC | Revert "Don't export Dates.adjust" (#53089) Reverts JuliaLang/julia#53027 #53027 broke the `doctest` job in CI. | 28 January 2024, 21:53:31 UTC |
0ce62fe | James Wrigley | 28 January 2024, 21:38:20 UTC | Document the generic functions nextind() and prevind() (#52658) Co-authored-by: inky <git@wo-class.cn> Co-authored-by: Denis Barucic <barucic.d@gmail.com> Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> | 28 January 2024, 21:38:20 UTC |
d298c44 | James Wrigley | 28 January 2024, 16:27:37 UTC | Document that findnext(f,x,i) and findprev(f,x,i) work for strings. (#52625) | 28 January 2024, 16:27:37 UTC |
35a5711 | jam-khan | 28 January 2024, 15:43:26 UTC | Added reference to UnionAll manual for UnionAll docstrings. (#52838) | 28 January 2024, 15:43:26 UTC |
6ce6d31 | Jameson Nash | 27 January 2024, 17:45:03 UTC | methods: add a lock around method table changes (#52997) Ensures that only one update can occur simultaneously by adding a lock around it, and that the acquire-release on the world-age will be sequenced after all of the invalidations to the caches, by updating it last. It should now be safe to add methods in parallel, concurrently with running code. However, there are still no locks here to ensure that only one module is deserialized at a time, which means that parallel require calls are still unsafe. (and also because the loading.jl code is currently a thread-safety disaster zone) As future work, all of the method inserting and (separately) the validation/insertion work could run in parallel after loading an image, since there is a fine-grained lock on each individual part of that, as well as the big lock so that only one module at a time can load methods. The min/max fields are always written behind a lock, but they are not usually read from behind a lock, so add relaxed atomic markers to all uses of that field to make any data-race analysis tools happy. These are never used in a comparison with a value greater than `jl_atomic_load_acquire(&jl_world_counter)`, and therefore the results achieved are consistent. | 27 January 2024, 17:45:03 UTC |
ecc14ca | jariji | 27 January 2024, 15:45:57 UTC | Don't export Dates.adjust (#53027) `Dates.adjust` has been exported for a while, but has no docstring and is not in the manual in 1.10. Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> | 27 January 2024, 15:45:57 UTC |
20085f4 | jam-khan | 27 January 2024, 15:45:12 UTC | Add docstring for Dates.adjust (#52914) Co-authored-by: Steven G. Johnson <stevenj@mit.edu> Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> | 27 January 2024, 15:45:12 UTC |
26e54d3 | N5N3 | 27 January 2024, 14:47:04 UTC | Subtype: fix mis-usage of `simple_subtype(2)` (#53078) | 27 January 2024, 14:47:04 UTC |
c32aeb5 | Hendrik Ranocha | 27 January 2024, 01:38:42 UTC | Clarify documentation of do-block syntax (#52807) The previous version > The `do x` syntax creates an anonymous function with argument `x` and passes *it* as the first argument could be misunderstood since one may think that *it* refers to the argument `x`, not the anonymous function. --------- Co-authored-by: inky <git@wo-class.cn> | 27 January 2024, 01:38:42 UTC |
77dc56b | Neven Sajko | 27 January 2024, 01:35:44 UTC | Fix some missing xrefs in collections.md (#53047) | 27 January 2024, 01:35:44 UTC |
c42df60 | Sukera | 26 January 2024, 16:41:20 UTC | Improve type inference for `@something` (#52381) `@something` eagerly unwraps any `Some` given to it, while keeping the variable between its arguments the same. This can be an issue if a previously unpacked value is used as input to `@something`, leading to a type instability on more than two arguments (e.g. because of a fallback to `Some(nothing)`). By using different variables for each argument, type inference has an easier time handling these cases that are isolated to single branches anyway. This also adds some comments to the macro, since it's non-obvious what it does. Benchmarking the specific case I encountered this in led to a ~2x performance improvement on multiple machines. 1.10-beta3/master: ``` [sukera@tower 01]$ jl1100 -q --project=. -L 01.jl -e 'bench()' v"1.10.0-beta3" BenchmarkTools.Trial: 10000 samples with 1 evaluation. Range (min … max): 38.670 μs … 70.350 μs ┊ GC (min … max): 0.00% … 0.00% Time (median): 43.340 μs ┊ GC (median): 0.00% Time (mean ± σ): 43.395 μs ± 1.518 μs ┊ GC (mean ± σ): 0.00% ± 0.00% ▆█▂ ▁▁ ▂▂▂▂▂▂▂▂▂▁▂▂▂▃▃▃▂▂▃▃▃▂▂▂▂▂▄▇███▆██▄▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ ▃ 38.7 μs Histogram: frequency by time 48 μs < Memory estimate: 0 bytes, allocs estimate: 0. ``` This PR: ``` [sukera@tower 01]$ julia -q --project=. -L 01.jl -e 'bench()' v"1.11.0-DEV.970" BenchmarkTools.Trial: 10000 samples with 1 evaluation. Range (min … max): 22.820 μs … 44.980 μs ┊ GC (min … max): 0.00% … 0.00% Time (median): 24.300 μs ┊ GC (median): 0.00% Time (mean ± σ): 24.370 μs ± 832.239 ns ┊ GC (mean ± σ): 0.00% ± 0.00% ▂▅▇██▇▆▅▁ ▂▂▂▂▂▂▂▂▃▃▄▅▇███████████▅▄▃▃▂▂▂▂▂▂▂▂▂▂▁▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▁▁▂▂ ▃ 22.8 μs Histogram: frequency by time 27.7 μs < Memory estimate: 0 bytes, allocs estimate: 0. ``` <details> <summary>Benchmarking code (spoilers for Advent Of Code 2023 Day 01, Part 01). Running this requires the input of that Advent Of Code day.</summary> ```julia using BenchmarkTools using InteractiveUtils isdigit(d::UInt8) = UInt8('0') <= d <= UInt8('9') someDigit(c::UInt8) = isdigit(c) ? Some(c - UInt8('0')) : nothing function part1(data) total = 0 may_a = nothing may_b = nothing for c in data digitRes = someDigit(c) may_a = @something may_a digitRes Some(nothing) may_b = @something digitRes may_b Some(nothing) if c == UInt8('\n') digit_a = may_a::UInt8 digit_b = may_b::UInt8 total += digit_a*0xa + digit_b may_a = nothing may_b = nothing end end return total end function bench() data = read("input.txt") display(VERSION) println() display(@benchmark part1($data)) nothing end ``` </details> <details> <summary>`@code_warntype` before</summary> ```julia julia> @code_warntype part1(data) MethodInstance for part1(::Vector{UInt8}) from part1(data) @ Main ~/Documents/projects/AOC/2023/01/01.jl:7 Arguments #self#::Core.Const(part1) data::Vector{UInt8} Locals @_3::Union{Nothing, Tuple{UInt8, Int64}} may_b::Union{Nothing, UInt8} may_a::Union{Nothing, UInt8} total::Int64 c::UInt8 digit_b::UInt8 digit_a::UInt8 val@_10::Any val@_11::Any digitRes::Union{Nothing, Some{UInt8}} @_13::Union{Some{Nothing}, Some{UInt8}, UInt8} @_14::Union{Some{Nothing}, Some{UInt8}} @_15::Some{Nothing} @_16::Union{Some{Nothing}, Some{UInt8}, UInt8} @_17::Union{Some{Nothing}, UInt8} @_18::Some{Nothing} Body::Int64 1 ── (total = 0) │ (may_a = Main.nothing) │ (may_b = Main.nothing) │ %4 = data::Vector{UInt8} │ (@_3 = Base.iterate(%4)) │ %6 = (@_3 === nothing)::Bool │ %7 = Base.not_int(%6)::Bool └─── goto #24 if not %7 2 ┄─ Core.NewvarNode(:(digit_b)) │ Core.NewvarNode(:(digit_a)) │ Core.NewvarNode(:(val@_10)) │ %12 = @_3::Tuple{UInt8, Int64} │ (c = Core.getfield(%12, 1)) │ %14 = Core.getfield(%12, 2)::Int64 │ (digitRes = Main.someDigit(c)) │ (val@_11 = may_a) │ %17 = (val@_11::Union{Nothing, UInt8} !== Base.nothing)::Bool └─── goto #4 if not %17 3 ── (@_13 = val@_11::UInt8) └─── goto #11 4 ── (val@_11 = digitRes) │ %22 = (val@_11::Union{Nothing, Some{UInt8}} !== Base.nothing)::Bool └─── goto #6 if not %22 5 ── (@_14 = val@_11::Some{UInt8}) └─── goto #10 6 ── (val@_11 = Main.Some(Main.nothing)) │ %27 = (val@_11::Core.Const(Some(nothing)) !== Base.nothing)::Core.Const(true) └─── goto #8 if not %27 7 ── (@_15 = val@_11::Core.Const(Some(nothing))) └─── goto #9 8 ── Core.Const(:(@_15 = Base.nothing)) 9 ┄─ (@_14 = @_15) 10 ┄ (@_13 = @_14) 11 ┄ %34 = @_13::Union{Some{Nothing}, Some{UInt8}, UInt8} │ (may_a = Base.something(%34)) │ (val@_10 = digitRes) │ %37 = (val@_10::Union{Nothing, Some{UInt8}} !== Base.nothing)::Bool └─── goto #13 if not %37 12 ─ (@_16 = val@_10::Some{UInt8}) └─── goto #20 13 ─ (val@_10 = may_b) │ %42 = (val@_10::Union{Nothing, UInt8} !== Base.nothing)::Bool └─── goto #15 if not %42 14 ─ (@_17 = val@_10::UInt8) └─── goto #19 15 ─ (val@_10 = Main.Some(Main.nothing)) │ %47 = (val@_10::Core.Const(Some(nothing)) !== Base.nothing)::Core.Const(true) └─── goto #17 if not %47 16 ─ (@_18 = val@_10::Core.Const(Some(nothing))) └─── goto #18 17 ─ Core.Const(:(@_18 = Base.nothing)) 18 ┄ (@_17 = @_18) 19 ┄ (@_16 = @_17) 20 ┄ %54 = @_16::Union{Some{Nothing}, Some{UInt8}, UInt8} │ (may_b = Base.something(%54)) │ %56 = c::UInt8 │ %57 = Main.UInt8('\n')::Core.Const(0x0a) │ %58 = (%56 == %57)::Bool └─── goto #22 if not %58 21 ─ (digit_a = Core.typeassert(may_a, Main.UInt8)) │ (digit_b = Core.typeassert(may_b, Main.UInt8)) │ %62 = total::Int64 │ %63 = (digit_a * 0x0a)::UInt8 │ %64 = (%63 + digit_b)::UInt8 │ (total = %62 + %64) │ (may_a = Main.nothing) └─── (may_b = Main.nothing) 22 ┄ (@_3 = Base.iterate(%4, %14)) │ %69 = (@_3 === nothing)::Bool │ %70 = Base.not_int(%69)::Bool └─── goto #24 if not %70 23 ─ goto #2 24 ┄ return total ``` </details> <details> <summary>`@code_native debuginfo=:none` Before </summary> ```julia julia> @code_native debuginfo=:none part1(data) .text .file "part1" .globl julia_part1_418 # -- Begin function julia_part1_418 .p2align 4, 0x90 .type julia_part1_418,@function julia_part1_418: # @julia_part1_418 # %bb.0: # %top push rbp mov rbp, rsp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 mov rax, qword ptr [rdi + 8] test rax, rax je .LBB0_1 # %bb.2: # %L17 mov rcx, qword ptr [rdi] dec rax mov r10b, 1 xor r14d, r14d # implicit-def: $r12b # implicit-def: $r13b # implicit-def: $r9b # implicit-def: $sil mov qword ptr [rbp - 64], rax # 8-byte Spill mov al, 1 mov dword ptr [rbp - 48], eax # 4-byte Spill # implicit-def: $al # kill: killed $al xor eax, eax mov qword ptr [rbp - 56], rax # 8-byte Spill mov qword ptr [rbp - 72], rcx # 8-byte Spill # implicit-def: $cl jmp .LBB0_3 .p2align 4, 0x90 .LBB0_8: # in Loop: Header=BB0_3 Depth=1 mov dword ptr [rbp - 48], 0 # 4-byte Folded Spill .LBB0_24: # %post_union_move # in Loop: Header=BB0_3 Depth=1 movzx r13d, byte ptr [rbp - 41] # 1-byte Folded Reload mov r12d, r8d cmp qword ptr [rbp - 64], r14 # 8-byte Folded Reload je .LBB0_13 .LBB0_25: # %guard_exit113 # in Loop: Header=BB0_3 Depth=1 inc r14 mov r10d, ebx .LBB0_3: # %L19 # =>This Inner Loop Header: Depth=1 mov rax, qword ptr [rbp - 72] # 8-byte Reload xor ebx, ebx xor edi, edi movzx r15d, r9b movzx ecx, cl movzx esi, sil mov r11b, 1 # implicit-def: $r9b movzx edx, byte ptr [rax + r14] lea eax, [rdx - 58] lea r8d, [rdx - 48] cmp al, -10 setae bl setb dil test r10b, 1 cmovne r15d, edi mov edi, 0 cmovne ecx, ebx mov bl, 1 cmovne esi, edi test r15b, 1 jne .LBB0_7 # %bb.4: # %L76 # in Loop: Header=BB0_3 Depth=1 mov r11b, 2 test cl, 1 jne .LBB0_5 # %bb.6: # %L78 # in Loop: Header=BB0_3 Depth=1 mov ebx, r10d mov r9d, r15d mov byte ptr [rbp - 41], r13b # 1-byte Spill test sil, 1 je .LBB0_26 .LBB0_7: # %L82 # in Loop: Header=BB0_3 Depth=1 cmp al, -11 jbe .LBB0_9 jmp .LBB0_8 .p2align 4, 0x90 .LBB0_5: # in Loop: Header=BB0_3 Depth=1 mov ecx, r8d mov sil, 1 xor ebx, ebx mov byte ptr [rbp - 41], r8b # 1-byte Spill xor r9d, r9d xor ecx, ecx cmp al, -11 ja .LBB0_8 .LBB0_9: # %L90 # in Loop: Header=BB0_3 Depth=1 test byte ptr [rbp - 48], 1 # 1-byte Folded Reload jne .LBB0_23 # %bb.10: # %L115 # in Loop: Header=BB0_3 Depth=1 cmp dl, 10 jne .LBB0_11 # %bb.14: # %L122 # in Loop: Header=BB0_3 Depth=1 test r15b, 1 jne .LBB0_15 # %bb.12: # %L130.thread # in Loop: Header=BB0_3 Depth=1 movzx eax, byte ptr [rbp - 41] # 1-byte Folded Reload mov bl, 1 add eax, eax lea eax, [rax + 4*rax] add al, r12b movzx eax, al add qword ptr [rbp - 56], rax # 8-byte Folded Spill mov al, 1 mov dword ptr [rbp - 48], eax # 4-byte Spill cmp qword ptr [rbp - 64], r14 # 8-byte Folded Reload jne .LBB0_25 jmp .LBB0_13 .p2align 4, 0x90 .LBB0_23: # %L115.thread # in Loop: Header=BB0_3 Depth=1 mov al, 1 # implicit-def: $r8b mov dword ptr [rbp - 48], eax # 4-byte Spill cmp dl, 10 jne .LBB0_24 jmp .LBB0_21 .LBB0_11: # in Loop: Header=BB0_3 Depth=1 mov r8d, r12d jmp .LBB0_24 .LBB0_1: xor eax, eax mov qword ptr [rbp - 56], rax # 8-byte Spill .LBB0_13: # %L159 mov rax, qword ptr [rbp - 56] # 8-byte Reload add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret .LBB0_21: # %L122.thread test r15b, 1 jne .LBB0_15 # %bb.22: # %post_box_union58 movabs rdi, offset .L_j_str1 movabs rax, offset ijl_type_error movabs rsi, 140008511215408 movabs rdx, 140008667209736 call rax .LBB0_15: # %fail cmp r11b, 1 je .LBB0_19 # %bb.16: # %fail movzx eax, r11b cmp eax, 2 jne .LBB0_17 # %bb.20: # %box_union54 movzx eax, byte ptr [rbp - 41] # 1-byte Folded Reload movabs rcx, offset jl_boxed_uint8_cache mov rdx, qword ptr [rcx + 8*rax] jmp .LBB0_18 .LBB0_26: # %L80 movabs rax, offset ijl_throw movabs rdi, 140008495049392 call rax .LBB0_19: # %box_union movabs rdx, 140008667209736 jmp .LBB0_18 .LBB0_17: xor edx, edx .LBB0_18: # %post_box_union movabs rdi, offset .L_j_str1 movabs rax, offset ijl_type_error movabs rsi, 140008511215408 call rax .Lfunc_end0: .size julia_part1_418, .Lfunc_end0-julia_part1_418 # -- End function .type .L_j_str1,@object # @_j_str1 .section .rodata.str1.1,"aMS",@progbits,1 .L_j_str1: .asciz "typeassert" .size .L_j_str1, 11 .section ".note.GNU-stack","",@progbits ``` </details> <details> <summary>`@code_warntype` After</summary> ```julia [sukera@tower 01]$ julia -q --project=. -L 01.jl julia> data = read("input.txt"); julia> @code_warntype part1(data) MethodInstance for part1(::Vector{UInt8}) from part1(data) @ Main ~/Documents/projects/AOC/2023/01/01.jl:7 Arguments #self#::Core.Const(part1) data::Vector{UInt8} Locals @_3::Union{Nothing, Tuple{UInt8, Int64}} may_b::Union{Nothing, UInt8} may_a::Union{Nothing, UInt8} total::Int64 val@_7::Union{} val@_8::Union{} c::UInt8 digit_b::UInt8 digit_a::UInt8 ##215::Some{Nothing} ##216::Union{Nothing, UInt8} ##217::Union{Nothing, Some{UInt8}} ##212::Some{Nothing} ##213::Union{Nothing, Some{UInt8}} ##214::Union{Nothing, UInt8} digitRes::Union{Nothing, Some{UInt8}} @_19::Union{Nothing, UInt8} @_20::Union{Nothing, UInt8} @_21::Nothing @_22::Union{Nothing, UInt8} @_23::Union{Nothing, UInt8} @_24::Nothing Body::Int64 1 ── (total = 0) │ (may_a = Main.nothing) │ (may_b = Main.nothing) │ %4 = data::Vector{UInt8} │ (@_3 = Base.iterate(%4)) │ %6 = @_3::Union{Nothing, Tuple{UInt8, Int64}} │ %7 = (%6 === nothing)::Bool │ %8 = Base.not_int(%7)::Bool └─── goto #24 if not %8 2 ┄─ Core.NewvarNode(:(val@_7)) │ Core.NewvarNode(:(val@_8)) │ Core.NewvarNode(:(digit_b)) │ Core.NewvarNode(:(digit_a)) │ Core.NewvarNode(:(##215)) │ Core.NewvarNode(:(##216)) │ Core.NewvarNode(:(##217)) │ Core.NewvarNode(:(##212)) │ Core.NewvarNode(:(##213)) │ %19 = @_3::Tuple{UInt8, Int64} │ (c = Core.getfield(%19, 1)) │ %21 = Core.getfield(%19, 2)::Int64 │ %22 = c::UInt8 │ (digitRes = Main.someDigit(%22)) │ %24 = may_a::Union{Nothing, UInt8} │ (##214 = %24) │ %26 = Base.:!::Core.Const(!) │ %27 = ##214::Union{Nothing, UInt8} │ %28 = Base.isnothing(%27)::Bool │ %29 = (%26)(%28)::Bool └─── goto #4 if not %29 3 ── %31 = ##214::UInt8 │ (@_19 = Base.something(%31)) └─── goto #11 4 ── %34 = digitRes::Union{Nothing, Some{UInt8}} │ (##213 = %34) │ %36 = Base.:!::Core.Const(!) │ %37 = ##213::Union{Nothing, Some{UInt8}} │ %38 = Base.isnothing(%37)::Bool │ %39 = (%36)(%38)::Bool └─── goto #6 if not %39 5 ── %41 = ##213::Some{UInt8} │ (@_20 = Base.something(%41)) └─── goto #10 6 ── %44 = Main.Some::Core.Const(Some) │ %45 = Main.nothing::Core.Const(nothing) │ (##212 = (%44)(%45)) │ %47 = Base.:!::Core.Const(!) │ %48 = ##212::Core.Const(Some(nothing)) │ %49 = Base.isnothing(%48)::Core.Const(false) │ %50 = (%47)(%49)::Core.Const(true) └─── goto #8 if not %50 7 ── %52 = ##212::Core.Const(Some(nothing)) │ (@_21 = Base.something(%52)) └─── goto #9 8 ── Core.Const(nothing) │ Core.Const(:(val@_8 = Base.something(Base.nothing))) │ Core.Const(nothing) │ Core.Const(:(val@_8)) └─── Core.Const(:(@_21 = %58)) 9 ┄─ %60 = @_21::Core.Const(nothing) └─── (@_20 = %60) 10 ┄ %62 = @_20::Union{Nothing, UInt8} └─── (@_19 = %62) 11 ┄ %64 = @_19::Union{Nothing, UInt8} │ (may_a = %64) │ %66 = digitRes::Union{Nothing, Some{UInt8}} │ (##217 = %66) │ %68 = Base.:!::Core.Const(!) │ %69 = ##217::Union{Nothing, Some{UInt8}} │ %70 = Base.isnothing(%69)::Bool │ %71 = (%68)(%70)::Bool └─── goto #13 if not %71 12 ─ %73 = ##217::Some{UInt8} │ (@_22 = Base.something(%73)) └─── goto #20 13 ─ %76 = may_b::Union{Nothing, UInt8} │ (##216 = %76) │ %78 = Base.:!::Core.Const(!) │ %79 = ##216::Union{Nothing, UInt8} │ %80 = Base.isnothing(%79)::Bool │ %81 = (%78)(%80)::Bool └─── goto #15 if not %81 14 ─ %83 = ##216::UInt8 │ (@_23 = Base.something(%83)) └─── goto #19 15 ─ %86 = Main.Some::Core.Const(Some) │ %87 = Main.nothing::Core.Const(nothing) │ (##215 = (%86)(%87)) │ %89 = Base.:!::Core.Const(!) │ %90 = ##215::Core.Const(Some(nothing)) │ %91 = Base.isnothing(%90)::Core.Const(false) │ %92 = (%89)(%91)::Core.Const(true) └─── goto #17 if not %92 16 ─ %94 = ##215::Core.Const(Some(nothing)) │ (@_24 = Base.something(%94)) └─── goto #18 17 ─ Core.Const(nothing) │ Core.Const(:(val@_7 = Base.something(Base.nothing))) │ Core.Const(nothing) │ Core.Const(:(val@_7)) └─── Core.Const(:(@_24 = %100)) 18 ┄ %102 = @_24::Core.Const(nothing) └─── (@_23 = %102) 19 ┄ %104 = @_23::Union{Nothing, UInt8} └─── (@_22 = %104) 20 ┄ %106 = @_22::Union{Nothing, UInt8} │ (may_b = %106) │ %108 = Main.:(==)::Core.Const(==) │ %109 = c::UInt8 │ %110 = Main.UInt8('\n')::Core.Const(0x0a) │ %111 = (%108)(%109, %110)::Bool └─── goto #22 if not %111 21 ─ %113 = may_a::Union{Nothing, UInt8} │ (digit_a = Core.typeassert(%113, Main.UInt8)) │ %115 = may_b::Union{Nothing, UInt8} │ (digit_b = Core.typeassert(%115, Main.UInt8)) │ %117 = Main.:+::Core.Const(+) │ %118 = total::Int64 │ %119 = Main.:+::Core.Const(+) │ %120 = Main.:*::Core.Const(*) │ %121 = digit_a::UInt8 │ %122 = (%120)(%121, 0x0a)::UInt8 │ %123 = digit_b::UInt8 │ %124 = (%119)(%122, %123)::UInt8 │ (total = (%117)(%118, %124)) │ (may_a = Main.nothing) └─── (may_b = Main.nothing) 22 ┄ (@_3 = Base.iterate(%4, %21)) │ %129 = @_3::Union{Nothing, Tuple{UInt8, Int64}} │ %130 = (%129 === nothing)::Bool │ %131 = Base.not_int(%130)::Bool └─── goto #24 if not %131 23 ─ goto #2 24 ┄ %134 = total::Int64 └─── return %134 ``` </details> <details> <summary>`@code_native debuginfo=:none` After </summary> ```julia julia> @code_native debuginfo=:none part1(data) .text .file "part1" .globl julia_part1_1203 # -- Begin function julia_part1_1203 .p2align 4, 0x90 .type julia_part1_1203,@function julia_part1_1203: # @julia_part1_1203 ; Function Signature: part1(Array{UInt8, 1}) # %bb.0: # %top #DEBUG_VALUE: part1:data <- [DW_OP_deref] $rdi push rbp mov rbp, rsp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 vxorps xmm0, xmm0, xmm0 #APP mov rax, qword ptr fs:[0] #NO_APP lea rdx, [rbp - 64] vmovaps xmmword ptr [rbp - 64], xmm0 mov qword ptr [rbp - 48], 0 mov rcx, qword ptr [rax - 8] mov qword ptr [rbp - 64], 4 mov rax, qword ptr [rcx] mov qword ptr [rbp - 72], rcx # 8-byte Spill mov qword ptr [rbp - 56], rax mov qword ptr [rcx], rdx #DEBUG_VALUE: part1:data <- [DW_OP_deref] 0 mov r15, qword ptr [rdi + 16] test r15, r15 je .LBB0_1 # %bb.2: # %L34 mov r14, qword ptr [rdi] dec r15 mov r11b, 1 mov r13b, 1 # implicit-def: $r12b # implicit-def: $r10b xor eax, eax jmp .LBB0_3 .p2align 4, 0x90 .LBB0_4: # in Loop: Header=BB0_3 Depth=1 xor r11d, r11d mov ebx, edi mov r10d, r8d .LBB0_9: # %L114 # in Loop: Header=BB0_3 Depth=1 mov r12d, esi test r15, r15 je .LBB0_12 .LBB0_10: # %guard_exit126 # in Loop: Header=BB0_3 Depth=1 inc r14 dec r15 mov r13d, ebx .LBB0_3: # %L36 # =>This Inner Loop Header: Depth=1 movzx edx, byte ptr [r14] test r13b, 1 movzx edi, r13b mov ebx, 1 mov ecx, 0 cmove ebx, edi cmovne edi, ecx movzx ecx, r10b lea esi, [rdx - 48] lea r9d, [rdx - 58] movzx r8d, sil cmove r8d, ecx cmp r9b, -11 ja .LBB0_4 # %bb.5: # %L89 # in Loop: Header=BB0_3 Depth=1 test r11b, 1 jne .LBB0_8 # %bb.6: # %L102 # in Loop: Header=BB0_3 Depth=1 cmp dl, 10 jne .LBB0_7 # %bb.13: # %L106 # in Loop: Header=BB0_3 Depth=1 test r13b, 1 jne .LBB0_14 # %bb.11: # %L114.thread # in Loop: Header=BB0_3 Depth=1 add ecx, ecx mov bl, 1 mov r11b, 1 lea ecx, [rcx + 4*rcx] add cl, r12b movzx ecx, cl add rax, rcx test r15, r15 jne .LBB0_10 jmp .LBB0_12 .p2align 4, 0x90 .LBB0_8: # %L102.thread # in Loop: Header=BB0_3 Depth=1 mov r11b, 1 # implicit-def: $sil cmp dl, 10 jne .LBB0_9 jmp .LBB0_15 .LBB0_7: # in Loop: Header=BB0_3 Depth=1 mov esi, r12d jmp .LBB0_9 .LBB0_1: xor eax, eax .LBB0_12: # %L154 mov rcx, qword ptr [rbp - 56] mov rdx, qword ptr [rbp - 72] # 8-byte Reload mov qword ptr [rdx], rcx add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret .LBB0_15: # %L106.thread test r13b, 1 jne .LBB0_14 # %bb.16: # %post_box_union47 movabs rax, offset jl_nothing movabs rcx, offset jl_small_typeof movabs rdi, offset ".L_j_str_typeassert#1" mov rdx, qword ptr [rax] mov rsi, qword ptr [rcx + 336] movabs rax, offset ijl_type_error mov qword ptr [rbp - 48], rsi call rax .LBB0_14: # %post_box_union movabs rax, offset jl_nothing movabs rcx, offset jl_small_typeof movabs rdi, offset ".L_j_str_typeassert#1" mov rdx, qword ptr [rax] mov rsi, qword ptr [rcx + 336] movabs rax, offset ijl_type_error mov qword ptr [rbp - 48], rsi call rax .Lfunc_end0: .size julia_part1_1203, .Lfunc_end0-julia_part1_1203 # -- End function .type ".L_j_str_typeassert#1",@object # @"_j_str_typeassert#1" .section .rodata.str1.1,"aMS",@progbits,1 ".L_j_str_typeassert#1": .asciz "typeassert" .size ".L_j_str_typeassert#1", 11 .section ".note.GNU-stack","",@progbits ``` </details> Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> | 26 January 2024, 16:41:20 UTC |
5d4d6ab | Mosè Giordano | 26 January 2024, 10:17:58 UTC | [OpenBLAS_jll] Update to new build with BFloat16 kernels (#53059) This also * drops a patch (`deps/patches/neoverse-generic-kernels.patch`) not needed anymore for an [old bug](https://github.com/OpenMathLib/OpenBLAS/issues/2998) fixed upstream in OpenBLAS. This results in ~5x speedup in the computation of `BLAS.nrm2` (and hence `LinearAlgebra.norm` for vectors longer than `LinearAlgebra.NRM2_CUTOFF` (== 32) elements) when the neoversen1 kernels are used, e.g. by default on all Apple Silicon CPUs * adds a regression test for the above bug * updates other patches when building openblas from source Corresponding PR in Yggdrasil: https://github.com/JuliaPackaging/Yggdrasil/pull/7202. | 26 January 2024, 10:17:58 UTC |
5cf1021 | N5N3 | 26 January 2024, 02:37:39 UTC | Subtype: Fix some diagonal rule related false alarm (#53034) close #33137 close #53021 --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 26 January 2024, 02:37:39 UTC |
1e45aba | Jishnu Bhattacharya | 26 January 2024, 01:46:45 UTC | Fix indexing triangular matrices with `undef` elements in the parent (#52530) I'm not totally sure about specializing`getindex` for numeric arrays, but this lets us display a triangular matrix where the parent is not initialized. ```julia julia> M = Matrix{BigFloat}(undef, 4, 4) 4×4 Matrix{BigFloat}: #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef #undef julia> UpperTriangular(M) 4×4 UpperTriangular{BigFloat, Matrix{BigFloat}}: #undef #undef #undef #undef ⋅ #undef #undef #undef ⋅ ⋅ #undef #undef ⋅ ⋅ ⋅ #undef ``` | 26 January 2024, 01:46:45 UTC |
4919dd7 | Ian Butterworth | 25 January 2024, 19:50:47 UTC | Profile: use full terminal cols to show function name (#53055) | 25 January 2024, 19:50:47 UTC |
55c13d2 | Harmen Stoppels | 25 January 2024, 17:06:21 UTC | Symlink lld and dsymutil in correct build_depsbindir when `USE_SYSTEM_LLD=1` (#53050) Fixes #53049. Two things are addressed: 1. `dsymutil` wasn't linked 2. `lld` was put in `build_bindir`, but on install was looked for in `build_depsbindir` | 25 January 2024, 17:06:21 UTC |
936701e | Jishnu Bhattacharya | 25 January 2024, 15:16:47 UTC | Avoid `StackOverflowError` in generic recursive `dot` (#53030) A quick check to throw an error early if `first(x) == x && first(y) == y`, in which case the recursive `dot` will lead to a stack overflow. Close https://github.com/JuliaLang/julia/issues/35654 | 25 January 2024, 15:16:47 UTC |
14cf64f | Jeremie Knuesel | 25 January 2024, 11:18:30 UTC | Remove wrong entries from NEWS.md (#53036) This removes the `hardlink` and `diskstat` entries in `NEWS.md` that I think were wrongly copied from the 1.8 release notes. (I took the opportunity to fix also a couple of unrelated typos) | 25 January 2024, 11:18:30 UTC |
0eec031 | Diogo Netto | 25 January 2024, 07:58:15 UTC | fix cache line size of PPC7+ (#53044) Ref: https://reviews.llvm.org/D33656. --------- Co-authored-by: Keno Fischer <keno@juliacomputing.com> | 25 January 2024, 07:58:15 UTC |
b3ecd61 | Jeff Bezanson | 25 January 2024, 07:22:13 UTC | make `isassigned(::ScopedValue)` more compatible with the generic meaning (#53022) | 25 January 2024, 07:22:13 UTC |
3da897b | Jishnu Bhattacharya | 25 January 2024, 03:06:15 UTC | Don't access uninitialized indices in `tril!`/`triu!` for numeric arrays (#52528) This specializes the generic `triu!` and `tril!` methods for arrays of numbers, where a zero is known to exist. In such cases, we don't need to read the possibly uninitialized values of the elements at the indices that are to be assigned to. After this, the following would be possible: ```julia julia> M = Matrix{BigFloat}(undef, 3, 3) 3×3 Matrix{BigFloat}: #undef #undef #undef #undef #undef #undef #undef #undef #undef julia> triu!(M) 3×3 Matrix{BigFloat}: #undef #undef #undef 0.0 #undef #undef 0.0 0.0 #undef ``` | 25 January 2024, 03:06:15 UTC |
ca7b9c3 | tecosaur | 24 January 2024, 21:22:28 UTC | Make concatenation of SubString{AnnotatedString} preserve annotations (#51806) `SubStrings` have been overlooked, and thanks to a few compiler quirks (relating to inlining and effect analysis), adding support for them is unfortunately a little more complicated than adding a `|| s isa SubString{<:AnnotatedString}` clause thanks to the new generated runtime-checks. To maintain the zero-overhead non-annotated code path, we need to implement a separate function `_isannotated`, which we also make use of to simplify the current join method. | 24 January 2024, 21:22:28 UTC |
e42ffa6 | Max Horn | 24 January 2024, 18:17:31 UTC | Add GC.logging_enabled() (#51647) | 24 January 2024, 18:17:31 UTC |
919c390 | Diogo Netto | 24 January 2024, 17:08:42 UTC | use proper cache-line size variable in work-stealing queue (#53035) | 24 January 2024, 17:08:42 UTC |
f5816f4 | Ian Butterworth | 24 January 2024, 15:59:44 UTC | Int64 -> Int in fixed precompile statements (#53029) Fixes https://github.com/JuliaLang/julia/issues/53025 | 24 January 2024, 15:59:44 UTC |
e74f9e4 | tecosaur | 24 January 2024, 15:25:13 UTC | Introduce new syntax highlighting stdlib (#51810) Having this as a standard library allows for syntax highlighting to be used in the Markdown and REPL standard libraries. As a bonus, this provides an easy and canonical way of obtaining syntax highlighted code across the ecosystem. This is a pretty tiny library, at just ~200 lines, but a useful one. | 24 January 2024, 15:25:13 UTC |
81c4f8e | Max Horn | 24 January 2024, 13:20:49 UTC | Replace `⇔` by `↔` in documentation (#52078) There is no HTML entity `⇔` and accordingly all the usual browsers (Chrome, Firefox, Safari) don't render it. My guess is that there is confusion because GitHub supports `⇔` and shows it as ⇔ (and `↔` as ↔). But here is for example what Firefox shows: <img width="853" alt="Screen Shot 2023-11-08 at 14 02 01" src="https://github.com/JuliaLang/julia/assets/241512/af7d9e27-a5c3-46c3-94d9-82ed52653cb4"> This patch could be backported to 1.9 and 1.10. | 24 January 2024, 13:20:49 UTC |
91ec2bb | Gabriel Baraldi | 24 January 2024, 13:20:40 UTC | Apple silicon has 128 byte alignment so fix our defines to match (#52996) https://github.com/JuliaLang/julia/blob/8a69745bdcb06409ab7e4fc84718f34d7d54a7f9/base/lock.jl#L33-L50 this probably also needs a fix, and maybe other places as well | 24 January 2024, 13:20:40 UTC |
35c0498 | Max Horn | 24 January 2024, 12:31:28 UTC | Fix a list in GC devdocs (#53032) When splitting a Markdown list item into multiple lines, the following lines must be indented or else a new paragraph starts. | 24 January 2024, 12:31:28 UTC |
128e6e4 | Mosè Giordano | 24 January 2024, 01:33:37 UTC | [nghttp2_jll] Update to v1.59.0 (#53010) | 24 January 2024, 01:33:37 UTC |
d741c24 | Oscar Smith | 23 January 2024, 14:57:41 UTC | Make empty `Dict` only have space for 0 rather than 16 elements (and the minimum size for non-empty `Dict` down to 4). (#52912) This improves speed and reduces allocation for small Dicts. ``` #before julia> @btime Dict{Int,Int}() 46.815 ns (4 allocations: 448 bytes) #after julia> @btime Dict{Int, Int}() 9.429 ns (1 allocation: 80 bytes) ``` The initialization to 16 before made sense when `Dict` was `Vector` backed since `Vectors` were slow to instantiate, but Memory is much faster). | 23 January 2024, 14:57:41 UTC |
4dcd271 | Neven Sajko | 23 January 2024, 14:44:08 UTC | Base: prevent `precision` infinite recursion (#52910) Make the single-argument method of `_precision` into its own function. Now `precision(Union{Float16,Float32})` results in a `MethodError` instead of in a `StackOverflowError`. Fixes #52909 | 23 January 2024, 14:44:08 UTC |
32ad80b | Jishnu Bhattacharya | 23 January 2024, 14:40:41 UTC | Add type assertion in iterate for logicalindex (#53015) The type-assertion helps convey the information that `iterate(tail(s)...)` would never return `nothing`, which makes JET happy. On master ```julia julia> L = Base.LogicalIndex([true]) 1-element Base.LogicalIndex{Int64, Vector{Bool}}: 1 julia> @report_call iterate(L) ═════ 2 possible errors found ═════ ┌ iterate(L::Base.LogicalIndex{Int64, Vector{Bool}}) @ Base ./multidimensional.jl:778 │┌ iterate(L::Base.LogicalIndex{Int64, Vector{Bool}}, s::Tuple{Int64, LinearIndices{1, Tuple{Base.OneTo{Int64}}}}) @ Base ./multidimensional.jl:789 ││┌ indexed_iterate(I::Nothing, i::Int64) @ Base ./tuple.jl:94 │││ no matching method found `iterate(::Nothing)`: x = iterate(I::Nothing) ││└──────────────────── ││┌ indexed_iterate(I::Nothing, i::Int64, state::Int64) @ Base ./tuple.jl:99 │││ no matching method found `iterate(::Nothing, ::Int64)`: x = iterate(I::Nothing, state::Int64) ``` This PR ```julia julia> @report_call iterate(L) No errors detected ``` Close https://github.com/JuliaArrays/StaticArrays.jl/issues/1225 | 23 January 2024, 14:40:41 UTC |
e6bf976 | DilumAluthgeBot | 23 January 2024, 12:36:19 UTC | 🤖 [master] Bump the StyledStrings stdlib from 61e7b10 to 302a0d0 (#53012) Stdlib: StyledStrings URL: https://github.com/JuliaLang/StyledStrings.jl.git Stdlib branch: main Julia branch: master Old commit: 61e7b10 New commit: 302a0d0 Julia version: 1.11.0-DEV StyledStrings version: 1.11.0 Bump invoked by: @vchuravy Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/StyledStrings.jl/compare/61e7b105b157b40807ed0b4840166a25b0948549...302a0d023a58d38cddf0a1b82c618621613c8d2a ``` $ git log --oneline 61e7b10..302a0d0 302a0d0 Directly import ScopedValue 3fab35e Fix showing AnnotatedChar with colour 44f5fd7 Restrict the Base docstrings included in the docs 4dee5d9 Add readme c49ae82 Add documentation task to CI 38ae1b3 Setting the terminal colour to :default is special 2709150 Adjust face merge tests after inheritance change 036631f Swap inheritance processing in face merge 9b35f08 Merge branch 'jn/Statefulempty' [#21] 508ab57 Refactor zip of eachindex to just use pairs 02b3f81 Remove use of length of Stateful 41c8218 Merge branch 'lh/ci-codecov' [#15] d581fda Disable codecov commenting in every PR a8a25ba Merge branch 'lh/ci-old-julia' [#13] b7fca5b Merge branch 'lh/newline' [#16] 984485e Adjust newline parsing to work with CLRF encoding 27b02d1 Test styled"" parsing of \-continued newlines a7981fe Merge pull request #17 from caleb-allen/add-beep-face c1ab675 Add repl_prompt_beep face 0d8f5df Merge pull request #18 from JuliaLang/whitespace-fixup 1ef0f90 Nicer whitespace alignment 91a24f8 Disable CI for older versions of Julia 63ff132 add tagbot 792fda7 add CI 506afe3 add .gitignore 74e7135 Load the JULIA_*_COLOR env vars for compat 87d1fb5 Replace within-module eval with hygienic eval 4777e60 Touchups to documented examples ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 23 January 2024, 12:36:19 UTC |
9f36490 | Diogo Netto | 23 January 2024, 12:20:08 UTC | place work-stealing queue indices on different cache lines to avoid false-sharing (#52994) For some reason this only shows up in the `many_refs.jl` benchmark, since it's the only one that hammers the work-stealing queue (we also didn't test this benchmark on a large number of GC threads in our [previous analysis](https://github.com/JuliaLang/julia/pull/48600#issuecomment-1518944785)). - master: ``` bench = "many_refs.jl" (gcthreads, threads) = (1, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 4268 │ 3243 │ 3048 │ 194 │ 1126 │ 15 │ 868 │ 76 │ │ median │ 4270 │ 3246 │ 3051 │ 195 │ 1128 │ 17 │ 868 │ 76 │ │ maximum │ 4278 │ 3247 │ 3052 │ 195 │ 1128 │ 18 │ 868 │ 76 │ │ stdev │ 5 │ 2 │ 2 │ 0 │ 1 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (2, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2728 │ 1692 │ 1551 │ 141 │ 598 │ 23 │ 868 │ 62 │ │ median │ 2732 │ 1709 │ 1567 │ 141 │ 603 │ 23 │ 868 │ 62 │ │ maximum │ 2744 │ 1712 │ 1571 │ 143 │ 607 │ 24 │ 868 │ 63 │ │ stdev │ 6 │ 9 │ 9 │ 1 │ 4 │ 0 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (4, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2105 │ 1082 │ 987 │ 95 │ 405 │ 23 │ 875 │ 51 │ │ median │ 2115 │ 1089 │ 994 │ 95 │ 409 │ 23 │ 875 │ 52 │ │ maximum │ 2127 │ 1100 │ 1003 │ 97 │ 417 │ 25 │ 875 │ 52 │ │ stdev │ 8 │ 8 │ 7 │ 1 │ 5 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (8, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 3861 │ 2755 │ 2676 │ 79 │ 1301 │ 22 │ 878 │ 68 │ │ median │ 3864 │ 2835 │ 2756 │ 80 │ 1342 │ 25 │ 879 │ 73 │ │ maximum │ 4032 │ 2877 │ 2797 │ 80 │ 1378 │ 26 │ 880 │ 74 │ │ stdev │ 73 │ 45 │ 45 │ 1 │ 28 │ 2 │ 1 │ 2 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (16, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 7455 │ 6425 │ 6344 │ 80 │ 3262 │ 24 │ 882 │ 86 │ │ median │ 7703 │ 6682 │ 6602 │ 81 │ 3313 │ 25 │ 884 │ 87 │ │ maximum │ 7826 │ 6806 │ 6725 │ 81 │ 3422 │ 27 │ 887 │ 87 │ │ stdev │ 152 │ 153 │ 153 │ 0 │ 68 │ 1 │ 2 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` - PR: ``` bench = "many_refs.jl" (gcthreads, threads) = (1, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 4264 │ 3240 │ 3048 │ 192 │ 1127 │ 15 │ 868 │ 76 │ │ median │ 4271 │ 3244 │ 3052 │ 192 │ 1129 │ 17 │ 868 │ 76 │ │ maximum │ 4514 │ 3481 │ 3289 │ 193 │ 1247 │ 18 │ 868 │ 77 │ │ stdev │ 109 │ 106 │ 106 │ 0 │ 53 │ 1 │ 0 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (2, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2712 │ 1680 │ 1541 │ 138 │ 591 │ 22 │ 868 │ 62 │ │ median │ 2713 │ 1691 │ 1552 │ 140 │ 594 │ 24 │ 868 │ 62 │ │ maximum │ 2732 │ 1710 │ 1569 │ 141 │ 606 │ 25 │ 868 │ 63 │ │ stdev │ 11 │ 12 │ 12 │ 1 │ 6 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (4, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2090 │ 1057 │ 962 │ 95 │ 398 │ 22 │ 874 │ 50 │ │ median │ 2103 │ 1070 │ 974 │ 95 │ 401 │ 24 │ 874 │ 51 │ │ maximum │ 2140 │ 1074 │ 978 │ 96 │ 402 │ 25 │ 875 │ 51 │ │ stdev │ 19 │ 6 │ 6 │ 0 │ 1 │ 1 │ 1 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (8, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2236 │ 1208 │ 1129 │ 79 │ 528 │ 23 │ 880 │ 54 │ │ median │ 2238 │ 1214 │ 1135 │ 79 │ 533 │ 23 │ 880 │ 54 │ │ maximum │ 2246 │ 1218 │ 1138 │ 80 │ 534 │ 35 │ 880 │ 54 │ │ stdev │ 4 │ 4 │ 4 │ 0 │ 3 │ 5 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (16, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2326 │ 1297 │ 1216 │ 80 │ 595 │ 24 │ 884 │ 56 │ │ median │ 2348 │ 1325 │ 1245 │ 80 │ 620 │ 25 │ 885 │ 56 │ │ maximum │ 2370 │ 1341 │ 1262 │ 81 │ 631 │ 26 │ 887 │ 57 │ │ stdev │ 17 │ 19 │ 19 │ 0 │ 14 │ 1 │ 1 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` | 23 January 2024, 12:20:08 UTC |
5824c73 | Cody Tapscott | 23 January 2024, 04:43:22 UTC | irinterp: add Tarjan SCC algorithm for reachability (#52966) This PR optimizes `kill_edge!` for IR interp. The basic algorithm flow is: ``` 1. Check whether `target` of dead edge is unreachable, which is true iff: - Reducible CFG node: there are no live incoming forward edges (predecessors) - Irreducible CFG node: Tarjan's SCC algorithm reports no live incoming forward edges to the SCC 2. If `target` is dead, repeat (1) for all of its outgoing edges ``` This maintains reachability information very efficiently, especially for reducible CFG's which are overwhelmingly common. As an added bonus, `CFGReachability` can also be consulted to check which BasicBlocks are part of an irreducible loop. | 23 January 2024, 04:43:22 UTC |
bc642cf | Valentin Churavy | 23 January 2024, 02:56:13 UTC | NFC: Remove stale code from external objects handling (#53009) Thanks to @gbaraldi for pointing this out. | 23 January 2024, 02:56:13 UTC |
4d26be0 | Christian Guinard | 22 January 2024, 21:30:30 UTC | Fix string output of `Base.format_bytes` when `binary=false` (#52932) Introduced in [50572](https://github.com/JuliaLang/julia/pull/50572) Before: ``` julia> Base.format_bytes(1, binary=false) "1 " julia> Base.format_bytes(11, binary=false) "11 s" ``` This PR: ``` julia> Base.format_bytes(1, binary=false) "1 byte" julia> Base.format_bytes(11, binary=false) "11 bytes" ``` Also add tests. | 22 January 2024, 21:30:30 UTC |
081f045 | James Wrigley | 22 January 2024, 20:20:21 UTC | doc: Explicitly document how to add docstrings for inner constructors (#52995) xref https://github.com/JuliaLang/julia/issues/14962 | 22 January 2024, 20:20:21 UTC |
68c0b2d | Navid C. Constantinou | 22 January 2024, 20:16:32 UTC | doc: add a few missing spaces in `functions.md` (#53005) | 22 January 2024, 20:16:32 UTC |
59e505c | Ian Butterworth | 22 January 2024, 20:14:55 UTC | NEWS: improve the hint for disabling on-the-fly tab completion (#53006) Followup to https://github.com/JuliaLang/julia/pull/51229 | 22 January 2024, 20:14:55 UTC |
47d31ac | Shuhei Kadowaki | 22 January 2024, 09:46:23 UTC | refactor the optimization flags set and utilities (#52998) | 22 January 2024, 09:46:23 UTC |
400ee71 | Cody Tapscott | 22 January 2024, 05:07:23 UTC | Add `filter` parameter to `tarjan!` This still isn't an entirely generic version of the algorithm, but it's certainly a step in the right direction. | 22 January 2024, 05:07:23 UTC |
188cc93 | Shuhei Kadowaki | 22 January 2024, 02:02:13 UTC | move `REPL.REPLCompletions.UndefVarError_hint` to `REPL` module (#52990) Since `UndefVarError_hint` is an interactive feature and isn't directly related to completion, it seems more appropriate to place it within `REPL` module rather than its `REPLCompletions` submodule. | 22 January 2024, 02:02:13 UTC |
9c78420 | Diogo Netto | 21 January 2024, 19:57:20 UTC | reduce contention on page metadata lists during the sweeping phase (#52943) **EDIT**: fixes https://github.com/JuliaLang/julia/issues/52937 by decreasing the contention on the page lists and only waking GC threads up if we have a sufficiently large number of pages. Seems to address the regression from the MWE of https://github.com/JuliaLang/julia/issues/52937: - master: ``` ../julia-master/julia --project=. run_benchmarks.jl serial obj_arrays issue-52937 -n5 --gcthreads=1 bench = "issue-52937.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 24841 │ 818 │ 78 │ 740 │ 44 │ 10088 │ 96 │ 3 │ │ median │ 24881 │ 834 │ 83 │ 751 │ 45 │ 10738 │ 97 │ 3 │ │ maximum │ 25002 │ 891 │ 87 │ 803 │ 48 │ 11074 │ 112 │ 4 │ │ stdev │ 78 │ 29 │ 4 │ 26 │ 1 │ 393 │ 7 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ../julia-master/julia --project=. run_benchmarks.jl serial obj_arrays issue-52937 -n5 --gcthreads=8 bench = "issue-52937.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 29113 │ 5200 │ 68 │ 5130 │ 12 │ 9724 │ 95 │ 18 │ │ median │ 29354 │ 5274 │ 69 │ 5204 │ 12 │ 10456 │ 96 │ 18 │ │ maximum │ 29472 │ 5333 │ 70 │ 5264 │ 14 │ 11913 │ 97 │ 18 │ │ stdev │ 138 │ 54 │ 1 │ 55 │ 1 │ 937 │ 1 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` - PR: ``` ../julia-master/julia --project=. run_benchmarks.jl serial obj_arrays issue-52937 -n5 --gcthreads=1 bench = "issue-52937.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 24475 │ 761 │ 77 │ 681 │ 40 │ 9499 │ 94 │ 3 │ │ median │ 24845 │ 775 │ 80 │ 698 │ 43 │ 10793 │ 97 │ 3 │ │ maximum │ 25128 │ 811 │ 85 │ 726 │ 47 │ 12820 │ 113 │ 3 │ │ stdev │ 240 │ 22 │ 3 │ 21 │ 3 │ 1236 │ 8 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ../julia-master/julia --project=. run_benchmarks.jl serial obj_arrays issue-52937 -n5 --gcthreads=8 bench = "issue-52937.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 24709 │ 679 │ 70 │ 609 │ 11 │ 9981 │ 95 │ 3 │ │ median │ 24869 │ 702 │ 70 │ 631 │ 12 │ 10705 │ 96 │ 3 │ │ maximum │ 24911 │ 708 │ 72 │ 638 │ 13 │ 10820 │ 98 │ 3 │ │ stdev │ 79 │ 12 │ 1 │ 12 │ 1 │ 401 │ 1 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` Also, performance on `objarray.jl` (an example of benchmark in which sweeping parallelizes well with the current implementation) seems fine: - master: ``` ../julia-master/julia --project=. run_benchmarks.jl multithreaded bigarrays -n5 --gcthreads=1 bench = "objarray.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 19301 │ 10792 │ 7485 │ 3307 │ 1651 │ 196 │ 4519 │ 56 │ │ median │ 21415 │ 12646 │ 9094 │ 3551 │ 1985 │ 241 │ 6576 │ 59 │ │ maximum │ 21873 │ 13118 │ 9353 │ 3765 │ 2781 │ 330 │ 8793 │ 60 │ │ stdev │ 1009 │ 932 │ 757 │ 190 │ 449 │ 50 │ 1537 │ 2 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ../julia-master/julia --project=. run_benchmarks.jl multithreaded bigarrays -n5 --gcthreads=8 bench = "objarray.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 13135 │ 4377 │ 3350 │ 1007 │ 491 │ 231 │ 6062 │ 33 │ │ median │ 13164 │ 4540 │ 3370 │ 1177 │ 669 │ 256 │ 6383 │ 35 │ │ maximum │ 13525 │ 4859 │ 3675 │ 1184 │ 748 │ 320 │ 7528 │ 36 │ │ stdev │ 183 │ 189 │ 146 │ 77 │ 129 │ 42 │ 584 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` - PR: ``` ../julia-master/julia --project=. run_benchmarks.jl multithreaded bigarrays -n5 --gcthreads=1 bench = "objarray.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 19642 │ 10931 │ 7566 │ 3365 │ 1653 │ 204 │ 5688 │ 56 │ │ median │ 21441 │ 12717 │ 8948 │ 3770 │ 1796 │ 217 │ 6972 │ 59 │ │ maximum │ 23494 │ 14643 │ 10576 │ 4067 │ 2513 │ 248 │ 8229 │ 62 │ │ stdev │ 1408 │ 1339 │ 1079 │ 267 │ 393 │ 19 │ 965 │ 2 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ../julia-master/julia --project=. run_benchmarks.jl multithreaded bigarrays -n5 --gcthreads=8 bench = "objarray.jl" ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 13365 │ 4544 │ 3389 │ 1104 │ 516 │ 255 │ 6349 │ 34 │ │ median │ 13445 │ 4624 │ 3404 │ 1233 │ 578 │ 275 │ 6385 │ 34 │ │ maximum │ 14413 │ 5278 │ 3837 │ 1441 │ 753 │ 300 │ 7547 │ 37 │ │ stdev │ 442 │ 303 │ 194 │ 121 │ 89 │ 18 │ 522 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` | 21 January 2024, 19:57:20 UTC |
a9e2bd4 | Bhuminjay Soni | 21 January 2024, 11:16:12 UTC | Add general fallback for rem2pi (#52955) **Overview:** - This PR fixes #44715 by adding a general fallback. **Testing:** - Tested the updated code. - Verified that other functionalities remain unaffected. **Dependencies:** - No dependencies on other pull requests. **CC:** - @N5N3 --------- Signed-off-by: 11happy <soni5happy@gmail.com> Co-authored-by: N5N3 <2642243996@qq.com> | 21 January 2024, 11:16:12 UTC |
1f111e1 | Jameson Nash | 20 January 2024, 19:02:52 UTC | aotcompile: remove most offset code (#52865) Use absolute addresses for fvars, to avoid needing some of the copies and complexity around them, and the buggy-ness of LLVM linker features with doing this. This may replace https://github.com/JuliaLang/llvm-project/commit/a5ccdfbba7e54ea4792ff4bd61e163d209af36e1 | 20 January 2024, 19:02:52 UTC |
8bb0109 | Neven Sajko | 20 January 2024, 18:18:28 UTC | Add note to `names` docstring about not implying isdefined (#51593) | 20 January 2024, 18:18:28 UTC |
32534dd | Eric Hanson | 20 January 2024, 16:00:29 UTC | implement `@time` and `@timev` in terms of `@timed` (#52889) closes https://github.com/JuliaLang/julia/issues/47056 I suspect there was some reason this wasn't done in the first place, but I figured opening a PR could be a way to discuss that. ~~Needs tests still for the new `@timed` fields.~~ --------- Co-authored-by: inky <git@wo-class.cn> | 20 January 2024, 16:00:29 UTC |
690a87e | Diogo Netto | 20 January 2024, 15:29:56 UTC | check for ptls == NULL in a few places in the GC codebase (#52984) Also add a few `assert(ptls != NULL)` where necessary. | 20 January 2024, 15:29:56 UTC |
ce82696 | Gabriel Baraldi | 20 January 2024, 10:50:10 UTC | Add detection for zen 4 cpus in processor_x86 (#52944) | 20 January 2024, 10:50:10 UTC |
6246074 | Mosè Giordano | 20 January 2024, 10:44:31 UTC | Remove debug `@show`s in tests (#52983) Ref: https://github.com/JuliaLang/julia/pull/52750#discussion_r1457756113 | 20 January 2024, 10:44:31 UTC |
63188d5 | Keno Fischer | 19 January 2024, 23:30:03 UTC | Effects-tune PersitentDict (#52954) To in particular allow elimination of dead PersistentDict constructions. | 19 January 2024, 23:30:03 UTC |
fb2d946 | Diogo Netto | 19 January 2024, 15:22:51 UTC | ensure a few GC verify functions conform with the new page metadata layout (#52975) Fix https://github.com/JuliaLang/julia/issues/52973. | 19 January 2024, 15:22:51 UTC |
d384a36 | Gabriel Baraldi | 19 January 2024, 13:39:33 UTC | Add detection for apple m2 and m3 cpus, and cleanup code (#52396) This only makes a difference with LLVM 16 | 19 January 2024, 13:39:33 UTC |
48ef5e9 | Diogo Netto | 19 January 2024, 13:10:50 UTC | NFC: move memory pressure callback declaration to julia_gcext.h (#52962) It should probably be in `julia_gcext.h` together with the other callbacks for consistency. | 19 January 2024, 13:10:50 UTC |
d6adba1 | Cody Tapscott | 17 January 2024, 09:58:47 UTC | irinterp: Add Tarjan SCC algorithm for reachability This optimizes `kill_edge!` for IR interp. The basic algorithm flow is: 1. Check whether `target` of dead edge is unreachable, i.e. iff: - Reducible CFG node: there is no live incoming forward edge - Irreducible CFG node: Tarjan's SCC algorithm reports no live incoming forward edges to the SCC 2. If `target` is dead, repeat (1) for all of its outgoing edges This maintains reachability information very efficiently, especially for reducible CFG's which are overwhelmingly common. As an added bonus CFGReachability can also be consulted to check which BasicBlocks are part of an irreducible loop. | 19 January 2024, 05:54:58 UTC |
eb26d63 | inky | 19 January 2024, 02:49:39 UTC | add missing docstrings for Base.Sys (#52777) Part of #52725 | 19 January 2024, 02:49:39 UTC |
a1be59a | inky | 19 January 2024, 02:46:55 UTC | Sys.SC_CLK_TCK value on windows (#52936) I noticed in #52777 that `Sys.SC_CLK_TCK` is set to `0` on Windows, which is treated as an unknown clock-tick unit. This undocumented global variable is *only* used by `Sys` to display CPU load times from the `CPUInfo` data structure, which until #52777 was completely undocumented and only seems to be used by `versioninfo(verbose=true)`. On POSIX systems it is set to a `> 0` value, and is used to convert the CPU times into seconds. On Windows, it is set to `0`, which is treated as an unknown unit, so the CPU times are displayed without units. Since it is only used for CPU times, we can look at the [`uv_cpu_info` implementation](https://github.com/libuv/libuv/blob/3b6a1a14caeeeaf5510f2939a8e28ed9ba0ad968/src/win/util.c#L531-L653) to see how libuv computes these values on Windows. This function calls `pNtQuerySystemInformation`, which returns times in ["100ns intervals"](https://learn.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntquerysysteminformation#system_processor_performance_information), i.e. in units of 10⁻⁷ seconds. However, `uv_cpu_info` then divides these values by `10000`, which converts them to units of milliseconds. So, I believe that the correct value of `Sys.SC_CLK_TCK` on Windows is `1000`. Basically this just means that `versioninfo(verbose=true)` output on Windows will get units of seconds when printing CPU loads. As far as I can tell, no external package is using these (undocumented until now) timing values — the few packages that call `Sys.cpu_info()` only do so to get the `model` (string) field. | 19 January 2024, 02:46:55 UTC |
ca1e519 | Richie Wilynnton | 19 January 2024, 02:33:16 UTC | Documentation for "Printf" Module (#52791) Part of https://github.com/JuliaLang/julia/issues/52725 --------- Co-authored-by: RichieWilynnton <richiewilynton@gmail.com> | 19 January 2024, 02:33:16 UTC |
ab9573f | William Moses | 19 January 2024, 01:47:11 UTC | Add option to disable vector pipeline (#52544) This will allow tools like Enzyme to use the internal julia pass pipeline, rather than having their own version. | 19 January 2024, 01:47:11 UTC |