HNHacker News
TopNewBestAskShowJobs

efferifick

123 karma · joined April 10, 2013

Compiler engineer.

You can find my website here: ceci-nest-pas.me

hackernews@ceci-nest-pas.me

submissionscomments
efferifick··on AMD Patent Reveals Hybrid CPU-FPGA Design That Could Be Enabled by Xilinx Tech
Not sure how realistic it would be, but I would like to see a RISC-V base core, and the FPGA implementing the extensions. Why? Because it would be cool! Also, I don't really see a use case except for debugging compilers supporting multiple RISC-V extensions and what not.
efferifick··on AMD Patent Reveals Hybrid CPU-FPGA Design That Could Be Enabled by Xilinx Tech
While sibling comments mention that it is probably wiser to learn digital logic before HDL (and I agree with them), I think it is important to also consider that there is now High Level Syntehesis where programming languages similar to C (e.g., OpenCL) can compile to VHDL. HLS may lower the barrier for programmers to take advantage of FPGAs. However, whether the design can compile to fit the constraints of the FPGA available is another question that I do not know the answer.
efferifick··on Ask HN: Favorite Podcast Episode of 2020?
Bianca Giaever is my favourite story teller. She made a mini series podcast called Constellation Prize for the Believer magazine this year. I want to say that my favourite episode is "My Year with Franz" where she spends a couple of years listening to Franz Wright's (a poet) recordings which he made in the last years of his life. It is very moving and sad story. However, I am not 100% sure that this qualifies as a 2020 release, since its a re-release of her work and the original was released on 2019.

However, Crossing Guard (first episode in Constellation Prize) is also very good. It is Bianca interviewing a crossing guard and it gets very existential. I listen to it when I feel lonely.

efferifick··on Ubuntu Groovy Gorilla adds Raspberry Pi as a “first class citizen”
A little bit off-topic, but Hardy Heron was my first Linux distro. For reference this was on 2008. One more release after Groovy Gorilla and the naming convention goes back to the letter H.

I'm really happy that Ubuntu is still around and that Canonical is offering support for installing Ubuntu on the raspberry pi. I think a lot of kids with access to a Raspberry Pi lying around will probably have fun just installing and trying out this distro.

efferifick··on Large single compilation-unit C programs (2006)
There's also https://github.com/intel/yarpgen which I haven't used. I believe there are a couple of others...
efferifick··on Italian Ruby
Thanks! I'll try to join their slack after work :)
efferifick··on Italian Ruby
Do you know how they would hash a recursive function? Or where I can learn about this? Thanks!

EDIT: I am asking more about the hashing function than about the language. Because if there is a recursive function, that means that one would need the hash of itself in order to compute its own hash. One can probably try to compute a hash iteratively until a fixed-point is achieved.

EDIT2: but... it is probably a bad idea to do that.

efferifick··on Show HN: Open AI's GPT-3 generates prose inspired by “Infinite Jest”
This is funny and also sad. I don't know if DFW would love it or hate it. Great art piece. I really value this work. Thanks for making this.
efferifick··on Show HN: 33% Memory Reduction by Reordering Struct Fields
I know the person who is working on an implementation of this in GCC. However, it is still early days and the implementation is not ready for public consumption. Other than that, I've only seen this transformation on academic papers.
efferifick··on Show HN: 33% Memory Reduction by Reordering Struct Fields
I might be biased because I'm currently working on this same optimization but for GCC. I think that it is more complicated than it seems. Defining the layout of a structure is normally done during parse time (at least in GCC). And one cannot know if it is safe to reorder fields all the way up until link time.

This means that a lot of optimizations and assumptions that were made might not longer be valid. For example, in GCC the results of the sizeof operator are evaluated at parse time. One might need to change these values link time. Otherwise statements like:

memset(&astruct, 0, sizeof(astruct));

will overwrite memory that is no longer part of the struct.

Furthermore, constant propagation might have propagated the value of a sizeof operator and it might have been folded into different arithmetic operations. This can be solved in different ways, but if the compiler was not built this way, it might take some time to implement. Also, all pointer arithmetic will need to be changed...

