# Changes of A.jl are not understood from B.jl that includes A.jl

**URL:** https://discourse.julialang.org/t/changes-of-a-jl-are-not-understood-from-b-jl-that-includes-a-jl/110498
**Category:** New to Julia
**Tags:** question, precompilation, compiler
**Created:** [February 21, 2024, 8:04am UTC](https://discourse.julialang.org/t/changes-of-a-jl-are-not-understood-from-b-jl-that-includes-a-jl/110498 "2024-02-21T08:04:52Z")
**Posts on this page:** 1
**Showing post:** 35

<div class="post-metadata">

### Author: ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)
#### Post date: [February 29, 2024, 8:41am UTC](https://discourse.julialang.org/t/changes-of-a-jl-are-not-understood-from-b-jl-that-includes-a-jl/110498/35 "2024-02-29T08:41:44Z")

</div>

> [@DoctorDro](#):
>
> then this are not features promoting SAFETY which is the most important thing for engineering calculations. Julia is not Python or any other scripting language is a language for engineers and/or mathematicians that promotes at last a few nice features

You’re not wrong for identifying advantages of other languages’ features that are lacking or limited in Julia. That’s a large chunk of this forum. However, we have informed you why it is limited, and incorporating the sort of effect you’d like would sabotage the “fast and easy prototyping” you listed as a nice feature. Something that makes prototyping faster and easier is not having to throw away the entire session to replace and test a method signature. If you throw errors when a method is replaced, you would have to. There is no practical way of distinguishing when you’d like to throw that error and when you’d like the method replacement to go ahead; changing the name of the source file you `include` does not matter to the global scope, and you had previously leveraged the ability to do that by renaming things `_new.jl`. Even if a reasonable strategy is invented, it would be a breaking change and cannot be incorporated into v1 Julia.

> [PSA: Julia is not at that stage of development anymore](https://discourse.julialang.org/t/psa-julia-is-not-at-that-stage-of-development-anymore/44872)

> [@DoctorDro](#):
>
> I would like to get a warning or even better an error by the Language Compiler so that I can fix my mess. Is this so hard to implement? Isn’t this what a compiler is supposed to do?

I can’t say it’s easy, but plenty of languages have implemented errors. However, a language’s compiler can behave however the designers want. In fact, Julia’s compiler is not even involved when methods are defined, so it couldn’t possibly catch a redefinition and throw an error. The command for starting the Julia session provides an option for warnings, as demonstrated above, and you might also notice that it also occurs during package precompilation but goes on to trigger an error.

---

_[View the full topic](https://discourse.julialang.org/t/changes-of-a-jl-are-not-understood-from-b-jl-that-includes-a-jl/110498)._
