https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
c11d9db Propagate --threads to workers spawned with --procs or --machine-file. 14 March 2020, 03:22:21 UTC
417231c Implement [-t|--threads] command line argument for specifying the number of Julia threads on startup, fixes #26889. 14 March 2020, 03:05:05 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
4e60912 More missing Hessenberg tests (#34966) 03 March 2020, 07:30:28 UTC
f9efa88 Little test for ldiv error throw (#34964) 03 March 2020, 07:24:51 UTC
2f8cdd0 Fix Base.show for SSHManager and LocalManager (#34955) 02 March 2020, 20:40:40 UTC
7588efb help `;` now has output (#34944) 02 March 2020, 20:36:45 UTC
521813b test sprintf %p using real pointers (#34943) 02 March 2020, 20:35:50 UTC
51ced65 make Distributed independent of indices starting at 1 (#34886) 02 March 2020, 20:33:47 UTC
5b241c2 arm -> armv7l in refresh-bb-tarballs.sh (#34935) Bump SuiteSparse from BB Add the armv7l binaries for openblas and remove checksums for older version 02 March 2020, 14:46:33 UTC
87e51d2 Improve docstrings of IEEE floating point types (#34925) 02 March 2020, 14:37:46 UTC
9466232 add news/docs for #34524: 2-arg splice! on arbitrary index iterables (#34897) 02 March 2020, 12:20:30 UTC
f709331 Fix inverse of SVD of complex matrix (#34872) Closes #34866 02 March 2020, 05:51:43 UTC
923d84b Revert "add readline(::AbstractCmd) (#34927)" (#34958) This reverts commit 570f6d9b2d3e72c4ce96d28b8f18f4c912b32d46. 02 March 2020, 04:48:35 UTC
a523fcf Bump OpenBLAS (#34923) This has an experimental patch to hopefully help our Windows CI hangs. If this works, I'll need to include the openblas patch in the julia repo as well, but for now, let's just test if this helps CI. 01 March 2020, 22:55:15 UTC
c2ce8f6 bump Pkg version (#34913) 01 March 2020, 21:13:29 UTC
cdf580a fix unsigned(::Ptr) and signed(::Ptr) (#34941) 01 March 2020, 16:49:01 UTC
570f6d9 add readline(::AbstractCmd) (#34927) 01 March 2020, 16:47:45 UTC
ea067fb Fixed bug in reduced_index error message (#34937) 01 March 2020, 09:36:35 UTC
ab28c9b Two missing tests for writedlm (#32984) 01 March 2020, 09:33:17 UTC
966a9b9 Some missing tests for Cholesky (#34929) * Test printing of CholeskyPivoted to REPL * Tests for type conversions * Fix factorization compare 29 February 2020, 21:17:29 UTC
e39e945 Remove unused single-argument _chol!(A::StridedMatrix) in cholesky.jl (#34850) 29 February 2020, 18:45:59 UTC
1bf5071 Merge pull request #34932 from crstnbr/cb/testsymmetric Add a missing test for Hermitian 29 February 2020, 17:41:30 UTC
c4290fe define generic get! for AbstractDict (#34621) 29 February 2020, 17:36:35 UTC
4d8f889 Documentation, dependency install command (macOS, Homebrew) (#32113) * Docs, Including command for installing gFortran, a dependency, via Homebrew * Line breaks and Formatting * Update doc/build/macos.md Co-Authored-By: Fredrik Ekre <ekrefredrik@gmail.com> * Update macos.md Co-authored-by: Viral B. Shah <viral@juliacomputing.com> Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 29 February 2020, 15:48:36 UTC
b588181 Merge pull request #34930 from JuliaLang/ksh/sincods Add test for sincosd of missing 29 February 2020, 15:06:46 UTC
81bbfea Bunch of missing tests for Hessenberg (#34907) 29 February 2020, 14:27:30 UTC
b1f3439 Some missing SVD tests (#34928) * Test for getting prop names of GeneralizedSVD * Test for REPL printing of GeneralizedSVD 29 February 2020, 14:18:26 UTC
e9b7060 Missing diag tests for block SymTriDiag (#34926) 29 February 2020, 14:01:11 UTC
7533d04 LU to Factorization tests (#34905) 29 February 2020, 12:35:46 UTC
e453cdb Add test for sincosd of missing 29 February 2020, 06:33:34 UTC
17b2776 added a test_throws for Hermitian 29 February 2020, 00:00:11 UTC
back to top