digitalmars.D - monitor.d and critical.d?
- %u <wfunction hotmail.com> Jan 30 2011
- Brad Roberts <braddr puremagic.com> Jan 30 2011
- %u <wfunction hotmail.com> Jan 30 2011
- Don <nospam nospam.com> Jan 31 2011
- Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> Jan 31 2011
- "Lars T. Kyllingstad" <public kyllingen.NOSPAMnet> Jan 31 2011
- %u <wfunction hotmail.com> Feb 01 2011
- %u <wfunction hotmail.com> Feb 01 2011
- Don <nospam nospam.com> Feb 02 2011
Hi,
I was wondering, is there any particular reason why critical.c and monitor.c
aren't written in D?
I've attached the D versions... the only other changes needed would be to
change win32.mak:
1. Change all instances of critical.c and monitor.c to critical.d and monitor.d
2. Add
src\rt\critical.d \
src\rt\monitor.d \
below the
SRCS= \
category.
3. Remove critical.obj and monitor.obj from the OBJS= and OBJS_TO_DELETE=
sections.
4. Remove the their ASM targets from the bottom of the makefile (they're
around line 755).
Does this sound useful? Or was there a particular reason this wasn't done in D?
Jan 30 2011
Please move this to bugzilla and loose the uuencoding. On 1/30/2011 1:54 AM, %u wrote:Hi, I was wondering, is there any particular reason why critical.c and monitor.c aren't written in D? I've attached the D versions... the only other changes needed would be to change win32.mak: 1. Change all instances of critical.c and monitor.c to critical.d and monitor.d 2. Add src\rt\critical.d \ src\rt\monitor.d \ below the SRCS= \ category. 3. Remove critical.obj and monitor.obj from the OBJS= and OBJS_TO_DELETE= sections. 4. Remove the their ASM targets from the bottom of the makefile (they're around line 755). Does this sound useful? Or was there a particular reason this wasn't done in D? begin 644 critical.d M<')I=F%T92!I;7!O<G0 8V]R92YS>7,N=VEN9&]W<RYW:6YD;W=S(#H 16YT M97)#<FET:6-A;%-E8W1I;VXL($QE879E0W)I=&EC86Q396-T:6]N+"!$96QE M=&5#<FET:6-A;%-E8W1I;VXL($EN:71I86QI>F5#<FET:6-A;%-E8W1I;VXL M($-2251)0T%,7U-%0U1)3TX[#0H-"F5X=&5R;B`H0RD-"GL-" ES=')U8W0 M1%]#4DE424-!3%]314-424].('L 1%]#4DE424-!3%]314-424].("IN97AT M.R!#4DE424-!3%]314-424].(&-S.R!]#0H)=F]I9"!?4U1)7V-R:71I8V%L M7VEN:70H*2I=&EC86Q?=&5R;2 I#0H)>PT*"0EW:&EL92`H M9&-S7VQI<W0I#0H)"7L-" D)"41E;&5T94-R:71I8V%L4V5C=&EO;B F9&-S M7VQI<W0N8W,I.PT*"0D)9&-S7VQI<W0 /2!D8W-?;&ES="YN97AT.PT*"0E] M#0H)?0T*#0H)<W1A=&EC(%]?9W-H87)E9"!$7T-2251)0T%,7U-%0U1)3TX M*F1C<U]L:7-T.PT*"7-T871I8R!?7V=S:&%R960 1%]#4DE424-!3%]314-4 M24].(&-R:71I8V%L7W-E8W1I;VX[#0H-" EV;VED(%]D7V-R:71I8V%L96YT M97(H1%]#4DE424-!3%]314-424].("ID8W,I#0H)>PT*"2` ("!I9B`H(61C M<RYN97AT*0T*"2` ("![#0H)"0E%;G1E<D-R:71I8V%L4V5C=&EO;B F8W)I M=&EC86Q?<V5C=&EO;BYC<RD[#0H)"0EI9B`H(61C<RYN97AT*2`O+R!I9BP M:6X =&AE(&UE86YT:6UE+"!A;F]T:&5R('1H<F5A9"!D:61N)W0 <V5T(&ET M#0H)"0E[#0H)"0D)9&-S+FYE>'0 /2!D8W-?;&ES=#L-" D)"0ED8W-?;&ES M="`](&1C<SL-" D)"0E);FET:6%L:7IE0W)I=&EC86Q396-T:6]N*"9D8W,N M8W,I.PT*"0D)?0T*"0D)3&5A=F5#<FET:6-A;%-E8W1I;VXH)F-R:71I8V%L M7W-E8W1I;VXN8W,I.PT*"2` ("!]#0H)("` ($5N=&5R0W)I=&EC86Q396-T M:6]N*"9D8W,N8W,I.PT*"7T-" T*"79O:60 7V1?8W)I=&EC86QE>&ET*$1? M0U))5$E#04Q?4T5#5$E/3B`J9&-S*2![($QE879E0W)I=&EC86Q396-T:6]N /*"9D8W,N8W,I.R!]#0I] ` end begin 644 monitor.d M<')I=F%T92!I;7!O<G0 8V]R92YS>7,N=VEN9&]W<RYW:6YD;W=S(#H 16YT M97)#<FET:6-A;%-E8W1I;VXL($QE879E0W)I=&EC86Q396-T:6]N+"!$96QE M=&5#<FET:6-A;%-E8W1I;VXL($EN:71I86QI>F5#<FET:6-A;%-E8W1I;VXL M($-2251)0T%,7U-%0U1)3TX[#0IP<FEV871E(&EM<&]R="!C;W)E+G-T9&,N M<W1D;&EB.PT*<')I=F%T92!I;7!O<G0 <G0N;&EF971I;64 .B!!<G)A>3L- M" T*+R\ 5&AI<R!I<R!W:&%T('1H92!M;VYI=&]R(')E9F5R96YC92!I;B!/ M8FIE8W0 <&]I;G1S('1O#0IS=')U8W0 36]N:71O< T*>PT*("` ('9O:60J M("!I;7!L.R`O+R!F;W( =7-E<BUL979E;"!M;VYI=&]R<PT*("` ($%R<F%Y M("!D979T.R`O+R!F;W( :6YT97)N86P ;6]N:71O<G,-"B` ("!S:7IE7W0 M<F5F<SL +R\ <F5F97)E;F-E(&-O=6YT#0H ("` 0U))5$E#04Q?4T5#5$E/ M3B!M;VX[#0I].PT*#0IA=71O($U/3E!44BA/8FIE8W0 :"D >R!R971U<FX M)BAC87-T*$UO;FET;W(J*6 N7U]M;VYI=&]R*2YM;VX[('T-" T*+RH /3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2!7:6XS,B`]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]("HO#0H-"G-T871I8R!?7V=S:&%R960 0U)) M5$E#04Q?4T5#5$E/3B!?;6]N:71O<E]C<FET<V5C.PT*#0IE>'1E<FX *$,I M#0I[#0H)=F]I9"!?4U1)7VUO;FET;W)?<W1A=&EC8W1O<B I('L 26YI=&EA M;&EZ94-R:71I8V%L4V5C=&EO;B F7VUO;FET;W)?8W)I='-E8RD[('T-" EV M;VED(%]35$1?;6]N:71O<E]S=&%T:6-D=&]R*"D >R!$96QE=&5#<FET:6-A M;%-E8W1I;VXH)E]M;VYI=&]R7V-R:71S96,I.R!]#0H-" EV;VED(%]D7VUO M;FET;W)?8W)E871E*$]B:F5C="!H*0T*"7L-" D ("` +RH-" D)*B!.3U1% M.B!!<W-U;64 =&AI<R!I<R!O;FQY(&-A;&QE9"!W:&5N(& N7U]M;VYI=&]R M(&ES(&YU;&P <')I;W( =&\ =&AE#0H)"2H 8V%L;"X ($AO=V5V97(L('!L M96%S92!N;W1E('1H870 86YO=&AE<B!T:')E860 ;6%Y(&-A;&P =&AI<R!F M=6YC=&EO; T*"0DJ(&%T('1H92!S86UE('1I;64L('-O('=E(&-A;B!N;W0 M87-S97)T('1H:7, :&5R92X ($EN<W1E860L('1R>2!A;F0-" D)*B!C<F5A M=&4 82!L;V-K+"!A;F0 :68 ;VYE(&%L<F5A9'D 97AI<W1S('1H96X 9F]R M9V5T(&%B;W5T(&ET+ T*"0DJ+PT*#0H)("` ("\O<')I;G1F*"(K7V1?;6]N M:71O<E]C<F5A=&4H)7`I7&XB+"!H*3L-" D ("` 87-S97)T*& I.PT*"2` M("!-;VYI=&]R("IC<R`](&YU;&P[#0H)("` ($5N=&5R0W)I=&EC86Q396-T M:6]N*"9?;6]N:71O<E]C<FET<V5C*3L-" D ("` :68 *"%H+E]?;6]N:71O M<BD-" D ("` >PT*"0D)8W, /2!C87-T*$UO;FET;W(J*6-A;&QO8RA-;VYI M=&]R+G-I>F5O9BP ,2D[#0H)"0EA<W-E<G0H8W,I.PT*"0D)26YI=&EA;&EZ M94-R:71I8V%L4V5C=&EO;B F8W,N;6]N*3L-" D)"6 N7U]M;VYI=&]R(#T M8W,[#0H)"0EC<RYR969S(#T ,3L-" D)"6-S(#T ;G5L;#L-" D ("` ?0T* M"2` ("!,96%V94-R:71I8V%L4V5C=&EO;B F7VUO;FET;W)?8W)I='-E8RD[ M#0H)("` (&EF("AC<RD-" D)"69R964H8W,I.PT*"2` ("`O+W!R:6YT9B B M+5]D7VUO;FET;W)?8W)E871E*"5P*5QN(BP :"D[#0H)?0T*#0H)=F]I9"!? M9%]M;VYI=&]R7V1E<W1R;WDH3V)J96-T(& I#0H)>PT*"2` ("`O+W!R:6YT M9B B*U]D7VUO;FET;W)?9&5S=')O>2 E<"E<;B(L(& I.PT*"2` ("!A<W-E M<G0H:"`F)B!H+E]?;6]N:71O<B`F)B`A*&-A<W0H36]N:71O<BHI:"Y?7VUO M;FET;W(I+FEM<&PI.PT*"2` ("!$96QE=&5#<FET:6-A;%-E8W1I;VXH34]. M4%12*& I*3L-" D ("` 9G)E92AH+E]?;6]N:71O<BD[#0H)("` (& N7U]M M;VYI=&]R(#T ;G5L;#L-" D ("` +R]P<FEN=&8H(BU?9%]M;VYI=&]R7V1E M<W1R;WDH)7`I7&XB+"!H*3L-" E]#0H-" EV;VED(%]D7VUO;FET;W)?;&]C M:RA/8FIE8W0 :"D-" E[#0H)("` ("\O<')I;G1F*"(K7V1?;6]N:71O<E]A M8W%U:7)E*"5P*5QN(BP :"D[#0H)("` (&%S<V5R="AH("8F(& N7U]M;VYI M=&]R("8F("$H8V%S="A-;VYI=&]R*BEH+E]?;6]N:71O<BDN:6UP;"D[#0H) M("` ($5N=&5R0W)I=&EC86Q396-T:6]N*$U/3E!44BAH*2D[#0H)("` ("\O M<')I;G1F*"(M7V1?;6]N:71O<E]A8W%U:7)E*"5P*5QN(BP :"D[#0H)?0T* M#0H)=F]I9"!?9%]M;VYI=&]R7W5N;&]C:RA/8FIE8W0 :"D-" E[#0H)("` M("\O<')I;G1F*"(K7V1?;6]N:71O<E]R96QE87-E*"5P*5QN(BP :"D[#0H) M("` (&%S<V5R="AH("8F(& N7U]M;VYI=&]R("8F("$H8V%S="A-;VYI=&]R M*BEH+E]?;6]N:71O<BDN:6UP;"D[#0H)("` ($QE879E0W)I=&EC86Q396-T M:6]N*$U/3E!44BAH*2D[#0H)("` ("\O<')I;G1F*"(M7V1?;6]N:71O<E]R 996QE87-E*"5P*5QN(BP :"D[#0H)?0T*?0`` ` end
Jan 30 2011
Oh shoot, I had no idea it would turn out like that, sorry. (It didn't do that on the site so I really didn't expect it.) Thanks for letting me know.
Jan 30 2011
%u wrote:Hi, I was wondering, is there any particular reason why critical.c and monitor.c aren't written in D? I've attached the D versions...
Please add as a patch to bug 4332.
Jan 31 2011
On 1/31/11 10:11 PM, Don wrote:%u wrote:Hi, I was wondering, is there any particular reason why critical.c and monitor.c aren't written in D? I've attached the D versions...
Please add as a patch to bug 4332.
Instead of patches we could use git's pull requests. I don't know how to make one, but David Nadlinger made one for me (see http://d.puremagic.com/issues/show_bug.cgi?id=5506) and it looks great! You get to see the changes introduced in a browser before introducing them with a simple command. David or other git experts, would you put together a sort of a guide for creating pull requests? Andrei
Jan 31 2011
On Mon, 31 Jan 2011 22:30:25 -0600, Andrei Alexandrescu wrote:David or other git experts, would you put together a sort of a guide for creating pull requests?
Other git experts have already done it for us. :) http://help.github.com/pull-requests/ -Lars
Jan 31 2011
Hi, I was wondering, is there any particular reason why critical.c and monitor.c
I've attached the D versions...
Please add as a patch to bug 4332.
Cool, I added the attachments! (I have no idea how to use git, or if I have the upload permissions (probably not), so I just uploaded the patches to the bug report.)
Feb 01 2011
Please add as a patch to bug 4332.
On a second thought, this is a bit trickier than I'd thought, since it's not working without additional modifications that I at first thought were unnecessary. Did the C version run any sort of "static constructors" during the loading of the runtime on Windows? For some reason, when I replace the C version with the D version, I am forced to remove the version statement from here: void _d_criticalInit() { version (Posix) { _STI_monitor_staticctor(); _STI_critical_init(); } } in order to run the static constructors, even though it doesn't seem like the C code would've been any different in this regard. Does anyone know why this is needed?
Feb 01 2011
%u wrote:Hi, I was wondering, is there any particular reason why critical.c and monitor.c
I've attached the D versions...
Please add as a patch to bug 4332.
Cool, I added the attachments! (I have no idea how to use git, or if I have the upload permissions (probably not), so I just uploaded the patches to the bug report.)
Yeah, that's fine. Getting started with git is non-trivial, especially on Windows (git for Windows seems to be about on the same level of maturity as D2; I've found a dozen bugs in a few days of use).
Feb 02 2011









%u <wfunction hotmail.com> 