Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
rsc
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
14 ms
·
121.
▲
by
rsc
5y ago
We had lots of web sites, and it was confusing. Now we have one.
122.
▲
by
rsc
5y ago
This is a remarkably flamey summary. I would have expected something more balanced from you. To be very clear, Google did not buy godoc.org at all. The maintainer of godoc.org tired of taking care of it and approached us about taking it ove
123.
▲
by
rsc
5y ago
This is a strange comment to make on an article about go.dev, not pkg.go.dev.
124.
▲
by
rsc
5y ago
I had not looked at the Promising Semantics paper of 2017. Thank you for the reference. That said, what I have learned from watching this space for a decade is that even formal proofs are no match for the complexity of this general problem.
125.
▲
by
rsc
5y ago
From the start we've been building the language we want to use, ourselves. And we do use it and are happy to use it. "You're too dumb" is absolutely not our attitude toward Go programmers. I would find that offensive to
126.
▲
by
rsc
5y ago
Keep reading?
127.
▲
by
rsc
5y ago
If "not even more than a handful of programmers" understand something, then it's objectively wrong to refer to all programmers - approximately all programmers - as "dilletantes". Also, maybe you are different, but I
128.
▲
by
rsc
5y ago
https://research.swtch.com/gorace
129.
▲
by
rsc
5y ago
ARMv7 or earlier it appears. On ARMv8 with direct hw support for SC atomics, the SC atomics are the suggested implementation of acq/rel too. See the ARMv8 section of https://www.cl.cam.ac.uk/~pes20/cpp/cpp0xma
130.
▲
by
rsc
5y ago
That is an amazing thread. The fact that C++ apparently allows optimizing #include <stdio.h> int stop = 1; void maybeStop() { if(stop) for(;;); } int main() { printf(&q
131.
▲
by
rsc
5y ago
Thanks for the GPU insights and links (and the paper link below)! I based my claim about Rust from https://doc.rust-lang.org/nomicon/atomics.html . ("Rust pretty blatantly just inherits the memory model for atomics
132.
▲
by
rsc
5y ago
In addition to the title (why mention "Go" if it was not a critique of Go?), you also wrote in bold: - "These Go executable files are rather... bloated." - "70% of a couple hundred megabytes are copied around for no
133.
▲
by
rsc
5y ago
The article has been updated to avoid calling the bytes "not useful" and to address the narrow, specific points I raised, but it is still generally suspect. Over on Lobsters, zeebo took the time (thanks!) to build the same version
134.
▲
by
rsc
5y ago
It's reasonably easy for a specific Go release, but the details can and often do change from release to release. At some point we may write a more detailed, general-purpose binary size analysis tool that could dump JSON for bloaty to i
135.
▲
by
rsc
5y ago
Another thing I noticed in the revised blog post on a second skim, regarding this claim: > Every time, 70% of a couple hundred megabytes are copied around for no good reason and someone needs to pay ingress/egress networking costs f
136.
▲
by
rsc
5y ago
You can see the true size of the Go pclntab in ELF binaries using "readelf -S" and in Mac binaries using "otool -l". Its not zero. One thing that did change from Go 1.15 to Go 1.16 is that we broke up the pclntab into a
137.
▲
by
rsc
5y ago
Maybe another day I will take the time to write a full-length blog post examining the bytes in a Go binary. Today I have other work planned and still intend to do it. My points today are only that: 1. Go binary size has not gotten dramatica
138.
▲
by
rsc
5y ago
> Look you can claim that "having the necessary metadata for garbage collection and reflection in a statically-compiled language takes up a significant amount of space" but without clear evidence of how much space that is, with
139.
▲
by
rsc
5y ago
> For all we know, the go linker could be embedding random data. I do know, and it is not.
140.
▲
by
rsc
5y ago
An easily obtained apples-to-apples¹ table: $ for i in $(seq 3 16); do curl -sLo go1.$i.tgz https://golang.org/dl/go1.$i.linux-amd64.tar.gz tar xzf go1.$i.tgz go/bin/gofmt size=$(l
141.
▲
by
rsc
5y ago
This article is full of misinformation. Just a few representative things: - The expansion of pclntab in Go 1.2 dramatically improved startup time and reduced memory footprint, by letting the OS demand-page this critical table that is used a
142.
▲
by
rsc
6y ago
If you can indulge a non-Rust point of view, if I'd been faced with this design problem, I think I would have put a "this is a rodata-backed string" bit into String, and then the representation would be {ptr, len, rodat
143.
▲
by
rsc
6y ago
This is like saying that variable name scoping is a semantic convention on top of the C language grammar and that a lexer can't really implement it. In the case of C, it turns out that the lexer must implement it. In the case of XML,
144.
▲
by
rsc
6y ago
In some languages unbounded parser lookahead is enough. But parser lookahead does not solve the ambiguous Go example given in the mail. Only type information would.
145.
▲
by
rsc
6y ago
It is solved by doing unbounded parser look-ahead (if you need that) or by requiring that all tools have full type information to understand programs (if you need that). It is definitely better for tooling not to need either, both for human
146.
▲
by
rsc
6y ago
Is it an unfashionable statement now? The vast majority of the world's programs are written in procedural languages, and that situation does not look likely to change for the foreseeable future.
147.
▲
by
rsc
6y ago
I spoke to Rob shortly after he wrote this code (a few weeks ago). He said he had been wanting to do some coding over the weekend and pulled his copy of the LISP 1.5 Programmer's Manual - which he bought long ago, in grad school I thin
148.
▲
How Google Code Search Worked (2012)
(swtch.com)
168 points
by
rsc
7y ago
|
43 comments
149.
▲
by
rsc
7y ago
I really like rget, btw. I posted a trivial little command-line demo of a client and server for some others who were thinking about a transparency tool. It implements the cacheable GET API we designed for the checksum database but obviously
150.
▲
by
rsc
7y ago
In a security-critical context, I would much rather use a format where every byte is specified than delegate to something with as much flexibility as JSON. I mean, I guess we could have used a JSON object like {"Msg": "te
More ›