# Internals & Design

**URL:** https://discourse.julialang.org/c/dev/5.md?page=64

[Latest](https://discourse.julialang.org/latest.md) · [Categories](https://discourse.julialang.org/categories.md) · [Tags](https://discourse.julialang.org/tags.md)

**Page:** 65

---

## [Isalnum deprecated?](https://discourse.julialang.org/t/isalnum-deprecated/8504)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 0\
**Last updated:** [January 21, 2018, 11:21am UTC](https://discourse.julialang.org/t/isalnum-deprecated/8504 "2018-01-21T11:21:15Z")

</div>

I just ran into a bunch of new deprecations on master, it seems that isalnum has been deprecated, and it is suggested to use isalpha(c) || isnumeric(c) instead. isalnum is very heavily used in some code, for example whe…

---

## [Representing Nullable Values](https://discourse.julialang.org/t/representing-nullable-values/4729)

<div class="topic-metadata">

**Author:** [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Replies:** 39\
**Last updated:** [January 20, 2018, 5:25pm UTC](https://discourse.julialang.org/t/representing-nullable-values/4729 "2018-01-20T17:25:03Z")

</div>

This roadmap should be characterized as the DataFrames.jl/DataTables.jl/DataStreams.jl roadmap, but not the roadmap for the data ecosystem in general. There might be other packages that are on board, but at least some fo…

---

## [Performance hit with 0.7](https://discourse.julialang.org/t/performance-hit-with-0-7/8467)

<div class="topic-metadata">

**Author:** [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Replies:** 9\
**Last updated:** [January 19, 2018, 9:24pm UTC](https://discourse.julialang.org/t/performance-hit-with-0-7/8467 "2018-01-19T21:24:14Z")

</div>

Just heads up: testing my package indicated major performance hits with 0.7. With 0.6.2: julia\> Pkg.test("FinEtools") INFO: Testing FinEtools WARNING: Method definition pairs(Any) in module FEMMBaseModule at C:\\Users\\P…

---

## [How to write byte literals in v0.7](https://discourse.julialang.org/t/how-to-write-byte-literals-in-v0-7/8455)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 4\
**Last updated:** [January 18, 2018, 1:46pm UTC](https://discourse.julialang.org/t/how-to-write-byte-literals-in-v0-7/8455 "2018-01-18T13:46:52Z")

</div>

Base.CodeUnits seems to wrap it automatically. Is this intended, or a bug? How can I get a Vector{UInt8} using string literals the same way both in v0.6 and v0.7-? julia\> Meta.lower(Main, :(b"123")) :($(QuoteNode(UInt8\[…

---

## [Rstrip minor bug](https://discourse.julialang.org/t/rstrip-minor-bug/8263)

<div class="topic-metadata">

**Author:** [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Replies:** 24\
**Last updated:** [January 16, 2018, 11:49pm UTC](https://discourse.julialang.org/t/rstrip-minor-bug/8263 "2018-01-16T23:49:27Z")

</div>

This code seems wrong though should be fine under normal circumstances… SubString(s, 1:i) should have been SubString(s, a:i)? From base/strings/util.jl function rstrip(s::AbstractString, chars::Chars=\_default\_delims) …

---

## [Feature request: implicit use of struct member](https://discourse.julialang.org/t/feature-request-implicit-use-of-struct-member/8295)

<div class="topic-metadata">

**Author:** [@TravisA9](https://discourse.julialang.org/u/TravisA9)\
**Replies:** 15\
**Last updated:** [January 16, 2018, 5:32am UTC](https://discourse.julialang.org/t/feature-request-implicit-use-of-struct-member/8295 "2018-01-16T05:32:56Z")

</div>

In the spirit of keeping code clean and terse I think it would be great to be able to implicitly use (reference) a ‘special’ member of a struct. My apologies if this is already an existing feature that I have overlooked …

---

## [A Plea for Bit-Twiddlers! (please keep ! as logical negation, separate from bitwise negation!)](https://discourse.julialang.org/t/a-plea-for-bit-twiddlers-please-keep-as-logical-negation-separate-from-bitwise-negation/8297)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 48\
**Last updated:** [January 15, 2018, 8:31pm UTC](https://discourse.julialang.org/t/a-plea-for-bit-twiddlers-please-keep-as-logical-negation-separate-from-bitwise-negation/8297 "2018-01-15T20:31:44Z")

</div>

I would like to make a plea on behalf of all present and future bit-twiddlers who also love the power of Julia. Would a mathematician be happy if they were told that they had to lose one of their most frequently used op…

---

## [Impact of Spectre on Julia?](https://discourse.julialang.org/t/impact-of-spectre-on-julia/8162)

<div class="topic-metadata">

**Author:** [@traktofon](https://discourse.julialang.org/u/traktofon)\
**Replies:** 19\
**Last updated:** [January 14, 2018, 11:33am UTC](https://discourse.julialang.org/t/impact-of-spectre-on-julia/8162 "2018-01-14T11:33:13Z")

</div>

Just wondering what the impact of the Spectre vulnerability will be on Julia. It looks like LLVM will introduce a mitigation that basically disables the use of indirect jump instructions, which has the potential to negat…

---

## [Nullables (moved out of Base) seems to be broken on master](https://discourse.julialang.org/t/nullables-moved-out-of-base-seems-to-be-broken-on-master/8340)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 7\
**Last updated:** [January 13, 2018, 4:02pm UTC](https://discourse.julialang.org/t/nullables-moved-out-of-base-seems-to-be-broken-on-master/8340 "2018-01-13T16:02:37Z")

</div>

Is this a known issue? We have code that uses Nullable on v0.6, that I’m trying to make work on v0.7 as well. ERROR: LoadError: LoadError: UndefVarError: scalarmin not defined Stacktrace: \[1\] getproperty(::Module, ::S…

---

## [A Modest Proposal (for !, &, | and ~)](https://discourse.julialang.org/t/a-modest-proposal-for-and/8330)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 10\
**Last updated:** [January 13, 2018, 11:55am UTC](https://discourse.julialang.org/t/a-modest-proposal-for-and/8330 "2018-01-13T11:55:07Z")

</div>

Here is my combination of a lot of other people’s ideas and a few of my own into what I believe is a rather consistent proposal, that would meet everybody’s needs and desires (at least, so far as not go much against othe…

---

## [Behavior of broadcasted chop](https://discourse.julialang.org/t/behavior-of-broadcasted-chop/8310)

<div class="topic-metadata">

**Author:** [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Replies:** 5\
**Last updated:** [January 12, 2018, 11:53am UTC](https://discourse.julialang.org/t/behavior-of-broadcasted-chop/8310 "2018-01-12T11:53:26Z")

</div>

I do not understand the following behavior: julia\> x = "ab" "ab" julia\> dump(chop(x)) SubString{String} string: String "ab" offset: Int64 0 ncodeunits: Int64 1 julia\> dump(chop.(\[x\])) Array{SubString{String}}((1…

---

## [Documentation for \`thisind\` doesn't match behavior](https://discourse.julialang.org/t/documentation-for-thisind-doesnt-match-behavior/8239)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 3\
**Last updated:** [January 12, 2018, 2:16am UTC](https://discourse.julialang.org/t/documentation-for-thisind-doesnt-match-behavior/8239 "2018-01-12T02:16:27Z")

</div>

The docstring says “If i is out of bounds in s return i.”, however, if i is \< 0 or == sizeof(s)+1, it just returns i, otherwise, it gives a bounds error. julia\> thisind("αβγdef", 11) ERROR: BoundsError: attempt to acces…

---

## [Strange error after an error occurred with \`isvalid(::AbstractString, ::Integer)\`](https://discourse.julialang.org/t/strange-error-after-an-error-occurred-with-isvalid-abstractstring-integer/8234)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 4\
**Last updated:** [January 9, 2018, 10:26pm UTC](https://discourse.julialang.org/t/strange-error-after-an-error-occurred-with-isvalid-abstractstring-integer/8234 "2018-01-09T22:26:28Z")

</div>

I got the following: Got an exception of type MethodError outside of a @test ┌ Error: Error showing method candidates, aborted │ exception = │ MethodError: no method matching length(::Type{Tuple{UTF16Str,Int64}})…

---

## [Help debug Emacs term newline quirk](https://discourse.julialang.org/t/help-debug-emacs-term-newline-quirk/8244)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 3\
**Last updated:** [January 9, 2018, 12:20pm UTC](https://discourse.julialang.org/t/help-debug-emacs-term-newline-quirk/8244 "2018-01-09T12:20:49Z")

</div>

In the recent version of julia-repl, my Emacs mode for interacting with a Julia process, I have managed to make error locations “clickable” by not breaking lines that are longer than the screen, with (setq term-suppress-…

---

## [Inconsistency between \`replace\` on an \`AbstractString\` vs. \`Vector{Char}\`](https://discourse.julialang.org/t/inconsistency-between-replace-on-an-abstractstring-vs-vector-char/8206)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 4\
**Last updated:** [January 7, 2018, 12:58pm UTC](https://discourse.julialang.org/t/inconsistency-between-replace-on-an-abstractstring-vs-vector-char/8206 "2018-01-07T12:58:37Z")

</div>

replace("foobar", "o" =\> "O", "b" =\> "B") gives a method error, but String(replace(Vector{Char}("foobar"), 'o' =\> 'O', 'b' =\> 'B')) returns “fOOBar”. That means you can’t optimize the replace operation, so that all c…

---

## [Meaning of \`isless\`, \`\<\`, \`cmp\`, \`isequal\`, \`==\`, total order, partial order, unordered](https://discourse.julialang.org/t/meaning-of-isless-cmp-isequal-total-order-partial-order-unordered/8176)

<div class="topic-metadata">

**Author:** [@klacru](https://discourse.julialang.org/u/klacru)\
**Replies:** 24\
**Last updated:** [January 7, 2018, 11:39am UTC](https://discourse.julialang.org/t/meaning-of-isless-cmp-isequal-total-order-partial-order-unordered/8176 "2018-01-07T11:39:13Z")

</div>

Is there a definitive expanation or definition of those terms with respect to Julia? I thougth I had a clear understanding, but am a little bit unsettled after I saw cmp(::AbstractArray, ::AbstractArray) and the documen…

---

## [Compiling Julia master on High Sierra](https://discourse.julialang.org/t/compiling-julia-master-on-high-sierra/8160)

<div class="topic-metadata">

**Author:** [@dancasimiro](https://discourse.julialang.org/u/dancasimiro)\
**Replies:** 3\
**Last updated:** [January 6, 2018, 11:43pm UTC](https://discourse.julialang.org/t/compiling-julia-master-on-high-sierra/8160 "2018-01-06T23:43:00Z")

</div>

I have been compiling Julia on MacOS for a couple of years now. I can no longer successfully compile on High Sierra (10.13.2) though. Compilation always fails in libuv with the following error: $ make CC=gcc-7 CXX=g++-7…

---

## [Difference b/w include("foo.jl") and eval(parse(readstring(open( "foo.jl" ))))](https://discourse.julialang.org/t/difference-b-w-include-foo-jl-and-eval-parse-readstring-open-foo-jl/7807)

<div class="topic-metadata">

**Author:** [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Replies:** 14\
**Last updated:** [January 4, 2018, 4:33pm UTC](https://discourse.julialang.org/t/difference-b-w-include-foo-jl-and-eval-parse-readstring-open-foo-jl/7807 "2018-01-04T16:33:18Z")

</div>

What exactly are the difference between the following calls? Are some of them actually the same? Or do they have different underlying C-language representations? # setup file\_name = "foo.jl" open\_file = open(file\_name…

---

## [Performance of type annotations](https://discourse.julialang.org/t/performance-of-type-annotations/8152)

<div class="topic-metadata">

**Author:** [@julbinb](https://discourse.julialang.org/u/julbinb)\
**Replies:** 2\
**Last updated:** [January 4, 2018, 11:35am UTC](https://discourse.julialang.org/t/performance-of-type-annotations/8152 "2018-01-04T11:35:51Z")

</div>

Docs say that type annotations on variables and return types of functions facilitate type inference and performance. But does the opposite hold? If I have a function: function foo(x)::Number if isa(x, Number) …

---

## [Standardized source code location display format](https://discourse.julialang.org/t/standardized-source-code-location-display-format/8104)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 12\
**Last updated:** [January 2, 2018, 2:44pm UTC](https://discourse.julialang.org/t/standardized-source-code-location-display-format/8104 "2018-01-02T14:44:57Z")

</div>

(Asking here before opening an issue.) Source code locations are displayed during compilation, runtime, and help queries. For example, julia\> include("/tmp/foo.jl") # has a deprecated definition WARNING: deprecated syn…

---

## [Function without name... feature or bug?](https://discourse.julialang.org/t/function-without-name-feature-or-bug/8090)

<div class="topic-metadata">

**Author:** [@gajomi](https://discourse.julialang.org/u/gajomi)\
**Replies:** 3\
**Last updated:** [January 1, 2018, 11:38pm UTC](https://discourse.julialang.org/t/function-without-name-feature-or-bug/8090 "2018-01-01T23:38:25Z")

</div>

So I accidentally evaluated something like this to the repl: function (x) :lol end \>\>(::#25) (generic function with 1 method) If I evaluate it repeatedly 25 increments to 27, 29, 31 etc. which I guess is kinda coo…

---

## [Problems with deprecations of islower, lowercase, isupper, uppercase](https://discourse.julialang.org/t/problems-with-deprecations-of-islower-lowercase-isupper-uppercase/7797)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 179\
**Last updated:** [January 1, 2018, 1:30am UTC](https://discourse.julialang.org/t/problems-with-deprecations-of-islower-lowercase-isupper-uppercase/7797 "2018-01-01T01:30:29Z")

</div>

I’ve been getting failures loading quite a few packages because of the move of these (at least the exports) to Unicode. For a number of these incredibly frequently used names, wouldn’t it be better to have the name expo…

---

## [Penalty associated with arrays of differently typed objects of identical structure](https://discourse.julialang.org/t/penalty-associated-with-arrays-of-differently-typed-objects-of-identical-structure/8076)

<div class="topic-metadata">

**Author:** [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Replies:** 5\
**Last updated:** [December 31, 2017, 5:29pm UTC](https://discourse.julialang.org/t/penalty-associated-with-arrays-of-differently-typed-objects-of-identical-structure/8076 "2017-12-31T17:29:44Z")

</div>

Is there any way to eliminate the following penalty in future versions of Julia? In particular, I am talking about the cases when the types of elements in an array are different but this type difference does not change t…

---

## [Why are there broadcast versions of functions?](https://discourse.julialang.org/t/why-are-there-broadcast-versions-of-functions/4708)

<div class="topic-metadata">

**Author:** [@purplishrock](https://discourse.julialang.org/u/purplishrock)\
**Replies:** 17\
**Last updated:** [December 31, 2017, 11:04am UTC](https://discourse.julialang.org/t/why-are-there-broadcast-versions-of-functions/4708 "2017-12-31T11:04:51Z")

</div>

i was curious as to why the ‘.’ versions, abs., log10., etc… have been created ? doesn’t the fact that the functions are methods and can specialize on their argument make this unnecessary, i.e. what was wrong with the n…

---

## [Deprecation =\> error?](https://discourse.julialang.org/t/deprecation-error/8062)

<div class="topic-metadata">

**Author:** [@Liso](https://discourse.julialang.org/u/Liso)\
**Replies:** 10\
**Last updated:** [December 30, 2017, 11:54pm UTC](https://discourse.julialang.org/t/deprecation-error/8062 "2017-12-30T23:54:55Z")

</div>

I am really trying to say as politely as I can! :slight\_smile: I am sorry but I don’t think it is proper way how we do deprecation! From julia/base/deprecated.jl: macro deprecate\_moved(old, new, export\_old=true, defau…

---

## [Could \`Base.\_return\_type\` ever be inferable?](https://discourse.julialang.org/t/could-base-return-type-ever-be-inferable/8057)

<div class="topic-metadata">

**Author:** [@marius311](https://discourse.julialang.org/u/marius311)\
**Replies:** 7\
**Last updated:** [December 29, 2017, 5:42pm UTC](https://discourse.julialang.org/t/could-base-return-type-ever-be-inferable/8057 "2017-12-29T17:42:27Z")

</div>

I’m far from an expert on how Julia inference works, but I ran into a situation where I could more succinctly define some type-stable custom promotion/conversion rules if Base.\_return\_type was inferable, and was curious …

---

## [Tiny suggestion: REPL printout of 1-dim arrays as rows](https://discourse.julialang.org/t/tiny-suggestion-repl-printout-of-1-dim-arrays-as-rows/8012)

<div class="topic-metadata">

**Author:** [@ivo\_welch](https://discourse.julialang.org/u/ivo_welch)\
**Replies:** 12\
**Last updated:** [December 27, 2017, 11:31pm UTC](https://discourse.julialang.org/t/tiny-suggestion-repl-printout-of-1-dim-arrays-as-rows/8012 "2017-12-27T23:31:44Z")

</div>

the REPL prints a nice display for a 1-dimensional arrays, but it takes a lot of rows. Instead of printing 1-D arrays in one column, the REPL could save some terminal line space by print a row, more like R: \> 1:20+0.1 …

---

## [Rename \`writedlm\` to \`printdlm\` to parallel \`print\` vs. \`write\`](https://discourse.julialang.org/t/rename-writedlm-to-printdlm-to-parallel-print-vs-write/8015)

<div class="topic-metadata">

**Author:** [@tparker](https://discourse.julialang.org/u/tparker)\
**Replies:** 2\
**Last updated:** [December 27, 2017, 5:48pm UTC](https://discourse.julialang.org/t/rename-writedlm-to-printdlm-to-parallel-print-vs-write/8015 "2017-12-27T17:48:48Z")

</div>

print(::IO, x) outputs x in human-readable text form, while write(::IO, x) outputs x in non-human-readable binary form. However, writedlm(::IO, x) outputs x in human-readable delimited form. Should it be renamed to print…

---

## [Make the use of the word "dimension" consistent in the documentation](https://discourse.julialang.org/t/make-the-use-of-the-word-dimension-consistent-in-the-documentation/7990)

<div class="topic-metadata">

**Author:** [@tparker](https://discourse.julialang.org/u/tparker)\
**Replies:** 6\
**Last updated:** [December 26, 2017, 5:29pm UTC](https://discourse.julialang.org/t/make-the-use-of-the-word-dimension-consistent-in-the-documentation/7990 "2017-12-26T17:29:38Z")

</div>

The word “dimension” is unfortunately used in several incompatible ways across programming languages in the context of arrays. Consider an N-dimensional array A\[i1, i2, ..., iN\], where i1 runs from 1 to L1, i2 runs from…

---

## [1.0 Feature Freeze Dec 15th](https://discourse.julialang.org/t/1-0-feature-freeze-dec-15th/7209)

<div class="topic-metadata">

**Author:** [@Keno](https://discourse.julialang.org/u/Keno)\
**Replies:** 32\
**Last updated:** [December 26, 2017, 9:10am UTC](https://discourse.julialang.org/t/1-0-feature-freeze-dec-15th/7209 "2017-12-26T09:10:55Z")

</div>

It’s getting real, folks! 0.7/1.0 feature freeze has been set for Dec 15, 2017 AoE (“Anywhere on Earth” time). That means that if there’s a feature you want in 1.0 it needs to be in by then or it’ll have to wait for 1.x …

[Previous page](https://discourse.julialang.org/c/dev/5.md?page=63)

[Next page](https://discourse.julialang.org/c/dev/5.md?page=65)
