# Internals & Design

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

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

**Page:** 73

---

## [Implict function specialization vs. explict specialization vs. generated functions](https://discourse.julialang.org/t/implict-function-specialization-vs-explict-specialization-vs-generated-functions/3342)

<div class="topic-metadata">

**Author:** [@benninkrs](https://discourse.julialang.org/u/benninkrs)\
**Replies:** 3\
**Last updated:** [April 23, 2017, 9:40pm UTC](https://discourse.julialang.org/t/implict-function-specialization-vs-explict-specialization-vs-generated-functions/3342 "2017-04-23T21:40:23Z")

</div>

Is there any difference between these three ways of specializing a function that could affect performance? For instance, suppose we have functions f,g,h defined and called as follows: f(a) = a+a @generated g(a) = :(a+…

---

## [Packages version names](https://discourse.julialang.org/t/packages-version-names/3350)

<div class="topic-metadata">

**Author:** [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Replies:** 1\
**Last updated:** [April 23, 2017, 8:42pm UTC](https://discourse.julialang.org/t/packages-version-names/3350 "2017-04-23T20:42:23Z")

</div>

Hello, is there a suggested/required pattern for package versions names? I am asking because I like a lot how it its implemented in Drupal, a web CMS, where package version names is standardized as Core version-Package …

---

## [Imprecise \`assert\` in subtype.c?](https://discourse.julialang.org/t/imprecise-assert-in-subtype-c/3328)

<div class="topic-metadata">

**Author:** [@ulysses](https://discourse.julialang.org/u/ulysses)\
**Replies:** 3\
**Last updated:** [April 22, 2017, 4:37am UTC](https://discourse.julialang.org/t/imprecise-assert-in-subtype-c/3328 "2017-04-22T04:37:19Z")

</div>

typedef struct { int depth; int more; uint32\_t stack\[100\]; // stack of bits represented as a bit vector } jl\_unionstate\_t; // ... static int statestack\_get(jl\_unionstate\_t \*st, int i) { assert(i \>= 0 &&…

---

## [|\> operator precedence](https://discourse.julialang.org/t/operator-precedence/3286)

<div class="topic-metadata">

**Author:** [@Diego\_Javier\_Zea](https://discourse.julialang.org/u/Diego_Javier_Zea)\
**Replies:** 0\
**Last updated:** [April 19, 2017, 6:30pm UTC](https://discourse.julialang.org/t/operator-precedence/3286 "2017-04-19T18:30:08Z")

</div>

Hi! Why does |\> has higher precedence than comparison and control flow operators? Should |\> have precedence only higher than assignment operators? julia\> pdb\_subset\[:,:pfam\] .== "PF00057" |\> sum ERROR: MethodError: no…

---

## [D lang scope guards in Julia](https://discourse.julialang.org/t/d-lang-scope-guards-in-julia/3229)

<div class="topic-metadata">

**Author:** [@musm](https://discourse.julialang.org/u/musm)\
**Replies:** 3\
**Last updated:** [April 19, 2017, 3:51pm UTC](https://discourse.julialang.org/t/d-lang-scope-guards-in-julia/3229 "2017-04-19T15:51:14Z")

</div>

I think julia should incorporate (“steal”) D language type scope guards ref Scope guards - Dlang Tour The examples there and in the references make it very clear why such a feature is desirable and useful. I think Ju…

---

## [@assert inference](https://discourse.julialang.org/t/assert-inference/3264)

<div class="topic-metadata">

**Author:** [@rleegates](https://discourse.julialang.org/u/rleegates)\
**Replies:** 0\
**Last updated:** [April 18, 2017, 9:37am UTC](https://discourse.julialang.org/t/assert-inference/3264 "2017-04-18T09:37:29Z")

</div>

Is this intermediate inference (failure) behavior intentional? (v0.5.0) julia\> f() = @assert 1==2 f (generic function with 1 method) julia\> @code\_warntype f() Variables: #self#::#f Body: begin unless (1 ===…

---

## [Does Julia bitcode system image file generated with --compile=all --output-bc flags actually use llvm IR representation?](https://discourse.julialang.org/t/does-julia-bitcode-system-image-file-generated-with-compile-all-output-bc-flags-actually-use-llvm-ir-representation/3219)

<div class="topic-metadata">

**Author:** [@psrivas2](https://discourse.julialang.org/u/psrivas2)\
**Replies:** 5\
**Last updated:** [April 16, 2017, 4:40pm UTC](https://discourse.julialang.org/t/does-julia-bitcode-system-image-file-generated-with-compile-all-output-bc-flags-actually-use-llvm-ir-representation/3219 "2017-04-16T16:40:26Z")

</div>

I built a system image file with a new function printHello function printHello() println("Hello World!") end I used the --compile=all --output-bc flags in the build\_sysimg.jl to generate the system image in llvm bitc…

---

## [Idea for setting both mutables and immutables without allocation](https://discourse.julialang.org/t/idea-for-setting-both-mutables-and-immutables-without-allocation/1318)

<div class="topic-metadata">

**Author:** [@andyferris](https://discourse.julialang.org/u/andyferris)\
**Replies:** 23\
**Last updated:** [April 15, 2017, 6:50am UTC](https://discourse.julialang.org/t/idea-for-setting-both-mutables-and-immutables-without-allocation/1318 "2017-04-15T06:50:19Z")

</div>

Here’s a crazy proposal for working with mutables and immutables more generically. Sorry it ended up a bit long. One great feature of Julia is the ability to perform generic programming: write just one function method t…

---

## [Getting reusable LLVM IR representation of a module(or a script), modifying LLVM IR and replugging it in Julia](https://discourse.julialang.org/t/getting-reusable-llvm-ir-representation-of-a-module-or-a-script-modifying-llvm-ir-and-replugging-it-in-julia/2935)

<div class="topic-metadata">

**Author:** [@psrivas2](https://discourse.julialang.org/u/psrivas2)\
**Replies:** 5\
**Last updated:** [April 14, 2017, 5:21pm UTC](https://discourse.julialang.org/t/getting-reusable-llvm-ir-representation-of-a-module-or-a-script-modifying-llvm-ir-and-replugging-it-in-julia/2935 "2017-04-14T17:21:22Z")

</div>

Summary I need a way to statically compile a module written in Julia to LLVM IR. I would modify this LLVM IR representation of the module for my project and would like to somehow replug this LLVM IR representation in Jul…

---

## [We should offer ?REPL in the REPL](https://discourse.julialang.org/t/we-should-offer-repl-in-the-repl/3116)

<div class="topic-metadata">

**Author:** [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)\
**Replies:** 7\
**Last updated:** [April 14, 2017, 1:50pm UTC](https://discourse.julialang.org/t/we-should-offer-repl-in-the-repl/3116 "2017-04-14T13:50:14Z")

</div>

There is much helpful with the REPL. “?REPL” would serve many well.

---

## [Example of generated functions -- suitable for docs?](https://discourse.julialang.org/t/example-of-generated-functions-suitable-for-docs/364)

<div class="topic-metadata">

**Author:** [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Replies:** 8\
**Last updated:** [April 12, 2017, 9:26pm UTC](https://discourse.julialang.org/t/example-of-generated-functions-suitable-for-docs/364 "2017-04-12T21:26:29Z")

</div>

I have a good introductory example of the need for generated functions using multiplication of two objects of type Vol{n} type representing an n-dimensional volume (see below for the code). This could replace the part i…

---

## [Cannot build Julia -- openblas issues](https://discourse.julialang.org/t/cannot-build-julia-openblas-issues/3142)

<div class="topic-metadata">

**Author:** [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)\
**Replies:** 7\
**Last updated:** [April 11, 2017, 10:20am UTC](https://discourse.julialang.org/t/cannot-build-julia-openblas-issues/3142 "2017-04-11T10:20:28Z")

</div>

Hi, I am trying to build Julia stable on OS X 10.12.4 (Intel core I7), with GNU Fortran (Homebrew GCC 5.4.0\_1) 5.4.0 Copyright (C) 2015 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent …

---

## [Specify network topology by argument (Parallel)](https://discourse.julialang.org/t/specify-network-topology-by-argument-parallel/3021)

<div class="topic-metadata">

**Author:** [@bluehope](https://discourse.julialang.org/u/bluehope)\
**Replies:** 0\
**Last updated:** [April 3, 2017, 10:04am UTC](https://discourse.julialang.org/t/specify-network-topology-by-argument-parallel/3021 "2017-04-03T10:04:44Z")

</div>

Is it possible to specify network topology by argument? http://docs.julialang.org/en/stable/manual/parallel-computing/#specifying-network-topology-experimental Like julia --machinefile “nodes.txt” --topology=master\_sla…

---

## [Performance of dot operator on Nullables](https://discourse.julialang.org/t/performance-of-dot-operator-on-nullables/3071)

<div class="topic-metadata">

**Author:** [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Replies:** 6\
**Last updated:** [April 8, 2017, 8:41am UTC](https://discourse.julialang.org/t/performance-of-dot-operator-on-nullables/3071 "2017-04-08T08:41:01Z")

</div>

I was just comparing the performance of a handcoded lifted version of say addition for Nullables with the version that is in base now using the dot notation. My benchmark code looks like this: a = Nullable(2) b = Nullab…

---

## [Runtime for Julia static compilation with package LightXML - ccall()](https://discourse.julialang.org/t/runtime-for-julia-static-compilation-with-package-lightxml-ccall/3085)

<div class="topic-metadata">

**Author:** [@Martin\_Florek](https://discourse.julialang.org/u/Martin_Florek)\
**Replies:** 4\
**Last updated:** [April 7, 2017, 5:09am UTC](https://discourse.julialang.org/t/runtime-for-julia-static-compilation-with-package-lightxml-ccall/3085 "2017-04-07T05:09:43Z")

</div>

I static compiled my own package Foo with using LightXML and I have got libFOO.dll. Further, I designed wrapper in C++ ( Calling Julia Functions) with the help of julia.h and created executable application foo.exe for ru…

---

## [Trouble with types when porting old Compose.jl code to v0.6](https://discourse.julialang.org/t/trouble-with-types-when-porting-old-compose-jl-code-to-v0-6/2263)

<div class="topic-metadata">

**Author:** [@tlnagy](https://discourse.julialang.org/u/tlnagy)\
**Replies:** 4\
**Last updated:** [April 6, 2017, 12:24pm UTC](https://discourse.julialang.org/t/trouble-with-types-when-porting-old-compose-jl-code-to-v0-6/2263 "2017-04-06T12:24:20Z")

</div>

I’m in the process of updating Compose.jl to work with Julia 0.6 and I got a MethodError thrown when accessing the new constructor via a typealias: (this was originally posted over here: Advice needed for updating to new…

---

## [Is compile time significantly slower in 0.6?](https://discourse.julialang.org/t/is-compile-time-significantly-slower-in-0-6/2764)

<div class="topic-metadata">

**Author:** [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Replies:** 17\
**Last updated:** [April 6, 2017, 11:30am UTC](https://discourse.julialang.org/t/is-compile-time-significantly-slower-in-0-6/2764 "2017-04-06T11:30:01Z")

</div>

It seems to me that it takes much longer to call using on a package in 0.6 than in 0.5. Is this expected?

---

## [True memory footprint of objects?](https://discourse.julialang.org/t/true-memory-footprint-of-objects/2888)

<div class="topic-metadata">

**Author:** [@anon94023334](https://discourse.julialang.org/u/anon94023334)\
**Replies:** 16\
**Last updated:** [April 2, 2017, 12:20am UTC](https://discourse.julialang.org/t/true-memory-footprint-of-objects/2888 "2017-04-02T00:20:04Z")

</div>

Consider: julia\> a = Vector{Int}(\[1\]) 1-element Array{Int64,1}: 1 julia\> whos() Base 37457 KB Module Compat 4875 KB Module Core 1…

---

## [Re-syncing a package development branch to a modified master](https://discourse.julialang.org/t/re-syncing-a-package-development-branch-to-a-modified-master/2968)

<div class="topic-metadata">

**Author:** [@dmbates](https://discourse.julialang.org/u/dmbates)\
**Replies:** 4\
**Last updated:** [March 30, 2017, 3:19pm UTC](https://discourse.julialang.org/t/re-syncing-a-package-development-branch-to-a-modified-master/2968 "2017-03-30T15:19:38Z")

</div>

I fear that I am about to be in git purgatory again so this time I will ask for advice before doing things that get me in even deeper trouble. I have a development branch, LowerCholesky, in the MixedModels package. Thi…

---

## [Functions for low-level arithmetic](https://discourse.julialang.org/t/functions-for-low-level-arithmetic/2925)

<div class="topic-metadata">

**Author:** [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Replies:** 5\
**Last updated:** [March 29, 2017, 4:28am UTC](https://discourse.julialang.org/t/functions-for-low-level-arithmetic/2925 "2017-03-29T04:28:34Z")

</div>

I was wondering if there were any way to get access to the the sorts of assembly instructions like unsigned multiply of UInt64 \* UInt64 producing UInt128 (for 64-bit platforms), or UInt32 \* UInt32 producing UInt64 (for 3…

---

## [Could Julia have implicit type parameters?](https://discourse.julialang.org/t/could-julia-have-implicit-type-parameters/2914)

<div class="topic-metadata">

**Author:** [@marius311](https://discourse.julialang.org/u/marius311)\
**Replies:** 5\
**Last updated:** [March 27, 2017, 10:50pm UTC](https://discourse.julialang.org/t/could-julia-have-implicit-type-parameters/2914 "2017-03-27T22:50:32Z")

</div>

I’ve come to realize that (I think) I really want the following to be possible in Julia, struct Wrapper{T\<:SomeAbstractType{S}} \<: OtherAbstractType{S} t::T end This doesn’t work because I have to explicitly declar…

---

## [Debugger wire protocol](https://discourse.julialang.org/t/debugger-wire-protocol/488)

<div class="topic-metadata">

**Author:** [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Replies:** 9\
**Last updated:** [March 24, 2017, 4:28pm UTC](https://discourse.julialang.org/t/debugger-wire-protocol/488 "2017-03-24T16:28:42Z")

</div>

I’m exploring what it would take to enable the VS Code debugging UI for julia, and I’ve got some high level design questions about both the current status of the debugger and future plans. Are there any plans for a wire…

---

## [Enabling other backends for Julia](https://discourse.julialang.org/t/enabling-other-backends-for-julia/2756)

<div class="topic-metadata">

**Author:** [@singam-sanjay](https://discourse.julialang.org/u/singam-sanjay)\
**Replies:** 19\
**Last updated:** [March 23, 2017, 6:52am UTC](https://discourse.julialang.org/t/enabling-other-backends-for-julia/2756 "2017-03-23T06:52:28Z")

</div>

Hello, I’m working on enabling Julia to target GPUs via Polly. Polly needs the LLVM NVPTX backend to produce kernel code. This currently is failing because TargetRegistry::lookupTarget couldn’t find “nvptx64-nvidia-cuda…

---

## [Sum types in Julia](https://discourse.julialang.org/t/sum-types-in-julia/2795)

<div class="topic-metadata">

**Author:** [@Ford](https://discourse.julialang.org/u/Ford)\
**Replies:** 16\
**Last updated:** [March 22, 2017, 9:20pm UTC](https://discourse.julialang.org/t/sum-types-in-julia/2795 "2017-03-22T21:20:10Z")

</div>

Sum types are great invention that simplify some tasks tremendously - i. e. for handling invalid values, parsing dsl or any data with weird shape in general. I think this article will give a better explanation. Have Ju…

---

## [Tagging an alpha version of a package?](https://discourse.julialang.org/t/tagging-an-alpha-version-of-a-package/2801)

<div class="topic-metadata">

**Author:** [@anon94023334](https://discourse.julialang.org/u/anon94023334)\
**Replies:** 7\
**Last updated:** [March 22, 2017, 2:29am UTC](https://discourse.julialang.org/t/tagging-an-alpha-version-of-a-package/2801 "2017-03-22T02:29:47Z")

</div>

Has anyone ever tagged (and made a PR via METADATA) an alpha version of their package that is designed to allow people to test and install a major update easily, before it becomes an official version? If so, what was you…

---

## [Why \*wouldn't\* one want to use @inferred in package tests?](https://discourse.julialang.org/t/why-wouldnt-one-want-to-use-inferred-in-package-tests/2776)

<div class="topic-metadata">

**Author:** [@anon94023334](https://discourse.julialang.org/u/anon94023334)\
**Replies:** 2\
**Last updated:** [March 20, 2017, 4:03pm UTC](https://discourse.julialang.org/t/why-wouldnt-one-want-to-use-inferred-in-package-tests/2776 "2017-03-20T16:03:15Z")

</div>

So, I just found out about Base.test.@inferred and this looks like a nice way to ensure that functions are type-stable. Is there any reason one shouldn’t use @inferred by default in all package tests? (That is, can/shou…

---

## [Nested Macros Bypass Package Dependencies](https://discourse.julialang.org/t/nested-macros-bypass-package-dependencies/2683)

<div class="topic-metadata">

**Author:** [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Replies:** 11\
**Last updated:** [March 17, 2017, 10:13am UTC](https://discourse.julialang.org/t/nested-macros-bypass-package-dependencies/2683 "2017-03-17T10:13:53Z")

</div>

Just ran into an issue in the DiffEq-sphere that seems like it might be a more systemic problem. I am wondering if there is a proper way to address it, or if this needs to be addressed in Julia itself. The issue is here: …

---

## [Git question: multiple PRs](https://discourse.julialang.org/t/git-question-multiple-prs/2695)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 2\
**Last updated:** [March 16, 2017, 3:34pm UTC](https://discourse.julialang.org/t/git-question-multiple-prs/2695 "2017-03-16T15:34:35Z")

</div>

This is more of a git question, but since I found many possible solutions online I am wondering if there is a preferred way to do this in the Julia package ecosystem. Consider a git repo for a package, for which I want …

---

## [PSA: New keywords for defining types](https://discourse.julialang.org/t/psa-new-keywords-for-defining-types/2029)

<div class="topic-metadata">

**Author:** [@jeff.bezanson](https://discourse.julialang.org/u/jeff.bezanson)\
**Replies:** 28\
**Last updated:** [March 16, 2017, 5:39am UTC](https://discourse.julialang.org/t/psa-new-keywords-for-defining-types/2029 "2017-03-16T05:39:07Z")

</div>

In a rather disruptive, but I think worthwhile, change, we now have different keywords for defining types. Here’s a quick summary: immutable changes to struct type changes to mutable struct abstract changes to abs…

---

## [Disabling osx testing on Travis](https://discourse.julialang.org/t/disabling-osx-testing-on-travis/2672)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 5\
**Last updated:** [March 15, 2017, 3:41pm UTC](https://discourse.julialang.org/t/disabling-osx-testing-on-travis/2672 "2017-03-15T15:41:48Z")

</div>

I have noticed that testing on OS X takes longer for packages on Travis (presumably machines running it are a scarce resource), so I am considering disabling it and testing on linux only. I am assuming that this should …

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

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