Hacker Newsnew | past | comments | ask | show | jobs | submit | oflebbe's commentslogin

Actually the author is building onto my suggestion https://github.com/soasis/idk/pull/17/files which I created several years ago, but adapted a bit too fast while submitting. And yes it looks very similar to GNU nested functions, since I started tinkering with these first.

I am really not sure if all these observations mentioned in the article are 100% correct, though.

First : Code seems to be compiled with clang. On Linux with gcc the native function one is way faster than the clang one.

Second: The author does run the code on ARM64/MacOS .

At least on my ryzen CPU on Linux with gcc the "normal C code" is way faster than anything else. Not that we do not need to thing about "closure" type functionality, but one should be careful to extrapolate implementations from one compiler on one platform to the rest of the pack.

Regarding N3654 I am not sure how to benchmark it here, since C could potentially use __builtin_call_with_static_chain , but I am not sure how to write the function to use the chain for accessing the variables.

I tried to estimate N3654 it by using "tinygo" which is AFAIK using the usual Calling ABI, but it was a factor of two slower than clang. Even "go" with its very specific ABI is still much slower. I discovered this isn't representative since runtime calling costs had been totally shadowed by costs of allocations.

Even the rust example I am usually using http://www.reddit.com/r/rust/comments/2t80mw/the_man_or_boy_... is much slower than anything else, presumably because of the "Cell" needed

TLDR: This micro benchmark might be misleading


See my other comment in this thread with my preliminary benchmarking results. I have a patched GCC with two new builtins __builtin_static_chain and __builtin_nested_code (needs a better name), that give you the static chain pointer and the code pointer without creating a trampoline. Then I put both into a structure to simulate a wide pointer. Later I call it with __builtin_call_with_static_chain.

A trick one can do is to let it create the trampoline and then read off the two pointer from the position in the code where it is stored. Not portable and you still have the overhead for creating the trampoline, but you do not need the executable stack anymore.


I had the chance to test Moment while my Widex Evoke 440 had been in repair. They are indeed a lot better as the Evoke, sounding wise, while having only mild hearing loss. But they are still only MFI (can only connect to an iphone) and since I am migrating away from Apples ecosystem this will be a blocker.


You can sideload apps in ios too, but you may not run it.


On Android you can both install and run apps over adb. The linked article explains:

> Participating in developer verification will not affect your experience in Android Studio, the official IDE for Android app development. You will continue to be able to build and run an app even if your identity is not verified. Android Studio is unaffected because deployments performed with adb, which Android Studio uses behind the scenes to push builds to devices, is unaffected. You can continue to develop, debug, and test your app locally by deploying to both emulators and physical devices, just as you do now.


I think I will love FORTRAN again


I played with fyne some months ago. Binaries are gigantic and what does drive me crazy it is consuming cpu all the time even if it should stay idle


Any known CPU usage bugs have been resolved. Last time it was the cursor animation but we fixed that too. I can now compare our apps to OS provided native equivalents (we're not there yet but it is getting close!)


OpenMP to the rescue


I know about systems who had two types of serial numbers which ought to be the same, but weren‘t because they had been programmed at different eol stages, when daylight savings time kicked in. One of the system run in utc the other in local time. Date was part of the serial.


Parallel production lines with overlapping sequences also cause this, especially in aerospace- it is widely known that Airbus does it, for example.


Very interesting thread.

Noob me would have guessed the "source of truth" would be whatever identifier(s) is recorded by the insurance company. Or maybe the service and maintenance agreements.

Failing that, I would have guessed some kind of (natural) compound key derived from the transfer(s) of ownership (Airplane Purchase Agreement? Bill of Sale?) noting the unique major components like airframe, interior, and engines? And maybe wings?

Sounds like a fun problem. Thanks for sharing.


No Teams meeting with video on Linux any more.


this!


Wait what? This is an blogpost from Chen? I did remember reading better quality content before. This is the usual nightmare dealing with larger C++ codebase.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: