Download the LambdaMOO server into your home folder using ‘wget’:
1 2 3 4 |
cd ~ wget http://lambda.moo.mud.org/pub/MOO/LambdaMOO-latest.tar.gz |
1 2 3 4 5 6 7 8 9 10 11 12 |
--2016-04-23 19:28:15-- http://lambda.moo.mud.org/pub/MOO/LambdaMOO-latest.tar.gz Resolving lambda.moo.mud.org (lambda.moo.mud.org)... 209.181.94.35 Connecting to lambda.moo.mud.org (lambda.moo.mud.org)|209.181.94.35|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 363803 (355K) [application/x-gzip] Saving to: `LambdaMOO-latest.tar.gz' 100%[===================================================================================================================================================================================================>] 363,803 198K/s in 1.8s 2016-04-23 19:28:18 (198 KB/s) - `LambdaMOO-latest.tar.gz' saved [363803/363803] |
Extract the LambdaMOO .tar.gz archive:
1 2 3 |
tar -zxvf LambdaMOO-latest.tar.gz |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
MOO-1.8.1/ MOO-1.8.1/pgperf/ MOO-1.8.1/pgperf/Makefile MOO-1.8.1/pgperf/README MOO-1.8.1/pgperf/boolarray.c MOO-1.8.1/pgperf/boolarray.h MOO-1.8.1/pgperf/getopt.c MOO-1.8.1/pgperf/gperf-to-do MOO-1.8.1/pgperf/hashtable.c MOO-1.8.1/pgperf/hashtable.h MOO-1.8.1/pgperf/iterator.c MOO-1.8.1/pgperf/iterator.h MOO-1.8.1/pgperf/keylist.c MOO-1.8.1/pgperf/keylist.h MOO-1.8.1/pgperf/listnode.c MOO-1.8.1/pgperf/listnode.h MOO-1.8.1/pgperf/main.c MOO-1.8.1/pgperf/mon.out MOO-1.8.1/pgperf/options.c MOO-1.8.1/pgperf/options.h MOO-1.8.1/pgperf/perfect.c MOO-1.8.1/pgperf/perfect.h MOO-1.8.1/pgperf/prototype.h MOO-1.8.1/pgperf/readline.c MOO-1.8.1/pgperf/readline.h MOO-1.8.1/pgperf/stderr.c MOO-1.8.1/pgperf/stderr.h MOO-1.8.1/pgperf/version.c MOO-1.8.1/pgperf/xmalloc.c MOO-1.8.1/.cvsignore MOO-1.8.1/.indent.pro MOO-1.8.1/AddingNewMOOTypes.txt MOO-1.8.1/ChangeLog.txt MOO-1.8.1/MOOCodeSequences.txt MOO-1.8.1/Makefile.in MOO-1.8.1/Minimal.db MOO-1.8.1/README MOO-1.8.1/README.Minimal MOO-1.8.1/README.rX MOO-1.8.1/aclocal.m4 MOO-1.8.1/ast.c MOO-1.8.1/ast.h MOO-1.8.1/bf_register.h MOO-1.8.1/client_bsd.c MOO-1.8.1/client_sysv.c MOO-1.8.1/code_gen.c MOO-1.8.1/code_gen.h MOO-1.8.1/config.h.in MOO-1.8.1/configure MOO-1.8.1/configure.in MOO-1.8.1/db.h MOO-1.8.1/db_file.c MOO-1.8.1/db_io.c MOO-1.8.1/db_io.h MOO-1.8.1/db_objects.c MOO-1.8.1/db_private.h MOO-1.8.1/db_properties.c MOO-1.8.1/db_tune.h MOO-1.8.1/db_verbs.c MOO-1.8.1/decompile.c MOO-1.8.1/decompile.h MOO-1.8.1/disassemble.c MOO-1.8.1/disassemble.h MOO-1.8.1/eval_env.c MOO-1.8.1/eval_env.h MOO-1.8.1/eval_vm.c MOO-1.8.1/eval_vm.h MOO-1.8.1/exceptions.c MOO-1.8.1/exceptions.h MOO-1.8.1/execute.c MOO-1.8.1/execute.h MOO-1.8.1/extensions.c MOO-1.8.1/functions.c MOO-1.8.1/functions.h MOO-1.8.1/getpagesize.h MOO-1.8.1/gnu-malloc.c MOO-1.8.1/keywords.c MOO-1.8.1/keywords.gperf MOO-1.8.1/keywords.h MOO-1.8.1/list.c MOO-1.8.1/list.h MOO-1.8.1/log.c MOO-1.8.1/log.h MOO-1.8.1/malloc.c MOO-1.8.1/match.c MOO-1.8.1/match.h MOO-1.8.1/md5.c MOO-1.8.1/md5.h MOO-1.8.1/my-ctype.h MOO-1.8.1/my-fcntl.h MOO-1.8.1/my-in.h MOO-1.8.1/my-inet.h MOO-1.8.1/my-ioctl.h MOO-1.8.1/my-math.h MOO-1.8.1/my-poll.h MOO-1.8.1/my-signal.h MOO-1.8.1/my-socket.h MOO-1.8.1/my-stat.h MOO-1.8.1/my-stdarg.h MOO-1.8.1/my-stdio.h MOO-1.8.1/my-stdlib.h MOO-1.8.1/my-string.h MOO-1.8.1/my-stropts.h MOO-1.8.1/my-sys-time.h MOO-1.8.1/my-time.h MOO-1.8.1/my-tiuser.h MOO-1.8.1/my-types.h MOO-1.8.1/my-unistd.h MOO-1.8.1/my-wait.h MOO-1.8.1/name_lookup.c MOO-1.8.1/name_lookup.h MOO-1.8.1/net_bsd_lcl.c MOO-1.8.1/net_bsd_tcp.c MOO-1.8.1/net_mp_fake.c MOO-1.8.1/net_mp_poll.c MOO-1.8.1/net_mp_selct.c MOO-1.8.1/net_mplex.c MOO-1.8.1/net_mplex.h MOO-1.8.1/net_multi.c MOO-1.8.1/net_multi.h MOO-1.8.1/net_proto.c MOO-1.8.1/net_proto.h MOO-1.8.1/net_single.c MOO-1.8.1/net_sysv_lcl.c MOO-1.8.1/net_sysv_tcp.c MOO-1.8.1/network.c MOO-1.8.1/network.h MOO-1.8.1/numbers.c MOO-1.8.1/numbers.h MOO-1.8.1/objects.c MOO-1.8.1/opcode.h MOO-1.8.1/options.h MOO-1.8.1/parse_cmd.c MOO-1.8.1/parse_cmd.h MOO-1.8.1/parser.h MOO-1.8.1/parser.y MOO-1.8.1/pattern.c MOO-1.8.1/pattern.h MOO-1.8.1/program.c MOO-1.8.1/program.h MOO-1.8.1/property.c MOO-1.8.1/quota.c MOO-1.8.1/quota.h MOO-1.8.1/random.h MOO-1.8.1/ref_count.c MOO-1.8.1/ref_count.h MOO-1.8.1/regexpr.c MOO-1.8.1/regexpr.h MOO-1.8.1/restart MOO-1.8.1/restart.sh MOO-1.8.1/server.c MOO-1.8.1/server.h MOO-1.8.1/storage.c MOO-1.8.1/storage.h MOO-1.8.1/str_intern.c MOO-1.8.1/str_intern.h MOO-1.8.1/streams.c MOO-1.8.1/streams.h MOO-1.8.1/structures.h MOO-1.8.1/sym_table.c MOO-1.8.1/sym_table.h MOO-1.8.1/tasks.c MOO-1.8.1/tasks.h MOO-1.8.1/timers.c MOO-1.8.1/timers.h MOO-1.8.1/tokens.h MOO-1.8.1/unparse.c MOO-1.8.1/unparse.h MOO-1.8.1/utils.c MOO-1.8.1/utils.h MOO-1.8.1/verbs.c MOO-1.8.1/verbs.h MOO-1.8.1/version.c MOO-1.8.1/version.h |
Change directory & run the configure script:
1 2 3 |
cd MOO-1.8.1 |
1 2 3 |
./configure |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
checking for bison checking for byacc checking for gcc checking how to run the C preprocessor checking whether -traditional is needed checking how to run the C preprocessor checking for NeXT checking for the DEC Alpha running OSF/1 checking for the SGI compiler checking for AIX checking for POSIXized ISC checking for minix/config.h checking for -lintl checking for A/UX checking for HP/UX checking that the C compiler handles important ANSI C constructs checking for a working const keyword checking how to run the C preprocessor checking whether stdlib.h declares malloc and friends checking for sys/bsdtypes.h checking for sys/select.h checking for memory.h checking for pid_t in sys/types.h checking for mode_t in sys/types.h checking for size_t in sys/types.h checking for struct tm in time.h checking for tm_zone in struct tm checking for sqrt checking for sqrt checking for mkfifo checking for waitpid checking for sigemptyset checking for accept checking for t_open checking for t_open checking for t_open checking for crypt checking for crypt checking for unistd.h checking for sys/cdefs.h checking for stdlib.h checking for tiuser.h checking for machine/endian.h checking for remove checking for rename checking for poll checking for select checking for strerror checking for strftime checking for strtoul checking for matherr checking for random checking for lrand48 checking for wait3 checking for wait2 checking for sigsetmask checking for sigprocmask checking for sigrelse checking whether tolower is declared in ctype.h checking whether fcntl is declared in fcntl.h checking whether htonl is declared in netinet/in.h checking whether ioctl is declared in sys/ioctl.h checking whether poll is declared in poll.h checking whether kill is declared in signal.h checking whether sigemptyset is declared in signal.h checking whether sigprocmask is declared in signal.h checking whether sigrelse is declared in signal.h checking whether accept is declared in sys/socket.h checking whether bind is declared in sys/socket.h checking whether shutdown is declared in sys/socket.h checking whether fstat is declared in sys/stat.h checking whether fclose is declared in stdio.h checking whether perror is declared in stdio.h checking whether remove is declared in stdio.h checking whether vfprintf is declared in stdio.h checking whether random is declared in stdlib.h checking whether srandom is declared in stdlib.h checking whether strtod is declared in stdlib.h checking whether strtol is declared in stdlib.h checking whether strtoul is declared in stdlib.h checking whether bzero is declared in string.h checking whether memcpy is declared in string.h checking whether memset is declared in string.h checking whether strerror is declared in string.h checking for bzero being declared in stdlib.h checking whether getitimer is declared in sys/time.h checking whether setitimer is declared in sys/time.h checking whether select is declared in sys/time.h checking whether strftime is declared in time.h checking whether time is declared in time.h checking whether tzname is declared in time.h checking whether t_open is declared in tiuser.h checking whether t_errlist is declared in tiuser.h checking whether fork is declared in unistd.h checking whether waitpid is declared in sys/wait.h checking for self-sufficiency of arpa/inet.h checking for self-sufficiency of signal.h checking for self-sufficiency of sys/socket.h checking for self-sufficiency of sys/stat.h checking for self-sufficiency of time.h checking for string.h declaring some functions incorrectly checking for incompatibility between <sys/ioctl.h> and <stropts.h> checking whether or not fstat() can tell how much data is in a FIFO checking whether or not select() can be used on FIFOs checking whether or not poll() can be used on FIFOs checking whether POSIX-style non-blocking I/O works checking which MOO networking configurations are likely to work... checking for sys/socket.h checking for telnet ---------------------------------------------------------------------- | The following networking configurations will probably work on your | system; any configuration *not* listed here almost certainly will | *not* work on your system: | | NP_SINGLE NS_BSD/NP_LOCAL NS_BSD/NP_TCP NS_SYSV/NP_LOCAL ---------------------------------------------------------------------- creating config.status creating Makefile creating config.h |
You may have to install yacc before the next step:
1 2 3 |
sudo apt-get install byacc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed byacc 0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade. Need to get 50.8 kB of archives. After this operation, 145 kB of additional disk space will be used. Get:1 http://gb.archive.ubuntu.com/ubuntu/ precise/universe byacc amd64 20110908-1 [50.8 kB] Fetched 50.8 kB in 0s (766 kB/s) Selecting previously unselected package byacc. (Reading database ... 76742 files and directories currently installed.) Unpacking byacc (from .../byacc_20110908-1_amd64.deb) ... Processing triggers for man-db ... Setting up byacc (20110908-1) ... update-alternatives: using /usr/bin/byacc to provide /usr/bin/yacc (yacc) in auto mode. |
Compile the server:
1 2 3 |
make |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
gcc -g -O -c -o ast.o ast.c gcc -g -O -c -o code_gen.o code_gen.c gcc -g -O -c -o db_file.o db_file.c gcc -g -O -c -o db_io.o db_io.c db_io.c: In function ‘dbio_read_string’: db_io.c:178:11: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] db_io.c:177:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] db_io.c: In function ‘dbio_read_float’: db_io.c:152:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] db_io.c: In function ‘dbio_read_num’: db_io.c:137:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] db_io.c: In function ‘dbio_read_line’: db_io.c:56:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] gcc -g -O -c -o db_objects.o db_objects.c db_objects.c: In function ‘db_object_bytes’: db_objects.c:292:14: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] gcc -g -O -c -o db_properties.o db_properties.c gcc -g -O -c -o db_verbs.o db_verbs.c gcc -g -O -c -o decompile.o decompile.c gcc -g -O -c -o disassemble.o disassemble.c gcc -g -O -c -o eval_env.o eval_env.c gcc -g -O -c -o eval_vm.o eval_vm.c gcc -g -O -c -o exceptions.o exceptions.c gcc -g -O -c -o execute.o execute.c gcc -g -O -c -o extensions.o extensions.c gcc -g -O -c -o functions.o functions.c yacc -d parser.y mv -f y.tab.c parser.c gcc -g -O -c -o parser.o parser.c touch y.tab.h gcc -g -O -c -o keywords.o keywords.c gcc -g -O -c -o list.o list.c gcc -g -O -c -o log.o log.c gcc -g -O -c -o malloc.o malloc.c gcc -g -O -c -o match.o match.c gcc -g -O -c -o md5.o md5.c gcc -g -O -c -o name_lookup.o name_lookup.c name_lookup.c: In function ‘spawn_pipe’: name_lookup.c:99:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c: In function ‘intermediary’: name_lookup.c:258:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:260:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:266:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:280:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:282:12: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:287:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c: In function ‘lookup’: name_lookup.c:187:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:193:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:205:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] name_lookup.c:206:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] touch net_single.o touch net_multi.o gcc -g -O -c -o network.o network.c touch net_mp_selct.o touch net_mp_poll.o touch net_mp_fake.o gcc -g -O -c -o net_mplex.o net_mplex.c touch net_bsd_tcp.o touch net_bsd_lcl.o touch net_sysv_tcp.o touch net_sysv_lcl.o gcc -g -O -c -o net_proto.o net_proto.c gcc -g -O -c -o numbers.o numbers.c gcc -g -O -c -o objects.o objects.c gcc -g -O -c -o parse_cmd.o parse_cmd.c gcc -g -O -c -o pattern.o pattern.c gcc -g -O -c -o program.o program.c program.c: In function ‘program_bytes’: program.c:81:11: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] gcc -g -O -c -o property.o property.c gcc -g -O -c -o quota.o quota.c gcc -g -O -c -o ref_count.o ref_count.c gcc -g -O -c -o regexpr.o regexpr.c gcc -g -O -c -o server.o server.c server.c: In function ‘read_stdin_line’: server.c:609:7: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] gcc -g -O -c -o storage.o storage.c storage.c: In function ‘str_dup’: storage.c:111:24: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] storage.c:112:2: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default] gcc -g -O -c -o streams.o streams.c gcc -g -O -c -o str_intern.o str_intern.c str_intern.c: In function ‘str_intern’: str_intern.c:244:31: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] gcc -g -O -c -o sym_table.o sym_table.c gcc -g -O -c -o tasks.o tasks.c gcc -g -O -c -o timers.o timers.c gcc -g -O -c -o unparse.o unparse.c gcc -g -O -c -o utils.o utils.c gcc -g -O -c -o verbs.o verbs.c gcc -g -O -c -o version.o version.c gcc -g -O ast.o code_gen.o db_file.o db_io.o db_objects.o db_properties.o db_verbs.o decompile.o disassemble.o eval_env.o eval_vm.o exceptions.o execute.o extensions.o functions.o keywords.o list.o log.o malloc.o match.o md5.o name_lookup.o network.o net_mplex.o net_proto.o numbers.o objects.o parse_cmd.o pattern.o program.o property.o quota.o ref_count.o regexpr.o server.o storage.o streams.o str_intern.o sym_table.o tasks.o timers.o unparse.o utils.o verbs.o version.o parser.o -lm -lcrypt -o moo rm parser.c |
Download the LambdaCore database:
1 2 3 |
wget http://lambda.moo.mud.org/pub/MOO/LambdaCore-latest.db.gz |
1 2 3 4 5 6 7 8 9 10 11 12 |
--2016-04-23 19:33:25-- http://lambda.moo.mud.org/pub/MOO/LambdaCore-latest.db.gz Resolving lambda.moo.mud.org (lambda.moo.mud.org)... 209.181.94.35 Connecting to lambda.moo.mud.org (lambda.moo.mud.org)|209.181.94.35|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 656863 (641K) [application/x-gzip] Saving to: `LambdaCore-latest.db.gz' 100%[===================================================================================================================================================================================================>] 656,863 218K/s in 2.9s 2016-04-23 19:33:30 (218 KB/s) - `LambdaCore-latest.db.gz' saved [656863/656863] |
Extract the LamdaCore database:
1 2 3 |
gzip -d LambdaCore-latest.db.gz |
That’s it, now you should be able to start up the MOO:
1 2 3 |
./moo LambdaCore-latest.db new.db 7777 & |
The & is used to run it in the background so you don’t need to keep the window open.
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Apr 23 19:50:14: STARTING: Version 1.8.1 of the LambdaMOO server Apr 23 19:50:14: (Using BSD/TCP protocol) Apr 23 19:50:14: (Task timeouts measured in server CPU seconds.) Apr 23 19:50:14: NAME_LOOKUP: Started new lookup process Apr 23 19:50:14: LOADING: LambdaCore-latest.db Apr 23 19:50:14: LOADING: Reading 97 objects... Apr 23 19:50:14: LOADING: Done reading 97 objects ... Apr 23 19:50:14: VALIDATING the object hierarchies ... Apr 23 19:50:14: VALIDATE: Phase 1: Check for invalid objects ... Apr 23 19:50:14: VALIDATE: Phase 2: Check for cycles ... Apr 23 19:50:14: VALIDATE: Phase 3: Check for inconsistencies ... Apr 23 19:50:14: VALIDATING the object hierarchies ... finished. Apr 23 19:50:14: LOADING: Reading 1727 MOO verb programs... Apr 23 19:50:14: LOADING: Done reading 1727 verb programs... Apr 23 19:50:14: LOADING: Reading forked and suspended tasks... Apr 23 19:50:14: LOADING: Reading list of formerly active connections... Apr 23 19:50:14: LOADING: LambdaCore-latest.db done, will dump new database on new.db Apr 23 19:50:14: INTERN: 21786 allocations saved, 165665 bytes Apr 23 19:50:14: INTERN: at end, 53503 entries in a 80056 bucket hash table. Apr 23 19:50:14: Loaded protect cache for 128 builtins Apr 23 19:50:14: LISTEN: #0 now listening on port 7777 |
To test it, just telnet to the port you specified above:
1 2 3 |
telnet localhost 7777 |
Output:
1 2 3 4 5 6 7 8 9 10 11 |
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Apr 23 19:56:56: ACCEPT: #-2 on port 7777 from localhost, port 58453 Welcome to the LambdaCore database. Type 'connect wizard' to log in. You will probably want to change this text and the output of the `help' command, which are stored in $login.welcome_message and $login.help_message, respectively. |
LINKS:
Download LambdaMOO-latest.tar.gz (server)
Download LambdaCore (database)
And be sure to visit Lisdude’s MOO Resources page: