lol

Add Self programming language

+64
+44
pkgs/development/interpreters/self/default.nix
··· 1 + { fetchurl, fetchgit, stdenv, xlibs, gcc44, makeWrapper, ncurses, cmake }: 2 + 3 + stdenv.mkDerivation rec { 4 + # The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self 5 + # so that it can be written to when using the Self transposer. Running 'Self' 6 + # after installation runs without an image. You can then build a Self image with: 7 + # $ cd ~/.local/share/self/objects 8 + # $ Self 9 + # > 'worldBuilder.self' _RunScript 10 + # 11 + # This image can later be started with: 12 + # $ Self -s myimage.snap 13 + # 14 + version = "4.5.0"; 15 + name = "self-${version}"; 16 + 17 + src = fetchgit { 18 + url = "https://github.com/russellallen/self"; 19 + rev = "d16bcaad3c5092dae81ad0b16d503f2a53b8ef86"; 20 + sha256 = "966025b71542e44fc830b951f404f5721ad410ed24f7236fd0cd820ea0fc5731"; 21 + }; 22 + 23 + # gcc 4.6 and above causes crashes on Self startup but gcc 4.4 works. 24 + buildInputs = [ gcc44 ncurses xlibs.libX11 xlibs.libXext makeWrapper cmake ]; 25 + 26 + selfWrapper = ./self; 27 + 28 + installPhase = '' 29 + mkdir -p "$out"/bin 30 + cp ./vm/Self "$out"/bin/Self.wrapped 31 + mkdir -p "$out"/share/self 32 + cp -r ../objects "$out"/share/self/ 33 + makeWrapper $selfWrapper $out/bin/Self \ 34 + --set SELF_ROOT "$out" 35 + ''; 36 + 37 + meta = { 38 + description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine"; 39 + homepage = "http://selflanguage.org/"; 40 + license = stdenv.lib.licenses.bsd3; 41 + maintainer = [ "Chris Double <chris.double@double.co.nz>" ]; 42 + platforms = with stdenv.lib.platforms; linux; 43 + }; 44 + }
+18
pkgs/development/interpreters/self/self
··· 1 + #! /usr/bin/env bash 2 + 3 + export SELF_HOME="$HOME/.local/share/self" 4 + if [ -n "$XDG_DATA_HOME" ] 5 + then export SELF_HOME="$XDG_DATA_HOME/self" 6 + fi 7 + 8 + if [ ! -d $SELF_HOME ]; then 9 + mkdir -p $SELF_HOME 10 + fi 11 + 12 + if [ ! -d $SELF_HOME/objects ]; then 13 + mkdir -p $SELF_HOME/objects 14 + cp -r $SELF_ROOT/share/self/objects/* $SELF_HOME/objects 15 + chmod -R +w $SELF_HOME/objects 16 + fi 17 + 18 + exec $SELF_ROOT/bin/Self.wrapped "$@"
+2
pkgs/top-level/all-packages.nix
··· 3625 3625 3626 3626 scheme48 = callPackage ../development/interpreters/scheme48 { }; 3627 3627 3628 + self = callPackage_i686 ../development/interpreters/self { }; 3629 + 3628 3630 spark = callPackage ../applications/networking/cluster/spark { }; 3629 3631 3630 3632 spidermonkey = callPackage ../development/interpreters/spidermonkey { };