https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
3b4e7b4 HACK: Option to ignore all inlining heuristics 10 October 2018, 00:26:12 UTC
86db845 cfg_simplify fixup 10 October 2018, 00:25:46 UTC
cdd945b Fix world age maybe? 09 October 2018, 22:13:52 UTC
7f29308 Rebase fixes 09 October 2018, 04:28:36 UTC
e727eb5 Enable aggressive inference 09 October 2018, 03:13:55 UTC
cc30c74 Merge remote-tracking branch 'origin/kf/inferencecomplexity' into kf/tpu2 09 October 2018, 01:38:50 UTC
aa676a8 Merge remote-tracking branch 'origin/kf/codetypedconst' into kf/tpu2 09 October 2018, 01:38:26 UTC
5e831cc Merge branch 'kf/cfgsimp' into kf/tpu2 09 October 2018, 01:38:08 UTC
0248bc3 Inlining thing 09 October 2018, 01:37:42 UTC
03fbdf4 RFC: Allow structural recursion without triggering edge cycle limiting This attempts to fix inference for the case in #29293 (the one returning `Any`). It does not fix the cache poisoning part of that issue, which is a separate concern. The idea here is that we avoid applying limiting if the argtypes of the frame become strictly simpler (thus guaranteeing eventual termination). It is important that the complexity relation be transitive and anti-reflexive. 09 October 2018, 01:28:28 UTC
6adb50c Extend code_typed to be able to debug constant prop I'm currently debugging code that uses a lot of arrays with dimensions in their type parameters. This type of code heavily relies on constant propagation to lift dimensions from the value domain into the type domain. Unfortunately, it's a bit hard to discover what exactly causes inference to drop information from constants, because there's no way to feed in constants for a particular invocation using code_typed. This is a quick hack to remidy that, by making `$`-interpolated expressions available as constants to type inference, e.g. ```julia julia> @code_typed 1+1 CodeInfo( 53 1 ─ %1 = (Base.add_int)(x, y)::Int64 └── return %1 ) => Int64 julia> @code_typed $(1)+$(1) CodeInfo( 53 1 ─ return 2 ) => Int64 ``` Additionally, this extends the same mechanism to apply to get/setproperty!, even in the absence of `$` for the symbol argument, reflecting their special casing inference. 09 October 2018, 00:57:41 UTC
38612e0 flatten empty tuple - fix #29112 (#29548) 08 October 2018, 19:30:36 UTC
15843d5 Code-format some function names in doc headers (#29485) 08 October 2018, 14:28:36 UTC
361c5e7 added sparse multiplication and division for triangular matrices. Fix… (#28507) * added sparse multiplication and division for triangular matrices. Fix #28451 * merge with master * merge with master 2 * improved find diagonal part * refactored to purge name space of SparseArrays * additional test cases and bug fix * reformulated tests 08 October 2018, 07:52:45 UTC
c03d1dc test FreeBSD CI status reporter (#29518) 07 October 2018, 15:44:06 UTC
cfc967b cleanup history file for generate_precompile (#29068) 06 October 2018, 14:48:46 UTC
62e9ba4 Update performance-tips.md (#29543) My apologies if this small edit is somewhere else waiting to be merged. I couldn't find it... 06 October 2018, 08:44:49 UTC
0a685d3 Turn some asserts into runtime traps instead Unfortunately, we cannnot always rely on :invokes to have argument values that match the declared ssa types (e.g. if the :invoke is dynamically unreachable). Because of that, we cannot assert here, but must instead emit a runtime trap. 06 October 2018, 03:10:31 UTC
cdddf35 Don't eliminate PiNodes for mismatched types E.g. if we had `PiNode(1, CartesianIndex)`, we would eliminate that because `1` was a constant. However, leaving this in allows the compiler to realize that this code is unreachable, as well as guarding codegen against having to wrok through invalid IR. 06 October 2018, 03:10:31 UTC
58dc4d1 add tests for new PartialTuple capabilities 06 October 2018, 03:10:31 UTC
55b500c Replace `InferenceResult` varargs hack with new inference lattice element for "partially constant" tuples Previously, we hacked in an additional `InferenceResult` field to store varargs type information in order to facilitate better constant propagation through varargs methods. There were many other places, however, where constants moving in/out of tuples/varargs thwarted constant propagation. This commit removes the varargs hack, replacing it with a new inference lattice element (`PartialTuple`) that represents tuples where some (but not all) of the elements are constants. This allows us to follow through with constant propagation in more situations involving tuple construction/destructuring, and also enabled a clean-up of the `InferenceResult` caching code. 06 October 2018, 03:10:31 UTC
ec574fb mul!, rmul! and lmul! methods for UniformScaling (#29506) * mul!, rmul! and lmul! methods for UniformScaling As per https://discourse.julialang.org/t/in-place-multiplication-methods-for-uniformscaling-type/15837 * Add tests and another mul! method 06 October 2018, 03:01:19 UTC
841c2a8 Add CFG simplify pass tests 05 October 2018, 23:06:37 UTC
ea7b1a7 task: drop parent and module references (#29483) The parent link can unnecessarily hold memory references live, and the current-module function is gone. Their uses have been deprecated in favor of the macros @`__FILE__` and @`__MODULE__`. The `workspace()` function is also gone now, so we can remove the support code for it. To implement detection of broken incremental compilation (and help ensure the module is permanently rooted as is generally expected), keep track of all "open" modules in a hashtable (jl_current_modules). We can further refine this later, if desired (e.g. also allow any submodule and of any item in `jl_module_init_order`). Also removes the global `module_stack` state. This makes us a bit more robust to async module definition. We could perhaps do even more here, if necessary (e.g. by checking first that all parents are initialized, instead of just the direct ancestor). But this is hopefully a vanishingly rare situation anyways. 05 October 2018, 20:21:06 UTC
d461d56 Merge pull request #28368 from rbehrends/rb/gc-extensions GC Extensions 05 October 2018, 19:55:53 UTC
1b18f12 Backport CFG simplification pass from XLA backend Right now we don't do too much CFG simplification (esp since we turned off doing so for constant folded branches). This isn't too much of a problem, because LLVM is very good at cutting down any excess basic block we happen to emit. However, for non-SSA backends, excess CFG can be a significant problem that the backend may not be able to optimize away (even if it's trivial at the Julia IR level). Plus it's annoying for humans to read. The XLA backend had a simple CFG simplification pass. Backport this pass to Base, so it can live alongside the code it depends on (it has a fairly close dependency on the details of the CFG and IncrementalCompact). As it stands, I don't think it's useful to have this pass in the default compiler pipeline (both because LLVM can handle it easily and because our round-trip to statement based representations cleans up some of this), but I do think it's useful interactively and for non-standard compiler backends. We should re-evaluate whether to put this in the standard compiler pipeline once we re-enable the CFG transformations of constant folded conditions. If that ends up leaving a lot of basic block chains around, it might yet be worth putting this in. 05 October 2018, 19:24:46 UTC
d3399ef IncrementalCompact additions for CFG simplify 05 October 2018, 18:54:22 UTC
50c27fd one(::CartesianIndex) => oneunit(::CartesianIndex) (#29442) 05 October 2018, 11:14:26 UTC
1968b23 Add NEWS entry for #28156: add `splitpath(p)` (#29448) 05 October 2018, 06:49:18 UTC
3cc4b80 Fix a typo in parallel computing doc (#29521) 05 October 2018, 06:36:40 UTC
601ef78 Remove unecessary mention of Julia version in docs (#29519) fix #29510 05 October 2018, 06:35:17 UTC
0210b1d at-kwdef support for parametric types and subtypes (#29316) * at-kwdef support for parametric types and subtypes Fixes #29307. 05 October 2018, 04:32:58 UTC
7942395 Add a test for the task scanner. 05 October 2018, 00:48:19 UTC
8ff75ad Better dominators This commit replaces the naive algorithm for replacing dominator trees by a faster implementation based on the Semi-NCA algorithm (reference in the code comments). LLVM recently switched to this algorithm and found it to be faster in practice than SLT (which it used before). It is also slightly easier to implement. More importantly though, it should easily extend to dynamic dominators. This fixes the preformance problems in dominator construction noted in #25927 and should provide a basis for a dynamic dominator implementation to fix #29107. 05 October 2018, 00:15:29 UTC
83bc53b Add functionality to find a task's stack buffer. 04 October 2018, 23:40:11 UTC
37ab710 REPL: show "failed" when i-search fails, like in readline (#29413) The i-search prompt becomes for example: `(failed forward-i-search)`. 04 October 2018, 16:32:20 UTC
0f920ab Fix phinode rename bug during domsort Since the edge list of a phi may be incomplete with respect to predecessors, it is not safe to replace a one-value phi by its value, unless we know that there is only one predecessor. Remove the incorrect logic from domsort. We do also do the correct transformation in compaction right afterwards these days. 04 October 2018, 16:14:36 UTC
f9b9d85 Typo (#29482) 04 October 2018, 14:52:22 UTC
9280bfc REPL: make paste work in search mode (#29373) 04 October 2018, 14:00:32 UTC
32e3851 Use atomic operations to initialize conservative GC support. 04 October 2018, 13:59:53 UTC
62d9cde Copy mark stack struct to thread-local storage. Copying the mark stack struct instead of aliasing it ensures that structural replacement of aggregates for its members can still take place in the mark loop. 04 October 2018, 13:59:53 UTC
64b019d Rename gc_mark_sp_t to jl_gc_mark_sp_t 04 October 2018, 13:59:15 UTC
3821314 Improve comments for the GC extension functionality. 04 October 2018, 13:58:37 UTC
aadb507 Update GC extension tests. * Fix formatting. * Make tests work with 1.0.0. * Enable conservative support. 04 October 2018, 13:58:37 UTC
680cb7a Revise GC extensions implementation in accordance with code review. * Adjustments to conservative marking. * Remove symbol concatenation from gc_invoke_callbacks(). * Clean up handling of jl_buff_tag objects. * Add comments. * Fix formatting. 04 October 2018, 13:58:37 UTC
55c3c29 REPL: really fix #29347, searching a string not in history (#29412) 04 October 2018, 13:48:30 UTC
fa95de1 Use age bits to determine liveness for conservative marking. 04 October 2018, 13:46:16 UTC
68836e5 Revised support for conservative marking. 04 October 2018, 13:46:16 UTC
66c36d4 Add tests for the new GC extensions. 04 October 2018, 13:46:16 UTC
3adc378 Support optional conservative tracing of objects in the GC. 04 October 2018, 13:46:16 UTC
05cb43c Support the tracing of additional roots in the GC. 04 October 2018, 13:46:16 UTC
5b38be1 Support foreign types with custom mark and sweep functions. 04 October 2018, 13:40:09 UTC
2c751b8 Initial framework for Julia GC extensions. 04 October 2018, 13:38:19 UTC
60cff80 Merge pull request #29440 from JuliaLang/teh/colon_cartindex Add colon constructor for CartesianIndices 04 October 2018, 13:16:57 UTC
be0fceb Update README.md (#29514) Fixed typo 04 October 2018, 12:38:07 UTC
4fa7161 Fix NEWS-update.jl for cases of empty issues list 04 October 2018, 10:38:39 UTC
ba0add8 Add colon constructor for CartesianIndices See https://discourse.julialang.org/t/psa-replacement-of-ind2sub-sub2ind-in-julia-0-7/14666/6 and posts below it. 04 October 2018, 10:37:58 UTC
b8ca1a4 remove vestigial code related to (removed) custom inlining of `^` 04 October 2018, 03:29:41 UTC
5bc3de4 Minor English fixes (#29337) 04 October 2018, 01:34:52 UTC
7dd1e4c English fixes (#29336) 04 October 2018, 01:32:56 UTC
d02f4f0 fix a transitivity error in method specificity (#29405) 04 October 2018, 01:28:08 UTC
7cc9209 Add --project option to man page (#29497) 04 October 2018, 01:20:31 UTC
8b5f5da Allow :new constant inference in more cases Previously we allowed only bitstypes. However, it is legal to do so for and the current code works for all concrete immutables, so weaken the guarding condition appropriately here. 03 October 2018, 22:17:10 UTC
a984ad0 Fix #29451: parse(Int, s::AbstractString) when ncodeunits(s) > lastindex(s) (#29465) 03 October 2018, 21:45:04 UTC
6eb4921 Use recursion rather than iteration for error check in uncolon Inference has an easier time analyzing recursion (esp if structural over tuples) than iteration, which is why the rest of this function is using recursion. With sufficient inlining, LLVM does generally get rid of the extra error check and branch, but by switching to recursion, we make things easier on non-LLVM backends. 03 October 2018, 20:50:23 UTC
ea16391 fix #29468, bug in intersection of different-length vararg tuples (#29487) 03 October 2018, 20:12:45 UTC
37dc16e correct language in documentation (#29502) 03 October 2018, 18:41:36 UTC
db100ad More robust show for invalid CFG Despite the fact that the compiler should never generate invalid data structures, it is a good practice for the show functions to be able to handle these and indicate what the problem is. In this case, if the IR has more instructions than its supposed to according to the CFG, put all trailing instructions into a "!" basic block to indicate an error. 03 October 2018, 18:09:21 UTC
590ee83 Align StmtRange field names with UnitRange 03 October 2018, 18:09:21 UTC
434c065 move 1.0 news to HISTORY file; prepare NEWS file for 1.1 (#29490) [ci skip] 03 October 2018, 17:06:32 UTC
a897365 Upgrade to new Documenter. (#29470) 03 October 2018, 14:45:26 UTC
a9550d5 Removed unnecessary extra line (#29476) Line 73 cleared. 03 October 2018, 13:47:19 UTC
4412dd4 Add an option to disable building libssh2 tests These fail to build if mbedtls is not available in the global linker search path. Add a simple flag to disable them, since we don't use them. 03 October 2018, 01:06:14 UTC
59b6645 Still set rpath-link in RPATH_ESCAPED_ORIGIN We use this setting for linking curl, which itself needs to find libssh2 and mbedtls. However, while curl will indeed eventually be in the same directory as these two libraries, it is not during linking, causing link failures (unless we happen to have global copies of the same libraries that the linker can pick up). Add an rpath-link command with the absolute path to our library directory to make sure the dependent libraries get picked up at link time. 03 October 2018, 01:06:14 UTC
b0a37b5 Document scripting tips (#29423) 02 October 2018, 22:08:25 UTC
1f0f40f rm redundant `show` method for Enum types (#29460) 02 October 2018, 21:54:26 UTC
39117c9 tiny formatting fix on docs (#29463) C and Julia code were inside the same code block 02 October 2018, 16:45:30 UTC
dee7d77 Closed issue #29454 (#29475) Changed `String` to `BitSet` as a `mutable struct` example. 02 October 2018, 16:08:19 UTC
50e9275 fix unusual line spacing (#29474) 02 October 2018, 16:07:29 UTC
18652ea updated README.md (#29473) 02 October 2018, 16:06:48 UTC
9705c96 add elseif to reserved-words (#29222) 02 October 2018, 14:48:03 UTC
d769ad2 Merge pull request #13099 from JuliaLang/jn/no_copy_stacks no-copy stacks 02 October 2018, 12:41:41 UTC
a2df80e Don't error on help for keyword functions (#29308) Fixes #23991. Also allows for help where some arguments are undefined. 01 October 2018, 20:36:40 UTC
29b780e Improved English and egs (#29281) Improved English and egs The examples starting around line 80 showing how to create arrays with dimensions are unhelpful because in every case the dimensions are 2x2 so people don't get any sense of which dimension is which. So I've changed them all to 2x3 which doesn't take up any more vertical space but makes it much clearer which dimension is which. I don't like the Comprehensions example because the expression is much too complicated: the idea is to show comprehensions, so I think the expression should be a lot simpler. I changed the `searchsorted` eg to make the searched for number different from all the others to improve clarity. 01 October 2018, 18:39:47 UTC
2460b57 win,init: if stdio is not available, do not exit (#29374) Fix #28820 01 October 2018, 17:42:35 UTC
e721d35 slightly faster String allocation (#29254) Only a few % saved, but it essentially removes the cost of computing the sizeclass, so this should save on processor resources (frontend, BTP) also. And it makes the computation correct (previously the cutoff was slightly offset, so it would switch to the next larger size-class at 609 instead of at 624, for example). 01 October 2018, 15:53:31 UTC
61696f9 Merge pull request #29262 from JuliaLang/jn/interpret-phi interpreter: fix bugs with ssair phi-node handling 01 October 2018, 15:21:05 UTC
4851fab Merge pull request #29376 from JuliaLang/ksh/improvar Some improvements to variables and scoping manual 01 October 2018, 13:53:53 UTC
391f2dd Merge pull request #29446 from eli-schwartz/system-nondefault-llvm build: work correctly when linking to a system llvm which is not the default 01 October 2018, 00:58:50 UTC
f07d461 Allow eliminating nothrow intrinsics during optimization 30 September 2018, 23:59:04 UTC
d1fab72 build: work correctly when linking to a system llvm which is not the default It's erroneous to assume hardcoded -lLLVM works, when it will either not exist, or exist and be a symlink to -lLLVM-6.0, or exist and be a symlink to a completely invalid -lLLVM-7 Instead, use llvm-config for what it's meant to do, and acquire the linker --libs. In one case this means we can simplify on --libfiles rather than --libdir plus appending some hardcoded strings, and in another case we can simply drop a huge, confusingly repetitive invocation which was meant to work around very old llvm versions that are no longer supported. 30 September 2018, 19:30:53 UTC
ebfbe62 Add test for eliminating apply_type/TypeVar 30 September 2018, 17:33:18 UTC
8fa5296 Make TypeVar constructor a builtin Or more precisely make a builtin-equivalent of jl_new_typevar. This allows us to give it a proper nothrow tfunc, thus letting us eliminate it if it is not otherwise used. 30 September 2018, 17:33:18 UTC
f81749f Make apply_type nothrow tfunc more aggressive 30 September 2018, 17:33:18 UTC
2c86c1f Remove link missed in #26432 (#29434) 30 September 2018, 08:21:40 UTC
4d06e00 Merge pull request #29325 from JuliaLang/vc/restored check return from jl_restore_incremental correctly 30 September 2018, 01:52:30 UTC
f7f87c2 intrinsic casts: perform error checking (#29422) previously, we just let LLVM abort (even though this could potentially happen in dead-code). 29 September 2018, 22:36:48 UTC
8907aff Fix sentence fragment (#29431) Move whereas clause into subordinate position to avoid sentence fragment. 29 September 2018, 19:21:09 UTC
f42f7b7 fix #20872, handle UnionAll types in `which` (#29419) 29 September 2018, 19:20:25 UTC
9454c8d stdlib/SparseArrays: add rmul! and lmul! of sparse matrix with Diagonal (#29296) * Add rmul! and lmul! of sparse matrix with Diagonal 29 September 2018, 18:38:47 UTC
back to top