Preferences

malkia
Joined 4,667 karma

  1. For me, avoiding heap, or rather avoiding gc came when I was working (at work) on backend and web server using Java, and there was default rule for our code that if gc takes more than 1% (I don't remember the exact value) then the server gets restarted.

    Coming (back then) from C/C++ gamedev - I was puzzled, then I understood the mantra - it's better for the process to die fast, instead of being pegged by GC and not answering to the client.

    Then we started looking what made it use GC so much.

    I guess it might be similar to Go - in the past I've seen some projects using a "baloon" - to circumvent Go's GC heuristic - e.g. if you blow this dummy baloon that takes half of your memory GC might not kick so much... Something like this... Then again obviously bad solution long term

  2. Welcome to starlark :)
  3. Yeah, what you want to know is which change caused the slowdown, or maybe improved the performance and reasonable metric behind it (for example frame-rate for a game, or something like this).
  4. Good points there - Thanks @spockz!
  5. Sorry, I'm coming from C++-ish background - can anyone explain what's going on :)
  6. Benchmarking requires a bit of different setup than the rest of the testing, especially if you want down to the ms timings.

    We have continous benchmarking of one of our tools, it's written in C++, and to get "same" results everytime we launch it on the same machine. This is far from ideal, but otherwise there be either noisy neighbours, pesky host (if it's vm), etc. etc.

    One idea that we thought was what if we can run the same test on the same machine several times, and check older/newer code (or ideally through switches), and this could work for some codepaths, but not for really continous checkins.

    Just wondering what folks do. I can assume what, but there is always something hidden, not well known.

  7. Lua, by virtue of being thread oblivious - may work, but under the curtain (calling "C" code) there is nothing to protect you against thread-safety related issues.

    Python "deals" with it

    All three options though are full blown Turing-complete languages - e.g. they can loop forever. You don't want that in CI, or a build system.

    Starlark is concurrency safe. Top-level global values, once initialized, are frozen (read-only), hence they can be safely accessed by multiple threads. There are no "global" effects (AFAIK), apart from actually doing I/O by calling actions (processes, etc.)

    Blaze (bazel's parent) used Python, and had these non-hermetic issues, because you can do anything with Python (actually "Lua" might be easier to sandbox, but maybe python too - not sure).

    Point is, starlark is well suited for this job. It wasn't - "Hey let's design this new language". It's really Python but with limited powers for a reason, to enable other unlimited powers (concurrency, avoid recursion, etc).

  8. Thank you!!!
  9. If Fil-C requires complete recompile of ".c" code how does it deal with calls to the OS - Does it rewrap them (like Go?). I'm bit uncertain here...
  10. Is there a niche "endian" humor about this :) - e.g. is this the little endian, or big endian, or "middle" endian of "Rock Paper Scissors" - excuse my really poor attempt at this.
  11. My grandfather, was a chess-meister, not of huge proportions, but well known in our city. Chess was almost like a diseases (he did not taught my father and his brother in the game, knowing the pain and suffering this would bring later in life)... So one thing he did when he was back home from the local chess club, is to play against himself - replaying old moves, or by the book, or something new, just heard. He would also this with other games - like bridge (or similar). He was truly a genius in his own, and I'm sure he had good time, but he understood really well that it was not good habit long term.

    Some people find comfort this way, sometimes it's the only way to get through

  12. It depends where you work. In gaming, the best programmers I know might not even touch the command-line / Linux, and their "life" depens on Visual Studio... Why? Because the eco-system around Visual Studio / Windows and how game console devkits work is pretty much tied - while Playstation is some kind of BSD, and maybe Nintendo - all their proper SDKs are just for Windows and tied around Visual Studio (there are some studios that are the exceptions, but rare).

    I'm sure other industries would have their similar examples. And then the best folks in my direct team (infra), much smaller - are the command-line, Linux/docker/etc. guys that use mostly VSCode.

  13. I've been using LLMs as calculators for words, like they can summarize, spot, correct, but often can be wrong about this - especially when I have to touch language I haven't used in a while (Python, Powershell, Rust as recent examples), or sub-system (SuperPrefetch on WIndows, Or why audio is dropping on coworker's machines when they run some of the tools, and like this... don't ask me why), and all kinds of obscure subjects (where I'm sure experts exists, but when you need them they are not easy (as in "nearby") to reach for, and even then might not help)

    But now my grain of salt has increased - it's still helpful, but much like a real calculator - there is limit (in precision), and what it can do.

    For one it still can't make good jokes :) (my litmus test)

  14. I'll need to read more about this ("Dasein") as I was not aware of it. Yesterday our "adoptive" family had a very nice Thanksgiving, and we were considered youngesters (close to our 50s) among our hosts & guests and this came multiple times when we were discussing AI among many other things - "The joy of work", the "human touch", etc. I usually don't fall for these "nice feel" talks, but now that you mentioned this it hit me. What would I do if something like AI completely replace me (if ever).

    Thank you, and sorry my thoughts are all over...

  15. There is one paragraph showing when 4kb pages are used, and 4 level deep directories. (PML4 -> PDP ->
  16. In case someone is curious about how the 48-bit virtual space is split here is good info - https://wiki.osdev.org/Page_Tables#Long_mode_(64-bit)_page_m...
  17. Yes, at Google, roughtly 10 years ago - great experience. Recently with my own small projects, and on Windows (where it lacks the same charm... yet - but eventually!)

    But yes, I worked - mainly Java (back then) with GWT, some Python, Sawzall, R, some other internal langs.

  18. Not a financial person by any means, but doesn't the Black Swan Theory basically disproves such methods due to rarity of an event that might have huge impact without something to predict (in the past) that it might happen, or even if it can be predicted - the impact cannot?

    For example: Chernobyl, COVID, 2008 financial crisis and even 9/11

  19. With bazel/buck/pants/etc won't be problem for other major languages.
  20. Please work on decreasing the binary size - it's whopping 400mb!

This user hasn’t submitted anything.