Live data from Hacker News

A Foray into Go Assembly Programming

blog.sgmansfield.com

1–10 of 21 posts

Re: A Foray into Go Assembly Programming

#2
Excellent read about Go Assembly and how to use it. I'd love to see more on this, especially since assembly isn't something that often used, but after reading your post I can appreciate the overhead of having to maintain it in the future.

Thank you for the time put in the post about this.

Re: A Foray into Go Assembly Programming

#4
post #3

Wait, so the Go assembler allows generating invalid opcodes? Any way of using a more normal assembler with a non-GNU Go compiler?

This was probably not explained well. The compilation failed with an error saying that I was basically trying to do something that was not allowed.

For your second question: I don't believe there is a way to use a separate assembler.

Re: A Foray into Go Assembly Programming

#7
Here's a good talk about the Go assembler backend: https://www.youtube.com/watch?v=KINIAgRpkDA

Spoiler: they're nearly to the point (maybe now they've achieved it fully) of autogenerating a new language backend from ISA documentation PDFs! Bring that up next time someone complains about Go not using LLVM.

Re: A Foray into Go Assembly Programming

#8
post #5

FYI, blog layout breaks down completely when trying to zoom text on an iPad, making it impossible to read.

Thanks for letting me know, I'll see if I can fix it. If I could trouble you to do so, can you provide a screenshot?

I'm not the OP, but I have an iPad too, and I can provide screenshots.

http://instantshare.virtivia.com:27080/1eikl92n5jtyc.PNG - default view

http://instantshare.virtivia.com:27080/o1wn6nbthvuu.PNG - after zooming in unsuccessfully, OR just scrolling to the right

http://instantshare.virtivia.com:27080/eiw3z2u1n52h.PNG - fully zoomed out

http://instantshare.virtivia.com:27080/1jsmbx8km815h.PNG - the culprit causing this, a long URL which isn't being wrapped by your CSS rules

To be honest, the same issue happens on desktop browsers, it's just not as noticeable because the default zoom kinda matches what you'd expect. But you can still scroll to the side, in a desktop browser. See:

http://instantshare.virtivia.com:27080/b69zdjyzbvfo.png

I think the CSS fix can be something like this:

    word-wrap: break-word;
http://instantshare.virtivia.com:27080/1l8rbeisu9a2a.png

However, different browsers behave differently™, so you may need to also add:

    word-wrap: break-word;
    white-space: pre-wrap;
To make it work in Firefox (but you might need to adjust other things, also play with word-break CSS property, and test in all browsers). I've dealt with this previously at https://github.com/shurcooL/play/issues/4 and other places that deal with displaying user generated content.

Re: A Foray into Go Assembly Programming

#9
post #7

Here's a good talk about the Go assembler backend: https://www.youtube.com/watch?v=KINIAgRpkDA Spoiler: they're nearly to the point (maybe now they've achieved it fully) of autogenerating a new language backend from ISA documentation PDFs! Bring that up next time someone complains about Go not using LLVM.

Slides: https://talks.golang.org/2016/asm.slide

Re: A Foray into Go Assembly Programming

#10
PeachPy, an x86-64 assembler in Python, is often used to target Golang assembler without dealing with its weird syntax. PeachPy uses Intel assembly syntax, but can generate assembly listing for Golang toolchain as its output. Damian Gryski wrote a tutorial about using PeachPy for Golang assembly: https://blog.gopheracademy.com/advent-2016/peachpy/

Disclosure: I'm the author of PeachPy

Post reply on HN