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

Add support for Julia v1.0 #282

Merged
merged 8 commits into from Sep 7, 2018

Conversation

Projects
None yet
9 participants
@tlnagy
Member

tlnagy commented Apr 4, 2018

This finishes the Nullable{T} ==> Union{T, Nothing} transition started in #279. I decided that it wasn't worth using the Nullables.jl because it's a dead-end archive package and we might as well transition to the new representation of uninitialized values.

8dd674d is a temporary hack because LOAD_CACHE_PATH was deleted in v0.7. I only did this to get tests to pass locally on both v0.6 and v0.7 and I want to make sure CI passes. I'll revert this commit once an actual solution is found (see JuliaLang/Compat.jl#527) before merging

@codecov-io

This comment has been minimized.

Show comment
Hide comment
@codecov-io

codecov-io Apr 4, 2018

Codecov Report

Merging #282 into master will increase coverage by 0.03%.
The diff coverage is 45.16%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #282      +/-   ##
==========================================
+ Coverage   34.69%   34.73%   +0.03%     
==========================================
  Files          17       17              
  Lines        2908     2908              
==========================================
+ Hits         1009     1010       +1     
+ Misses       1899     1898       -1
Impacted Files Coverage Δ
src/Compose.jl 6.09% <ø> (ø) ⬆️
src/table.jl 0% <ø> (ø) ⬆️
src/cairo_backends.jl 32.36% <0%> (+0.16%) ⬆️
src/measure.jl 36.36% <0%> (ø) ⬆️
src/batch.jl 9.58% <100%> (ø) ⬆️
src/pgf_backend.jl 40.96% <58.33%> (ø) ⬆️
src/container.jl 58.22% <75%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5a65bc4...4161200. Read the comment docs.

codecov-io commented Apr 4, 2018

Codecov Report

Merging #282 into master will increase coverage by 0.03%.
The diff coverage is 45.16%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #282      +/-   ##
==========================================
+ Coverage   34.69%   34.73%   +0.03%     
==========================================
  Files          17       17              
  Lines        2908     2908              
==========================================
+ Hits         1009     1010       +1     
+ Misses       1899     1898       -1
Impacted Files Coverage Δ
src/Compose.jl 6.09% <ø> (ø) ⬆️
src/table.jl 0% <ø> (ø) ⬆️
src/cairo_backends.jl 32.36% <0%> (+0.16%) ⬆️
src/measure.jl 36.36% <0%> (ø) ⬆️
src/batch.jl 9.58% <100%> (ø) ⬆️
src/pgf_backend.jl 40.96% <58.33%> (ø) ⬆️
src/container.jl 58.22% <75%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5a65bc4...4161200. Read the comment docs.

@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Apr 28, 2018

Contributor

do you want to try to finish this before we tag?

Contributor

bjarthur commented Apr 28, 2018

do you want to try to finish this before we tag?

@tlnagy tlnagy closed this Apr 29, 2018

@tlnagy tlnagy reopened this Apr 29, 2018

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Apr 29, 2018

Member

The primary hang up is I'm waiting for JuliaGraphics/Cairo.jl#224 to be resolved. I think we should go ahead and tag. 0.7 support can wait.

Member

tlnagy commented Apr 29, 2018

The primary hang up is I'm waiting for JuliaGraphics/Cairo.jl#224 to be resolved. I think we should go ahead and tag. 0.7 support can wait.

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Apr 29, 2018

Member

It looks like tests are failing partially due to isinstalled breaking on 0.7

On 0.7

julia> include("src/Compose.jl")

## omitted errors

julia> Compose.isinstalled("Fontconfig")
true

On 0.6

julia> include("src/Compose.jl")
Compose

julia> Compose.isinstalled("Fontconfig")
false

Fontconfig isn't installed in either environment so something else must've broken on 0.7

Member

tlnagy commented Apr 29, 2018

It looks like tests are failing partially due to isinstalled breaking on 0.7

On 0.7

