News for hackers. Stuff that matters.
Re:On Go by pjmlp on Sunday June 02, 2013 @08:58AM (#5808317)
It was never documented, but any long time Go user knows about it.

Looking at the code it seems it has been removed.

> ... I would certainly never enable such a thing in real code.

So I assume you don't do C or C++. :)

While I agree with you, there are certain cases where it might help. That is why most strong typed languages with native compilers allow to selectively disable bounds checking, since the Pascal/Modula-2 days.

I only support doing this if profiling proves it is really worth it, give the security issues.

Re:On Go by burntsushi on Sunday June 02, 2013 @12:49PM (#5809159)
I think it's still there.

    package main

    func main() {
        slice := []string{"first", "second", "third"}
        println(slice[1])
        slice = slice[0:2]
        println(slice[2])
    }
Compile with

    go build -gcflags -B wat.go
    ./wat
Output

    second
    third
Without the `-B` you'll get a runtime panic. I'm on Go 1.1. (Maybe it's removed in tip?)
Re:On Go by pjmlp on Sunday June 02, 2013 @02:09PM (#5809473)
Ah ok, I was trying to locate it via the browser.

Next time I better checkout and do a proper grep.

Re:On Go by nknighthb on Sunday June 02, 2013 @09:32AM (#5808429)
> So I assume you don't do C or C++. :)

If C had a simple universal switch for bounds checking, I'd turn it on everywhere and immediately revoke commit privileges for anyone on my team who turned it back off. But it doesn't, and necessarily can't, making your statement nothing more than an annoying exercise in wrongful pedantry. It is contextually obvious I was talking about Go code and/or languages/compilers with such a switch.

Re:On Go by pjmlp on Sunday June 02, 2013 @02:12PM (#5809491)
I was trying you out, because if you make such a statement then I am lead to believe you stay away from languages that don't provide control over bounds checking.