Idea from Martin Hinsch's woosh:
http://wosx30.eco-station.uni-wuerzburg.de/~martin/woosh/
Implementation by Kragen Sitaker, not having read the woosh code; I
thought a prototype-based system would be more suited to the shell.

shoo makes your filesystem and shell into a prototype-based
object-oriented programming environment with dynamic method binding,
transparent persistence (but terrible memory management!), multiple
inheritance, and local-network distributed objects (if you have NFS,
and only the state is distributed --- not the computation).

Unfortunately, it still doesn't make the shell into a decent
general-purpose programming language.

To use it, all you need to do is put 'oo' somewhere in your path.

begin 644 shoo-3.tar.gz
M'XL(`&$$8CP``^U=Z9/;QK'75^&OF%`;<]?F"5[UN%G[);:3**Y$J5BI?'"I
M7H'$<(FW((#@6"XMZ_WM[]<],SA([B5SN7:$KI*6!.;HZ7NF&V"R#,/NBZ>%
M7F]H3T8C_.WU)Z->^:^!%[W)<-`;]FPT?='K]P?VY(48/3%>#%F2.K$0+ZYB
MYU(&M[>[[_ZO%!+B?Q@^Z1R]?J]W!__MWDCS?S#N]48#XO]X#/[WGA0K#9\X
M_U_]ICOS@N[,29:6]4HLO,!=R709NE,1RWD6)]ZU]#?"#\,KD47"$>IN!VW3
M4#C7H>>*11A?><%E2ZPE.J59'(@PB\6UXV=2>(%(EQ)?8L^9^5(TU0"1DRZ;
M-(I<1>E&)&F,$827B(7C^5DLK0*3TS/QWA(`/YP[O@AG_ZN1$%$<`@G^7UWA
M9FAPT3CI-W0K?+;-9YKUHMGD9MY"_/"#:-^(Q@EZ=$]4BX9X]^Z<,`Z$];+4
MJ=K(>BEOHC!.Q5^_??OG-]^\^<-?5(,&CRS]1*(WR*(Q!`W4[6Z'+WQ^+MP0
M+4IHN&C!]RH(O"RH4-QO%%B\U+V#_"(A6QI"L>,<?%6ST5\W#*2EOWRP+(O&
M$">O1-M/A2W>"=55K62^#$7CGPE$?RI.>D1:.4]=+];TG(>KE1.XX@<GODPZ
MG<Z[AOCR,UMUO?%2,00;+2MGB*(6,\2J$-!*EMXB/1?\Q[(JJR:ZX8]JV,#(
MKT0BTX0DJB),EJ;%C[?1HC+J/]Z\>?L_X-NW7[\MC<Z$>M0XC)TK%T[FI^KB
MX\>HX/+XL4J<(G0@6C(109B*+'!E#/,&!NFY<BI6N#0@+LD;.=^:(:?]?S>L
MY[93-3P-L/__Q[>__^:OWS[9'.3_Q\/A;?Y_8@\')O[KCR=]M+?M?NW_CP+$
M?^L"8%FO7>F(11RNQ#H,D^54+-,TFG:[ZS"Y&?0Z<AZV0:O4"X-.%GCM=2;C
M'V=9?-EQ9??_5DZ<(H[@GEWK]2KRY4H&JKF8;<1W3#[QO9<Z5S)NL7U:.M?D
M]&/IN!PC<&<Q#UUY+E[C2IA=+E/+44XTW42RC3!%NB+9)*DD+#/?%3,I5F$L
M19)Y*>[!V])0R5+Z?L>R:'EBA2D3L:&89.'Y4G<GL\C-X)XIE-F>QE+.KAW&
M'A8B.=JXC)W5BG"6P;47AP$M4:R]="G<3>"LO+DQM(BI7`J)K#1V@B1R8FH8
MP1I[F#N82W$ZRU*1RCCV*"A:2:QA`T0#4(D&_<U92ZS@!CS0T?*"I8Q!./1K
M,=H<"+4#F:X1>0G7H^@)XP%'A7,B3N$TL&`BL11_^^/W+8OZA0%".28/&",I
MVBKW;;?;S!9J`,<>98I[9R#C/P,$,VD6H)>_:0GXC"3U0#ER-4$S90H7=#<$
M=>4<2['`=QD#WRB+HQ"149F.OA-<9E@SYG@;B@QWO11KQ!B$?2`51Q$L`5<@
M))IAV!0)HKTU2,+!);.5_!6&@"BWVQ@)B("%.3?:<QI03TLCT7>,W`C#!OE0
M7+DFUD!2\=%1B["2>>Q%0(88A04K:<,@,X2Q&Q*[F4S!0+$&:\!3PN7KCA"O
M4T8[(;QGQ#N%X=]___;/P!!38H*9F`M$FFLB89RI`%D+3G/6!)OX"L(L\)+D
MHNDTE93ALH50*R,1P3)8&%R]A'PTISO#')B!8DOZ`B>?H#DU]A)V]&`MQ(ZP
M71#+F:,4XB>T"L=$J1388R1"20=Z+'Y6>6,P#P/H?0;](I31;RZ3I`6.$7=)
M!*)TV5YX"$,0M3GQG-AT^K<P7H$%&V$F8MQ!TF2S\KW@BHD78L`X)X(GD\Z9
M8JT:!T*2A/JSGKT@6!+)N;?PP..9$OB2OEKY5J04=[4@5"QR<R=@,4R73EH:
M$/BH,3<6;!])"W8BBF4)A6Q>0,H7L.1J'<1"0=VT0)AV-HE2'H.U(K!FO9;*
M9B4";%IZ`Y4X*UA(9Z,L`#A+XV3S.<D:#TK=$X6W'M`+8&P<UR"B-U=$W)![
M1-ASL5P(V*&08OJ$(GV>@`+#1`D=?;3(8F2)&&"P?U'02;,I%JO)]+K29)O<
MQ<Y/Q9[:0EL!K2=<E&5_)FE$189SDL2(G,H\\QTXC'5I5FN+1BTS-I8('(P3
MV#,%?01[H;5.`MN\H0G1FL:%-KPE&N%CN$ZVV4"M/./5M&R2QF012!/#+EY"
M0EO;;F`.WT8VM"5D.N\H\;V#-I#%K26083.?E5Q9RO*5UF3$*T2\7[Y^NEYZ
MN,ZZ%2Z4B9K[F2LMI78D$5WS$5)#*)YI8Y)(+!2.QC-VG=<.)88$`A\KR2+>
MOLUEG#K@U`+KQ*Z=A)XMK\:U70`O/I9-,K!SWTE`X5)+V#=&EGT/W85RO&["
M=QGK"O5<.+&%#0VTCZ,496N7CI*X14AL(W9JK9Q:EC-+6`3@U_2Q!+7$U="'
MPV/:ED5$82*@"/PM(L9!RXV]Q=P+$"N"R?/1YC*60`M#*^TG15!6E8P@/'T*
ML\TMX:]@0J1K3D)XW[4'*#01S8[NPYKG$,N\U`,6ZC`%F#9YXB;V_KH?:6MN
M0\R4$)E+R7YKS^TIW2\&2+BA1;O%\@*9:JOPFI9FALV7QH*--:G81_7K&.X$
M<DW[4`R@FF$`7#+T95G3(4VBXDT6.3J5<#VI2`J="C?ZNA(E+(<F:1&ZC"7:
M910-SN32TX*?(-Z`X,#FFZ70ZO.%682%1HY/+-XQCF%4F4E%+TW5#J8E@C2R
MI4,'HXJ&>,0=35N+/V,\1RSIL$Q;<^""D<YSWP)Z(N9S)<]H14QF%2`QG=@D
MLQ3%,H(^Y2%TN*A00U&:B><$&F^:VW6+[PZ9=F6I\M"6_5Q)V(-P70A"E2GY
M.!02N*[':&#]:_!/8A4D,]M=L6#N.Y/P;-*RWO#L6J'+UB"W!R`KK76>1H@8
ME+1&(0R^^FI,`86FAH()+!#"**OH1&R-(S$0PP9I+\58I3'H;D1W!YW^L#_Z
MKP8;?!9,BSPDA=6)M@$K=@(2X1WH)HR1,W[^IB7@?F/E@=$Z=?@$AC&A.!93
MBA+>.D)1@Z#W%-VGJG.,OQ120//4H!Q6Y0,K]"MCY</$TV+Z*=E`<F4B0B`=
MD&>DP-LUMXVXWH*@BFU9']D44T@&DER'_C4HHGP7NWALES"Y@SBHC)A&(X"R
M^9);<NR.JZ^M2^PC9FSUZ/N_L3<[9V>R]A+)4<^-6L9FFE-76^&"<Q8CV:F/
MGIX2^/RGY(B?(A?X^/S?8#2I\W]'@1W^PP4?>HY[\G^]WL`V^;_)L(=V?<A+
MOS[_.P;H_%^R5`F`>"7:\4)0MN:Y,:OA&+"C_PB7#CW'??H_+NG_:#PF_1\,
MZO/_HT`Y__^*=SU-?1!,1W1ZNZ_.=RN[.#X9H),C.ENDV(^V;SI56>22W]V6
M2T:(3KLP&I`V>T4"64?F?$I`&S/:\=(^C'8A36K:[#0JR<M1-<5,352"N9)2
MUCE4"<M&+2A[JO/<)G/*:#@^)2,V^L24TZ3G>AI.Q<ZQ[72*O"@/985A/BKO
M`3E?2I\N3KXR%%&;PT"*7BDW;VPM]]7S<$N>ZSC\W]%_FO_`<]RG__VQSO\A
M[!L,)Z3_H]ZPUO]C0.'_H?W$>Z7^U2/IV49;!JYEX0,I[\>J0:!Z(#J?T*>F
MQ5FI.KXP-0E+F(KG7G(-)=C1?WUH>L@Y[M/_P:!O_/]H-*;]WP@[@%K_CP%5
M_W_?,3D=8+*8M(3T^&RO=);HI8GT%W0"AY$2KLCC5+F?R$XI,KA,1;_D?K6;
MAL/CYNS%K;F3D*OF*^15K>[G9\91ZXOGYU9Q[>__^J9;NB$39_[<A/V5P.[^
M7YV5'W*.>_1_,!J.<OV?C(>D_W:_WO\?!;;B?\=UB?LJ".!L0I'SH:/E0O_S
M_`2=\5*X3ODK*NC]DRJ+X/(:]=&<\-)1OTX<48V'*O`ALS(/LYAS[G)#1_P8
M9"9-IL25`8V*('N!?RHU-?.=^940EQZ=4S<75!/B[*3=6CJEJ",259!!'6FX
MUVE1<Y!GY]0:3-"C,G'G1?*LP1<:9MPP2Z,L33CPD0JQ5C7;ICI,\QZ<'J<S
M<C.U)D:'*J^_A^ULTZZJQ>-=%E14)02JUH1K/*A>BA-;D4M9(TI!O"J6KZM'
MM%'6=3*I\/(ZA59>Y5-NH]:Q44S2*?@D;.EDFA=PIGPI*_/DXJ`2XL0F77]4
MRM.V\LP-\8O*NL!JE98RK<E9P!%@:I=<!Q4G=83XCM)ZD`ZUU=1Y$),Q9YJ]
M5D5.>09V/VZ<X*!VOD,TY&WEZ2(D=.6-0W%J2^4Q.<8]4_0O;769Z%Q(1;FQ
M<$U)65=&$O\%%/>:?6J9.IW2EI2ND0-5V]*M+?)//QFG."B<XJW[99/6-$.*
M'[1T<WIXN_I:;8VY7#I'K#2__#?/6=T&#S"&KHCOG)AI&H2FVIY^Q:X:@ZYE
MT]0'J,*M6(*^Q&$3,*CR%J)*7M-3E6R%6ME"J.0D)"ZDJC)%9"/013%(SAC9
M9+DU\@F9<7@NFDH5-NCZAJ[.'I,6O/GNO-0,W;M+B%^79'`6NAO^P,N_;0!H
M#YD0+A:!:&2J_B.!0CM9ZBTR7Q?9K9T-UU-IY>?*N'+M6Y+-KY*IJ5*`=)R&
MH3E;T!?/&CJ_^JHHN-$I756>!LHY`<UR'5[QF$M=SO^5.6TP["VXI\8+0ER;
M2ZYR8-[0\IQ+RHIB<L40H'(K:GG1_)L__*5QUKA_6BL?$Y*"(=]O3_.J<:+'
M[C8^-`C'+F@Z=U158%.9S)1ME6&ZD:9S+F!C=Y#72D6P]9(>27'#CN4'HIWD
MY>T*!\/3AGD"9)^X8Z8\;ZF$=?]8R=98[\U@'Z:_Z.+YG?A/$^60<]Q[_C,:
MY_%?WYZH^&]<QW_'@&K\]QKA'-R:JXI72\<_RN:P58>5-6Y(%5:7BS95\1B;
MI@YV<708VH<CT8^=_)(5X1.%'?W/JZ4.-\>]YS_]//\S'(U9_T?#>O]W%*CJ
M/S-_*Y8VU<WE4K]2%(G&]@,BUZ*ZL/"R>X)5RHDLM-&P.08(KW08Z;&!H0IF
M:D5-J`7_?6_#RSXW)7^=L.?\QU06'FR.^_1_:-OY\U]]F\]_QZ/:_Q\%BOS/
MCDIKC7ZY?R.:UY]R:,`[`]+GEX4RYQM@TT)O@"]Z%K9$OLPSLL5NZ^24"V`7
MXK>]D2M.O#/UF*L;&BQ./)6;E6ZGTVE8+[V+D]-37/Q"],_.+'ZRV83G>LN2
M8U=LJ>Z>\;DY<ES8T?_D^/'_P#S_2?%_7\7_=EW_<11XROC_MB!A;X!@ROH#
MN;YV_-W2B]R:J`;Z)0+**.1]\I.K]VK'\=OIAWK3<2?LZ'\4'WR.A]=_3$9C
M5?_1'X]J_3\&5/5?)R[4FTN\0)7_!^42#UE4>"1H(U/:(62^KU7Q=_S`M7D`
M)17:"_<+]_OE)^9@?^%P2_Q_T#GNT_^)G;__:8A;I/^32>W_CP)5_?_:%%\&
M^KU,MS^SMZ(47?X@-S^)QX_H;L*LFI7A5!H]>\:/^)B4'^670WH1`K6_SE.A
M.S.K-%$41IG/]RE]2KD\2@JHFC1.#P$]@ZIYN$N]%D+GY3@C<.4%[IZHY(Z@
MI/)`X]TQ2;Z_65W1^Y$X*.%.I5S"W:F>!Z10S-Y&]VGDT^C=S..#'=;__%&Z
MIWD3X(.?_QF,QZ,!U7\/!J/Z^9^CP!;_E1@=>(Y>W^Z107\P_^UAS[9?"%ME
M9A7EX9BN*<]6P9=K`GX><C7_M^EY<"/P^.?_AH@$:OT_!NSC_Z&-P&/T'[I/
M^C\8W*7_AWQ>M>;_#O]O#CS'H_@_)/\_&5+]IUVMO3DP5AIJ_N_R?WK8.3Z"
M_R-Z_Y_A_Q,<21=0\W^'_YL#S_$X_D^4_@]J_3\&[.7_L^H_\W]D]VO]/P;L
MX_^A,P#WG?_9.?\GO?%DP,]_CNKG/X\"Y><_\_=0Q8[K9>;MA#LO#^I8-_D)
M5K\A;JA(>5.^LCDSF3EYZI^>W(C/!?[[0IQLZ-/FK&NCRT]B-A=M_[G7_ZG#
M/OT_]"/@]^N_J?^;3(;\^P\C>SRH]?\8<$O]S^#N=S=4W[W&KTZX$9M]%7VY
ME9@*_AV&SSX3N9F8\O,FSTV!3QOVZ?^A2P#N??_3>)SG_Y7^#R?#.O]W%"CG
M_Y26LR!,Q6G9P[=$V;M_:C5R_\FP-_X_^/[OGOQ_;Y+7_PYM?O_;&+=K_3\"
ME/7_4?5Z\91\O]HI[,F,^VY<WA+$9_F3KU]MOP>IG.!&O^W-Q4/[[6Q!'M(/
M2^#YS,_G8'K:H]BB*^A+G.]3'C[>ICK>YF>-5PF?"-G="(JF_'B#O$__^>6Q
M!Y2Q^_1_-#+O?YB,Q_S^M]%P6-?_'06J]3_%FZB#2U_>=@#`Q3O\Z/?78I$%
M<W[#DX,V-K]"HDFE@51TPX)>:A'S./30_(,/$&XN3F[.<?-D<RZB"^>T?_;Y
M\)Q^_>#T1EQ<B-Z9>"\L^A6TTXWX4GV-NK;XH'Z#35W_G;K>+MUX#WW[8-[$
MGE_+W\R>8J9-]^;,S*1'3HNFE1E3\86(BGN@#W_]8,;_)1]VL/X7[UQ^D@*@
MA]?_X"K'_X/1H%_G_X\!V_Q_B@*@AY__X^I@POE_>O[KUOQ_@>_/+P"J^5_A
M_^&K_Q_)?WH75']"YB+/_SQI&K#F?Y7_!][[$3R:_S:]$WB'_T^3!JSY7^'_
MH6-_@D?QG_R_W1O;O5K_CP%[^?]L^?^<_Q-[7.O_,6!?/'7H3<!'U/^.AG7]
M[U%@+_\/O`EXE/[WN?Y_.!@^K/[W9R-7\W^7_P<N`+[W^=]>?OY'#J#._QT1
M2K__P@=N\47YT/Y<I*7O'!O@6BP^%_/3M"[B^0^`O?I_X`*@>^M_^H.B_F<X
MK,__CP@?5_^S]?.*7``4*_MP5Q%0O%L$I'^HL"X$>B;8J_\'?@#@4?Y_P/'_
LI,[_'P<^UO\GM?^OH88::JBAAAIJJ*&&&FJHH88::OA5P/\#%?P^Z@"@````
`
end



Reply via email to