On Wed, Oct 9, 2024 at 11:30 PM will....@gmail.com <will.fau...@gmail.com> wrote:
> It seems required to understand how Go programs work. > > If the memory model was never written, or is omitted from an > implementation, would the concurrency features still be reliable and useful? > > In addition to Ian's reply that people successfully wrote concurrent Go code before the memory model document was published It is, perhaps, also worth noting that not every computer architecture behaves the same way vis-a-vis memory access. I'm a grey beard who started programming in 1977. I've programmed on computers with a *) 24 bit word size (the Harris "H" series, https://en.wikipedia.org/wiki/Harris_Computer_Systems) *) 36 bit word size (the Honeywell 6000 series) *) 60 bit word size (the CDC Cyber 760 which also used ones-complement for integers) *) 32/64 bit word size architectures that are now commonplace More relevant is my experience programming (as a customer and then an employee) of Sequent Computer Systems SMP and NUMA architecture systems. The memory model of the Sequent "Balance" line that used National Semiconductor NS32032 processors was different from that of the Sequent "Symmetry" line which used Intel x86 processors. The high-level abstractions provided by Go's channels and mutexes make it relatively easy to write reliable, portable, code that would work on those very different computer architectures. You only need to know the details of the memory model employed by Go if you are writing code that implements similar abstractions for the hardware architecture. -- Kurtis Rader Caretaker of the exceptional canines Junior and Hank -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CABx2%3DD_XmuM0pwpGBRjzzuxcrfTwS7kh02ghErJDOe4BexthXQ%40mail.gmail.com.