Avsnitt

  • Daniel Firth
    Horizon Haskell

    IOHK

    Glasgow Haskell Compiler (GHC)

    https://hackage.haskell.org/package/base
    https://hackage.haskell.org/package/bytestring
    https://hackage.haskell.org/package/template-haskell

    The Haskell Tool Stack
    Stackage
    Nixpkgs Haskell

    The Python Package Index (PyPI)

    ghc-devs mailing list thread about reinstallable base

    The Dhall configuration language

    https://hackage.haskell.org/package/dhall
    https://hackage.haskell.org/package/hnix

    https://hackage.haskell.org/package/aeson

    Pattern: every file is a flake-parts module
    flake-parts
    A repo in which the pattern is explained is demonstrated

    Generated chapters

    00:00 Introduction
    01:41 Motivation Behind Horizon Haskell
    02:35 Understanding GHC and Haskell Code Compatibility
    05:06 Breaking Changes in GHC
    06:27 Maintaining Backwards Compatibility
    13:01 Horizon Haskell's Role in Package Management
    18:57 Challenges with Nixpkgs
    19:23 Future Improvements for Haskell Compatibility
    20:34 The Philosophy of Breaking Changes
    22:38 Overview of Horizon Haskell's Functionality
    30:38 Introduction to Horizon Haskell and Its Toolkit
    34:35 Building Haskell Libraries with Horizon Haskell
    37:55 Understanding Horizon Package Sets
    40:16 Managing Package Compatibility and Upgrades
    44:44 Patching and Upstream Contributions
    51:21 Future Developments and User Engagement

  • https://nix.dev/manual/nix/2.28/release-notes/rl-2.27
    https://nix.dev/manual/nix/2.28/release-notes/rl-2.28

    https://snix.dev/
    https://github.com/NixOS/rfcs/blob/master/rfcs/0132-meson-builds-nix.md

    https://fzakaria.com/2025/03/10/an-early-look-at-nix-dynamic-derivations
    https://fzakaria.com/2025/03/11/nix-dynamic-derivations-a-practical-application
    https://fzakaria.com/2025/03/12/nix-dynamic-derivations-a-lang2nix-practicum

    https://discourse.nixos.org/t/nix-ninja-ninja-compatible-incremental-build-system-for-nix/62594?u=mightyiam

    https://mesonbuild.com/
    https://cmake.org/
    https://ninja-build.org/
    https://bazel.build/
    https://buck2.build/

    Chapters (generated)

    00:00 Introduction
    01:26 Nix File Formatting
    02:38 Packaging Improvements and Granularity
    05:27 Development Shell and Build Process
    06:32 Error Message Improvements
    09:21 Hydra Code Simplification
    13:00 Bug Fixes and Maintenance
    17:25 New Features in Flakes
    21:32 Git LFS Support and Fetching Mechanisms
    24:09 Change Root Store Enhancements
    28:10 --out-link flag for Prefetch Command
    30:13 Understanding File Descriptors and Process Management
    31:59 BLAKE3 Hash Support and Its Implications
    34:03 Release 2.27.0: Infrastructure Overhaul and Changes
    35:47 C++ API Rework and Its Impact
    38:25 Stability and Breaking Changes in Nix
    42:34 Downstream Project Involvement and Ecosystem Participation
    50:03 C API Development and Global Variables
    52:32 Future Directions: Dynamic Derivations and Ecosystem Growth

  • Saknas det avsnitt?

    Klicka här för att uppdatera flödet manuellt.

  • Summary (generated)

    In this conversation, Shahar "Dawn" Or interviews Farid Zakaria, a software engineer and PhD candidate, about his experiences with Nix, a powerful tool for reproducible software development. Farid shares his journey of learning Nix, its infectious nature, and its application in enterprise environments. He discusses the concept of innovation tokens, the challenges of teaching Nix, and how it has influenced his PhD research. The conversation also delves into dynamic linking, performance improvements, and the potential of Nix as a research platform. In this conversation, Farid Zakaria discusses the challenges and innovations in software performance, particularly focusing on application start-up times and the implications of dynamic versus static linking. He introduces the concept of stable linking, which aims to enhance software responsiveness and security while addressing historical decisions in software development. The discussion also touches on the potential for broader applications beyond C/C++, the importance of auditing in software, and the cultural shifts needed in the software development community to adopt these innovations.

    Takeaways (generated)

    Nix empowers reproducible software development.
    The journey to learning Nix can be challenging but rewarding.
    Nix is increasingly being adopted in enterprise environments.
    Innovation tokens are crucial for evaluating new technologies.
    Teaching Nix effectively requires understanding its practical applications.
    Nix can significantly improve development environments.
    Dynamic linking presents unique challenges that Nix can address.
    Nix allows for performance optimizations in software applications.
    Nix serves as a valuable research platform for PhD candidates.
    The community around Nix is diverse and supportive.
    Application start-up times can be significantly improved with optimization techniques.
    Reducing the number of symbols in applications can lead to faster performance.
    Stable linking offers a way to enhance software security and performance.
    Dynamic linking has historical roots in resource constraints and code reuse.
    The future of software may see faster responsiveness across all applications.
    Auditing software for compatibility and security is crucial in modern development.
    Compiler innovations can lead to substantial speed improvements in software builds.
    C and C++ are not the only languages that can benefit from these linking techniques.
    Cultural shifts in the software community are necessary for adopting new practices.
    Practical implementation of stable linking could revolutionize how software is built and run.

    Chapters (generated)

    00:00 Introduction and Background
    02:14 Exploring Nix and Its Community
    05:00 The Transition from Hobbyist to Enterprise
    06:47 Nix's Infectious Nature and Deployment Challenges
    09:18 The Appeal of Nix for Development Environments
    11:48 Innovation Tokens and Nix's Value Proposition
    13:57 Bringing Nix to Looker and Google
    15:39 Teaching Nix and Overcoming Adoption Hurdles
    18:33 The Role of Nix in PhD Research
    21:04 Dynamic Linking and Performance Optimization
    23:41 Benchmarking and Results
    26:19 Conclusion and Future Directions
    48:14 The Impact of Speed on Software Development
    55:34 The Future of Dynamic Linking and Its Implications
    58:49 Stable Linking: A New Paradigm
    01:05:04 Revisiting the Rationale Behind Dynamic Linking
    01:11:15 Implementing Stable Linking in Nixpkgs


    https://fzakaria.com/

    https://www.confluent.io/
    https://kafka.apache.org/
    https://bazel.build/
    https://www.ucsc.edu/
    https://fulltimenix.com/episodes/domen-kozar
    https://fulltimenix.com/episodes/jonathan-ringer
    https://edolstra.github.io/pubs/phd-thesis.pdf
    https://cloud.google.com/looker

    https://www.youtube.com/watch?v=HGEY6ABQUBw
    https://www.youtube.com/watch?v=GkgsFbwYdYA
    https://www.youtube.com/watch?v=HZKFe4mCkr4
    https://www.youtube.com/watch?v=gQstiX7H8MQ&t=183s

    https://spack.io/
    https://www.debian.org/
    https://fedoraproject.org/
    “apt-get mindset”
    https://brew.sh/
    https://nixos.org/manual/nixpkgs/unstable/#haskell
    https://nixos.org/manual/nixpkgs/unstable/#python
    https://man7.org/linux/man-pages/man8/ld.so.8.html
    https://github.com/nix-community/nix-ld
    https://supercomputing.org/

    https://github.com/fzakaria/shrinkwrap
    https://github.com/NixOS/nixpkgs/pull/207061

    https://arxiv.org/abs/2501.06716

    How To Write Shared Libraries by Ulrich Drepper

    https://en.wikipedia.org/wiki/Address_space_layout_randomization
    https://en.wikipedia.org/wiki/Global_Offset_Table

    https://clang.llvm.org/
    https://www.openoffice.org/
    https://en.wikipedia.org/wiki/Network_File_System
    https://en.wikipedia.org/wiki/Epyc
    https://en.wikipedia.org/wiki/NVM_Express

    https://musl.libc.org/
    https://www.alpinelinux.org/
    https://cve.mitre.org/
    https://github.com/openssl/openssl#overview
    https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
    https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
    https://nixos.org/manual/nixpkgs/unstable/#setup-hook-autopatchelfhook
    https://guix.gnu.org/

  • https://cache.nixos.org

    https://nixbuild.net/

    https://nix.dev/manual/nix/2.26/store/types/
    https://www.cachix.org/
    https://nix.dev/manual/nix/2.26/development/experimental-features.html#xp-feature-dynamic-derivations
    https://nix.dev/manual/nix/2.26/development/experimental-features.html#xp-feature-ca-derivations

    https://lix.systems/
    https://tvix.dev/

    https://github.com/ngi-nix/summer-of-nix

    https://nixos.org/community/teams/nix/
    https://github.com/Ericson2314

    https://www.haskell.org/
    https://slurm.schedmd.com/

    https://planetnix.com/

    Generated chapters:

    00:00 Introduction to Nix and Remote Building
    02:38 Understanding Nix Daemon and Communication Protocols
    05:01 Exploring Derivations and Their Role in Nix
    07:26 Setting Up Remote Builders in Nix
    09:48 Remote Building Process and Configuration
    12:08 Remote Store vs Remote Builder Features
    14:21 Managing Build Outputs and Dependencies
    16:45 Optimizing Remote Builds and Scheduling
    19:28 Conclusion and Future Improvements
    24:16 Understanding Remote Store Features
    24:43 Continuous Integration (CI) Workflows
    26:37 Leveraging Remote Builders in CI
    29:20 Exploring Nix Store Components
    35:26 The Role of Substitutes in Nix
    40:48 Introducing nixbuild.net: A Solution for Nix Builds
    50:15 The Power of Concurrency in Build Services
    54:11 Choosing nixbuild.net for Efficient Builds
    55:17 Understanding Latency and On-Site Options
    59:29 Hardware and Architectures for Nix Builds
    01:01:37 When to Consider nixbuild.net
    01:03:49 Managing Compatibility with Nix Versions
    01:06:22 The Nix Community and Company Dynamics
    01:07:59 Contributions to the Open Source Ecosystem
    01:16:28 Internal Stack and Resource Management
    01:21:05 Final Thoughts and Future Directions

  • https://opensource.apple.com/releases/

    https://en.wikipedia.org/wiki/NeXTSTEP

    https://brew.sh/

    https://www.opengroup.org/openbrand/register/

    https://en.wikipedia.org/wiki/Property_list

    https://repology.org/repository/nix_unstable

    https://nixos.org/manual/nixpkgs/unstable/#chap-stdenv

    https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals

    Tracking issue for Darwin stdenv LLVM update:
    https://github.com/NixOS/nixpkgs/issues/234710

    I’d also credit reno and emilazy for driving the LLVM 19 upgrade. They used a few patches from a WIP Clang 18 branch I’d started over the summer, but they pushed the update over the finish line once breaking changes were allowed after the 24.11 release.

    https://en.wikipedia.org/wiki/Interface_Builder

    https://developer.apple.com/metal/

    https://developer.apple.com/xcode/

    https://github.com/facebookarchive/xcbuild

    https://ghostty.org/

    https://nixos.org/manual/nixpkgs/unstable/#deploying-a-proxy-component-wrapper-exposing-xcode

    MacVim in nixpkgs:
    https://github.com/NixOS/nixpkgs/blob/50784a2835c150d6055861a5ad703a57b8070cbb/pkgs/applications/editors/vim/macvim.nix

    https://github.com/orgs/NixOS/teams/darwin-core
    https://github.com/reckenrode
    https://github.com/emilazy
    https://github.com/toonn

    PR establishing the Darwin team:
    https://github.com/NixOS/nixpkgs/pull/348183

    https://developer.apple.com/documentation/corefoundation

    when Apple implemented this hardening, before it just happened to work. So, and this actually affected Nix because Nix uses the AWS C++ SDK and that stopped building
    https://github.com/NixOS/nixpkgs/pull/265102

    macOS 15 Sequoia clobbers _nixbld1-4 users:
    https://github.com/NixOS/nix/issues/10892

    https://github.com/DeterminateSystems/nix-installer

    https://fishshell.com/

    https://github.com/LnL7/nix-darwin

    Fixing waifu2x-converter-cpp on Darwin:
    https://github.com/NixOS/nixpkgs/pull/135725

    Though it turns out my actually first nixpkgs PR was fixing vscode-lldb on Darwin:
    https://github.com/NixOS/nixpkgs/pull/131324

    https://github.com/KhronosGroup/MoltenVK

    Last year, Connor Baker created a draft PR to add the missing SDK.
    Connor Baker’s draft PR adding more SDKs:
    https://github.com/NixOS/nixpkgs/pull/229210

    https://www.vulkan.org/

    Darwin SDK PR (has links to my PRs fixing issues):
    https://github.com/NixOS/nixpkgs/pull/346043

    Discourse post with the SDK update announcement:
    https://discourse.nixos.org/t/the-darwin-sdks-have-been-updated/55295

    Here’s that list (by GitHub id). These people were all very helpful with ensuring these Darwin improvements made it to master.staging-next with the clang 16 update (tried to get everyone who contributed during that cycle; appologies if I missed anyone):AtemuanthonyrousselazuwisboltzmannrainemilytraujosephstjudofyrmfrischknechphiliptarontoonntrofiwegankDarwin SDK update. It turns out that in spite of radically changing the pattern, providing an SDK by default tends to just work.emilazykhanelimanpaparodeotoonnI also want to thank midchildan for contributing fixes to xcbuild to address some of the post-release issues users have encountered with having it in a dev shell by default. I also wanted to call out the great work getting Zed and Firefox building on Darwin with these SDK changes:niklaskorz (for Zed)booxter (for Firefox)

    https://github.com/apple-oss-distributions

    https://github.com/apple-oss-distributions/dyld

    Note that the source for ld-prime is actually removed from the distribution. I’d package it if it were there, but it’s not.

    https://github.com/LnL7/nix-darwin

    https://github.com/nix-community/home-manager

    Another call for Darwin maintainers:
    https://github.com/NixOS/nixpkgs/issues/323144

    https://github.com/NixOS/rfcs/pull/112

    Generated chapters:

    00:00 Introduct...

  • https://github.com/NixOS/nix/releases/tag/2.24.11
    https://github.com/NixOS/nix/releases/tag/2.25.4
    https://github.com/NixOS/nix/releases/tag/2.24.12
    https://github.com/NixOS/nix/releases/tag/2.26.0
    https://github.com/NixOS/nix/releases/tag/2.26.1

    https://github.com/NixOS/nix/issues/6316

    https://github.com/NixOS/nix/pull/12045

    https://github.com/NixOS/rfcs/pull/132

  • https://github.com/NixOS/nixpkgs/commits?author=GaetanLepage
    https://github.com/nix-community/nixvim

    https://ensimag.grenoble-inp.fr/en
    https://github.com/nix-community/nixvim/commits?author=traxys

    https://nixos.org/manual/nixpkgs/unstable/#python
    https://nix.dev/guides/recipes/python-environment.html
    https://wiki.nixos.org/wiki/Python

    https://github.com/NixOS/nixpkgs/tree/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/torch

    https://wiki.nixos.org/wiki/JAX
    https://github.com/NixOS/nixpkgs/tree/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/jax

    https://wiki.nixos.org/wiki/Tensorflow
    https://github.com/NixOS/nixpkgs/blob/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/tensorflow

    https://github.com/NixOS/nixpkgs/blob/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/protobuf

    https://github.com/NixOS/nixpkgs/issues/157398

    https://github.com/NixOS/rfcs/pull/166
    https://github.com/NixOS/rfcs/pull/140

    Some recent contributions by Gaétan
    https://github.com/NixOS/nixpkgs/pull/362844
    https://github.com/NixOS/nixpkgs/pull/363751
    https://github.com/Mic92/nixpkgs-review/pull/440

    https://github.com/NixOS/nixfmt
    https://github.com/nix-community/nix-init

    https://github.com/ekala-project
    https://github.com/jonringer
    https://github.com/nrdxp

    https://github.com/nix-community/nixvim

    https://github.com/nix-community/home-manager

    Pedro Alves
    https://github.com/pta2002

    https://github.com/traxys
    https://github.com/MattSturgeon
    https://github.com/khaneliman
    https://github.com/nix-community/nixvim/graphs/contributors

    Nixvim: Configure Neovim with the power of Nix (NeovimConf 2023):
    https://youtu.be/GOe0C7Qtypk?si=T9gd0evaS8W3HvG-

    ```
    nix run github:mightyiam/infra#nixvim
    ```

    https://github.com/folke/lazy.nvim
    https://github.com/nvim-neorocks/lz.n

    Generated chapters:

    00:00 Introduction to the Podcast and Guest
    06:15 Understanding NixOS Use Cases
    11:53 The Contribution Process Explained
    25:22 Nixpkgs Review Tool and CI Challenges
    34:26 Infrastructure and CI Limitations
    38:37 Transitioning to GitHub Actions
    45:07 Multi-System Evaluation Explained
    50:32 Contributions to Python Packages
    58:08 Challenges in Nix Packages
    01:02:27 Recent Progress in Nixpkgs
    01:07:53 NixVim Features and Benefits
    01:11:22 Gaétan's Involvement in NixVim
    01:19:33 NixVim: Configuration vs Distribution
    01:23:44 NixVim Options and Flexibility
    01:26:27 Plugin Management in NixVim
    01:29:27 Settings and Configuration Options
    01:32:06 Keeping Up with Plugin Changes
    01:37:24 User Contributions and Community Engagement
    01:44:13 Future Perspectives for NixVim

  • https://www.youtube.com/@molybdenumsoftware

    https://github.com/NixOS/rfcs/pull/101

    https://github.com/NixOS/nixfmt

    nixfmt created by https://serokell.io/

    https://github.com/nix-community/nixpkgs-fmt

    https://github.com/NixOS/rfcs/pull/166

    https://github.com/kamadorueda/alejandra

    https://piegames.de/
    https://github.com/0x4A6F
    https://github.com/tomberek
    https://github.com/dasJ
    https://nixos.org/community/teams/formatting/

    https://github.com/numtide/treefmt

    https://github.com/NixOS/nixpkgs/pull/322537
    https://github.com/NixOS/nixpkgs/pull/322537#issuecomment-2532934880

    https://www.tweag.io/
    https://antithesis.com/

    https://hintjens.gitbooks.io/social-architecture/content/chapter4.html

    https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md

    https://moduscreate.com/

    Auto-generated chapters:

    00:00 Introduction and Background
    01:44 The Journey to Standardized Formatting
    06:17 The Evolution of RFC 101 to 166
    11:22 The Role of the Shepherd Team
    15:59 Defining the Formatting Rules
    19:51 Finalizing the RFC and Implementation
    25:01 Implementation Insights and Challenges
    27:23 Finalizing the Formatter and Addressing Issues
    30:09 Tree-Wide Reformatting: Strategies and Challenges
    34:15 Ensuring Consistency in Formatting
    38:54 Future Plans for Formatting and Maintenance
    46:51 Enhancing PR Review Processes
    49:28 Streamlining Local Formatting with treefmt
    53:14 Managing Version Control and Formatting Conflicts
    55:45 The Role of the Formatting Team
    57:16 Exploring Linting and Future Maintenance
    01:01:02 Automation and Community Contributions
    01:04:10 C4 Guidelines for Effective PR Reviews
    01:07:30 The Future of Documentation and Automation
    01:10:15 Motivation Behind Community Contributions

  • https://fulltimenix.com/episodes/martin-schwaighofer-steering-committee-candidate

    https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf

    https://github.com/NixOS/nixpkgs

    https://oxide.computer/

    https://github.com/nix-community/lanzaboote

    https://en.wikipedia.org/wiki/UEFI#Secure_Boot

    NixCon2024 rebuilding builders instead of trusting trust
    https://youtu.be/UlJUpUQc9Lc?si=_EebfQszx062M2mR

    Extending cloud build systems to eliminate transitive trust:
    https://discourse.nixos.org/t/extending-cloud-build-systems-to-eliminate-transitive-trust/50841

    https://scored.dev/

    https://reproducible-builds.org/

    Build systems à la carte: Theory and practice
    https://www.cambridge.org/core/journals/journal-of-functional-programming/article/build-systems-a-la-carte-theory-and-practice/097CE52C750E69BD16B78C318754C7A4?utm_campaign=shareaholic&utm_medium=copy_link&utm_source=bookmark

    Implementing a content-addressed Nix, 2 December 2021 — by Théophane Hufschmitt
    https://www.tweag.io/blog/2021-12-02-nix-cas-4/

    https://github.com/nix-community/trustix

    https://nixos.org/research/

    00:00 Introduction and Background
    01:28 Martin's Journey in Computer Science
    02:57 Compiler Construction Course Insights
    04:20 The Concept of Self-Compiling Compilers
    07:10 Hiding stuff in the compiler
    08:47 Trusting Trust: Compiler Security Issues
    09:58 Nix and Build Process Management
    12:09 Bootstrapping and Auditing in Nixpkgs
    13:21 Trust in Software and Hardware Security
    18:01 Secure Boot and Its Implications
    20:39 Scenario: Government Agency Targeting
    22:15 More on boot security
    28:09 The Role of Secure Boot and Measured Boot
    29:52 Measured boot
    35:13 Democratizing Trust with Remote Attestation
    36:11 Raising the bar on security
    39:31 Research Directions in Supply Chain Security
    47:34 Enhancing Nix for Security and Efficiency
    50:20 Understanding Reproducibility in Build Processes
    53:13 Navigating Trust and Threat Models in Nix
    53:22 Identifying Gaps in Nix's Trust Mechanisms
    56:48 Attribution and Trust in Build Systems
    01:05:35 Distinguishing Between Input and Content Addressing in Nix
    01:06:38 Nix store hashes
    01:12:52 The Challenges of Content Addressing
    01:14:04 Self-References and Their Implications
    01:20:24 Trust and Attribution in Build Processes
    01:24:31 Future Directions for Nix and Content Addressing
    01:30:00 Sponsoring opportunity

    Sponsor:

  • https://github.com/NixOS/SC-election-2024/blob/main/candidates/nyabinary.md

    If you have any further questions for Niko, please reach out to them on Matrix at: @niko:nyanbinary.rs