https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
173a367 Add current project as a last depot path in the default setup. 21 March 2020, 10:37:26 UTC
6447534 add compat annotation for map!(f, values(dict)) (from #31223) (#35184) 20 March 2020, 21:26:35 UTC
dfe3b2b several improvements to help and docs for operators (#35154) - add docstrings for .= and . - improve help prompt behavior on comment syntax - add help text for dotted and updating operators - remove `->` syntax from docstring for doc macro Fixes #33301. 20 March 2020, 20:48:32 UTC
5d5f799 speed up llvmcall unique name generation (#35144) 20 March 2020, 19:30:48 UTC
144859d trying to debug Win32 loading test failures (#35183) 20 March 2020, 18:45:40 UTC
1d2ef16 Allow packages to provide custom hints for Exceptions (#35094) Package authors may be able to predict likely user errors, and it can be nice to create an informative hint. This PR makes it possible for packages to register hint-handlers for a variety of error types via `register_error_hint`. For packages that create their own custom Exception types, there is also `show_error_hints` which may be called from the `showerror` method. 20 March 2020, 09:13:57 UTC
d33c5a5 de-duplicate strings in serialization (#35056) fixes #35030 19 March 2020, 20:38:22 UTC
64d31fe Allow the the REPL backend to run on the root Task (#35048) * Allow the the REPL backend to run on the root Task * Explicitly exit the REPL backend when the frontend exits * Refactor REPL backend and frontend start, improve testing * Improve REPL documentation 19 March 2020, 19:11:24 UTC
7f28d91 use keys(Docs.keywords) in repl doc completion (#34982) 18 March 2020, 17:21:45 UTC
4fec34d Merge pull request #35112 from JuliaLang/vc/llvm-11-svm LLVM11 Compatibility 18 March 2020, 13:17:45 UTC
2a5bb59 fix bug in t-function for `>:` (#35136) 18 March 2020, 01:32:06 UTC
2a7801f Additional GC.@ preserve documentation (#35139) 18 March 2020, 00:06:34 UTC
86ded2a Improve Windows installer (#35059) - Allow for the user to select to create desktop icon and start menu group - Change default installation folder back without the Julia folder group - Install Julia icon directly to startmenu without group structure 17 March 2020, 23:12:50 UTC
aa977cf fix #34343, missing type prefix in display of some nested containers (#34660) 17 March 2020, 21:53:09 UTC
5e0cab6 change libLLVM suffix to match build-configuration 17 March 2020, 18:06:35 UTC
0c2b739 Fix RoundNearest rem for Rational's (#35109) 17 March 2020, 17:46:54 UTC
5da67bd codegen: cfunction for inferred union return (#35118) Regression caused by slight changing to union-return calling convention to handle pointer gc-tagging. Fixes #26078 17 March 2020, 16:03:25 UTC
60ffa4a codegen: jl_func_sig calling convention must include "thunk" (#35121) Fixes #35110 17 March 2020, 16:02:33 UTC
4c543cc llvm: address v11-dev compatibility issues (round 2) 17 March 2020, 15:34:57 UTC
8aa0050 llvm: address v11-dev compatibility issues 17 March 2020, 15:34:14 UTC
084ba08 remove wrong DISABLE_ABI_CHECKS patch 17 March 2020, 15:33:43 UTC
8d4ac3c add D50010 patch to LLVM9 list 17 March 2020, 15:31:52 UTC
540aca0 refresh LLVM BB 17 March 2020, 15:24:59 UTC
36241a9 Add file and line number reporting for some lowering errors (#35105) * Add file and line number reporting for desugaring errors * Cleanup: use globals jl_filename jl_lineno less The various code paths that these globals can be set on are quite confusing and the globals can leak between unrelated evaluation contexts. Reduce this by using them less. 17 March 2020, 04:28:13 UTC
c1bd7ef Use https to download inno setup (#35135) 16 March 2020, 21:40:06 UTC
a640ba1 Fix `operator_associativity` of `||` (#35070) 16 March 2020, 20:59:49 UTC
0f1b119 Support git config credential resetting (#35064) 16 March 2020, 19:44:17 UTC
7c0608c Remove some old and unused images in doc/images. (#35123) 16 March 2020, 06:20:21 UTC
94b29d5 Separate stage for windows exe installer and build tarballs on… (#35098) * Separate build stage for windows exe installer Also build tarballs on Windows platform * Update build instructions 15 March 2020, 19:17:03 UTC
b061930 Tests in SparseMatrix (#32688) 15 March 2020, 15:46:32 UTC
5808aea Add @inline for anonymous functions (#34953) * Add @inline for anonymous functions Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> 15 March 2020, 07:47:40 UTC
3935491 fix #34967, error on invalid UTF-8 in source files (#35079) 13 March 2020, 16:05:31 UTC
d7d20d3 rem for integers for RoundNearest (#35034) Co-authored-by: Daniel Karrasch <Daniel.Karrasch@gmx.de> Co-authored-by: Simon Byrne <simonbyrne@gmail.com> 13 March 2020, 14:51:21 UTC
300fec5 delete SemVer section in Contributions.md (#34920) 13 March 2020, 14:47:37 UTC
ff90c4c Simple tests for Triangular ctors (#35069) * Simple tests for Triangular ctors 13 March 2020, 11:44:20 UTC
7d64f07 fixup-libgfortran: Bail out if libgfortran can't be found (#35096) Previously if the library was not found, we would try to look for the directory of an empty file, which ironicall does something almost sensible: ``` $ gfortran -print-file-name= /usr/lib/gcc/x86_64-linux-gnu/9/ ``` Unfortunately, we then `dirname` the directory, stripping the last path component. Often this is harmless, but on some systems, the 32bit path is e.g. `/usr/lib/gcc/x86_64-linux-gnu/9/32/`, which can cause the 64 bit path to be copied instead of the 32 bit path. This is of course only an issue if the appropriate runtime libraries are missing, but an arch mismatch error is harder to debug than a missing libraries error (as well as it being of course incorrect to copy the 64 bit libraries to our build directory). This fixes fixup-libgfortran to no try and look for the directory of an empty libname. 13 March 2020, 02:20:29 UTC
558eec9 A version of the sync macro that throws earlier (#34198) I've been looking at what causes deadlocks in our test suite in an effort to cut down on the number of failed tests on CI that result in hangs (since those are hard to diagnose and resolve). I found that by playing with various resource limits, it is easy to create hangs in the test suite. The reason we get a hang rather than a more easily diagnosable error is two fold. We either: 1. Aren't watching for the error (e.g. a socket remote end closing) 2. We aren't propagating the error to the top level A very common situation for case 2) is that the test is wrapped in @sync which doesn't return until all tasks have finished or error'ed. However, in many cases one of the tasks produces data for the others, so if that task errors, the remaining tasks will wait forever. This PR aims to address that situation by introducing a new `Experimental.@sync` macro that immediately rethrows any errors thrown by a contained task rather than waiting for all of them to finish. The implementation isn't super performant (it allocates a new task per object being waited on), but should be sufficient for use in the test suite. A better implementation would create a new scheduler object that can be inserted into multiple wait queues. Example usage of the new macro: ``` @sync begin @async error("Hello") @async sleep(1000) end # Waits 1000s Experimental.@sync begin @async error("Hello") @async sleep(1000) end # Throws immediately ``` The macro doesn't do any sort of cleanup for the tasks that do not finish, and just lets them run. In the future, we may want to automatically cancel those tasks, but that seemed like a bigger design problem than the simple thing that I wanted (something that propagates error messages more readily, so we see them in the logs). 13 March 2020, 02:19:31 UTC
e5ba156 Update LLVM BB tarball to LLVM v9.0.1+3 (#35076) * Add patch for 31156 This imports the patch I put up in https://reviews.llvm.org/D75072 and should fix #31156. We should probably hold off on merging this for a few days while upstream review is ongoing. In the meantime, this branch should be convenient to try. Make sure to remember to build LLVM from source, not BB. * set LLVM BB build to release 3 update LLVM checksums delete old LLVM.v9.0.1-1 checksums Co-authored-by: Keno Fischer <keno@juliacomputing.com> 12 March 2020, 22:08:32 UTC
418f111 Fix MacOS Notarization (#35080) We need to individually sign each Mach-O file independently, otherwise notarization bails. Note that you must sign the overall `.app` after each individual file is signed. I've also added more Entitlements. I've gone for a "gentle shotgun" approach, turning on everything that I think we could reasonably want. I wait expectantly for someone to complain that they need Location access turned on for some package. ;) 12 March 2020, 22:02:40 UTC
c92af51 use CodeGenOpt::None at optlevel<2, Default at 2, and Aggressive at >2 (#35086) 12 March 2020, 20:21:55 UTC
57f72b1 fix #35075, large objects in precompile files (#35077) 12 March 2020, 17:07:58 UTC
8be0b79 Mention LinRange in the range docstring (#35029) 12 March 2020, 08:24:15 UTC
ecd58b3 Distributed: fix cluster used by #34886 test The test added in #34886 was using the wrong cluster, resulting in test failures after the cluster was shutdown at the end of `runtests`. Move it to the isolation cluster. 12 March 2020, 03:19:44 UTC
174fa0e Distributed: Delete bad test This removes a bad test from Distributed. The failure here looks similar to #35081, but is not quite the same (though the failure is also suppressed by the fix in #35081). The issue in #35081 is that the `Distributed` test tries to use the `@distributed` macro, on the main test cluster, which in turn initializes the lazy connections between the workers in the all_to_all cluster topology. Now, in #35081, the issue was that this initialization on the other worker was delayed and in the meantime the test harness had reaped the worker running the Distributed test, so having the other worker connect to it failed (with ECONNREFUSED). Here we face a similar issue. As in #35081, the use of the `@distributed` macro causes the lazy links to be initialized, but here the issue is that the Distributed tests call the internal function `bind_client_port` which tries to allocate a socket on the common client port. In the actual Distributed source, we only ever call this function together with the `SO_REUSEPORT` setsocketopt, and we rely this option being set on all sockets initialized on our client port. Here, however, we do not set this option, so whether or not the subsequent worker-to-worker connection (triggered by the distributed macro from #35081) succeeds depends on whether the socket created here was reaped by GC (and likely has subsequently exited the CLOSE_WAIT state) allowing its reallocation. If not, we observe the CI error (but with EADDRINUSE rather than ECONNREFUSED). This PR just deletes the problematic test. I don't think it has much value. The tested function is an internal implementation detail and is not exported. It is exercised plenty during regular cluster construction. One could try to test the higher level `socket_reuse_port` function, but to do so properly would basically amount to building the inverse logic of that function into that test, which seems unnecessary. For future reference, to aid in debugging similar issues, here's a dtrace script I used to print the sequence of socket operations performed by Julia. It showed this sequence, though until we found #35081, I didn't understand how it came to be. Nevertheless, it may be helpful for future similar issues: ``` inline string JULIA = "julia"; #pragma D option quiet /* From sys/socket.h */ inline int af_inet = 2; inline int af_inet6 = 30; inline int so_reuseport = 0x0200; syscall::setsockopt:entry /execname==JULIA && arg2==so_reuseport/ { self->start = timestamp; self->fd = arg0; } syscall::setsockopt:return /execname==JULIA && self->start/ { printf("%-11s %-6d %-4d %-16s %-3d SO_REUSEPORT %d\n", probefunc, pid, arg0, execname, self->fd, errno); self->start = 0; } /* Adapted from https://github.com/brendangregg/DTrace-book-scripts/blob/master/Chap6/soconnect.d */ dtrace:::BEGIN { /* Add translations as desired from /usr/include/sys/errno.h */ err[0] = "Success"; err[EINTR] = "Interrupted syscall"; err[EIO] = "I/O error"; err[EACCES] = "Permission denied"; err[ENETDOWN] = "Network is down"; err[ENETUNREACH] = "Network unreachable"; err[ECONNRESET] = "Connection reset"; err[ECONNREFUSED] = "Connection refused"; err[ETIMEDOUT] = "Timed out"; err[EHOSTDOWN] = "Host down"; err[EHOSTUNREACH] = "No route to host"; err[EINPROGRESS] = "In progress"; printf("%-11s %-6s %-4s %-16s %-3s %-16s %-5s %8s %s\n", "SYSCALL", "PID", "FD", "PROCESS", "FAM", "ADDRESS", "PORT", "LAT(us)", "RESULT"); } syscall::connect*:entry, syscall::bind:entry /execname==JULIA/ { /* assume this is sockaddr_in until we can examine family */ this->s = (struct sockaddr_in *)copyin(arg1, sizeof (struct sockaddr)); self->fd = arg0; this->f = this->s->sin_family; } syscall::connect*:entry, syscall::bind:entry /this->f == af_inet && execname==JULIA/ { self->family = this->f; self->port = ntohs(this->s->sin_port); self->address = inet_ntop(self->family, (void *)&this->s->sin_addr); self->start = timestamp; } syscall::connect*:entry, syscall::bind:entry /this->f == af_inet6 && execname==JULIA/ { /* refetch for sockaddr_in6 */ this->s6 = (struct sockaddr_in6 *)copyin(arg1, sizeof (struct sockaddr_in6)); self->family = this->f; self->port = ntohs(this->s6->sin6_port); self->address = inet_ntop(self->family, (struct in6_addr *)&this->s6->sin6_addr); self->start = timestamp; } syscall::connect*:return, syscall::bind:return /self->start && execname==JULIA/ { this->delta = (timestamp - self->start) / 1000; printf("%-11s %-6d %-4d %-16s %-3d %-16s %-5d %8d %d\n", probefunc, pid, self->fd, execname, self->family, self->address, self->port, this->delta, errno); self->family = 0; self->address = 0; self->port = 0; self->start = 0; } ``` 12 March 2020, 03:19:14 UTC
5c21be3 Merge pull request #34919 from JuliaLang/jn/faster-type-alloc Make type allocation lookup faster. 11 March 2020, 22:09:39 UTC
6732cb9 Makefile don't remove output folder during the binary-dist sta… (#35068) 11 March 2020, 21:46:53 UTC
0a43c0f Curried versions of endswith and startswith (#35052) 11 March 2020, 19:34:52 UTC
55cd761 Emit structs as LLVM structures (#34996) 11 March 2020, 18:52:34 UTC
d5d71d7 fix #34105, unescape triple-quoted strings after dedenting (#35001) 11 March 2020, 18:47:09 UTC
66d0f76 types: make cache lookup thread-safe Since this is not a binary-tree anymore, we can also stop holding a lock around the operation, which is a significant optimization opportunity. 11 March 2020, 18:39:06 UTC
b199eab types: improve insertion and lookup performance Currently, this uses an expensive tree lookup and requires a lock. Switching this to a hash function instead of a comparison allows us to make this much faster, especially for insertion. 11 March 2020, 18:39:06 UTC
0aa1d96 use datatype->hash for object_id for concrete types these may get uniqued during construction, so it is not necessary to check their content 11 March 2020, 18:39:06 UTC
c958b2c types: redesign code to eliminate datatype uid Use a normal IdDict instead of a fancy uid-indexed, and optimize object_id to use a cached hash field for them. 11 March 2020, 18:39:06 UTC
64afd4e typecache: fix bug in hash collision handling In the precompile test, we intentionally create objects whose hashes here should collide. Previously, we'd take a random branch here, which could fail in as much as 25% of cases. 11 March 2020, 18:39:06 UTC
3466cca maybe make typekey_eq faster when either key should have a unique id 11 March 2020, 18:39:06 UTC
df0948e iddict: ensure compiler only loads tab[index] once I believe this should make it thread-safe to do lookup in the presence of concurrent writers. 11 March 2020, 18:39:06 UTC
f655621 Merge pull request #35012 from tkf/sort_int_range Improving sort performance by handling AbstractVector and rev=true by counting sort 11 March 2020, 18:10:04 UTC
4085873 Cache lookup of matching methods between inference and inlining (#34339) The results of calling `_methods_by_ftype` in inference are now kept in `InferenceState` objects, forwarded to `OptimizationState`s, and used in inlining. 10 March 2020, 23:48:54 UTC
6c5fb0e add specialized codegen for `jl_get_current_task` (#32812) 10 March 2020, 19:28:39 UTC
ff4f867 allow ± and ∓ as unary operators (#34200) 10 March 2020, 12:13:59 UTC
c7f1ffb remove obsolete parentdims (#35047) 09 March 2020, 21:22:51 UTC
026b965 fix a couple missing GC.at-preserve (#35046) 09 March 2020, 21:19:23 UTC
16bbb40 htables: fix ordering of conditions (#35019) The second condition was unreachable, which meant we might grow too slowly for the first few steps. 09 March 2020, 21:15:42 UTC
eb1c0d1 add compat annotation to NamedTuple macro docs (#34880) 09 March 2020, 20:55:30 UTC
3dac6dd move fld/div tests to appropriate testset (#35049) 09 March 2020, 17:28:32 UTC
1e03ff8 Added test for hypot with Complex arguments (#35035) * Added test for hypot with Complex arguments 09 March 2020, 01:00:38 UTC
de4f821 Distributed: add missing check on return code (#34998) 08 March 2020, 21:42:12 UTC
94bc0c7 fix bug in allunique(::StepRangeLen) (#35008) 08 March 2020, 11:04:07 UTC
17ad922 Bump OpenBLAS yet again (#35041) 08 March 2020, 01:43:55 UTC
e13d06f Run FD stress test in separate process (#35040) As noted in #35011, the `stress` test is likely causing ENOMEM errors in unrelated processes on FreeBSD as it's causing kernel resource exhaustion. This fixes that by running that test with a low FD ulimit (100). Should fix #23143. Closes #30511. 08 March 2020, 01:43:16 UTC
4d745aa Add VS Code devcontainer definition (#34957) * Add devcontainer and dockerfile * Add VS Code CPP extension * Use Julia base image for devcontainer * Add VS Code make task * Fix typo * Remove .vscode/tasks.json 07 March 2020, 14:17:05 UTC
a247038 Added tests for rdiv! in LU (#34994) 07 March 2020, 12:04:11 UTC
178ac97 walkdir: avoid symlink loops when `follow_symlinks == false` (#35006) * walkdir: avoid symlink loops when `follow_symlinks == false` Because `isdir()` attempts to dereference symlinks, attempting to `walkdir()` trees that contain symlink loops errors out. This change modifies `walkdir()` to treat all symlinks as files when `follow_symlinks == false`. * rm: When checking `filemode()`, use `lstat()` to avoid following symlinks 06 March 2020, 21:33:03 UTC
4ee9be2 Shuffle LinearAlgebra tests to the front of the test queue (#34456) They take much longer than the rest of the tests, so if they're run at the end, they often determine the length of the entire test run. Instead, try running them at the start while there's still plenty of work to be done. Hopefully this will reduce overall duration of CI tests. If this doesn't work out as planned, we can try a more fine grained strategy to load balancing (e.g. by checking in a table of approximate runtimes and sorting according to that). 06 March 2020, 18:27:01 UTC
aedd5f6 Merge pull request #35021 from JuliaLang/ksh/qrlq missing tests for qr and lq 06 March 2020, 16:55:59 UTC
6fb72f5 fix typo (#35024) 06 March 2020, 14:47:12 UTC
3f5c899 Actually test LDLt file and add tests to it (#35018) 06 March 2020, 06:49:42 UTC
66bd9b0 Added tests for +,- for UniformScaling matrices (#35010) 06 March 2020, 06:39:31 UTC
805b659 Fix sort_int_range! for OffsetArrays 05 March 2020, 23:59:31 UTC
33cfd7f missing tests for qr and lq 05 March 2020, 19:07:45 UTC
4d9a334 Added test for Base.propertynames of hessenberg (#34983) 05 March 2020, 07:55:03 UTC
ff3438d Handle rev=true in sort_int_range! 05 March 2020, 07:25:44 UTC
7d1a3a2 Allow non-Vector to be sorted with sort_int_range! 05 March 2020, 07:03:51 UTC
71d9375 Merge pull request #34991 from JuliaLang/tb/export_llvm_context Reexport the LLVM context. 05 March 2020, 06:52:06 UTC
d53b970 Added test for Matrix(F::LU{T,Triadiagonal{T,V}}) (#34979) 05 March 2020, 05:37:08 UTC
d2f9677 Rebase of #28526 on master (#34989) * fix \ SparseVector * split (\) for sparsevector; test for Factor and Symmetric Sparse Matrix Co-authored-by: Chi Po Choi <choi.chi.po@gmail.com> 05 March 2020, 02:18:58 UTC
598209d Sockets: fix return value of getpeername/getsockname (#34986) 04 March 2020, 22:49:52 UTC
fed29f8 fix #34921, keywordargs test breaks precompile test (#35000) 04 March 2020, 22:48:16 UTC
5e162d7 new LLVM optimization pass list (#34940) - use InstSimplify instead of InstCombine in some cases to speed it up - reorder some passes - add LoopLoadElimination and DivRemPairs 04 March 2020, 19:56:55 UTC
80882b9 Avoid OOB access of the line table during codegen. (#34973) 04 March 2020, 19:37:20 UTC
047eaee Base.parse tests in test/parse, Meta.parse tests to test/syntax (#34981) 04 March 2020, 19:36:34 UTC
780bbe6 dump: remove dependency on uid field (#34980) Addresses part of #34890 04 March 2020, 16:59:32 UTC
296223b Merge pull request #34876 from JuliaLang/jn/34834 04 March 2020, 15:22:19 UTC
91dfc08 Reexport the LLVM context. 04 March 2020, 08:25:47 UTC
0e8143e Fix `$(PYTHON)` paths for native windows executable or cygwin (#34984) 04 March 2020, 05:35:55 UTC
dc8d885 inference: restore precision lost due to previous bugfix Since Tuple is widened slowly, we can end up at Any faster than we want to. Before jumping to Any, first try a very simple Tuple as the Union element and see if that reduces the overall complexity sufficiently. This isn't a correctness change, but it should improve the transitive stability of the tmerge algorithm. 03 March 2020, 22:04:18 UTC
1d08d70 inference: prevent tmerge from picking a larger type We want tmerge to form a smaller supertype, so we need to make sure the result is on the intersection of the supertype and simplicity lattice. Previously, we first only checked the supertype lattice, then considered the simplicity lattice only if that failed. fix #34834 03 March 2020, 22:04:18 UTC
4eb0943 codegen: fix PhiNode incoming basic block Sometimes doing codegen will change the basic block, resulting in our making the phi node from the wrong branch. Instead be careful to use exactly the basic block into which we just put the branch. 03 March 2020, 22:04:18 UTC
3b53f54 codegen: restructure, remove recursion (#25984) also provides support for using a different code_native format, as a fallback, later we'll want to make this more configurable there are now several primary interfaces to native code: - codegen: mostly internal, support for translating IR to LLVM - jitlayers: manages runtime codegen results and executable memory - aotcompile: support for managing external code output - disasm: pretty-printer for code objects - debuginfo: tracking for unwind info also removes the global type caches and move all codegen pass handling to aotcompile.cpp 03 March 2020, 22:03:02 UTC
ddf904c parser error for invalid `:` after imports (#34694) 03 March 2020, 19:46:26 UTC
back to top