efferifick··on Show HN: 33% Memory Reduction by Reordering Struct Fields
Mmm... I might be able to provide some insight... For the C language it is not possible to reorder fields generally at compile time. This is because if a user defines a struct and the struct is passed to a library that was pre-compiled, then the library and your application hold a different representation for the struct.

You can at link-time be able to change some structure definitions if you know the structure definition is not escaping your application (i.e. it is not passed to a library). There are possibly other things that might hinder the reordering of the fields, for example casting or placing a structure in a union. If you are casting a structure to another, you might be expecting that the underlying memory to be represented in a specific way in order for the cast to make sense. The same thing happens when you place a struct in a union.

efferifick··on Ask HN: What are some free software tools you want?
I'm looking for source to source interprocedural C slicers. If anyone knows of any freely available let me know please. :)
efferifick··on Tiny C Compiler
"I also wondered if I can make a TCCPP until Iearnt not only C++ syntax is ambiguous (and so we need some form of context sensitivity)"

I believe a C parser would also need some form of context sensitivity. "T * x;" can be a declaration or a statement. However, C++'s syntax is larger than C's and I believe that there may be more cases where context sensitivity is needed to resolve ambiguities.

https://eli.thegreenplace.net/2007/11/24/the-context-sensiti...

efferifick··on Ask HN: Which tools have made you a much better programmer?
* fuzzers

https://blog.regehr.org/archives/1687

efferifick··on Stoke – A stochastic superoptimizer and program synthesizer
I guess it depends on the optimization function? However, I suspect to avoid loops there will be loop unrolling and to avoid interprocedural analyses (which I believe is beyond the scope of Stoke) it may use inlining, which may increase the size of the code.
efferifick··on X
Sigbovik is a joke journal. A very serious and very good joke journal.
efferifick··on X
There is something like this already and it is quite good. It is used for deobfuscating javascript [0][1].

[0] https://www.sri.inf.ethz.ch/research/plml [1] http://jsnice.org/

efferifick··on Ask HN: If you had a month of free time, what would you do?
one free month and money? => travel!

one free month and no money? => read!

efferifick··on Ask HN: What are some sabbatical programs for working software engineers?
Why don't you make your own curriculum? What do you want to learn?
efferifick··on Ask HN: What would you do if your income was taken care of?
I would probably go to art school.
efferifick··on Statistically rigorous Java performance evaluation
Yes, but this paper is old so they did the right thing by using SPECjvm98 at the time the paper was written.
efferifick··on What boredom does to you
If anyone is interested in boredom, here is a book that I found useful.

Peter Toohey. Boredom: A Lively History

efferifick··on Show HN: Rejection Conditioner for YC Applications
Reminds me of the Journal of Universal Rejection.

http://www.universalrejection.org/

efferifick··on Ask HN: What is your favorite CS paper?
Producing Wrong Data without Doing Anything Obviously Wrong.

Immediately useful for anyone measuring compiler transformations performance!

efferifick··on A supercompiler pass for Erlang
The Futamura projections are such a cool result of partial evaluation! Thanks for pointing it out, otherwise I would not have known about them.
efferifick··on An Average Guy Who Spent 6,000 Hours Trying to Be a Professional Golfer
I think you are missing the point of the parent post.

He is not stating that the 10,000 rule will make you a jack of all trades. He is saying that he was able to cut down the "10,000" hours to less because of his transferable skills. S/he might not be an expert in these transferable skills, but s/he might be an expert in his business which is sports science.

efferifick··on Ask HN: Can you recommend some 33c3 talks?
I liked and recommend "The Transhumanist Paradox"

https://media.ccc.de/v/33c3-8064-the_transhumanist_paradox

efferifick··on Open-sourcing DeepMind Lab
Also:

https://arxiv.org/abs/1606.04080

efferifick··on Bash Infinity: A standard library and a boilerplate framework for Bash
There is also m4sh which are just M4 macros that compile to portable bash scripts. Albeit it is not convenient to write in, and probably harder to avoid making mistakes.

[0] https://www.gnu.org/software/autoconf/manual/autoconf-2.62/h...

efferifick··on Ask HN: What small websites do you frequently use/visit?
McSweeney's is my favorite place on the internet!
← PreviousPage 2 of 3Next →