Can you expand on that, so that it's possible to improve on them?
445 karma · joined April 20, 2017
Can you expand on that, so that it's possible to improve on them?
From the linked stuff, only [0] is a true correctness problem of the language and not a bug in a library.
> Some commenters seem exhausted by what they perceive as a continual stream of lies about these topics, which has left them less inclined to post about them.
How is differentiating bugs in the language (parser, compiler, type system, ...) from bugs in libraries implemented in the language "lying about these topics"? It's not like julia is claiming to prevent logic bugs, or am I missing something.
struct MyStruct
a::Int64
b::Float64
end
Since the size of each field is known (8 bytes), the size of the whole struct, and thus the size of each instance of that struct, is known - 16 bytes. This is crucial information for inlining, loop unrolling, copy elision, deciding which register(s) to place the object in, getting rid of indirections through pointers.. If you'd allow to subtype MyStruct, the compiler wouldn't be able to know ahead of time what the size of a MyStruct object is and would either have to box every access (introducing pointers which have to be chased on access) or defer A LOT of work to runtime. With boxing, you almost immediately lose lots of opportunities to SIMD or otherwise optimize your code, because you have to keep a whole lot of extra type information around at runtime that's just not necessary when all your objects in a e.g. Vector{MyStruct} have the same size anyway.C++ really isn't my forte though.
PlatformIO is nice, yes - I've already been suggested linking/using that, but I haven't looked into it yet. I also haven't worked with that before, so it'd be completely new territory for me.
I don't think CBinding.jl is an option, since the whole point of the arduino is that the julia runtime can't run there (and doesn't fit in the first place - there's not enough RAM and swapping to the SD seems bad). Linking with C created .o files should work though?
I don't own any ESP32, but if that happens, yes I'd very much like to try!
Yeah, this was mostly an experiment to see what kinds of problems I run into - I didn't expect this to actually work out! It's still very finicky, relying on LLVM to remove dead runtime calls and so on, but non-allocating stuff with immutables should work, though I haven't actually tested it.
On top of this, you really want to be alerted to when you expect more of an interface than the interface guarantees - this is what happened in the case of `1:length(A)` being assumed to give the indices into `A`, when the `AbstractArray` interface really only guarantees that a given set of methods exists.
I feel like these sorts of issues more or less require more formal models being provided & checked by the compiler. Luckily for us, nothing in this space has been implemented or attempted in & for julia, while there are a lot of experiments with formal methods and proofing systems being researched right now (TLA+, coq,..). There are of course a lot of footguns[1], but the space is moving fast and I'd love to see something that makes use of this integrated into julia at some point.
[1]: Why specifications don't compose - https://hillelwayne.com/post/spec-composition/
For example, the majority of issues referenced are specific to a single package, StatsBase.jl - which apparently was written before OffsetArrays.jl was a thing and thus is known to be incompatible:
> Yes, lots of JuliaStats packages have been written before offset axes existed. Feel free to make a PR adding checks.
https://github.com/JuliaStats/StatsBase.jl/issues/646#issuec...
EDIT: Since this comment seems to gain some traction - title is editorialized, original is "Why I no longer recommend Julia".
As I understand it, the trouble is with "what happens to the information inside the black hole?", not with whether it's there at all or not (which isn't disputed - we see stuff fall in, so it's gotta go _somewhere_ and it isn't in our observable part anymore). In addition, because of the nature of a black hole, how would an experiment trying to test any theory about what happens in a black hole even work? As far as I'm aware, we don't know of any mechanism where stuff inside the black hole affects stuff outside the black hole (hawking radiation doesn't, as far as I'm aware, explain _how_ the spontaneous quantum fluctuations come to be - they're just theorized to happen to satisfy the equivalence principle near the event horizon), but that's exactly what we'd need to confirm or deny anything about whatever happens past the event horizon.
On top of this, just the existence of hawking radiation means black holes vanish over time - but without us being able to say that e.g. a book with mass 1kg or a bag of sugar with mass 1kg was once thrown in. We can't distinguish the two cases - the information (as far as we know today) is lost.
> This problem is far too small to saturate the GPU, even with such a large batch size. Time is dominated by moving batches from the CPU to the GPU. Unfortunately, as the batch sizes get larger, we need more epochs to reach the same accuracy, so we can hit a limit in terms of maximizing accuracy/time.
The batch size in their example is 2048.
---
A "solution" to this conundrum is to have big integers by default, which sadly isn't feasible for performance reasons - you can't then take advantage of hardware, because every operation necessarily has to do more work than would be required for machine integers.
--
To add on to this, when encountering overflow (which doesn't happen often in the first place), it's usually sufficient to go for 128 bit integers first instead of jumping directly to big integers. They're still quite a bit faster and offer a much larger space to work with.
--
EDIT: Nevermind, found it in the zip!
Mapping a network is not an activity exclusive to criminals.
Are you talking about something like BinaryBuilder.jl[1], which provides native binaries as julia-callable wrappers?
--
I'm guessing the newness/missing features of zfsbootmenu is in regards to beadm [2]?
[1] https://pthree.org/2013/01/03/zfs-administration-part-xvii-b... [2] https://vermaden.files.wordpress.com/2018/11/nluug-zfs-boot-...