bugfix-66
Everybody in ML (e.g., me) knows that.
But that's what we're seeing.
I'm saying: "Here's a test outside the training set."
We're practically neighbors, and I am looking forward to the day we meet face-to-face.
It will be an heated discussion and I expect a sincere apology from you for your outrageous behavior.
The Art of Computer Programming, Volume 4B is dazzling. It's like a guide to expressing (in non-obvious ways) all kinds of problems as, e.g., exact cover, and using wicked tight little general-purpose solvers to solve them.
If you want a peek, watch Knuth's 2018 lecture on Dancing Links exact cover:
As usual, it seems like all the best gems are hidden away in the problem sets, where most people won't find them.
Put your query into Google and see how many thousands of answers appear.
Your tests are in the training set.
The language model was trained on it.
Copilot can solve a few, mainly just simple matrix multiplication and radix sorting that appear dozens of times in its training set.
Can it understand the Harwell-Boeing sparse matrix format?
https://bugfix-66.com/cb75bc9d9f331733904d9c4a2a7782f98fb058...
BUGFIX-66 is a fair test. Give it something quite straightforward that mostly wasn't in its training set (except some of the puzzles near the beginning) and make sure a bullshit answer is marked wrong.
So, how does it do?
Now tell me, how many of the BUGFIX-66 problems can it solve?
Copilot can solve a few of the simple ones at the beginning (simple matrix multiplication, simple radix sort, etc., that appear often in the training data, and some of the harder ones whose solution appears on GitHub, e.g., the uncorrected prediction/correction compressor/decompressor whose solutions were front-page on Hacker News).
But as you go down the list, into material outside the training set, the language model won't be able to solve it.
Try it. Paste the tile, the introductory text, and the unfixed code, and see whether the omnipotent AI can solve these (quite straightforward) problems. For how many does it need the hint?
But it's hard to compete with djb's vectorized sorting networks: https://sorting.cr.yp.to/
For example, substitute "The Burrows-Wheeler Inverse Transform" for "bubble sort".
http://tug.ctan.org/info/tex-nutshell/tex-nutshell.pdf
Superficially, square brackets instead of curly brackets. The regex for the id is also wrong.
A little deeper: it can't handle macro calls within the macro arguments (nesting).
The idea is that you read and understand a small piece of code (full of useful techniques) and make a small change to demonstrate understanding.
Games that require you to write the code are limited to rehashing the same old tired algorithms... reverse a string and other sequence techniques, edit distance and dp variants, optimization by binary search and evaluation, etc., the standard leetcode stuff. Basically, useless wankery you will never use. The competitive programming standards.
If you don't have to write it, just understand it, the game can cover some very interesting new algorithmic terrain. It becomes part book, part game. Like Hacker's Delight: The Game.
go build -gcflags=-B
and see if it helps. Generally the assembly looks better, but it doesn't really run faster on a modern chip.Do your own test, and keep the results in mind next time somebody on Hacker News dismisses Go because of the "overwhelming cost of bounds checking".
https://news.ycombinator.com/item?id=33215740
This question got voted down everywhere I discussed it on Hacker News, but somehow the submission itself got 11 points. Apparently, it is an offensive question to some silent, pro-censorship part of the population here. Today I'll ask it again, and I hope somebody will respond in a useful way:
QUESTION:
I write software for parallel processors at a hardware/software company you've heard of. I am located in California but many of my coworkers are located in China (roughly half the team).
We are directly affected by the American government's severe new CPU/GPU export restrictions.
It seems to me that America is preparing for a period of cold war, or worse.
It's time to start thinking about contributing to the American war effort by writing high-performance military computing systems.
For example, SIMD particle filters for hypersonic weapons, or low-latency convolutional neural networks for battlefield devices.
So, Hacker News: What company is the best place to do this work? What team?
Does anyone here already work in this field?
Fixed point multiply: a*m times b*m yields (a*b)*m = a*m * b*m / m
In the above, m is the fixed point 1. For example, 65536 for a 16.16 fixed point.
The instruction allows you to multiply a*m by b*m and then divide by m, renormalizing your fixed point result.
Chuck Moore thinks nobody needs floating point because fixed point is sufficient!
https://www.greenarraychips.com/home/documents/greg/PB003-11...
Here's a clear description of what each instruction does:
https://colorforth.github.io/forth.html
Hilariously, the system has no logical OR, only AND and XOR and NOT, because "Inclusive-or is rarely needed."
This system was designed by Chuck Moore, father of Forth. Here is an entertaining video of him explaining the F18A stack machine and programming system:
This is such a simple machine. I am planning to make a tiny emulator for my site. One could probably write an emulator in 80 lines of Go (one goroutine for each of the 144 cores).
Show HN: Alan Mycroft's classic SWAR byte search technique
https://research.swtch.com/gorace
The code in Russ Cox's article does not race with the modern Go compiler.
But it's simple to fix that. Given arbitrary memory access within a Go process under Linux, can you see how to terminate the process and return 0 to the system?
Like calling os.Exit(0) when package os is unavailable.
Show HN: Hack This Site
https://research.swtch.com/gorace
The code in the article does not race with the modern Go compiler's improved optimizer.
Circumventing Go's memory safety: Using a race to read/write arbitrary addresses
https://bugfix-66.com/2c1df73cab89ec76d6fa10caf8a27c1fbe4d16...
and the decoder:
https://bugfix-66.com/1efa93a5eb0cc12b3de7cd1dab8e471a2cc95e...
The common varint, which you see in applications everywhere (e.g., git), is just base-128 version of the above general scheme!
But base-32 or base-8 or base-64 varints can be a big win for some purposes. Remove the zig-zag encoding if negative integers don't occur.
If that confused you, or you consider it "obnoxious", then you are not the target audience.
That's ok. Hacker News is not 100% hackers!
Here was my attempt to write a clause prohibiting language model training/inference:
https://bugfix-66.com/7a82559a13b39c7fa404320c14f47ce0c304fa...
3. Use in source or binary form for the construction or operation
of predictive software generation systems is prohibited.
How does the Humans Only Clause fix the flaws in my attempt?The Humans Only Clause adds an explicit licensing fee, and what else?
How is the clause worded?