Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase #1

Merged
merged 3,584 commits into from
Sep 3, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
3584 commits
Select commit Hold shift + click to select a range
a882d9b
Merge pull request #28410 from JuliaLang/ksh/docrawfd
kshyatt Aug 3, 2018
ecd80ca
Docs for RoundFromZero and some xrefs
kshyatt Aug 3, 2018
23554da
Merge pull request #28427 from JuliaLang/ksh/docroundzero
kshyatt Aug 3, 2018
785b82d
disable FileWatching tests that fail on mac (#26725) (#28411)
JeffBezanson Aug 3, 2018
a451801
fix pkg3 docs typo (#28422)
ChristianKurz Aug 3, 2018
f08f3b6
remove most front-end deprecations
JeffBezanson Jul 26, 2018
0bd3467
parse assignment as keyword args inside indexing
JeffBezanson Jul 30, 2018
68cc868
fully ignore assignments to underscore symbols
JeffBezanson Aug 2, 2018
a2149f8
remove runtime system deprecations (#28380)
JeffBezanson Aug 4, 2018
1dfc4d1
Cache credentials on Pkg up (#28437)
omus Aug 4, 2018
3e88964
[RFC] Make command spec more declarative (#509)
00vareladavid Jul 31, 2018
e9e320b
Make `Pkg.activate(path)` behave like `pkg> activate path`. (#543)
fredrikekre Jul 31, 2018
5b6fbb0
Refactor some REPL issues (#552)
00vareladavid Aug 1, 2018
85d2a7e
Fix `instantiate` error message (#560)
00vareladavid Aug 2, 2018
0ecaf2d
Replace depots()[1] with depots1() where depots1 throws (#563)
fredrikekre Aug 2, 2018
fcb1e4f
Refactor `activate` to avoid complexity in the main method (#559)
00vareladavid Aug 2, 2018
484deaf
rename Uncurated to General (#564)
Evizero Aug 2, 2018
f4d0411
Fix parser (lexer) (#553)
00vareladavid Aug 2, 2018
94eec9b
Change devdir kwarg to shared in REPL mode, add the kwarg to the API …
fredrikekre Aug 2, 2018
e5da183
use full path for local paths when determining package name (#571)
KristofferC Aug 3, 2018
4b43e63
stop using PkgError (#577)
KristofferC Aug 3, 2018
855ea64
ignore julia in test/REQUIRE (#578)
KristofferC Aug 3, 2018
917b1e7
Also collect manifest entries from target deps when testing / buildin…
KristofferC Aug 3, 2018
ff586ed
Propagate track-allocation option to test process. (#579)
tkoolen Aug 3, 2018
f647d70
add --shared option for activate (#558)
Evizero Aug 3, 2018
e804d11
allow using a path kword arg to PackageSpec (#580)
KristofferC Aug 3, 2018
eed9ea7
rename CommandError to PkgError (#475)
KristofferC Aug 3, 2018
d738134
only look for Project files in installed (#539)
KristofferC Aug 4, 2018
43a0285
remove ability to give a git revision to devved packages (#581)
KristofferC Aug 4, 2018
afbba1a
update precompilation for Pkg
KristofferC Aug 4, 2018
d5890e6
add licenses to files
KristofferC Aug 4, 2018
dd248bf
Shred overwritten cached credentials (#28436)
omus Aug 4, 2018
e0876d2
Define `size` for SVD (#28439)
mohamed82008 Aug 5, 2018
fee0392
increase isolation of test
KristofferC Aug 4, 2018
0f36c69
specialized solvers for tranpose/adjoint of triangular sparse matrice…
KlausC Aug 5, 2018
e4d933d
remove more deprecations (#28434)
JeffBezanson Aug 5, 2018
696700f
Avoid possible shredding of passed cred on reject (#28448)
omus Aug 5, 2018
5d43217
Merge pull request #28443 from JuliaLang/kc/bump_pkg
ararslan Aug 5, 2018
f7d9a8b
Remove LibGit2 deprecations. (#28460)
Sacha0 Aug 6, 2018
cae40f2
Remove many stdlib deprecations (#28450)
fredrikekre Aug 6, 2018
7b140ee
delete OldPkg (#27930)
KristofferC Aug 6, 2018
2b2b4fd
Remove tricky array/broadcasting/indexing deprecations (#28458)
mbauman Aug 6, 2018
00d6f72
remove LinearAlgebra deprecations (#28456)
Sacha0 Aug 6, 2018
f5a0b03
[GCLowering] Expand support for vectors of pointers (#28455)
Keno Aug 6, 2018
717ff90
Fix mix-type arithmetic detection in umin/max expansion (#28465)
Keno Aug 6, 2018
4fce960
Fix race condition when building LLVM for Windows (#28433)
Keno Aug 6, 2018
7d651aa
Remove deprecation of DevNull and rename DevNullStream to DevNull, fi…
fredrikekre Aug 6, 2018
dcfa848
Remove SparseArrays deprecations. (#28469)
fredrikekre Aug 6, 2018
e3bc48d
remove deprecation about __precompile__(true) (#28459)
KristofferC Aug 6, 2018
8bfc73a
Fix legality check in SROA (#28478)
Keno Aug 6, 2018
651a727
Work around invalid register errors with 64-bit Windows (#28449)
ararslan Aug 6, 2018
3c2c811
completely remove OldPkg (#28477)
KristofferC Aug 6, 2018
ebfa1d5
remove more deprecations (#28457)
JeffBezanson Aug 6, 2018
e76b005
Remove checks in tril, triu, and diag (#28480)
andreasnoack Aug 6, 2018
a37e090
Small tweak to vector handling in GC lowering (#28485)
Keno Aug 6, 2018
e1e0bd2
Remove deprecated command line arguments
ararslan Aug 6, 2018
27f7a74
Turn some syntax deprecations into errors
ararslan Aug 6, 2018
ba209d5
Fixed long stacktrace printing (#28453)
Liozou Aug 7, 2018
f6e515b
Fix underlines in cmd printing (#28482)
Keno Aug 7, 2018
cf1275b
remove nearly all remaining deprecations (#28486)
JeffBezanson Aug 7, 2018
2990f0e
Remove a couple extra deprecations (#28490)
Keno Aug 7, 2018
60cf688
Avoid excessive output from test errors (#28184)
andreasnoack Aug 7, 2018
6575e12
fix a few more deprecation-related items
JeffBezanson Aug 6, 2018
5a456f3
Pkg REPLMode: fix `add X@v` (#28492)
KristofferC Aug 7, 2018
16ba04f
Fix product of iterators without integer state (#28498)
iamed2 Aug 7, 2018
cc29668
Remove at-pure from manual (#28496)
helgee Aug 7, 2018
06dad95
update docstring for qr (#28446)
StephenVavasis Aug 7, 2018
45d26da
move 0.7.0 NEWS to HISTORY
KristofferC Aug 6, 2018
b815ac5
add NEWS about OldPkg moving out of the julia repo
KristofferC Aug 6, 2018
f92a55a
Set VERSION to 1.0.0-rc1 (#28489)
ararslan Aug 7, 2018
ed0bf05
Clean up exports list, removing undefined identifiers:
mbauman Aug 7, 2018
9d85f7f
remove vestigial uppercase standard stream names
JeffBezanson Aug 7, 2018
e86c5b6
Remove LibGit2 abuse of old iteration protocol
Keno Aug 7, 2018
622772d
Remove start/next/done remnants
mbauman Aug 7, 2018
d038f2f
Move eqsim to prec-comparison
simonbyrne Aug 7, 2018
da30586
Remove excess information from the opening Julia banner
staticfloat Aug 8, 2018
239f903
inference: fix recursion limit heuristic
vtjnash Aug 7, 2018
0eb7be2
tests: fix issues with spawn tests
vtjnash Aug 7, 2018
cb52390
Add peek/mark/etc. functions for AbstractPipe types
Keno Jun 20, 2018
f463944
Fix empty parens in header if git information is missing
staticfloat Aug 8, 2018
59977eb
fix #28527, error needed for `using A.b` where b is not a module
JeffBezanson Aug 8, 2018
5d4eaca
Set VERSION to 1.0.0
ararslan Aug 8, 2018
c227a6c
Set VERSION to 1.1.0-DEV (#28532)
ararslan Aug 10, 2018
53d2e7c
Documentation introduction fixed for 1.0 (#28548)
fredrikekre Aug 10, 2018
f8d82cc
Update LLVM version in README. Fix #28529 (#28530)
NicolasCARPi Aug 10, 2018
e7d15d4
Bump Documenter to v0.19.3 (#28559)
mortenpi Aug 11, 2018
7c9383f
Autogenerate documented REPL banner (#28520)
HarrisonGrodin Aug 11, 2018
3d6a26d
Remove old version information from README (#28533)
HarrisonGrodin Aug 11, 2018
0d050ac
Added docs for external profiling (#28538)
fisiognomico Aug 11, 2018
7cb8531
update link to ConEmu terminal (#28578)
anderson15 Aug 11, 2018
04f4884
Fix vec of adjoint vector (#28568)
andreasnoack Aug 12, 2018
d7e4584
fix #28576, parsing `?` at end of input in conditional expression
JeffBezanson Aug 11, 2018
ff2b0ce
Hooked GDB to JITEventlistener, cleaned up jitlayers interface
fisiognomico Aug 12, 2018
0846eb5
Fix #28619, logabsdet for singular matrices (#28620)
garrison Aug 13, 2018
d15b091
Doc IndexLinear and IndexCartesian (#28476)
kshyatt Aug 13, 2018
883c8a3
Fix typo (#28594)
sgalal Aug 13, 2018
decee65
fix various `printstyled` calls (#28586)
pfitzseb Aug 13, 2018
2fcad41
fix print docstring (#28609)
bkamins Aug 13, 2018
3fe2d08
implement the REPL replayer on Windows (#28608)
KristofferC Aug 14, 2018
3d8091f
fixes issue 28553, improves error message for missing packages (#28555)
affans Aug 14, 2018
686ffdb
Keep parametric information when constructing a SparseMatrixCSC from …
pkofod Aug 14, 2018
eabb601
stop specializing on argument types of `display` (#28616)
KristofferC Aug 14, 2018
548d83f
Change quit() to exit() (#28660)
anderson15 Aug 15, 2018
bcce68d
Fix input args in rem_pio2_kernel doc string (#28657)
pkofod Aug 15, 2018
4e098f1
remove redundant text in a docstring (#28663)
bicycle1885 Aug 15, 2018
7ffe704
fix typo in a docstring (#28664)
bicycle1885 Aug 15, 2018
b2139cb
Add note to NEWS about using julia 0.7 when upgrading from 0.6 (#28650)
PallHaraldsson Aug 15, 2018
61f6dab
Some cleanup of the NEWS.md
ViralBShah Aug 15, 2018
72af620
Remove unused sections in the NEWS.md file.
ViralBShah Aug 15, 2018
48a9ec4
Update julia.appdata.xml to a new AppStream specification. (#28020)
cdluminate Aug 15, 2018
472fe5f
improve performance for number to string conversion functions (#28661)
KristofferC Aug 15, 2018
a3a2b7a
Fix throw_complex_domainerror error message for log[1p] (#28621)
garrison Aug 15, 2018
290684d
fix #28641, passing typevars to `<:` in typejoin and tuplemerge (#28655)
JeffBezanson Aug 15, 2018
630f53a
fix #28499, calling `cluster_cookie` before cluster starts (#28656)
JeffBezanson Aug 15, 2018
5c1f6b0
fix #28597, error for empty arrays with some negative dim sizes (#28659)
JeffBezanson Aug 15, 2018
4629a21
fix performance in printf (#28670)
KristofferC Aug 16, 2018
e23515d
LinearAlgebra remove unused export (#28684)
KristofferC Aug 16, 2018
d936625
Merge pull request #28407 from DokFaust/df/GDBlistener
vchuravy Aug 16, 2018
c62555b
Complete uuids (#28649)
matbesancon Aug 16, 2018
2715fb2
Fix issue #28624 (#28635)
favba Aug 16, 2018
08bf3e1
add a code quote to a word (#28699)
KristofferC Aug 16, 2018
af3c452
smarter order of checks in jl_types_equal (#28677)
JeffBezanson Aug 16, 2018
82941f3
drop support for LLVM <6.0.0 throughout Julia
vchuravy Aug 16, 2018
4ee0e48
don't include upstreamed patches for 6.0.1
vchuravy Aug 16, 2018
cc0de43
fix some exported undefined variables and test this does not happen (…
KristofferC Aug 16, 2018
1fee8a4
Use code font for `jl_value_t` in h2 (#28702)
dhermes Aug 16, 2018
cd5e5a3
fix REPL completions not always being unique (#28694)
KristofferC Aug 17, 2018
d4e6689
Merge pull request #28696 from JuliaLang/vc/cleanup-llvm
vchuravy Aug 17, 2018
4bbfab3
Add GC annotations for array.c
Keno Aug 16, 2018
28f5c58
Add GC annotations to ast.c
Keno Aug 17, 2018
777810b
Fix reinterpret performance
Keno Aug 16, 2018
8074726
Add doctest example for broadcast!
kshyatt Aug 14, 2018
e21c1bb
Doc sorting algos (#28514)
kshyatt Aug 17, 2018
24df8fb
Example for parentindices
kshyatt Aug 17, 2018
e99204b
Carry LLVM patch to fix incorrect codegen
Keno Aug 17, 2018
7136049
Add GC static analysis annotations for builtins.c
Keno Aug 17, 2018
239a40d
Add gc static analysis annotations for datatype.c
Keno Aug 17, 2018
b2babff
Add analyzer annotations for dump.c
Keno Aug 17, 2018
dbcc152
Misc doc improvements (#28719)
fredrikekre Aug 18, 2018
3ae8df1
Fix missing GC root in interpreter.c
Keno Aug 18, 2018
54bc9ee
Fix another missing GC root
Keno Aug 18, 2018
af3331b
Fix missing gc root in jl_cglobal
Keno Aug 18, 2018
46e7a56
update AArch64 code model patch for 6.0.1
vchuravy Aug 19, 2018
8ba726e
upgrade to LLVM 6.0.1
vchuravy Aug 18, 2018
2805ebe
add document on JULIA_PROJECT environment variable (#28556)
bicycle1885 Aug 19, 2018
a288a2d
Update style-guide.md (#28754)
annainfo Aug 19, 2018
90c73b2
fix typo and format (#28755)
liuxu89 Aug 19, 2018
640fc09
Fix three missing gc roots in subtyping
Keno Aug 19, 2018
80a170a
Merge pull request #28733 from JuliaLang/ksh/parentinds
kshyatt Aug 19, 2018
06dd840
Merge pull request #28653 from JuliaLang/ksh/broadcastex
kshyatt Aug 19, 2018
6458059
Remove mention of `reload` from the docs; fix #28572 (#28644)
mkborregaard Aug 19, 2018
728d31d
fix shuffle! on empty arrays (#28727)
rfourquet Aug 19, 2018
b6b471c
Update Enums.jl (#28769)
Aug 19, 2018
57b3497
Fix gc rooting in exception throwing
Keno Aug 19, 2018
f7733f8
Merge pull request #28745 from JuliaLang/vc/6.0.1
vchuravy Aug 20, 2018
3a54c14
fix description of kwargs... (#28757)
bicycle1885 Aug 20, 2018
f6c48eb
added documentation for read command methods (#28748)
ExpandingMan Aug 20, 2018
302a507
fix two typos (#28731)
hertzsprung Aug 20, 2018
ae0738e
Update integers-and-floating-point-numbers.md (#28744)
annainfo Aug 20, 2018
4498d27
Resolve all method ambiguities in LinearAlgebra (#28749)
tkf Aug 21, 2018
9a380fa
Add static analysis annotations for gc.c
Keno Aug 18, 2018
dce8cc2
Partial GC annotations for gf.c
Keno Aug 18, 2018
b108d51
static analysis annotations for init.c
Keno Aug 18, 2018
3708c64
Add GC static analysis annotations in interpreter.c
Keno Aug 18, 2018
ee88b92
Add static analysis annotations for jloptions.c
Keno Aug 18, 2018
a759c11
Add gc annotations to jltypes.c
Keno Aug 18, 2018
9ca53d0
Add static analysis annotations for src/method.c
Keno Aug 18, 2018
20792fe
Add static analysis annotations for module.c
Keno Aug 18, 2018
9ab3d8f
Add static analysis annotations for precompile.c
Keno Aug 18, 2018
54dae01
Add annotations for rtutils
Keno Aug 18, 2018
db21a81
Add annotations for runtime_intrinsics.c
Keno Aug 18, 2018
06968c1
Silence analyzer complaints about signal-handling.c
Keno Aug 18, 2018
13820d0
Add static analysis annotations for stackwalk.c
Keno Aug 18, 2018
4d6d216
Add static analysis annotations for subtype.c
Keno Aug 19, 2018
4eeb8f7
Add static analysis annotations for sys.c
Keno Aug 19, 2018
f82084c
Add static analysis annotations for task.c
Keno Aug 19, 2018
5a1d3b5
Add static analysis annotations for threading.c
Keno Aug 19, 2018
8af9d37
Add static analysis annotations for toplevel.c
Keno Aug 19, 2018
2caef76
Make a bunch of progress on anntations for typemap.c
Keno Aug 20, 2018
81b04cf
Some more work on gf.c
Keno Aug 20, 2018
81850b6
improve performance of parse (#28787)
KristofferC Aug 22, 2018
f2f1f43
Switch jl_typemap_t from unions to bare pointers
Keno Aug 21, 2018
351bcd5
More analyzer annotations
Keno Aug 22, 2018
85cc84f
Add a short warning to the doc-frontpage if the docs (#28791)
fredrikekre Aug 22, 2018
6a2dcc6
Make copyto!(A,I) work for rectangular matrices (#28790)
Jutho Aug 22, 2018
f31e28a
Run ambiguity test inside a clean process; fixes 28804
tkf Aug 22, 2018
c366143
doc: change the canonical url to v1 instead of stable.
fredrikekre Aug 21, 2018
f9f3c4f
Patch Documenter v0.19.6 to create a correct version selector
fredrikekre Aug 22, 2018
b411a58
Update info about `versioninfo` in devdocs (#28810)
mmmm1998 Aug 23, 2018
31c9ae9
add `Regex` documentation (#28703)
ChristianKurz Aug 23, 2018
b6756c5
Added seekstart to getpass in base/util.jl (#28828) (#28832)
Seelengrab Aug 23, 2018
472c178
make cmp with BigInt return in [-1, 0, 1] (#28780)
rfourquet Aug 23, 2018
6d4ff5e
@schedule is deprecated, the code is no longer valid in 1.0 (#28800)
iht Aug 23, 2018
cd850de
fix #28593, macro hygiene problems in type definitions (#28706)
JeffBezanson Aug 23, 2018
157fb34
fix doc-string references to bit-rotted variables x(->v) and v(->itr)…
thchr Aug 23, 2018
293c904
Correct typeof result for one of the Union types (#28843)
pdbartlett Aug 23, 2018
d55b044
Fix ambiguity test failure when arrayops and LinearAlgebra run on the…
mbauman Aug 23, 2018
eb8a933
Absolutify project path specified with --project and JULIA_PROJECT. (…
fredrikekre Aug 24, 2018
35c67e5
Make sure iterate(::Tuple) does not throw (#28847)
haampie Aug 24, 2018
145224f
Support ranges with different integer widths in `preduce` (#28651)
sbromberger Aug 24, 2018
7e1f739
fix doccing call overload without named argument (#28875)
KristofferC Aug 25, 2018
a5bfabc
Fix note tag in the documentation (#28877)
ronisbr Aug 25, 2018
9107365
Update variables after normalizing varargs (#28812)
Keno Aug 25, 2018
b18f589
Fix typo in length(::AbstractString) doc [ci skip] (#28867)
swt30 Aug 25, 2018
304cbd9
improve docstring of pathof (#28817)
Aug 26, 2018
24de931
issubset: check IteratorSize trait before calling length (#28871)
timholy Aug 26, 2018
7314249
improve performance for string(...) (#28876)
KristofferC Aug 26, 2018
a2a1506
Compare Symbols and Chars more efficiently in Cholesky (#28873)
andreasnoack Aug 26, 2018
5013cfa
accumulate: fix typo in docstring
rfourquet Aug 27, 2018
3ab56f1
fix typo in append! doc
rfourquet Aug 27, 2018
b553d86
Make jl_ more robust during early startup
Keno Aug 27, 2018
59c7ced
Add a helpful assertion in jl_gc_big_alloc
Keno Aug 27, 2018
255030e
PTX/CUDAnative no longer needs a source build
PallHaraldsson Aug 28, 2018
68cc9f0
Rework `Libdl.dlsym()` and `jl_dlsym()`.
staticfloat Aug 24, 2018
e6f1bd7
Perform the same treatment to `dlopen()` for consistency's sake
staticfloat Aug 24, 2018
01e0c62
Make `jl_dlerror()` thread-safe
staticfloat Aug 26, 2018
99776ad
Fix botching of compile-time link bug
staticfloat Aug 26, 2018
7a3c9df
Add `JL_THREAD_LOCAL` `#define`
staticfloat Aug 26, 2018
4a5de48
Add `dlclose(::Nothing)` that does nothing
staticfloat Aug 26, 2018
595e53d
Explain `ifunc` AArch64 woes a little more thoroughly.
staticfloat Aug 26, 2018
fc27b48
Use lambda-initialization for `ptls_getter` to reap rewards of `stati…
staticfloat Aug 28, 2018
39e5742
Fix typo in accumulate docstring (#28939)
garrison Aug 29, 2018
0dd1a9a
Pkg docs: consistent home dir; show build.jl contents (#28932)
ianabc Aug 29, 2018
bd1e46a
removed outdated paragraph on automatic broadcasting for binary opera…
timziebart Aug 29, 2018
2346be8
Fix call to round for Julia 1.0 (#28944)
iht Aug 29, 2018
13cfbfe
Fix History `eye` deprecation PR: should be 24415
NHDaly Aug 30, 2018
8555aa0
Getting Started: Capitalize "CPU" for consistency
apjanke Aug 29, 2018
dabf70e
fix typo in `?@specialize`
ylxdzsw Aug 30, 2018
804d12e
Merge pull request #28977 from NHDaly/patch-2
Sacha0 Aug 31, 2018
f6fcd82
install lit and FileCheck to tools
vchuravy Aug 22, 2018
7fa6f1b
bump LLVMBuilder to rel 2
vchuravy Aug 22, 2018
eebb4af
fix llvmpasses Makefile to use lit from tools
vchuravy Aug 22, 2018
9158101
make llvmpasses test work for out-of-source
vchuravy Aug 31, 2018
d1a27f4
add make dep on build_staging for BINARYBUILDER_LLVM
vchuravy Aug 31, 2018
5bf885c
correct PATH override for test/llvmpasses
vchuravy Aug 31, 2018
d30b3df
Fix alloc opt tests
Keno Jul 28, 2018
455e669
Run the llvmpasses tests on Travis
Keno Jul 28, 2018
8acad0c
Merge pull request #28841 from JuliaLang/vc/utils
vchuravy Sep 1, 2018
d9d2b9c
Fix Libdl changes (#28953)
staticfloat Sep 1, 2018
226a4ec
Indirect checking for return_type through an extra function (#26836)
Keno Sep 1, 2018
c36c7ff
Cross reference hasmethod with applicable in docs (#28918)
angusmoore Sep 1, 2018
5ee5de4
Fix spelling of kernel in html id (#28936)
simonbyrne Sep 1, 2018
f77c36b
doc/faq: move question to correct section (#28997)
stev47 Sep 2, 2018
9ab0261
ismatch() is now occursin() not contains() (#29005)
mark-summerfield Sep 2, 2018
7453e59
Generalize condition in is_known_call
Keno Sep 1, 2018
48c6846
Fix a small typo in sroa
Keno Sep 1, 2018
9f6dbec
Also fix predicate in stmt_effect_free
Keno Sep 1, 2018
2e603aa
Docs for logging: write to file (#28927)
Sep 3, 2018
b1dac9f
Vector lowering improvents in GC placement
Keno Aug 30, 2018
49e58ba
doc: fix accumulate examples not using the init keyword (#28910)
rfourquet Sep 3, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Hooked GDB to JITEventlistener, cleaned up jitlayers interface
  • Loading branch information
fisiognomico committed Aug 12, 2018
commit ff2b0ce413ded6084e87cd7fbd989dc8c32f2d33
5 changes: 5 additions & 0 deletions src/codegen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7471,6 +7471,11 @@ extern "C" void *jl_init_llvm(void)
jl_data_layout.reset(DL);
#endif

// Register GDB event listener
#ifdef JL_DEBUG_BUILD
jl_ExecutionEngine->RegisterJITEventListener(JITEventListener::createGDBRegistrationListener());
#endif

#ifdef JL_USE_INTEL_JITEVENTS
if (jl_using_intel_jitevents)
jl_ExecutionEngine->RegisterJITEventListener(JITEventListener::createIntelJITEventListener());
Expand Down
95 changes: 4 additions & 91 deletions src/jitlayers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ namespace llvm {
#include <llvm/IR/DataLayout.h>
#include <llvm/Support/DynamicLibrary.h>


#include <llvm/Support/raw_ostream.h>
#include <llvm/Support/FormattedStream.h>
#include <llvm/ADT/StringMap.h>
Expand Down Expand Up @@ -284,72 +283,6 @@ void jl_add_optimization_passes(LLVMPassManagerRef PM, int opt_level) {
addOptimizationPasses(unwrap(PM), opt_level);
}

// ------------------------ TEMPORARILY COPIED FROM LLVM -----------------
// This must be kept in sync with gdb/gdb/jit.h .
extern "C" {

typedef enum {
JIT_NOACTION = 0,
JIT_REGISTER_FN,
JIT_UNREGISTER_FN
} jit_actions_t;

struct jit_code_entry {
struct jit_code_entry *next_entry;
struct jit_code_entry *prev_entry;
const char *symfile_addr;
uint64_t symfile_size;
};

struct jit_descriptor {
uint32_t version;
// This should be jit_actions_t, but we want to be specific about the
// bit-width.
uint32_t action_flag;
struct jit_code_entry *relevant_entry;
struct jit_code_entry *first_entry;
};

// We put information about the JITed function in this global, which the
// debugger reads. Make sure to specify the version statically, because the
// debugger checks the version before we can set it during runtime.
extern struct jit_descriptor __jit_debug_descriptor;

LLVM_ATTRIBUTE_NOINLINE extern void __jit_debug_register_code();
}

namespace {

// Use a local variable to hold the addresses to avoid generating a PLT
// on the function call.
// It messes up the GDB lookup logic with dynamically linked LLVM.
// (Ref https://sourceware.org/bugzilla/show_bug.cgi?id=20633)
// Use `volatile` to make sure the call always loads this slot.
void (*volatile jit_debug_register_code)() = __jit_debug_register_code;

using namespace llvm;
using namespace llvm::object;
using namespace llvm::orc;

/// Do the registration.
void NotifyDebugger(jit_code_entry *JITCodeEntry)
{
__jit_debug_descriptor.action_flag = JIT_REGISTER_FN;

// Insert this entry at the head of the list.
JITCodeEntry->prev_entry = nullptr;
jit_code_entry *NextEntry = __jit_debug_descriptor.first_entry;
JITCodeEntry->next_entry = NextEntry;
if (NextEntry) {
NextEntry->prev_entry = JITCodeEntry;
}
__jit_debug_descriptor.first_entry = JITCodeEntry;
__jit_debug_descriptor.relevant_entry = JITCodeEntry;
jit_debug_register_code();
}
}
// ------------------------ END OF TEMPORARY COPY FROM LLVM -----------------

#if defined(_OS_LINUX_) || defined(_OS_WINDOWS_) || defined(_OS_FREEBSD_)
// Resolve non-lock free atomic functions in the libatomic1 library.
// This is the library that provides support for c11/c++11 atomic operations.
Expand Down Expand Up @@ -387,7 +320,7 @@ template <typename ObjT, typename LoadResult>
void JuliaOJIT::DebugObjectRegistrar::registerObject(RTDyldObjHandleT H, const ObjT &Object,
const LoadResult &LO)
{
OwningBinary<object::ObjectFile> SavedObject = LO->getObjectForDebug(*Object);
object::OwningBinary<object::ObjectFile> SavedObject = LO->getObjectForDebug(*Object);

// If the debug object is unavailable, save (a copy of) the original object
// for our backtraces
Expand All @@ -396,16 +329,15 @@ void JuliaOJIT::DebugObjectRegistrar::registerObject(RTDyldObjHandleT H, const O
// ownership of the original buffer
auto NewBuffer = MemoryBuffer::getMemBufferCopy(Object->getData(),
Object->getFileName());
auto NewObj = ObjectFile::createObjectFile(NewBuffer->getMemBufferRef());
auto NewObj = object::ObjectFile::createObjectFile(NewBuffer->getMemBufferRef());
assert(NewObj);
SavedObject = OwningBinary<object::ObjectFile>(std::move(*NewObj),
SavedObject = object::OwningBinary<object::ObjectFile>(std::move(*NewObj),
std::move(NewBuffer));
}
else {
NotifyGDB(SavedObject);
JIT.NotifyFinalizer(*(SavedObject.getBinary()), *LO);
}

JIT.NotifyFinalizer(*Object, *LO);
SavedObjects.push_back(std::move(SavedObject));

ORCNotifyObjectEmitted(JuliaListener.get(), *Object,
Expand Down Expand Up @@ -436,7 +368,6 @@ void JuliaOJIT::DebugObjectRegistrar::registerObject(RTDyldObjHandleT H, const O
}
}

// TODO: hook up RegisterJITEventListener, instead of hard-coding the GDB and JuliaListener targets
template <typename ObjSetT, typename LoadResult>
void JuliaOJIT::DebugObjectRegistrar::operator()(RTDyldObjHandleT H,
const ObjSetT &Objects, const LoadResult &LOS)
Expand All @@ -456,24 +387,6 @@ void JuliaOJIT::DebugObjectRegistrar::operator()(RTDyldObjHandleT H,
#endif
}

void JuliaOJIT::DebugObjectRegistrar::NotifyGDB(OwningBinary<object::ObjectFile> &DebugObj)
{
const char *Buffer = DebugObj.getBinary()->getMemoryBufferRef().getBufferStart();
size_t Size = DebugObj.getBinary()->getMemoryBufferRef().getBufferSize();

assert(Buffer && "Attempt to register a null object with a debugger.");
jit_code_entry *JITCodeEntry = new jit_code_entry();

if (!JITCodeEntry) {
jl_printf(JL_STDERR, "WARNING: Allocation failed when registering a JIT entry!\n");
}
else {
JITCodeEntry->symfile_addr = Buffer;
JITCodeEntry->symfile_size = Size;

NotifyDebugger(JITCodeEntry);
}
}

object::OwningBinary<object::ObjectFile> JuliaOJIT::CompilerT::operator()(Module &M)
{
Expand Down
2 changes: 0 additions & 2 deletions src/jitlayers.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ using RTDyldObjHandleT = orc::ObjectLinkingLayerBase::ObjSetHandleT;

class JuliaOJIT {
// Custom object emission notification handler for the JuliaOJIT
// TODO: hook up RegisterJITEventListener, instead of hard-coding the GDB and JuliaListener targets
class DebugObjectRegistrar {
public:
DebugObjectRegistrar(JuliaOJIT &JIT);
Expand All @@ -112,7 +111,6 @@ class JuliaOJIT {
private:
template <typename ObjT, typename LoadResult>
void registerObject(RTDyldObjHandleT H, const ObjT &Object, const LoadResult &LO);
void NotifyGDB(object::OwningBinary<object::ObjectFile> &DebugObj);
std::vector<object::OwningBinary<object::ObjectFile>> SavedObjects;
std::unique_ptr<JITEventListener> JuliaListener;
JuliaOJIT &JIT;
Expand Down