H5TE46JDBGYT7JWLWDX5IU4SRZVCKZTBMFXEECTJXIDFYHO24EVQC # SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>(import ./release.nix).fello-dev-shell
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>letflake_lock = builtins.fromJSON (builtins.readFile ./flake.lock);pkgs_src = builtins.fetchTarball {url =flake_lock.nodes.nixpkgs.locked.urlor "https://github.com/NixOS/nixpkgs/archive/${flake_lock.nodes.nixpkgs.locked.rev}.tar.gz";sha256 = flake_lock.nodes.nixpkgs.locked.narHash;};pkgs = import pkgs_src {overlays = [(import ./nix/overlays/default.nix)(import ./nix/overlays/development.nix)];};in{inherit (pkgs) fello fello-dev-shell;fello-vocab = pkgs.factorPackages.fello;}
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>{lib,factorPackages,}:factorPackages.buildFactorVocab {pname = "fello";version = builtins.readFile ../../VERSION.txt;vocabRoot = "extra";src =letfs = lib.fileset;factorFilter =file:lib.lists.any file.hasExt ["factor""txt"];infs.toSource {root = ../../extra;fileset = fs.fileFilter factorFilter ../../extra;};meta = {license = lib.licenses.blueOak100;};}
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>{lib,factorPackages,}:factorPackages.buildFactorApplication {pname = "fello";binName = "fello";vocabName = "fello.cli";version = builtins.readFile ../../VERSION.txt;src =letfs = lib.fileset;factorFilter =file:lib.lists.any file.hasExt ["factor""txt"];infs.toSource {root = ../../extra;fileset = fs.fileFilter factorFilter ../../extra;};enableDefaults = false;enableUI = false;extraVocabs = with factorPackages; [ ];meta = {license = lib.licenses.blueOak100;};}
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>final: prev: {fello-dev-shell = final.mkShellNoCC {name = "fello";inputsFrom = with final; [fello];packages = with final; [factorPackages.factor-langnixfmt-3-spacerlwrap # for ``rlwrap factor …``];shellHook = ''export FACTOR_ROOTS="$FACTOR_ROOTS:$(pwd)/extra"export FACTOR_IMAGE="$(pwd)/factor.image"'';};nixfmt-3-space = final.writeTextFile {name = "nixfmt-wrapped";executable = true;destination = "/bin/nixfmt";text = # sh''#!${final.lib.getExe final.dash}exec ${final.lib.getExe final.nixfmt-rfc-style} --indent=3 "$@"'';checkPhase = ''${final.stdenv.shellDryRun} "$target"'';meta.mainProgram = "nixfmt";};}
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>final: prev: {factorPackages = prev.factorPackages.extend (_: _: {fello = final.callPackage ../packages/vocab.nix { };});fello = final.callPackage ../packages/bin.nix { };}
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>{description = "factor-nix-demo";inputs = {#nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";# contains a fix for factorPackages.buildFactorVocabnixpkgs.url = "github:nixos/nixpkgs?rev=bdcd50506b69b058890e7361027aee9fd690e627";};outputs ={ self, nixpkgs, ... }@inputs:let# covering what what Factor *should* support (this may differ from# what Nix actually support, but could/should)supportedSystems = builtins.filter (system:builtins.any (archPrefix: nixpkgs.lib.hasPrefix archPrefix system) ["x86_64-""i686-"]) nixpkgs.lib.systems.flakeExposed;nixpkgsFor = nixpkgs.lib.genAttrs supportedSystems (system:import nixpkgs {inherit system;overlays = [(import ./nix/overlays/default.nix)(import ./nix/overlays/development.nix)];});forAllSystems =fn:nixpkgs.lib.genAttrs supportedSystems (system:fn rec {inherit system;pkgs = nixpkgsFor.${system};inherit (pkgs) lib;});in{overlays = {default = import ./nix/overlays/default.nix;dev-tools = import ./nix/overlays/development.nix;};packages = forAllSystems ({ pkgs, ... }:{default = pkgs.fello;});devShells = forAllSystems ({ pkgs, ... }:{default = pkgs.fello-dev-shell;});formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-3-space);};}
{"nodes": {"nixpkgs": {"locked": {"lastModified": 1750747400,"narHash": "sha256-ZarsHYqTyIWLemHIpxqw2i7VLMxvLYqhrUZtK1Ymzf4=","owner": "nixos","repo": "nixpkgs","rev": "bdcd50506b69b058890e7361027aee9fd690e627","type": "github"},"original": {"owner": "nixos","repo": "nixpkgs","rev": "bdcd50506b69b058890e7361027aee9fd690e627","type": "github"}},"root": {"inputs": {"nixpkgs": "nixpkgs"}}},"root": "root","version": 7}
! SPDX-License-Identifier: BlueOak-1.0.0! SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>USING: io ;IN: fello: print-hello ( -- ) "Say hello from Nix" print ;MAIN: print-hello
! SPDX-License-Identifier: BlueOak-1.0.0! SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>USING: fello ;IN: fello.cliMAIN: print-hello
toastal
# SPDX-License-Identifier: BlueOak-1.0.0# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>(import ./release.nix).fello
0-dev
===============================================================================Factor Nix Demo===============================================================================-------------------------------------------------------------------------------A basic starter for building a Factor project-------------------------------------------------------------------------------The Factor project is called ``fello`` for Factor + hello (& to not conflictwith :ac:`GNU` ``hello``).License===============================================================================This project is licensed under the :t:`Blue Oak Model License, version 1.0.0`(``BlueOak-1.0.0``) — for full tet read ``LICENSE.txt``.Pitching in===============================================================================Currently this is best done by sending a patchset to`toastal+factor-nix-demo@posteo.net<mailto:toastal+factor-nix-demo@posteo.net>`_ or :ac:`DM` me a remote to clone@ `toastal@toastal.in.th <xmpp:toastal@toastal.in.th>`_.Funding / Support===============================================================================See choices at the `maker’s website <https://toast.al/funding>`_... vim: set textwidth=79
# Blue Oak Model LicenseVersion 1.0.0## PurposeThis license gives everyone as much permission to work withthis software as possible, while protecting contributorsfrom liability.## AcceptanceIn order to receive this license, you must agree to itsrules. The rules of this license are both obligationsunder that agreement and conditions to your license.You must not do anything with this software that triggersa rule that you cannot or will not follow.## CopyrightEach contributor licenses you to do everything with thissoftware that would otherwise infringe that contributor'scopyright in it.## NoticesYou must ensure that everyone who gets a copy ofany part of this software from you, with or withoutchanges, also gets the text of this license or a link to<https://blueoakcouncil.org/license/1.0.0>.## ExcuseIf anyone notifies you in writing that you have notcomplied with [Notices](#notices), you can keep yourlicense by taking all practical steps to comply within 30days after the notice. If you do not do so, your licenseends immediately.## PatentEach contributor licenses you to do everything with thissoftware that would otherwise infringe any patent claimsthey can license or become able to license.## ReliabilityNo contributor can revoke this license.## No Liability***As far as the law allows, this software comes as is,without any warranty or condition, and no contributorwill be liable to anyone for any damages related to thissoftware or this license, under any kind of legal claim.***
# Nix stuffresult*.envrc.direnv# Factor stufffactor.image# NO to Microsoftdevcontainer.json*.code-workspace.devcontainer.github.vscode# NO to Docker*Dockerfile**docker-compose*# NO to invasive configs.husky.pre-commit-config.{yaml,yml}
# http://editorconfig.org/# Tabs are preferred where possible; this is the only accessible choiceroot = true[*]charset = utf-8end_of_line = lfinsert_final_newline = trueindent_style = tabtrim_trailing_whitespace = true[VERSION.txt]insert_final_newline = false[*.factor]indent_style = spaceindent_size = 4[*.nix]indent_style = spaceindent_size = 3[*.rst]indent_style = unsetindent_size = unset