Loading pkgs/by-name/in/inko/package.nix 0 → 100644 +68 −0 Original line number Diff line number Diff line { lib , rustPlatform , fetchFromGitHub , llvm_16 , libffi , libz , libxml2 , ncurses , stdenv , makeWrapper , callPackage }: rustPlatform.buildRustPackage rec { pname = "inko"; version = "0.15.0"; src = fetchFromGitHub { owner = "inko-lang"; repo = "inko"; rev = "v${version}"; hash = "sha256-Iojv8pTyILYpLFnoTlgUGmlfWWH0DgsGBRxzd3oRNwA="; }; cargoHash = "sha256-PaZD7wwcami6EWvOHLislNkwQhCZItN9XZkPSExwo0U="; buildInputs = [ libffi libz libxml2 ncurses stdenv.cc.cc.lib ]; nativeBuildInputs = [ llvm_16 makeWrapper ]; env = { INKO_STD = "${placeholder "out"}/lib"; INKO_RT = "${placeholder "out"}/lib/runtime"; }; postFixup = '' wrapProgram $out/bin/inko \ --prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} ''; postInstall = '' mkdir -p $out/lib/runtime mv $out/lib/*.a $out/lib/runtime/ cp -r std/src/* $out/lib/ ''; passthru.tests = { simple = callPackage ./test.nix { }; }; meta = { description = "Language for building concurrent software with confidence"; homepage = "https://inko-lang.org/"; license = lib.licenses.mpl20; maintainers = [ lib.maintainers.feathecutie ]; platforms = lib.platforms.unix; mainProgram = "inko"; }; } pkgs/by-name/in/inko/test.nix 0 → 100644 +39 −0 Original line number Diff line number Diff line { inko , writeText , runCommand , ... }: let source = writeText "hello.inko" /* inko */ '' import std.process (sleep) import std.stdio (STDOUT) import std.time (Duration) class async Printer { fn async print(message: String, channel: Channel[Nil]) { let _ = STDOUT.new.print(message) channel.send(nil) } } class async Main { fn async main { let channel = Channel.new(size: 2) Printer().print('Hello', channel) Printer().print('world', channel) channel.receive channel.receive } } ''; in runCommand "inko-test" { } '' ${inko}/bin/inko run ${source} > $out cat $out | grep -q Hello cat $out | grep -q world '' Loading
pkgs/by-name/in/inko/package.nix 0 → 100644 +68 −0 Original line number Diff line number Diff line { lib , rustPlatform , fetchFromGitHub , llvm_16 , libffi , libz , libxml2 , ncurses , stdenv , makeWrapper , callPackage }: rustPlatform.buildRustPackage rec { pname = "inko"; version = "0.15.0"; src = fetchFromGitHub { owner = "inko-lang"; repo = "inko"; rev = "v${version}"; hash = "sha256-Iojv8pTyILYpLFnoTlgUGmlfWWH0DgsGBRxzd3oRNwA="; }; cargoHash = "sha256-PaZD7wwcami6EWvOHLislNkwQhCZItN9XZkPSExwo0U="; buildInputs = [ libffi libz libxml2 ncurses stdenv.cc.cc.lib ]; nativeBuildInputs = [ llvm_16 makeWrapper ]; env = { INKO_STD = "${placeholder "out"}/lib"; INKO_RT = "${placeholder "out"}/lib/runtime"; }; postFixup = '' wrapProgram $out/bin/inko \ --prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} ''; postInstall = '' mkdir -p $out/lib/runtime mv $out/lib/*.a $out/lib/runtime/ cp -r std/src/* $out/lib/ ''; passthru.tests = { simple = callPackage ./test.nix { }; }; meta = { description = "Language for building concurrent software with confidence"; homepage = "https://inko-lang.org/"; license = lib.licenses.mpl20; maintainers = [ lib.maintainers.feathecutie ]; platforms = lib.platforms.unix; mainProgram = "inko"; }; }
pkgs/by-name/in/inko/test.nix 0 → 100644 +39 −0 Original line number Diff line number Diff line { inko , writeText , runCommand , ... }: let source = writeText "hello.inko" /* inko */ '' import std.process (sleep) import std.stdio (STDOUT) import std.time (Duration) class async Printer { fn async print(message: String, channel: Channel[Nil]) { let _ = STDOUT.new.print(message) channel.send(nil) } } class async Main { fn async main { let channel = Channel.new(size: 2) Printer().print('Hello', channel) Printer().print('world', channel) channel.receive channel.receive } } ''; in runCommand "inko-test" { } '' ${inko}/bin/inko run ${source} > $out cat $out | grep -q Hello cat $out | grep -q world ''