julia> include("src/Compose.jl")

## omitted errors

julia> Compose.isinstalled("Fontconfig")
true

On 0.6

julia> include("src/Compose.jl")
Compose

julia> Compose.isinstalled("Fontconfig")
false

Fontconfig isn't installed in either environment so something else must've broken on 0.7

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Apr 29, 2018

Member

It looks specifically that

ver == nothing && try
# Assume the version is new enough if the package is in LOAD_PATH
ex = Expr(:import, Symbol(pkg))
@eval $ex
return true
catch
return false
end

the @eval throws an ArgumentError on v0.6 and not on v0.7 so the catch clause isn't triggered on v0.7.

EDIT: Not sure why this is happening to asked Discourse

Member

tlnagy commented Apr 29, 2018

It looks specifically that

ver == nothing && try
# Assume the version is new enough if the package is in LOAD_PATH
ex = Expr(:import, Symbol(pkg))
@eval $ex
return true
catch
return false
end

the @eval throws an ArgumentError on v0.6 and not on v0.7 so the catch clause isn't triggered on v0.7.

EDIT: Not sure why this is happening to asked Discourse

@vtjnash

This comment has been minimized.

Show comment
Hide comment
@vtjnash

vtjnash Jul 10, 2018

The isinstalled logic should be replaced by Requires.jl (#226). Would be great to have this finished!

vtjnash commented Jul 10, 2018

The isinstalled logic should be replaced by Requires.jl (#226). Would be great to have this finished!

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Jul 29, 2018

Member

On @vtjnash's suggestion I started trying to get Requires.jl working, but I ran into some problems with Pkg.resolve since Compose does not have Cairo in its REQUIRE file. See MikeInnes/Requires.jl#52 for details.

Member

tlnagy commented Jul 29, 2018

On @vtjnash's suggestion I started trying to get Requires.jl working, but I ran into some problems with Pkg.resolve since Compose does not have Cairo in its REQUIRE file. See MikeInnes/Requires.jl#52 for details.

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Aug 17, 2018

Member

Thanks to @RalphAS's help and with another round of cleanup, all tests pass on Julia v0.7 (NOTE: This is not backwards compatible due to the iteration protocol changes!). There are a couple silent deprecations that cause the build to crash on v1.0, which I have not yet fixed. Couple things remaining:

  • Fix silent 0.7 deprecations
  • Fix documentation building on v1.0 (looks like this is still in flux ATM)
  • Tag a release prior to merging this PR
Member

tlnagy commented Aug 17, 2018

Thanks to @RalphAS's help and with another round of cleanup, all tests pass on Julia v0.7 (NOTE: This is not backwards compatible due to the iteration protocol changes!). There are a couple silent deprecations that cause the build to crash on v1.0, which I have not yet fixed. Couple things remaining:

  • Fix silent 0.7 deprecations
  • Fix documentation building on v1.0 (looks like this is still in flux ATM)
  • Tag a release prior to merging this PR

@tlnagy tlnagy changed the title from [WIP] More v0.7 fixes to Add support for Julia v1.0 Aug 17, 2018

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Aug 17, 2018

Member

This PR now successfully passes tests on Julia v1.0

Member

tlnagy commented Aug 17, 2018

This PR now successfully passes tests on Julia v1.0

@tlnagy tlnagy requested a review from bjarthur Aug 17, 2018

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Aug 17, 2018

Member

@bjarthur and @Mattriks, I think this is basically ready to go. All tests are passing and docs are building. We can get started on getting Gadfly up to speed.

Member

tlnagy commented Aug 17, 2018

@bjarthur and @Mattriks, I think this is basically ready to go. All tests are passing and docs are building. We can get started on getting Gadfly up to speed.

@@ -369,8 +372,8 @@ end
function push_vector_properties(img::Image, idx::Int)
save_property_state(img)
for (propertytype, property) in img.vector_properties
isnull(property) && continue
primitives = get(property).primitives
(property === nothing) && continue

This comment has been minimized.

@bjarthur

bjarthur Aug 18, 2018

Contributor

the parens aren't necessary here, though they don't hurt

@bjarthur

bjarthur Aug 18, 2018

Contributor

the parens aren't necessary here, though they don't hurt

y = Array{Float64}(1)
ccall((:cairo_get_current_point, Cairo._jl_libcairo), Void,
(Ptr{Void}, Ptr{Float64}, Ptr{Float64}), img.ctx.ptr, x, y)
x = Array{Float64}(undef, 1)

This comment has been minimized.

@bjarthur

bjarthur Aug 18, 2018

Contributor

do you know what the thinking is behind julia 1.0 requiring undef here? is there something else that could be supplied as the first argument?

@bjarthur

bjarthur Aug 18, 2018

Contributor

do you know what the thinking is behind julia 1.0 requiring undef here? is there something else that could be supplied as the first argument?

This comment has been minimized.

@tlnagy

tlnagy Aug 18, 2018

Member

I think the thinking is that we should be very clear that we're allocating uninitialized memory, i.e. that x contains junk values. Here's a thorough discussion: JuliaLang/julia#24595.

@tlnagy

tlnagy Aug 18, 2018

Member

I think the thinking is that we should be very clear that we're allocating uninitialized memory, i.e. that x contains junk values. Here's a thorough discussion: JuliaLang/julia#24595.

Show outdated Hide outdated .travis.yml
Show outdated Hide outdated src/Compose.jl
:CairoPDFSurface, :CairoSVGSurface, :CairoImageSurface)
val = getfield(Cairo,name)
@eval const $name = $val
end

This comment has been minimized.

@bjarthur

bjarthur Aug 18, 2018

Contributor

what's the reason for the change here? does using Cairo: ... not work with Requires?

@bjarthur

bjarthur Aug 18, 2018

Contributor

what's the reason for the change here? does using Cairo: ... not work with Requires?

This comment has been minimized.

@tlnagy

tlnagy Aug 18, 2018

Member

This is from @RalphAS's original approach that worked on both v0.6 and v0.7, but I think we can revert it to the simpler case since we're dropping support for v0.6 going forward.

@tlnagy

tlnagy Aug 18, 2018

Member

This is from @RalphAS's original approach that worked on both v0.6 and v0.7, but I think we can revert it to the simpler case since we're dropping support for v0.6 going forward.

This comment has been minimized.

@bjarthur

bjarthur Aug 19, 2018

Contributor

i don't understand why using Cairo: ... doesn't work on both 0.6 and 0.7...

@bjarthur

bjarthur Aug 19, 2018

Contributor

i don't understand why using Cairo: ... doesn't work on both 0.6 and 0.7...

This comment has been minimized.

@ararslan

ararslan Sep 2, 2018

What was previously written should work exactly as intended as far back as 0.3, if not earlier.

@ararslan

ararslan Sep 2, 2018

What was previously written should work exactly as intended as far back as 0.3, if not earlier.

This comment has been minimized.

@tlnagy

tlnagy Sep 7, 2018

Member

Changing this back leads to warnings (maybe @RalphAS can help us understand why?)

julia> using Compose
[ Info: Loading Cairo backend into Compose.jl
┌ Warning: Package Compose does not have Cairo in its dependencies:- If you have Compose checked out for development and have
│   added Cairo as a dependency but haven't updated your primary
│   environment's manifest file, try `Pkg.resolve()`.
│ - Otherwise you may need to report an issue with Compose
└ Loading Cairo into Compose from project dependency, future warnings for Compose are suppressed.
@tlnagy

tlnagy Sep 7, 2018

Member

Changing this back leads to warnings (maybe @RalphAS can help us understand why?)

julia> using Compose
[ Info: Loading Cairo backend into Compose.jl
┌ Warning: Package Compose does not have Cairo in its dependencies:- If you have Compose checked out for development and have
│   added Cairo as a dependency but haven't updated your primary
│   environment's manifest file, try `Pkg.resolve()`.
│ - Otherwise you may need to report an issue with Compose
└ Loading Cairo into Compose from project dependency, future warnings for Compose are suppressed.
#global PDF
PNG(::Any, args...) = error(@missing_cairo_error "PNG")
PS(::Any, args...) = error(@missing_cairo_error "PS")
PDF(::Any, args...) = error(@missing_cairo_error "PDF")

This comment has been minimized.

@bjarthur

bjarthur Aug 18, 2018

Contributor

could these three lines be simplified to PNG = error... ? none of the input args are actually used.

@bjarthur

bjarthur Aug 18, 2018

Contributor

could these three lines be simplified to PNG = error... ? none of the input args are actually used.

This comment has been minimized.

@tlnagy

tlnagy Aug 18, 2018

Member

I think I had tried that originally and I was getting illegal constant redefinitions.

@tlnagy

tlnagy Aug 18, 2018

Member

I think I had tried that originally and I was getting illegal constant redefinitions.

include("svg.jl")
include("pgf_backend.jl")
# If available, pango and fontconfig are used to compute text extents and match
# fonts. Otherwise a simplistic pure-julia fallback is used.
if isinstalled("Fontconfig")
include("fontfallback.jl")

This comment has been minimized.

@bjarthur

bjarthur Aug 18, 2018

Contributor

to the extent that fontfallback.jl mimics pango well, we should really hype up the fact that Gadfly can generate SVG with pure julia. maybe add a comment in the Compose README or docs.

@bjarthur

bjarthur Aug 18, 2018

Contributor

to the extent that fontfallback.jl mimics pango well, we should really hype up the fact that Gadfly can generate SVG with pure julia. maybe add a comment in the Compose README or docs.

@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Aug 18, 2018

Contributor

looks great! thanks for working on this.

we should probably wait to tag a final julia 0.6 release of compose until we can do so simultaneously for gadfly.

once this merges i'll run the scripts to see what other gadfly dependencies are still not working on julia 0.7.

Contributor

bjarthur commented Aug 18, 2018

looks great! thanks for working on this.

we should probably wait to tag a final julia 0.6 release of compose until we can do so simultaneously for gadfly.

once this merges i'll run the scripts to see what other gadfly dependencies are still not working on julia 0.7.

Show outdated Hide outdated REQUIRE
@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Aug 28, 2018

Contributor

make sure to close #226 when this is merged

Contributor

bjarthur commented Aug 28, 2018

make sure to close #226 when this is merged

@simonschoelly

This comment has been minimized.

Show comment
Hide comment
@simonschoelly

simonschoelly Aug 28, 2018

This pr is the same code as in the branch tn/more-v07-fixes, right? Because when I use this branch and enter

using Compose

composition = compose(compose(context(), rectangle()), fill("tomato"));
show(composition)

then I get the following error:

ERROR: StackOverflowError:
Stacktrace:
 [1] print(::Base.TTY, ::Context) at ./strings/io.jl:29
 [2] show(::Base.TTY, ::Context) at /home/simon/.julia/packages/Compose/lCyaY/src/container.jl:580
 [3] print(::Base.TTY, ::Context) at ./strings/io.jl:31
 ... (the last 2 lines are repeated 18691 more times)
 [37386] show(::Base.TTY, ::Context) at /home/simon/.julia/packages/Compose/lCyaY/src/container.jl:580
 [37387] show(::Context) at ./show.jl:314

Doesn't matter if I do this in the REPL or as a script, doesn't matter if it's version 0.7 or 1.0 and also seems to be the case for for other compositions.

I can also open an issue for that, but I thought this might belong here.

simonschoelly commented Aug 28, 2018

This pr is the same code as in the branch tn/more-v07-fixes, right? Because when I use this branch and enter

using Compose

composition = compose(compose(context(), rectangle()), fill("tomato"));
show(composition)

then I get the following error:

ERROR: StackOverflowError:
Stacktrace:
 [1] print(::Base.TTY, ::Context) at ./strings/io.jl:29
 [2] show(::Base.TTY, ::Context) at /home/simon/.julia/packages/Compose/lCyaY/src/container.jl:580
 [3] print(::Base.TTY, ::Context) at ./strings/io.jl:31
 ... (the last 2 lines are repeated 18691 more times)
 [37386] show(::Base.TTY, ::Context) at /home/simon/.julia/packages/Compose/lCyaY/src/container.jl:580
 [37387] show(::Context) at ./show.jl:314

Doesn't matter if I do this in the REPL or as a script, doesn't matter if it's version 0.7 or 1.0 and also seems to be the case for for other compositions.

I can also open an issue for that, but I thought this might belong here.

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Aug 28, 2018

Member

Ack good catch @simonschoelly. I changed a bunch of the showcompact code and knew it would come back to haunt me. Looks like we need to add another unit test

Member

tlnagy commented Aug 28, 2018

Ack good catch @simonschoelly. I changed a bunch of the showcompact code and knew it would come back to haunt me. Looks like we need to add another unit test

@MaximeBouton MaximeBouton referenced this pull request Aug 29, 2018

Merged

Shushman/1.0 fixes #25

@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Sep 5, 2018

Contributor

with the following patch to this PR, gadfly CI tests pass using GiovineItalia/Gadfly.jl#1189 and GiovineItalia/Hexagons.jl#10:

diff --git a/src/batch.jl b/src/batch.jl
index 4b12130..f1d1c3e 100644
--- a/src/batch.jl
+++ b/src/batch.jl
@@ -192,7 +192,7 @@ function optimize_batching(ctx::Context)
 
         if !haskey(grouped_forms, h)
             grouped_forms[h] = Form[similar(form) for form in forms]
-            group_prop = Array{Property}(length(properties))
+            group_prop = Array{Property}(undef, length(properties))
             for j in 1:length(properties)
                 group_prop[j] = Property([properties[j].primitives[i]])
             end
diff --git a/src/property.jl b/src/property.jl
index 82a9caf..3904a15 100644
--- a/src/property.jl
+++ b/src/property.jl
@@ -434,7 +434,7 @@ function resolve(box::AbsoluteBox, units::UnitBox, t::Transform, primitive::JSCa
     i = 1
     validx = 1
     while true
-        j = findnext(primitive.code, '%', i)
+        j = findnext(isequal('%'), primitive.code, i)
 
         if j === nothing
             write(newcode, primitive.code[i:end])

with one exception:

[ Info: label_size.pdf
┌ Warning: broadcast will default to iterating over its arguments in the future. Wrap arguments of
│ type `x::Measures.Length{:mm,Float64}` with `Ref(x)` to ensure they broadcast as "scalar" elements.
│   caller = ip:0x0
└ @ Core :-1

not sure whether the problem is in compose or gadfly. hard to track down without a stack trace.

regression tests are mostly fine, with four main problems

  1. gadfly is choosing a different set of ticks for some reason in about a dozen tests. issue1004.jl for example.

  2. histogram bars are not drawn in the same z-order for some reason in about a half dozen tests. stacked_discrete_histogram.jl for example. have to zoom in to see it.

  3. histogram2d.jl has it's sparse squares shifted around by a small but disturbing amount

  4. the histograms in the top two panels in subplot_grid_free_y_2.jl are completely different.

i wouldn't be adverse to merging the three relevant PRs and then advertising a gadfly beta on discourse for field testing before tagging a release for julia 0.7.

Contributor

bjarthur commented Sep 5, 2018

with the following patch to this PR, gadfly CI tests pass using GiovineItalia/Gadfly.jl#1189 and GiovineItalia/Hexagons.jl#10:

diff --git a/src/batch.jl b/src/batch.jl
index 4b12130..f1d1c3e 100644
--- a/src/batch.jl
+++ b/src/batch.jl
@@ -192,7 +192,7 @@ function optimize_batching(ctx::Context)
 
         if !haskey(grouped_forms, h)
             grouped_forms[h] = Form[similar(form) for form in forms]
-            group_prop = Array{Property}(length(properties))
+            group_prop = Array{Property}(undef, length(properties))
             for j in 1:length(properties)
                 group_prop[j] = Property([properties[j].primitives[i]])
             end
diff --git a/src/property.jl b/src/property.jl
index 82a9caf..3904a15 100644
--- a/src/property.jl
+++ b/src/property.jl
@@ -434,7 +434,7 @@ function resolve(box::AbsoluteBox, units::UnitBox, t::Transform, primitive::JSCa
     i = 1
     validx = 1
     while true
-        j = findnext(primitive.code, '%', i)
+        j = findnext(isequal('%'), primitive.code, i)
 
         if j === nothing
             write(newcode, primitive.code[i:end])

with one exception:

[ Info: label_size.pdf
┌ Warning: broadcast will default to iterating over its arguments in the future. Wrap arguments of
│ type `x::Measures.Length{:mm,Float64}` with `Ref(x)` to ensure they broadcast as "scalar" elements.
│   caller = ip:0x0
└ @ Core :-1

not sure whether the problem is in compose or gadfly. hard to track down without a stack trace.

regression tests are mostly fine, with four main problems

  1. gadfly is choosing a different set of ticks for some reason in about a dozen tests. issue1004.jl for example.

  2. histogram bars are not drawn in the same z-order for some reason in about a half dozen tests. stacked_discrete_histogram.jl for example. have to zoom in to see it.

  3. histogram2d.jl has it's sparse squares shifted around by a small but disturbing amount

  4. the histograms in the top two panels in subplot_grid_free_y_2.jl are completely different.

i wouldn't be adverse to merging the three relevant PRs and then advertising a gadfly beta on discourse for field testing before tagging a release for julia 0.7.

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Sep 5, 2018

Member

not sure whether the problem is in compose or gadfly. hard to track down without a stack trace.

Have you tried asking over on discourse? That's basically impossible to track down with so little info.

i wouldn't be adverse to merging the three relevant PRs and then advertising a gadfly beta on discourse for field testing before tagging a release for julia 0.7.

Agreed. While the regressions are worrisome, they aren't showstoppers. We need to at least have a beta at this point. I'm in favor of merging into master and then letting people take it for a spin.

Member

tlnagy commented Sep 5, 2018

not sure whether the problem is in compose or gadfly. hard to track down without a stack trace.

Have you tried asking over on discourse? That's basically impossible to track down with so little info.

i wouldn't be adverse to merging the three relevant PRs and then advertising a gadfly beta on discourse for field testing before tagging a release for julia 0.7.

Agreed. While the regressions are worrisome, they aren't showstoppers. We need to at least have a beta at this point. I'm in favor of merging into master and then letting people take it for a spin.

@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Sep 7, 2018

Contributor

the broadcast / Ref() warning is now fixed, and i believe all the regression errors are due to the change in Random. so... let's do this!

Contributor

bjarthur commented Sep 7, 2018

the broadcast / Ref() warning is now fixed, and i believe all the regression errors are due to the change in Random. so... let's do this!

@Mattriks

This comment has been minimized.

Show comment
Hide comment
@Mattriks

Mattriks Sep 7, 2018

Contributor

Note that there is a more general solution than wrapping things in Ref(). e.g. in Julia 0.7, the following results in the same error above:

using Measures
a = [1mm,2mm,4mm]
a .+ 1mm

but this will work after implementing:

Broadcast.broadcastable(x::T) where T<:Measure = Ref(x)

which makes things easier for general use.

Contributor

Mattriks commented Sep 7, 2018

Note that there is a more general solution than wrapping things in Ref(). e.g. in Julia 0.7, the following results in the same error above:

using Measures
a = [1mm,2mm,4mm]
a .+ 1mm

but this will work after implementing:

Broadcast.broadcastable(x::T) where T<:Measure = Ref(x)

which makes things easier for general use.

tlnagy and others added some commits Apr 4, 2018

replace nullables with union types
this is a follow up to #279

temp hack for missing load_cache_path on 0.7

See JuliaLang/Compat.jl#527 for details

replace more voids that slipped past the first round

more deprecation fixes

prelim work on adding optional runtime backend loading

use Compat's @info so we don't break v0.6
fix up use of Requires for Julia v0.7
This version works if callers of PNG etc. import Cairo themselves.
more fixes for 0.7
update ci and doc gen; drop support for julia v0.6

allow failures on nightly
more updates for v1.0
drop Compat.jl and vestigial compat layers

fixes for doc building and coverage

using is required to load pkg_str macro

fix for silly parenthesis error

drop 0.6 support and simplify travis config
@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Sep 7, 2018

Member

I just squashed and rebased. This ready to merge.

We definitely need to resolve #282 (comment) soon, but I'm okay with this getting merged and the fix for that being a separate PR.

Member

tlnagy commented Sep 7, 2018

I just squashed and rebased. This ready to merge.

We definitely need to resolve #282 (comment) soon, but I'm okay with this getting merged and the fix for that being a separate PR.

invoke more abstract print in non-compact case
@simonschoelly identified this problem in
#282 (comment)
where calling show would lead to a stackoverflow error due to infinite
recursion. The solution is to explicitly invoke Base's abstract show
function when the non-compact form is requested to prevent the runaway
recursion.
@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Sep 7, 2018

Member

b731974 fixes the problem identified by @simonschoelly so now printing works as expected in the noncompact/default case too.

Member

tlnagy commented Sep 7, 2018

b731974 fixes the problem identified by @simonschoelly so now printing works as expected in the noncompact/default case too.

@bjarthur

This comment has been minimized.

Show comment
Hide comment
@bjarthur

bjarthur Sep 7, 2018

Contributor

@Mattriks care to submit a PR to Measures.jl with your solution? much better than mine!

Contributor

bjarthur commented Sep 7, 2018

@Mattriks care to submit a PR to Measures.jl with your solution? much better than mine!

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Sep 7, 2018

Member

AFAIK, this PR is ready to be merged. I've tried to address all points raised in the review.

Member

tlnagy commented Sep 7, 2018

AFAIK, this PR is ready to be merged. I've tried to address all points raised in the review.

@tlnagy

This comment has been minimized.

Show comment
Hide comment
@tlnagy

tlnagy Sep 7, 2018

Member

Looks like there are no major objections so I'm going to go ahead and pull the trigger.

We should let 1.0 support stew on master for a week give or take and then tag a new release. This'll give people time to put it through its paces and make sure that everything is working well.

Member

tlnagy commented Sep 7, 2018

Looks like there are no major objections so I'm going to go ahead and pull the trigger.

We should let 1.0 support stew on master for a week give or take and then tag a new release. This'll give people time to put it through its paces and make sure that everything is working well.

@tlnagy tlnagy merged commit 69be7b7 into master Sep 7, 2018

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

@tlnagy tlnagy referenced this pull request Sep 7, 2018

Closed

Julia 1.0.0 support? #1185

tlnagy added a commit to JuliaGraphics/Measures.jl that referenced this pull request Sep 7, 2018

@tlnagy tlnagy referenced this pull request Sep 7, 2018

Merged

Unbreak broadcast support #18

tlnagy added a commit to JuliaGraphics/Measures.jl that referenced this pull request Sep 7, 2018

@tlnagy tlnagy deleted the tn/more-v07-fixes branch Sep 7, 2018

@tlnagy tlnagy referenced this pull request Sep 8, 2018

Merged

Fixes for 0.7 #10

@bjarthur bjarthur referenced this pull request Sep 8, 2018

Merged

support julia 1.0 #1189

@tlnagy tlnagy referenced this pull request Sep 8, 2018

Closed

use Requires #226

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment