about summary refs log tree commit diff stats
path: root/static-dispatch.mu
blob: a0157d133c705f6c1dbb30375d1939ee2a6cd2d1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Example program showing how multiple functions with the same name can
# coexist, and how we select between them.
#
# Expected output:
#   4
#   7
#   7

def test a:num -> b:num [
  local-scope
  load-inputs
  b <- add a, 1
]

def test a:num, b:num -> c:num [
  local-scope
  load-inputs
  c <- add a, b
]

def main [
  local-scope
  a:num <- test 3  # selects single-input version
  $print a, 10/newline
  b:num <- test 3, 4  # selects double-input version
  $print b, 10/newline
  c:num <- test 3, 4, 5  # prefers double- to single-input version
  $print c, 10/newline
]
yle>
#!/bin/sh

linux_upgrade()
{
    echo
    echo Profanity installer... upgrading Profanity
    echo
    ./bootstrap.sh
    ./configure
    make clean
    make
    sudo make install
    echo
    echo Profanity installer... upgrade complete!
    echo
    echo Type \'profanity\' to run.
    echo
}

cygwin_upgrade()
{
    echo
    echo Profanity installer... upgrading Profanity
    echo
    export LIBRARY_PATH=/usr/local/lib
    ./bootstrap.sh
    ./configure
    make clean
    make
    make install
    echo
    echo Profanity installer... upgrade complete!
    echo
    echo Type \'profanity\' to run.
    echo
}

OS=`uname -s`
SYSTEM=unknown

if [ "${OS}" = "Linux" ]; then
    SYSTEM=linux
else
    echo $OS | grep -i cygwin
    if [ "$?" -eq 0 ]; then
        SYSTEM=cygwin
    fi
fi

case "$SYSTEM" in
unknown)    echo The upgrade script will not work on this OS.
            echo Try a manual upgrade instead.
            exit
            ;;
linux)      linux_upgrade
            ;;
cygwin)     cygwin_upgrade
            ;;
esac