News for hackers. Stuff that matters.

mmcloughlin

Perhaps there is some evidence that people do get excited about free school lunches: Governor Tim Walz’s lunch policy in Minnesota has been a part of the buzz surrounding his recent Vice Presidential nomination.

https://www.cnbc.com/2024/08/19/universal-free-school-lunche...

Re:The Zen of Drinking Alone on Saturday January 15, 2022 @08:05PM (#29952233)
For me, Naltrexone was an incredible help in reducing cravings in the first few months. I came off it after around six months and no longer need it, though I think many people take it for much longer and there's not much downside to doing so.

I avoided AA due to the quasi-religious aspect, but Smart Recovery meetings helped me in the initial phase (https://www.smartrecovery.org).

I was always concerned about the longer term aspect of replacing alcohol in social settings, and there is still some awkwardness there but non-alcoholic beers have really helped for me. The scene has exploded in recent years and they're really quite good, see Athletic Brewing for some excellent craft non-alcoholic beers (https://athleticbrewing.com). In a social setting you could be drinking one and nobody would have to know. I don't hide it but I'm still glad to have something "special" to drink at an occasion. And I drink them alone too: they fill that role of something to drink when I want to relax, and I enjoy that placebo effect.

Great project and write-up. I'm reminded of a couple other projects.

MC Hammer project for LLVM tests round-trip properties of the ARM assembler. http://llvm.org/devmtg/2012-04-12/Slides/Richard_Barton.pdf

Sandsifter x86 fuzzer. https://github.com/xoreaxeaxeax/sandsifter https://youtu.be/KrksBdWcZgQ

Re:Present code with step-by-step highlights [slides] on Thursday April 11, 2019 @12:14PM (#19636135)
I implemented something like this in Python for my LaTeX/beamer presentation recently. For example, see this and the following slides:

https://speakerdeck.com/mmcloughlin/better-x86-assembly-gene...

The sample code is in a file with special comments at the end of each line specifying which slide numbers it should be revealed on as well as inline commentary to show to the right of the line. Syntax highlighting is provided by Pygments.

I was thinking about open sourcing it, it's actually only approx 200 lines of Python but I think it's quite effective.

Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @06:05PM (#18879331)
Oh cool, thanks for sharing that talk. I might try to submit an avo talk to a meetup, if anyone will have me :)
Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @04:45PM (#18878563)
Only a small number of instructions in Go assembly are architecture neutral.

avo currently implements the x86 subset of Go assembler. It's definitely possible to add support for additional architectures, but it may be a fairly significant project.

Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @04:43PM (#18878533)
Thanks :)

> Any chance of ARM/ARM64 support?

Yes multi-architecture support is definitely something I've had in mind. However I wanted to limit the scope for the initial version, so I could produce a result in a reasonable time and allow me to gauge interest.

> It would be super useful if you could generate the code to memory then execute it directly.

avo was inspired by PeachPy and asmjit, both of which can produce executable code directly. So implementing an assembler in avo is something I have had in the back of my mind. However it wasn't one of my primary goals.

The use case I initially had in mind is massively unrolled crypto routines, where there's a lot of assembly code required but not much going on conceptually. My AES-CTR mode CL (https://go-review.googlesource.com/c/go/+/136896) and meow hash port (https://github.com/mmcloughlin/meow) got me thinking in this direction.

Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @04:19PM (#18878302)
Yes! This tripped me up at one point. My comment says "Otherwise we could be in the bizarre special-case of 3-argument CMP instructions."

https://github.com/mmcloughlin/avo/blob/0e253b3753beb409b3dd...

It gets to the point where the only source of truth is the Go assembler itself. My test suite takes the avo instruction database and generates a massive assembly file with one line per instruction form, then passes this to `go tool asm`.

Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @04:12PM (#18878227)
Haha yes! PeachPy was written at Georgia Tech and avo was written in California.
Re:Avo: Better X86 Assembly Generation from Go on Thursday January 10, 2019 @03:15PM (#18877632)
avo author here. Yes PeachPy was the inspiration for this, as well as asmjit. Both mentioned in the credits:

https://github.com/mmcloughlin/avo#credits

PeachPy actually has Go output already, and Damian Gryski has used this to great effect:

https://github.com/mmcloughlin/avo/issues/40

Unfortunately because PeachPy wasn't initially written with Go in mind there are some rough edges and Go features it simply doesn't support. avo hopes to fill this gap for Go programmers.

Older »