Compare commits
10 commits
b395e657fb
...
a3b53b180c
| Author | SHA1 | Date | |
|---|---|---|---|
| a3b53b180c | |||
| 0e55a43863 | |||
| ce6920a1d4 | |||
| a8a26921b4 | |||
| 81ca8af870 | |||
| 51a6ae01e1 | |||
| 12733ba5c6 | |||
| da579f08af | |||
| 4cd7275293 | |||
| ace4288c9d |
19 changed files with 304 additions and 66 deletions
43
bash/nixpkgs/flake.lock
generated
Normal file
43
bash/nixpkgs/flake.lock
generated
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722073938,
|
||||||
|
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
17
bash/nixpkgs/flake.nix
Normal file
17
bash/nixpkgs/flake.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, systems, ... }:
|
||||||
|
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||||
|
in {
|
||||||
|
packages = eachSystem (system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
soe = pkgs.callPackage ./package.nix {};
|
||||||
|
default = self.packages.${system}.soe;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
17
bash/nixpkgs/package.nix
Normal file
17
bash/nixpkgs/package.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ stdenv
|
||||||
|
, bash
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "soe";
|
||||||
|
version = "1.0";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
buildInputs = [ bash ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp soe $out/bin
|
||||||
|
'';
|
||||||
|
}
|
||||||
24
bash/nixpkgs/soe
Executable file
24
bash/nixpkgs/soe
Executable file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo -n "Primes up to: "
|
||||||
|
read num
|
||||||
|
echo
|
||||||
|
|
||||||
|
nums=()
|
||||||
|
for i in `seq 2 $num`; do
|
||||||
|
nums+=($i)
|
||||||
|
done
|
||||||
|
|
||||||
|
unset nums[-1]
|
||||||
|
|
||||||
|
while [ -n "$nums" ]; do
|
||||||
|
prime=${nums[0]}
|
||||||
|
echo -n "$prime "
|
||||||
|
nums_=()
|
||||||
|
for elem in "${nums[@]}"; do
|
||||||
|
[ $(( $elem % $prime )) -eq 0 ] || nums_+=($elem)
|
||||||
|
done
|
||||||
|
nums=(${nums_[@]})
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
43
fish/nixpkgs/flake.lock
generated
Normal file
43
fish/nixpkgs/flake.lock
generated
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722141560,
|
||||||
|
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
17
fish/nixpkgs/flake.nix
Normal file
17
fish/nixpkgs/flake.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, systems, ... }:
|
||||||
|
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||||
|
in {
|
||||||
|
packages = eachSystem (system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
soe = pkgs.callPackage ./package.nix {};
|
||||||
|
default = self.packages.${system}.soe;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
17
fish/nixpkgs/package.nix
Normal file
17
fish/nixpkgs/package.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ stdenv
|
||||||
|
, fish
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "soe";
|
||||||
|
version = "1.0";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
buildInputs = [ fish ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp soe $out/bin
|
||||||
|
'';
|
||||||
|
}
|
||||||
19
fish/nixpkgs/soe
Executable file
19
fish/nixpkgs/soe
Executable file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
read -P "Primes up to: " num
|
||||||
|
echo
|
||||||
|
|
||||||
|
set nums (seq 2 $num)[..-2]
|
||||||
|
|
||||||
|
while test -n "$nums"
|
||||||
|
set prime $nums[1]
|
||||||
|
echo -n "$prime "
|
||||||
|
|
||||||
|
set -e nums_
|
||||||
|
for elem in $nums
|
||||||
|
test (math $elem % $prime) -eq 0 || set -a nums_ $elem
|
||||||
|
end
|
||||||
|
set nums $nums_
|
||||||
|
end
|
||||||
|
|
||||||
|
echo
|
||||||
37
flake.lock
generated
37
flake.lock
generated
|
|
@ -1,41 +1,6 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-utils": {
|
"root": {}
|
||||||
"locked": {
|
|
||||||
"lastModified": 1667395993,
|
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1675132057,
|
|
||||||
"narHash": "sha256-lq7VYB8J2wn35CeByP9760tR6mwQtztPze+J8O4fHdU=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "5b374db81f4a26de2cef6dae71b4478b362866a4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
"version": 7
|
"version": 7
|
||||||
|
|
|
||||||
53
flake.nix
53
flake.nix
|
|
@ -1,20 +1,43 @@
|
||||||
{
|
{
|
||||||
description = "The Sieve of Eratosthenes implemented in many different languages";
|
description = "Templates of the Sieve of Eratosthenes implemented in various languages";
|
||||||
|
|
||||||
inputs = {
|
outputs = { self, ... }:
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
let
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
# Get all project directories
|
||||||
};
|
subdirs = dir:
|
||||||
|
let sub = builtins.readDir dir;
|
||||||
|
in builtins.filter
|
||||||
|
(d: sub.${d} == "directory")
|
||||||
|
(builtins.attrNames sub);
|
||||||
|
|
||||||
outputs = { self, nixpkgs, flake-utils, ... }:
|
vowelStart = str: builtins.elem (builtins.substring 0 1 str) [ "a" "e" "i" "o" "u" ];
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
|
||||||
let
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
|
|
||||||
currentDir = builtins.readDir ./.;
|
concatMapAttrs = func: attr:
|
||||||
dirs = pkgs.lib.filterAttrs (_: v: v == "directory") currentDir;
|
builtins.foldl' (x: y: x // y) {}
|
||||||
in {
|
(builtins.map func attr);
|
||||||
packages = builtins.mapAttrs (dir: _: pkgs.callPackage ./${dir} {}) dirs;
|
|
||||||
devShells = builtins.mapAttrs (dir: _: pkgs.callPackage ./${dir}/shell.nix {}) dirs;
|
templateDirs =
|
||||||
});
|
builtins.concatMap (lang:
|
||||||
|
builtins.map
|
||||||
|
(pkg: { inherit lang pkg; })
|
||||||
|
(subdirs ./${lang}))
|
||||||
|
(subdirs ./.);
|
||||||
|
in {
|
||||||
|
templates = concatMapAttrs ({ lang, pkg }: {
|
||||||
|
"${lang}-${pkg}" = {
|
||||||
|
description = "Packaging a${if vowelStart lang
|
||||||
|
then "n"
|
||||||
|
else ""} ${lang} executable using ${pkg}";
|
||||||
|
path = builtins.filterSource
|
||||||
|
(path: type: builtins.baseNameOf path != "flake.lock")
|
||||||
|
./${lang}/${pkg};
|
||||||
|
};
|
||||||
|
}) templateDirs // concatMapAttrs (lang: {
|
||||||
|
"${lang}" = self.templates."${lang}-nixpkgs" // {
|
||||||
|
description = "Packaging a${if vowelStart lang
|
||||||
|
then "n"
|
||||||
|
else ""} ${lang} executable";
|
||||||
|
};
|
||||||
|
}) (subdirs ./.);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
0
python/bin/soe-python → python/nixpkgs/bin/soe
Normal file → Executable file
0
python/bin/soe-python → python/nixpkgs/bin/soe
Normal file → Executable file
43
python/nixpkgs/flake.lock
generated
Normal file
43
python/nixpkgs/flake.lock
generated
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722141560,
|
||||||
|
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
17
python/nixpkgs/flake.nix
Normal file
17
python/nixpkgs/flake.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, systems, ... }:
|
||||||
|
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||||
|
in {
|
||||||
|
packages = eachSystem (system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
soe = pkgs.callPackage ./package.nix {};
|
||||||
|
default = self.packages.${system}.soe;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ python3, ... }:
|
{ python3 }:
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication {
|
python3.pkgs.buildPythonApplication {
|
||||||
pname = "soe-python";
|
pname = "soe";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
|
|
@ -3,5 +3,5 @@ from setuptools import setup
|
||||||
setup(
|
setup(
|
||||||
name="soe",
|
name="soe",
|
||||||
version="1.0.0",
|
version="1.0.0",
|
||||||
scripts=["bin/soe-python"]
|
scripts=["bin/soe"]
|
||||||
)
|
)
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
{ python3, ... }:
|
{ python3 }:
|
||||||
|
|
||||||
python3.buildEnv.env
|
python3.buildEnv.env
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
def sieve_of_eratosthenes(n):
|
def sieve_of_eratosthenes(n):
|
||||||
nums = list(range(2, n))
|
nums = list(range(2, n))
|
||||||
while nums:
|
while nums:
|
||||||
|
|
@ -8,18 +7,11 @@ def sieve_of_eratosthenes(n):
|
||||||
yield prime
|
yield prime
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
num = 0
|
num = int(input("Primes up to: "))
|
||||||
another = True
|
|
||||||
while another:
|
|
||||||
try:
|
|
||||||
num = int(input())
|
|
||||||
another = False
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
print()
|
print()
|
||||||
for i in sieve_of_eratosthenes(num):
|
for i in sieve_of_eratosthenes(num):
|
||||||
print(i)
|
print(i, end=" ")
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
Loading…
Add table
Add a link
Reference in a new issue