zongor [comrade/them, he/him]

  • 2 Posts
  • 25 Comments
Joined 4 years ago
cake
Cake day: September 2nd, 2020

help-circle

  • Nix seemed more focused on marketing and cutting corners to make a working product faster

    Yes, this is a big issue in corporate development. It seems like management is in a constant state of barreling headfirst into a “silver bullet that fixes everything” instead of doing things the hard way (which in the long term is almost always better.

    expect to either package it yourself

    I have not maintained any packages before but I am very interested in learning how, I shall look into this.

    Shepherd for its init system

    I vaguely remember this was the originally used in Hurd? if so that is cool.

    https://toys.whereis.みんな/

    This is very cool!

    guix import

    This seems quite useful thanks for that.

    Setting up Emacs, a local SMTP server connected to your email for git, and a CLI password manager will probably be helpful.

    I have been wanting to set up upasfs this may be the push I need to finally get around to doing that.

    It appears Guix may be a good choice in the future but not quite yet, I will try installing it as a package manager and/or try it in a VM to start out with. Thanks for the info!












  • The header file was not originally made for the purpose it is used for today. In previous languages (like Fortran or COBOL) they had a preprocessor which was used for defining constants and macros and the like. The preprocessor is like a glorified cut and paste machine, it can’t do any complex processing by itself. (In fact the C preprocessor is not even Turing complete although it is close)

    The reason why the headers are included at the top is also for historical reasons. In single pass compilers a file is read line by line and parsed into an Abstract Syntax Tree; the function has to be declared before it can be used but sometimes it may be declared in a different file or later in the file. So it’s convenient to put that information in the header.

    Many modern languages use compilers that take multiple passes to generate the code. They will also use internal databases for the objects and their prototypes like a v-table to store data about the program to do optimizations and the like.

    Languages like rust, zig, and go use modules where they have namespaces where specific definitions of code are declared and able to be used later. They also had a series of built in tools like dynamically managing dependencies, linking, etc.

    For most languages they also have a Foreign Function Interface which allows them to call functions written in a different languages (like C shared libraries). All of the managers you mentioned have great FFI functionality and work well with C shared libraries. You can often use C header files in these since they give the function prototype without needing to read the whole source code and find all those definitions (often if the library is proprietary you will only have access to the shared library and the header files).