digitalmars.D - .NET from D
- John C (214/214) Nov 25 2005 At least a couple of people were interested in using .NET from D. The
- Ivan Senji (3/24) Nov 25 2005 Very very interesting, i didn't know it was possible. But IMO too hard
- John C (5/28) Nov 26 2005 Quite. And indeed it is rare. But reasons do exist for wanting to run CL...
- Chris (11/26) Nov 25 2005 very nice proof of concept. I know others have various reasons for
- Ivan Senji (2/8) Nov 26 2005 Cool! Can't wait! :)
- Manfred Hansen (6/41) Nov 26 2005 Hello,
- Chris (6/11) Nov 26 2005 Nice find! I don't want to get the old framework just to decompile
- J C Calvarese (3/16) Nov 26 2005 Right. My understanding is that his compiler code was based on Walter's ...
- John C (5/37) Nov 26 2005 It would seem there are several people in this group doing the same thin...
- Ivan Senji (2/6) Nov 26 2005 It would make a lot sense, maybe dmdfe would be a good start?
- Chris (10/13) Nov 26 2005 Who else is currently working on one? I recall one or two who said
- John Reimer (9/28) Nov 26 2005 Talk to Brad at dsource.org. I'm fairly certain he hosts any project
- Chris (5/33) Nov 26 2005 I'll ask Brad then. I'd prefer to have it on dsource as long as he
- Ivan Senji (8/27) Nov 26 2005 Well I started reading Build Your Own .NET Language and Compiler and
- J C Calvarese (9/24) Nov 26 2005 I think to be eligible for dsource a project needs to be open source and...
- John Reimer (7/40) Nov 26 2005 Heh... and I was one of the ones originally against it. But things
- Chris (7/24) Nov 26 2005 I am not sure how we could use namespaces (.net) *and* modules (D). We
- J C Calvarese (3/30) Nov 26 2005 Might call it "D#" then. ;)
- Chris (8/36) Nov 26 2005 I decided I would not use the DMD front-end as a basis for my
- Walter Bright (4/9) Dec 01 2005 The book you want is: "Compiling for the .NET Common Language Runtime (C...
- Georg Wrede (11/30) Nov 26 2005 Excellent!
- John Reimer (10/32) Nov 26 2005 I'm curious. I'm not a huge fan of .NET technology (or Microsoft in
- John C (4/12) Nov 26 2005 Only if D outputs executables that are compatible with Windows Mobile - ...
- John Reimer (6/24) Nov 26 2005 I was under the impression that if you made a D .NET compiler, it would
- John C (8/31) Nov 26 2005 Yes, I believe so, but we're talking about two different but related thi...
- John Reimer (3/47) Nov 26 2005 Oops! My apologies. I didn't notice.
- Lionello Lunesu (2/2) Nov 28 2005 Great stuff! If only the syntax could be streamlined a little...
- John C (65/67) Nov 28 2005 That's COM for you. In fact, as far as COM goes, that's pretty streamlin...
At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy. begin 666 clrtest.zip M$+Y7ZG^85MHE0566YZDJ4E4$5*Q8L2W=`XLJ-YFT7CGVRG:V%+3_'3^:. GE MP($+ATCV^)MOOGG8*416,H242EFJ)&52H]+C?J_?H\6]D+H^2?:49V)O5J(8 M1B <*%>:\!1!Y+ X*(U%,A.,8:JIX"J92DD.EU1IZ[BN=T#JU01J:Y(ZVJO- MU(2U/;(,\9%B?V],.H^&)W#Q+;_5DS=PILR"#T M(<+F2!\,AKU>MD(%2"> I[#M8LU.P?EYD^NW!H+-T7P9?A]7%J-[FF5^T'03 MMI-&C*5/S'FTFE[/IY^6T?,7+U^]CD>>)$CQ8JS+!!;KJX^-D)XM%277XV!S MKK07*<LPZPAW9=FB7L\-,G*U&,'#WPJW+%_/Z+>NX(HO82O"`NECR,!HO4$H MK+Q2N9&>,B92?Q= "_#WW MHST7GN=_G(=_V&C5;?3&E?&/O7XK^!/W &WM K(S;OG!K7=V_:+Z#O3I*YP M+JEK9$ 41E7,.F)XA]N0(V FOG :?EO^3*(N)8=G9O/X"U!+`P04````" `M MTW:#Q84BRZUNY<>1Y72+BXM D>5$6UD2],ACS^E_O^2\-".-TW2WN ':S) < MDD-R2,[8.3SX^6<RSVL2Y;LBK)/;-":/27U/JGIS$IT\)MDF?ZQ.`'MX<'BP MRS<-$$1)63:5CKY$?%&&=[MPD":W0_)3GL9GXQ,8_W1TV4>%3:U #P_BISHN MG,(=`W[\`OX<\&?[\3[BSU_ OP7\+_OQ]F? 7^S'3ZS `8HW^RFN5H$/%&]? MX.&NEE9 ?P"J=QTJ83C?7R"3T:F.%R(6"VI& QTY!;C$M>8!$HV-+-;SC_/% MTQ<84(+]9G*IB<:&>),<&(4AXH2E%^X$*0PQQRGX(4.B3N!Q B4-F/%^4ZZL MJ6/YOH6Q.58,*F)6XMX:^:]7CC]QIN[<H9J^ZS'PEBQFS\SAYBT_<?S(B/<= M>^$CZ[,+(QYLR/=X]L:LH$)AWL+4]9S G>'1NS"'XY6WN$*LX6P+*P:^8\V0 MQJSF*ECXUGLJPJPF8^!,;A97_^W8Z- +KJW"04._T]"H8HM\HQA;.'**\/WA M:GLK&FQOS&?ZVO%7[ *\W&[US9FN`2"$I4Z?MMOML,/ #FC>.7T:8?+O"A!Q M=OHT-J&O/OO.E*+/36 X!HY_36/P].FMB<+U/.<]S3E4N>T^ IFU^LCY,"J. MQBJ$.($A[8]:KY#LHSN?L#H5X MB5T!V0O;LU8K!6)YKJ7.UW/PF2K)^EU5UK8\SU[,KYFRM VU>!4 <,CG-F1J M0\5<G*N<)LY*L9R8H5U8`$H(; TG.A3Z 3X0SX&]F"UUJ#M;>J[M!M9R";E* M \<Q?_BT#V6NT MGG,8G^HL6.X;,?%&W)A)-N+.N% C\IP+U)#S!9AZXMQ,H,OS%M:$"S8R^(5+ M<=ZE105/>>C";6^2;+=Q69%MF>](?1^3Y6KRD3P`*,DSLLU+$H=5$I?D_=J= M+MFJJH:[;"1YY84=ING ,;H/RV/R$*9-?,0V0"3-0UA>, B,3AYJX,9OC">\ M)5'0MZ#L M9!AB7!3W-Y\1>3]_J"\%B(?1HQ]7<?D0;T9[,>.]F+,6HTK'GS3/[DB*VE^V M0+1)!\2B]U8',C&)#MRF M!^ F\P`XZ>T, )WMXM80V %38P)\CSD!8S8H*F,R*<!-1 6PV:PHP&18Y+_7 MM(!\P;B(?<F\B.\:F!])0,%ITA<^Y,D&_/Q<QEL%BDJ2J!/"+-2:CCMH!FBZ MX4Y#K3 MS*S% Q]'>;FY5%$N [G9-B<%C'& $'P50S[ O[ YB&*,KWK5$Q14CVX*HPM> MS)TL0U51F+;ARF%0H"\U93AW1+0+*(XZ\T-R-GZ%0"3U\C,E[R)DEFPDZ&O+ M?6F+Q&-TKI*Q5WE31G$7.HFKJ$P*[,.ZJ ]Q6DP3[D>ZC\TCPNP\J^.G6MN. M-($(%025= ^ILWXNE$. M2&J;'%E90)Q\2[>)=*4R!X4E 7&\9R9$%O>Q1!L M*'L9EN&.XN4C`[K 2Y(Q1LI+0)(]2+!\7H$#FT+C^T"A/-HISZH/612U`LRO MM^HT6J&FE:8J$5I.024M6!$P3<.>/_B%W602'J%I 3$=W<<[?C-0?49=D+O0 MQW.?R-A)H=A56.T:Q34]/:]Y>RG4A+G0DLAK_T/(S: J3 -6B20:=5>0,.5: MU0YM_NMDK1&FK2M,6EU'"N5::VPZY8>;& A- 8 *64' ,P;T GC7\$B [-)( MD! R/IV8"E FTQSCN5>O<XQX!:R>JZZ)7JFG*O<*6"V%6)$ZT6.8[F24\_S! MSGLIP2YNQ,YW!>9R_&1:,.<?5H<9R;?;)$K WFDO9A F<;D-HWA(_F J:$BK M>$-?,NH8'!?BTP,[Q>R0Q4!='1[(59!UH8]DJO*;,C64Z^(CT;_4#YKY6/_] M^O_)5[$31;BXE/U%^?:KY9]?4/GL6/VSB<MG5V Q`$<V_&6G3)+-D+4,>!]Y M6-S^$4?U41LRUF;CQ]N!`O$A(X=53$'=[2D=\Z_?L=GQ] =N5NB0U /1"LWC MW1*!&A5F&DI%S5VPU*-1X)%!(U,J5\S ?V*H44^3.-T,U"YW*!2H_J1(5&%( MD)DHAGA$*:K/:9YK5OE.?FJPX5+;PBMP*V79<'WIYA]I&AV2;PMC,?V"^H(Q M5_]'LY?6`?)*]1X%"*;8&%]QGU=L,3Y?$+>:X9,!!!=Z<-"]>?(Q6\"4Y?%9 MPF4G'O3"EH(U-[&K!G,*A\%^H=)VU]+JF[<+&=1TV.4KTJN/^OCT_(?F->4H MV-#IU*K=X:1VSH$\-90B"7 \; LCLXUVFGI'R9U4BRUS<2^)MAZN_N1.;R\X M&"H/3-#W0%\&=7+87F,![#Q%<=%:!M]1X&[FE&5>FF) 6NN[8F#TXV/ JNN2 M7T)#J M:&ICQM1Z7&U#L[RH7O(BXK4%Z*<PR7BU]I+;-I7 !/?MX5=?6_>Z>&C40DL[ M:)FVE)35SUB<6*8B)?7T,P\G%MFGS39*LC&E<%3[NS+X^ =E\(:;5"_C+Y7M M-O^\7*H%TICRY"-!$6"L&1<NMK2=5P()^_G7B 9KMN6(W\F/>5C\G7+4SSO* MEEZ5=U9U22\P?R/SN!6]Q< F&6=7S5:T)!_"ZOXZ3!DGVML66_V&,P6E7\=" M6OE8F)DE__*N4RK$ 1*&5XRNVMP4^=38WQ7Z9S^P>;D"6^AVZ!FA4^*,T<? MXCM14/7 J+<Y5#S/%"AMJ88?`NCY>%F%%V0:`U;8F= Y7L.3,,4;;?=S":1$ M([.B"#H"O'=W*+OO!+V5D _7]'F[MY!JEL'FE38U7<LM=[EXW\'%DUR:+AN M^>P*QRT-JVK 0IIS\5N%]*45QF-E?*:,SY7Q+\KX0AF_4<9OE?$[,>;?9I): M?MZ9_]*97W3F;SKSMYWYNR-%80*;*6/\LE8&9KALP>C&^Q+ O?P'I6Q(J8?& M+YH.27!"2:*PXF^GQT?_"3*.%.[\RUX#E/ ;_>NL(_)?5)%?=46^BD&<5K&J M-O_KL%T%?<A/`6XOR^E7TQ+VCJ]ZZ.0G VR3&/$%A*]:2$;Y[H9N!O;F8L3P M;,_-Z+<$+BT`TKP8! B VF&4"7&Z" SJ]_T ?8!,3CK/[_Y^*[/5K[(Q;O;_ M^0=M3IJ4*^&;U"0Y4*0T9L6R7)(\J=V+BI+:%C,4R?#AQZ3R[XL&FB(IT1+G MD4E5= ^621! `VB >[&+MX4(>NM S0MLN_7WS\&T29^A*<P_?'5-Z^^2=+ MP<]9+] E<9JWX,4[ >??[_Q^&*PN>M_NLG6<,O8]O'W[&C^SIYRE4?]7HGK] MAL/RYX1MV%TOB/+>I1]M0(R?>Q*A1\6N]Z97\$]_O/JFUYLO[-GB]F;I3*^= MV]EL=+U8OG4X^I-\4?]^-;7=T6PYO5EX$^\_]L*;7B\G]OP71%5[/_W4.X\_ M]Z[?7HV6[G1B>]<T1C?"R>W5PJO3*1]/M[R<SA=GI)W;X]%DZHY(-JD59;2X MG+91#HL M'+\O$F"C6$A.[W88`L 79TXRO*T6(- ]:^Z<E'CPP49&(9J')(TOPN6WGT$ M'NOX&=LKX+)UZ*=L,XW"9RX.X0$;/UIS+(W4S/T\6,,K27M3K$)\E6E<L.<> MI!(+4#G/6709L-1/UUO.V] $\X?X/9NP?!MO^(BZD#UE$(&UD769.+UE^3A MS \+5G'6Y(&F2MH11H._I5J6(1VS$:/(BFXI`S&GY( SEA<IQI)AFJ8BG,GQ MPQ <ZEV0<N]555W70.-Z5-VD0;0.$C^\B<'GGLN8WH.1S6WD%_F61>"WX%>; MYD>Q0C>!D\5\#Z /-\_!-7= "0BO')9X' Q,A+.3QAFPB7%U*&,* 1-_O0TB MMH^I<1!6\73#TBS M[*N;2WNIR)*A<07Y?]+KQED:DLR%E.0:1$6(6H-H"*E1*7P`^$7(I;>PG4MO M.;]4T;$E05N#C MV?3ZK3WCUE!TTR3%9Q,3)94ML10!Q$*((EE2"1D01!7+`D"6YL*=> `T03:Y M+=-<^MG6#N_C-,BWNRI/`0FQG; Z^H)IECK8L `H;?S><1^+(R?>);!XKX(P MR$6HS"$;5NY9)K(=$\ZS?W?CG1]$ O<//_1$P</?H&1AZ9T/[NN]=19;") - MCXXT#J& \6ZC]U'\&-%H&>6.M[? DA[\_=S[`Q+U6)5=V80%#IX==6#R_YJI MZ/R_A6\V/AOV!6+3=_ZK./B+SP.Y]^>/?!!>0I$87C8,X_5[GG7C=%YD"8NX M&?JO]W 5$"(YY2'7^G&$JU\?J[.W+((\E .48_YY9('+.,L_3G]=EU57A[#A M^JHF_M?6JP%J/N*_+CY#P M+LC[6?"!+?->]B&?^$_5Q\GP`JCB`KX00 (8U^SQ`*E-7Y>MBOM[EG[*O"NJ M:QF0Q%"'X5"G>27]K3'_)= (-89TQ6E05]=%?T"(9IR>]U+"VL3.6,B \(%5 M$TJU/- Q(LOJ<\_=H8T+^L#F\38J,K9ILX 3IV"&N^"^("_IZ 2.,I1,<G1Y MD\9K Z[5*?HO^$K2"J[XV9M-B3%/V#KP0T(L9Z(!]%Z:$C'17.*.$^(,E;%A M&.3KK1>U('&3?-=+QL$*"C[8* 3LD&Q:Y"UT//1/T5Y!'&274&0/GQO4>\)> M<9S47LG\E,GZC^NMGX*^CQ_&:<! )-P87E2ND7 ;7C'FSW::^L\D>_713A)B MU!!>U+IBB+,4(\C1!,OZ#W&P^:ZWY: *X1I*3,&L]OU0EC;64"!FC".W,ZZ; M8O34P1 0U452!XP> VO63L8ICX8\GG),OCQD*X<Z("H!%?HMU$8^QMAKM," M%6D*<WM^FAK53ABL^"OMJH]V`J+$+OGXFTW G=,/Q7<<_(7M`U^ 6,NZ57H M7['X%M2'`#Y92&F*I-N4+317P\2J2BIFAJ&,B1-SA8Y+TP"?QXCM4('A$D5M MR>)^ !8J700V:K"5JRW/U<X*U.7[OY/H7F;7MV*(FVWY05L-]= .^ZU85T/ M=EEU; -7:1=VFJB69N%_JI](X0&F6YTJ+DJYN(*/\-FR:H8HYX+<93\S+0IZ MT2R&E4]8`'*9B)%S:BZGJ]_8.N^JHZ%+IC8V45Y#I M*= "SA"?\:M5+Q 6,3 H+W1/S>#H=Z 'L_X[>^;9UXM>O/KM!?7VJR+?S3CQ MAAP#DT4 MDH9.J<[PA=1;I,R+[N+3B+_Z0:O_'.+1P>1Y?F)[?1JIG)PS6*59NGFVI(^- M 2$\=D ^JQH&^JN-J[F%_NW $J?BLD;%ZY *6_1X6?WZGMU(ZY4S'N%!(EV2 M12B_]P$7UEZ:OK3WP(\5*^R4[>(']A$$G'TY,U>(77_K,-2G$?-AQ1'+Z DV M?90SC +P2XTFZHE-D'[MD:O5I;EI^8H2---HRGXO I1M*N Q3IS0]N$43LKN M83N]*G*6_;5*??G!.PY,KA'L6TDNFETN*WKADESLMW#TKRET>L]=L;Y_6]-S M!]VJZ,C8NDCY >U7,OL_0OOFO 77)U^\S-C=09R_0"XL4]+1(5(WTIJ"J?]8 M(G\>;1,^?]ZMXG">Q^EA/?+EV![/P LET,?;OV*]-Z\8XK/FYC/8CIX`,V?[ MY'8P`MWTG.//&7T:Y\^C/B7744R^.%3]EN3D8>D0E 47$C-OPWL^B3EC(03W M`YLSWB-WX^?;D^CSK;^)'YTX0;VR]G-T0GW+<F&3`!!K2AYAVDD":MU0`RR* M((;GS[4%,P09ZU UL5A>25;GD!V0'V U.#C^>LM>(.:WRW[NEU^HE"H/F3;P MI:'W,6K]3*J)#ISWAV]TE-EO'&EN:E\:5'05NK^CZ->N*Y+RJ4%PT+/6/^QA M2P[&<&/>!S?TU^_[+YV=YEM6/M?HJ H]YW^'MRUV!H7>C&6\9?3H+H+S]3+> M2,3OJ5^XOQ'>Q/E41ZUTT%<[>FTGH&QU^NP0$:N;ZQ?Q]F*6I6M<9.%SISNG MY9RE> J*&??\$3">U]BP:G1 *X]U.AT7'YTDOCG TD+;=J35 >S,*50'#C Q MW%E7X*Q="" =Q=$]7T9_8; 2!!V- FGR)"9>(IW"\+ 9+D6]&CY^A,=;+?T5 M")>AXRV0QV_Z>8=:?*3:B]>E`V,HV4.4Q'%'([P3D%VUDHPN1*G5A>[$J.F. MJVGP 9U$XYI-[SK+#ULOEN8 M9AB4R)2J\=5!)9UN5++XJRQ/8>O=NPLB*.C6(6P;> ?]A"<$$DV$:)0OT$2X M"YZ""(9WN!C_ZA\T-KX^*31-Z:F)A-5Q."!?MF2=>H$&U"TQP.F5T* 2Y0<T M/Q0J^ZQ1IW0=9L&F"0HX`%OV $WR\/K'_P)02P,$% ```` `V%9Y,]IGSL$W M">;EBG?.+W+*S$L)R0\JS2O)S$UUK7 P,E&P5< 4!P!02P,$% ```` `Z%9Y MC'DS5[ `+7$"``!,!P``"0`````````!`" `````````8VQR=&5S="YD4$L! M`A0`% ```` `+8MY,_.X\&PT#P``TC<```4``````````0` ````F (``&-O M[Q$``&-L<BYD4$L!`A0`% ```` `V%9Y,]IGSL$W````10````L````````` M`0` ````12 ``&US8V]R964N9&5F4$L!`A0`% ```` `Z%9Y,SM^1U)>```` M``8```L```````````` ````I2 ``&US8V]R964N;&EB4$L%! `````%``4` *#P$``"PA```````` ` end
Nov 25 2005
John C wrote:At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.Very very interesting, i didn't know it was possible. But IMO too hard to use in real life.
Nov 25 2005
"Ivan Senji" <ivan.senji_REMOVE_ _THIS__gmail.com> wrote in message news:dm7vvr$1njo$1 digitaldaemon.com...John C wrote:Quite. And indeed it is rare. But reasons do exist for wanting to run CLR code from unmanaged apps. There are some fairly large products that do so - Microsoft Office, SQL Server, Viruoso, DB2 and of course Visual Studio.At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.Very very interesting, i didn't know it was possible. But IMO too hard to use in real life.
Nov 26 2005
On Fri, 25 Nov 2005 17:44:32 -0000, "John C" <johnch_atms hotmail.com> wrote:At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.very nice proof of concept. I know others have various reasons for wanting to, but I personally have no interest in using .NET classes in D. I am however very interested in compiling D (there would have to be some slight deviations in the syntax) directly to MSIL. In fact I'm reading up on compiler design and experimenting with a toy language I created that compiles to MSIL. Soon hopefully I will understand enough to begin writing one for D. Chris
Nov 25 2005
Chris wrote:I am however very interested in compiling D (there would have to be some slight deviations in the syntax) directly to MSIL. In fact I'm reading up on compiler design and experimenting with a toy language I created that compiles to MSIL. Soon hopefully I will understand enough to begin writing one for D.Cool! Can't wait! :)
Nov 26 2005
Hello, i found this link https://mywebspace.wisc.edu/daaugustine/web/d/ from Deja Augustine Manfed Chris wrote:On Fri, 25 Nov 2005 17:44:32 -0000, "John C" <johnch_atms hotmail.com> wrote:At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.very nice proof of concept. I know others have various reasons for wanting to, but I personally have no interest in using .NET classes in D. I am however very interested in compiling D (there would have to be some slight deviations in the syntax) directly to MSIL. In fact I'm reading up on compiler design and experimenting with a toy language I created that compiles to MSIL. Soon hopefully I will understand enough to begin writing one for D. Chris
Nov 26 2005
On Sat, 26 Nov 2005 11:03:07 +0100, Manfred Hansen <manfred toppoint.de> wrote:Hello, i found this link https://mywebspace.wisc.edu/daaugustine/web/d/ from Deja Augustine ManfedNice find! I don't want to get the old framework just to decompile that. I was able to look at the class structure in it though and it looks like he took the D frontend and changed for his compiler. Chris
Nov 26 2005
In article <ob9ho1hm8snvtl520anft0ei7p39bnkcvn 4ax.com>, Chris says...On Sat, 26 Nov 2005 11:03:07 +0100, Manfred Hansen <manfred toppoint.de> wrote:Right. My understanding is that his compiler code was based on Walter's fontend. jcc7Hello, i found this link https://mywebspace.wisc.edu/daaugustine/web/d/ from Deja Augustine ManfedNice find! I don't want to get the old framework just to decompile that. I was able to look at the class structure in it though and it looks like he took the D frontend and changed for his compiler. Chris
Nov 26 2005
"Chris" <ctlajoie yahoo.com> wrote in message news:h83go15mparb57e1f5d7uroprpo13seb0f 4ax.com...On Fri, 25 Nov 2005 17:44:32 -0000, "John C" <johnch_atms hotmail.com> wrote:It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.very nice proof of concept. I know others have various reasons for wanting to, but I personally have no interest in using .NET classes in D. I am however very interested in compiling D (there would have to be some slight deviations in the syntax) directly to MSIL. In fact I'm reading up on compiler design and experimenting with a toy language I created that compiles to MSIL. Soon hopefully I will understand enough to begin writing one for D. Chris
Nov 26 2005
John C wrote:It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?It would make a lot sense, maybe dmdfe would be a good start?
Nov 26 2005
On Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
Chris wrote:On Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:Talk to Brad at dsource.org. I'm fairly certain he hosts any project that pertains to D, even if it isn't programmed in the D language itself. Example projects on dsource.org that are in other languages: eclipseD -- Java; plugin for Eclipse IDE H2D -- C++; C header to D module conversion tool DManager -- Delphi; D Project Manager And there are others. -JJRIt would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
On Sat, 26 Nov 2005 14:39:14 -0800, John Reimer <terminal.node gmail.com> wrote:Chris wrote:I'll ask Brad then. I'd prefer to have it on dsource as long as he doesn't mind. ChrisOn Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:Talk to Brad at dsource.org. I'm fairly certain he hosts any project that pertains to D, even if it isn't programmed in the D language itself. Example projects on dsource.org that are in other languages: eclipseD -- Java; plugin for Eclipse IDE H2D -- C++; C header to D module conversion tool DManager -- Delphi; D Project Manager And there are others. -JJRIt would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
Chris wrote:On Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:Well I started reading Build Your Own .NET Language and Compiler and Inside Microsoft .NET IL Assembler for a purpose of playing with the idea of writing a D.NET compiler but lack free time for this. But would be more than glad to help any way I can.It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway).Mine will be open source,greatperhaps on sourceforge (I believe dsource is for D projects only).I think it could be on dsource because it is very D-related.If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs.svn is IMO a better choise.
Nov 26 2005
In article <d1mho11g54e2iv8i2fovn5rb1as7eoel6s 4ax.com>, Chris says...On Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:I think to be eligible for dsource a project needs to be open source and either using D or related to D. It sounds like your project would be closely related to D (create a language similar to D that uses .NET, right?). It might even be based on the DMD's front-end code. By the way, the idea of a D.NET has already been discussed in a dsource topic: http://www.dsource.org/forums/viewtopic.php?t=140 (It was more a conceptual discussion than an actual request to start a project.) jcc7It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
J C Calvarese wrote:In article <d1mho11g54e2iv8i2fovn5rb1as7eoel6s 4ax.com>, Chris says...Heh... and I was one of the ones originally against it. But things change... I'm sure D on .NET is the idea. I don't think the idea is to create a language similar to D. The language is still D. It just needs to interface with .NET. -JJROn Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:I think to be eligible for dsource a project needs to be open source and either using D or related to D. It sounds like your project would be closely related to D (create a language similar to D that uses .NET, right?). It might even be based on the DMD's front-end code. By the way, the idea of a D.NET has already been discussed in a dsource topic: http://www.dsource.org/forums/viewtopic.php?t=140 (It was more a conceptual discussion than an actual request to start a project.) jcc7It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
On Sat, 26 Nov 2005 16:13:26 -0800, John Reimer <terminal.node gmail.com> wrote:I am not sure how we could use namespaces (.net) *and* modules (D). We could either add a namespace directive to D.NET, or we could the 'module' keyword indicate the namespace. either way, it is a deviation from the D spec. ChrisI think to be eligible for dsource a project needs to be open source and either using D or related to D. It sounds like your project would be closely related to D (create a language similar to D that uses .NET, right?). It might even be based on the DMD's front-end code. By the way, the idea of a D.NET has already been discussed in a dsource topic: http://www.dsource.org/forums/viewtopic.php?t=140 (It was more a conceptual discussion than an actual request to start a project.) jcc7Heh... and I was one of the ones originally against it. But things change... I'm sure D on .NET is the idea. I don't think the idea is to create a language similar to D. The language is still D. It just needs to interface with .NET. -JJR
Nov 26 2005
In article <2i7io1p2amsbu0a0j6mpnc6j358ebmtep3 4ax.com>, Chris says...On Sat, 26 Nov 2005 16:13:26 -0800, John Reimer <terminal.node gmail.com> wrote:jcc7I am not sure how we could use namespaces (.net) *and* modules (D). We could either add a namespace directive to D.NET, or we could the 'module' keyword indicate the namespace. either way, it is a deviation from the D spec. ChrisI think to be eligible for dsource a project needs to be open source and either using D or related to D. It sounds like your project would be closely related to D (create a language similar to D that uses .NET, right?). It might even be based on the DMD's front-end code. By the way, the idea of a D.NET has already been discussed in a dsource topic: http://www.dsource.org/forums/viewtopic.php?t=140 (It was more a conceptual discussion than an actual request to start a project.) jcc7Heh... and I was one of the ones originally against it. But things change... I'm sure D on .NET is the idea. I don't think the idea is to create a language similar to D. The language is still D. It just needs to interface with .NET. -JJR
Nov 26 2005
On Sun, 27 Nov 2005 00:04:55 +0000 (UTC), J C Calvarese <technocrat7 gmail.com> wrote:In article <d1mho11g54e2iv8i2fovn5rb1as7eoel6s 4ax.com>, Chris says...I decided I would not use the DMD front-end as a basis for my compiler. I would certainly use it as a reference, but my project will Mac. thanks for the link. ChrisOn Sat, 26 Nov 2005 10:35:26 -0000, "John C" <johnch_atms hotmail.com> wrote:I think to be eligible for dsource a project needs to be open source and either using D or related to D. It sounds like your project would be closely related to D (create a language similar to D that uses .NET, right?). It might even be based on the DMD's front-end code. By the way, the idea of a D.NET has already been discussed in a dsource topic: http://www.dsource.org/forums/viewtopic.php?t=140 (It was more a conceptual discussion than an actual request to start a project.) jcc7It would seem there are several people in this group doing the same thing - would it not make sense to join forces to get a fully functional D.NET compiler out the door?Who else is currently working on one? I recall one or two who said they would help if there was an open source project, but I don't remember anyone saying they were already working on one (except Deja Augustine over a year ago. his compiler wasn't open source anyway). Mine will be open source, perhaps on sourceforge (I believe dsource is for D projects only). If anyone knows where I should host it I'm open to suggestions. I prefer to use svn instead of cvs. Chris
Nov 26 2005
"Chris" <ctlajoie yahoo.com> wrote in message news:h83go15mparb57e1f5d7uroprpo13seb0f 4ax.com...I am however very interested in compiling D (there would have to be some slight deviations in the syntax) directly to MSIL. In fact I'm reading up on compiler design and experimenting with a toy language I created that compiles to MSIL. Soon hopefully I will understand enough to begin writing one for D.The book you want is: "Compiling for the .NET Common Language Runtime (CLR)" by John Gough
Dec 01 2005
John C wrote:At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1).Excellent! Just read through the zip, already now it has enormous value. I've been putting off certain Windows projects, but this is the straw that broke my procrastination! Something else I'll use this for: flaunting around with this impresses a lot of Suits and Pointy-haireds. Yet more fuel to D-evangelizing! (I know, i know, but it's like when people buy digital cameras, there just absolutely has to be the maximum pixels you can buy -- and then everybody turns the knob to 1024x768 anyway. What a joke.)Enjoy.You bet!
Nov 26 2005
John C wrote:At least a couple of people were interested in using .NET from D. The attached example shows one way of doing it, without hosting the CLR. Here's a taster: _ArrayList arrayList = ArrayList.createObject!(_ArrayList); ICollection collection = com_cast!(ICollection)(arrayList); int index; collection.add(VARIANT(12345), index); VARIANT v; collection.get_Item(index, v); writefln(v.lVal); Note that the attached files include only the bare minimum to get the example to run. I've not defined all the CLR types and some are merely placeholders. I've only tested this with .NET 2.0 (but it should work with 1.0/1.1). Enjoy.I'm curious. I'm not a huge fan of .NET technology (or Microsoft in general), but I do see it's usefulness in some applications. For example, if having access to .NET allows me to program with D on mobile devices with the .NET compact framework installed, then I'm all for it. I'd love to have easy access to programming my Windows Mobile 5.0 device, especially in D. So is this an option? Will this allow me to develop on my mobile device at some point? -JJR
Nov 26 2005
"John Reimer" <terminal.node gmail.com> wrote in message news:dmaa02$2pdg$1 digitaldaemon.com...I'm curious. I'm not a huge fan of .NET technology (or Microsoft in general), but I do see it's usefulness in some applications. For example, if having access to .NET allows me to program with D on mobile devices with the .NET compact framework installed, then I'm all for it. I'd love to have easy access to programming my Windows Mobile 5.0 device, especially in D. So is this an option? Will this allow me to develop on my mobile device at some point?Only if D outputs executables that are compatible with Windows Mobile - that is, if Win32 PEs run on the Mobile platform, which if I recall they don't.
Nov 26 2005
John C wrote:"John Reimer" <terminal.node gmail.com> wrote in message news:dmaa02$2pdg$1 digitaldaemon.com...I was under the impression that if you made a D .NET compiler, it would compile to the VM and, thus, run on any .NET based device, much like Java and its VM. This isn't so? -JJRI'm curious. I'm not a huge fan of .NET technology (or Microsoft in general), but I do see it's usefulness in some applications. For example, if having access to .NET allows me to program with D on mobile devices with the .NET compact framework installed, then I'm all for it. I'd love to have easy access to programming my Windows Mobile 5.0 device, especially in D. So is this an option? Will this allow me to develop on my mobile device at some point?Only if D outputs executables that are compatible with Windows Mobile - that is, if Win32 PEs run on the Mobile platform, which if I recall they don't.
Nov 26 2005
"John Reimer" <terminal.node gmail.com> wrote in message news:dmand7$u49$1 digitaldaemon.com...John C wrote:Yes, I believe so, but we're talking about two different but related things on this thread, and they appear to have become somewhat muddied. One is using the .NET framework from native D. The other is (the reverse) a .NET compiler for D. Your question was in response to my example using .NET from D natively, which determined my answer."John Reimer" <terminal.node gmail.com> wrote in message news:dmaa02$2pdg$1 digitaldaemon.com...I was under the impression that if you made a D .NET compiler, it would compile to the VM and, thus, run on any .NET based device, much like Java and its VM. This isn't so?I'm curious. I'm not a huge fan of .NET technology (or Microsoft in general), but I do see it's usefulness in some applications. For example, if having access to .NET allows me to program with D on mobile devices with the .NET compact framework installed, then I'm all for it. I'd love to have easy access to programming my Windows Mobile 5.0 device, especially in D. So is this an option? Will this allow me to develop on my mobile device at some point?Only if D outputs executables that are compatible with Windows Mobile - that is, if Win32 PEs run on the Mobile platform, which if I recall they don't.-JJR
Nov 26 2005
John C wrote:"John Reimer" <terminal.node gmail.com> wrote in message news:dmand7$u49$1 digitaldaemon.com...Oops! My apologies. I didn't notice. -JJRJohn C wrote:Yes, I believe so, but we're talking about two different but related things on this thread, and they appear to have become somewhat muddied. One is using the .NET framework from native D. The other is (the reverse) a .NET compiler for D. Your question was in response to my example using .NET from D natively, which determined my answer."John Reimer" <terminal.node gmail.com> wrote in message news:dmaa02$2pdg$1 digitaldaemon.com...I was under the impression that if you made a D .NET compiler, it would compile to the VM and, thus, run on any .NET based device, much like Java and its VM. This isn't so?I'm curious. I'm not a huge fan of .NET technology (or Microsoft in general), but I do see it's usefulness in some applications. For example, if having access to .NET allows me to program with D on mobile devices with the .NET compact framework installed, then I'm all for it. I'd love to have easy access to programming my Windows Mobile 5.0 device, especially in D. So is this an option? Will this allow me to develop on my mobile device at some point?Only if D outputs executables that are compatible with Windows Mobile - that is, if Win32 PEs run on the Mobile platform, which if I recall they don't.-JJR
Nov 26 2005
Great stuff! If only the syntax could be streamlined a little... L.
Nov 28 2005
"Lionello Lunesu" <lio remove.lunesu.com> wrote in message news:dmef4r$1no6$1 digitaldaemon.com...Great stuff! If only the syntax could be streamlined a little... L.That's COM for you. In fact, as far as COM goes, that's pretty streamlined, since some functions like QueryInterface and CoCreateInstance are hidden from you in the templates. You could also write wrapper classes so that it has a D interface: class ArrayList { private: _ArrayList clrArrayList_; ICollection clrCollection_; IList clrList_; public: this() { clrArrayList_ = cirrus.c.windows.clr.ArrayList.createObject!(_ArrayList); clrCollection_ = com_cast!(ICollection)(arrayList_); clrList_ = com_cast!(IList)(arrayList_); } ~this() { clrArrayList_.Release(); clrCollection_.Release(); clrList_.Release(); } int add(VARIANT item) { int index; clrList_.Add(item, index); return index; } int indexOf(VARIANT item) { int result; clrList_.IndexOf(item, result); return result; } int count() { int result; clrCollection_.Count(result); return result; } VARIANT opIndex(int index) { VARIANT result; clrList_.get_Item(index, result); return result; } void opIndexAssign(VARIANT item, int index) { clrList_.put_Item(index, item); } int opApply(int delegate(inout VARIANT) d) { int r; for (int i = 0; i < count; i++) { VARIANT var; clrList_.get_Item(i, var); if ((r = d(var)) != 0) break; } return r; } } ArrayList list = new ArrayList; list.add(VARIANT(12345)); list.add(VARIANT(67890)); foreach (VARIANT item; list) { printf("index %d = %d\n", list.indexOf(item), item.lVal); } That's a little better, and could be improved upon further by replacing VARIANT with a some fancy Object boxing/unboxing.
Nov 28 2005