I'll add, too, that anyone who wants to try TLS 1.3 right now can do so with the latest source builds of the Caddy web server. We just merged support for TLS 1.3 a few minutes after the Go 1.12 release: https://github.com/mholt/caddy/pull/2399
If you have a domain name pointed at your machine:
$ caddy -host example.com
(Roughly equivalent to python -m SimpleHTTPServer but with HTTPS, and production-ready.)
I know and understand the philosophy behind limited exposure/customization of the handshake process. However, there is a lot of value in implementing TLS extensions, adding early data on client hello, etc. I saw [0] but didn't see any details. Is it possible/reasonable to extract some of the internals to /x/crypto/tls or similar? Or is it either too hard to maintain or is there just too much fear about misuse?
Is there any performance issue that we should be aware of when turning on TLS 1.3? Go's standard library has many assembly implementations (to leverage CPU special opcodes). What is the speed of the TLS 1.3 crypto stack in Go?
What's the plan for pairing based curves now that the Extended Tower Number Field Sieve has made BN256 unusable for many applications[1]? Do you plan on integrating BLS curves any time soon?
> libSystem is now used when making syscalls on Darwin, ensuring forward-compatibility with future versions of macOS and iOS. The switch to libSystem triggered additional App Store checks for private API usage. Since it is considered private, syscall.Getdirentries now always fails with ENOSYS on iOS.
Hooray! I'm surprised it took as long as it did, since IIRC this was something that broke constantly…
It appears to be ~3-4 ms faster when counting repositories like redis which is rather nice for me as a free speed boost. Probably related to the changes to GC listed here https://golang.org/doc/go1.12#runtime
I'm impressed every release by Go's GC improvements. IIRC, they started with a terrible conservative GC. It was slow and (particularly on 32-bit platforms) ineffective. But then they made it increasingly precise, then targeted 10 ms pause times, then sub-millisecond, and so on. All with far fewer knobs than the Oracle JVM.
I understand there's still a cost compared to non-GCed languages, but I think it's mostly RAM usage (perhaps affecting CPU cache effectiveness and thus efficiency) rather than tail latency.
Glad to see syscall/js is still seeing updates. This seems like a excellent chance to share server and client code by being able to cross compile to wasm.
Go team: please reduce the binary size of wasm files!
The large binary size is mainly due to the Go runtime being packed into the binary itself. You can compile with "-ldflags -s" to make it slightly smaller. But it will almost never be comparable to Rust/Emscripten binary sizes.
OTOH, there is a new project called TinyGo (https://tinygo.org) which generates LLVM byte code from Go. This allows a subset of the Go spec, sans any GC or runtime, and generates binaries comparable to Rust/Emscripten.
I was the one who converted Google's CLA system from "Please fax us this form" to a web form. At the time (2007, 2008?) I added all the fields from the fax template to the web form. But we dropped the phone number & physical address years ago. And they were optional even before that.
Nowadays we ask for your name, email address, and optional GitHub username.
To me it's a deeper issue that this and breaches the single responsibility principle.
fmt should only print, not manipulate the data it is asked to print.
I believe that the spec says that maps iterate over keys effectively at random and so that should be the result of any operation that iterates over keys.
Been meaning to make the dive into learning Go for a while now. My semester is finally slowing down so about to make the jump. I'll be doing a lot of digging on my own, but please link any resources that you feel were helpful for you.
Very happy to read about the improvements in releasing memory back to the OS. Hopefully this will help prevent our go apps in containers from getting OOM killed.
> A contribution to Go is made through a Google account [...].
Google accounts can either be Gmail e-mail accounts, G Suite organization accounts, or accounts associated with an external e-mail address. [...]
The fact that Go is mostly controlled by Google doesn't bother you, but that does?
(I consciously avoided getting a Gmail account for years until I bought an Android phone which requires such an account, so I understand where you're coming from but this issue seems meh to me.)
Sort of... it works with GoMobile but because it doesnt use LLVM there is no support for bitcode which means WatchOS and tvOS are off limits and maybe iOS someday.
This is a rather unique take on Go that I haven't seen before. A quick scan of your post history indicates you feel quite strongly (negatively) about Go. May I ask what inspired this particular take, and what language background you have?
[+] [-] FiloSottile|7 years ago|reply
I'd be happy to answer any questions about it, or about the rest of the Go cryptography libraries!
[+] [-] mholt|7 years ago|reply
If you have a domain name pointed at your machine:
(Roughly equivalent to python -m SimpleHTTPServer but with HTTPS, and production-ready.)Or if you just want to try things out:
[+] [-] tonymet|7 years ago|reply
https://www.cloudflare.com/learning-resources/tls-1-3/
[+] [-] crawshaw|7 years ago|reply
Is 0-RTT on the roadmap for Go 1.13?
[+] [-] kodablah|7 years ago|reply
0 - https://github.com/golang/go/issues/25807
[+] [-] giovannibajo1|7 years ago|reply
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] mspecter|7 years ago|reply
[1] see https://godoc.org/golang.org/x/crypto/bn256
[+] [-] lazard|7 years ago|reply
[+] [-] yesenadam|7 years ago|reply
[+] [-] networkimprov|7 years ago|reply
This affects several popular database libraries.
https://github.com/golang/go/issues/26650
[+] [-] saagarjha|7 years ago|reply
Hooray! I'm surprised it took as long as it did, since IIRC this was something that broke constantly…
[+] [-] weberc2|7 years ago|reply
[+] [-] boyter|7 years ago|reply
It appears to be ~3-4 ms faster when counting repositories like redis which is rather nice for me as a free speed boost. Probably related to the changes to GC listed here https://golang.org/doc/go1.12#runtime
[+] [-] scottlamb|7 years ago|reply
I understand there's still a cost compared to non-GCed languages, but I think it's mostly RAM usage (perhaps affecting CPU cache effectiveness and thus efficiency) rather than tail latency.
[+] [-] vanderZwan|7 years ago|reply
Nice! Out of curiosity: what is the total running time? Or in other words: what is the average performance improvement in percentages?
[+] [-] denormalfloat|7 years ago|reply
Go team: please reduce the binary size of wasm files!
[+] [-] agnivade|7 years ago|reply
OTOH, there is a new project called TinyGo (https://tinygo.org) which generates LLVM byte code from Go. This allows a subset of the Go spec, sans any GC or runtime, and generates binaries comparable to Rust/Emscripten.
[+] [-] 1_000_000|7 years ago|reply
[+] [-] bradfitz|7 years ago|reply
Nowadays we ask for your name, email address, and optional GitHub username.
[+] [-] atonse|7 years ago|reply
[+] [-] fastbmk|7 years ago|reply
[+] [-] bouncycastle|7 years ago|reply
[+] [-] jxub|7 years ago|reply
[+] [-] tapirl|7 years ago|reply
What not add a new format verb instead?
[+] [-] dilap|7 years ago|reply
[+] [-] dx034|7 years ago|reply
[+] [-] entity345|7 years ago|reply
fmt should only print, not manipulate the data it is asked to print.
I believe that the spec says that maps iterate over keys effectively at random and so that should be the result of any operation that iterates over keys.
[+] [-] bithavoc|7 years ago|reply
[+] [-] bradfitz|7 years ago|reply
[+] [-] mrweasel|7 years ago|reply
[+] [-] arleny|7 years ago|reply
[+] [-] clinta|7 years ago|reply
[+] [-] fastbmk|7 years ago|reply
[deleted]
[+] [-] sandov|7 years ago|reply
https://golang.org/doc/contribute.html
> A contribution to Go is made through a Google account [...]. Google accounts can either be Gmail e-mail accounts, G Suite organization accounts, or accounts associated with an external e-mail address. [...]
Does anybody else feel the same way?
[+] [-] wmf|7 years ago|reply
(I consciously avoided getting a Gmail account for years until I bought an Android phone which requires such an account, so I understand where you're coming from but this issue seems meh to me.)
[+] [-] FiloSottile|7 years ago|reply
[+] [-] lsllc|7 years ago|reply
[+] [-] tjpnz|7 years ago|reply
[+] [-] angott|7 years ago|reply
[+] [-] rhodysurf|7 years ago|reply
[+] [-] fastbmk|7 years ago|reply
[deleted]
[+] [-] networkimprov|7 years ago|reply
They've been preoccupied with "Error Values"
https://github.com/golang/go/issues/29934
[+] [-] doh|7 years ago|reply
[+] [-] fastbmk|7 years ago|reply
[deleted]
[+] [-] dang|7 years ago|reply
https://news.ycombinator.com/newsguidelines.html
[+] [-] Tecuane|7 years ago|reply
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] unknown|7 years ago|reply
[deleted]