# Function argument, binding, name, assignment, mutation

**URL:** <https://discourse.julialang.org/t/function-argument-binding-name-assignment-mutation/132916>\
**Category:** New to Julia\
**Created:** [October 6, 2025, 2:39pm UTC](https://discourse.julialang.org/t/function-argument-binding-name-assignment-mutation/132916 "2025-10-06T14:39:34Z")\
**Posts on this page:** 1\
**Showing post:** 24

<div class="post-metadata">

**Author:** ![sgaure](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sgaure/32/14779_2.png) [@sgaure](https://discourse.julialang.org/u/sgaure)\
**Post date:** [October 7, 2025, 6:43am UTC](https://discourse.julialang.org/t/function-argument-binding-name-assignment-mutation/132916/24 "2025-10-07T06:43:06Z")

</div>

> [@WalterMadelim](#):
>
> But “let a pointer to point to a new region of memory” should be easy so that it is done in an instant? I don’t think there is any technical hindrance here.

There is, even if you code in assembly.  
Something like

```asm
loadmem reg0, memref

```

where `reg0` is a register and `memref` is a memory address, and `loadmem` moves 8 bytes from that address into the register, is not necessarily atomic on all architectures. It might be done with two loads in the microcode, and if run in parallel with a similar `storemem`, you may end up with incomplete data. It can e.g. be atomic if the 8 bytes are in a single cache line, and non-atomic if they cross a cache line boundary. Some architectures fault on such unaligned access, some give a warning, some do it non-atomically.

Anyway, julia developers leave such details to llvm, though I think this is atomic by chance on all architectures julia runs on.

---

_[View the full topic](https://discourse.julialang.org/t/function-argument-binding-name-assignment-mutation/132916)._
