digitalmars.D - druntime
- bioinfornatics (14/14) Jul 07 2011 Hi,
- Sean Kelly (6/23) Jul 07 2011 That would mean all D compiler writers maintain their runtime out of the...
- bioinfornatics (12/12) Jul 08 2011 @sean
- Jonathan M Davis (8/23) Jul 08 2011 I believe that it's _expected_ that other compilers will use forks of
- Iain Buclaw (10/33) Jul 08 2011 Exactly this, and the case is also vice versa with gdc. The druntime ref...
- Brad Roberts (12/48) Jul 08 2011 This is one area that I disagree with Sean on. I think it's worth mergi...
- Jonathan M Davis (10/62) Jul 08 2011 Well, I think that it makes sense to try and minimize what needs to be
- Iain Buclaw (8/52) Jul 08 2011 Hardly - as core.stdc (forgot core.sys too :) is just a wrapper for the ...
- Jacob Carlborg (8/60) Jul 09 2011 How about having a separate branch for each compiler in druntime? The
- Sean Kelly (21/72) Jul 09 2011 =46rom having done this with Tango, a lot of the divergence was with det...
Hi, If i understand druntime from github is main part of library, but for build druntime with ldc by example ldc add specific part, maybe is same for gdc. It will better to add these specific part to main druntime and do something like: make dc=dmd make install -- or -- make dc=ldc make install -- or -- make dc=gdc make install This will be very helpful for me and packaging a D2 environnement thanks
Jul 07 2011
That would mean all D compiler writers maintain their runtime out of the sam= e repository, which is impractical.=20 Sent from my iPhone On Jul 7, 2011, at 4:52 AM, bioinfornatics <bioinfornatics fedoraproject.org=wrote:Hi, If i understand druntime from github is main part of library, but for buil=ddruntime with ldc by example ldc add specific part, maybe is same for gdc.=It will better to add these specific part to main druntime and do somethin=g like:make dc=3Ddmd make install -- or -- make dc=3Dldc make install -- or -- make dc=3Dgdc make install =20 This will be very helpful for me and packaging a D2 environnement =20 thanks
Jul 07 2011
sean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)
Jul 08 2011
On 2011-07-08 10:42, bioinfornatics wrote:sean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 08 2011
== Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleOn 2011-07-08 10:42, bioinfornatics wrote:Exactly this, and the case is also vice versa with gdc. The druntime reference library also does many things that are unreasonable and incompatible with gdc (and I assume ditto ldc too). One future plan on my list is the restructuring of core/stdc to be more ports friendly (the source, not the installed files) - something to help push along ARM development for D2 with GDC, and hopefully for other archs to follow pursuit. The result being one elongated patch that won't be accepted upstream for sure. :~) Regards Iainsean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 08 2011
On Fri, 8 Jul 2011, Iain Buclaw wrote:== Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleThis is one area that I disagree with Sean on. I think it's worth merging in as much as we can to the druntime code base. I'm not against having separate trees vended by each compiler, but I hope/expect those to be the lowest level details and not be detectably different from phobos or user code. Having core.stdc diverge, as just one example, is a recipe for having code that only works on top of one specific runtime, which is NOT what we want. I _do_ want druntime to support more compilers than dmd an dmore platforms than dmd supports. My 2 cents, BradOn 2011-07-08 10:42, bioinfornatics wrote:Exactly this, and the case is also vice versa with gdc. The druntime reference library also does many things that are unreasonable and incompatible with gdc (and I assume ditto ldc too). One future plan on my list is the restructuring of core/stdc to be more ports friendly (the source, not the installed files) - something to help push along ARM development for D2 with GDC, and hopefully for other archs to follow pursuit. The result being one elongated patch that won't be accepted upstream for sure. :~) Regards Iainsean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 08 2011
On 2011-07-08 15:23, Brad Roberts wrote:On Fri, 8 Jul 2011, Iain Buclaw wrote:Well, I think that it makes sense to try and minimize what needs to be different between compilers, but it does risk being messy if we try and support the quirks of multiple compilers in the main druntime repository. And it's not like we're going to have the autotester dealing with all of that either. We need to try and minimize what needs to be changed between compilers in order to minimize the work for people porting druntime to other compilers and minimize the risk of code breakage due to those changes, but I'm highly skeptical that having druntime worry about multiple compilers is a good idea. - Jonathan M Davis== Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleThis is one area that I disagree with Sean on. I think it's worth merging in as much as we can to the druntime code base. I'm not against having separate trees vended by each compiler, but I hope/expect those to be the lowest level details and not be detectably different from phobos or user code. Having core.stdc diverge, as just one example, is a recipe for having code that only works on top of one specific runtime, which is NOT what we want. I _do_ want druntime to support more compilers than dmd an dmore platforms than dmd supports.On 2011-07-08 10:42, bioinfornatics wrote:Exactly this, and the case is also vice versa with gdc. The druntime reference library also does many things that are unreasonable and incompatible with gdc (and I assume ditto ldc too). One future plan on my list is the restructuring of core/stdc to be more ports friendly (the source, not the installed files) - something to help push along ARM development for D2 with GDC, and hopefully for other archs to follow pursuit. The result being one elongated patch that won't be accepted upstream for sure. :~) Regards Iainsean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 08 2011
== Quote from Brad Roberts (braddr slice-2.puremagic.com)'s articleOn Fri, 8 Jul 2011, Iain Buclaw wrote:Hardly - as core.stdc (forgot core.sys too :) is just a wrapper for the standard C library. Sweet story short, having version() else version() else version() for 6+ platforms and 12+ architectures is not workable in a single managed file - consider, for example, sys.stat with 15 variants of struct stat_t inside. Regards Iain== Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleThis is one area that I disagree with Sean on. I think it's worth merging in as much as we can to the druntime code base. I'm not against having separate trees vended by each compiler, but I hope/expect those to be the lowest level details and not be detectably different from phobos or user code. Having core.stdc diverge, as just one example, is a recipe for having code that only works on top of one specific runtime, which is NOT what we want.On 2011-07-08 10:42, bioinfornatics wrote:Exactly this, and the case is also vice versa with gdc. The druntime reference library also does many things that are unreasonable and incompatible with gdc (and I assume ditto ldc too). One future plan on my list is the restructuring of core/stdc to be more ports friendly (the source, not the installed files) - something to help push along ARM development for D2 with GDC, and hopefully for other archs to follow pursuit. The result being one elongated patch that won't be accepted upstream for sure. :~) Regards Iainsean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 08 2011
On 2011-07-09 01:29, Iain Buclaw wrote:== Quote from Brad Roberts (braddr slice-2.puremagic.com)'s articleHow about having a separate branch for each compiler in druntime? The compiler maintainers will maintain their own branch but if there's a change that doesn't actually affect any compiler specific code, i.e. adding a new function to core.stdc, then that change can be made to all branches. -- /Jacob CarlborgOn Fri, 8 Jul 2011, Iain Buclaw wrote:Hardly - as core.stdc (forgot core.sys too :) is just a wrapper for the standard C library. Sweet story short, having version() else version() else version() for 6+ platforms and 12+ architectures is not workable in a single managed file - consider, for example, sys.stat with 15 variants of struct stat_t inside. Regards Iain== Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleThis is one area that I disagree with Sean on. I think it's worth merging in as much as we can to the druntime code base. I'm not against having separate trees vended by each compiler, but I hope/expect those to be the lowest level details and not be detectably different from phobos or user code. Having core.stdc diverge, as just one example, is a recipe for having code that only works on top of one specific runtime, which is NOT what we want.On 2011-07-08 10:42, bioinfornatics wrote:Exactly this, and the case is also vice versa with gdc. The druntime reference library also does many things that are unreasonable and incompatible with gdc (and I assume ditto ldc too). One future plan on my list is the restructuring of core/stdc to be more ports friendly (the source, not the installed files) - something to help push along ARM development for D2 with GDC, and hopefully for other archs to follow pursuit. The result being one elongated patch that won't be accepted upstream for sure. :~) Regards Iainsean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=2 -DCONF_INST_DIR:PATH=/etc $ make -j4 VERBOSE=2 $ make -j4 install and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime so for this reason druntime installer need support at least dmd, ldc, gdc. But is not case currently. And for this reason d2 can't go to Fedora 16. Because ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean doesn't want to have to maintain all of the differences for every compiler. Rather, druntime is the reference implementation intended for dmd, and other compiler maintainers do whatever they need to with their own version of it to get it work with their compiler. - Jonathan M Davis
Jul 09 2011
=46rom having done this with Tango, a lot of the divergence was with detecti= on compiler to use/not use compiler intrinsics, plus some issues where parts= of stdc weren't implemented. If there are other compatibility issues outsid= e rt I'd like to know what they are. I'd certainly be amenable to making dru= ntime more compatible in places.=20 Sent from my iPhone On Jul 8, 2011, at 6:23 PM, Brad Roberts <braddr puremagic.com> wrote:On Fri, 8 Jul 2011, Iain Buclaw wrote:o=3D=3D Quote from Jonathan M Davis (jmdavisProg gmx.com)'s articleOn 2011-07-08 10:42, bioinfornatics wrote:sean if you install ldc2 like: $ cmake . -DD_VERSION:STRING=3D2 -DCONF_INST_DIR:PATH=3D/etc $ make -j4 VERBOSE=3D2 $ make -j4 install =20 and try install druntime from https://github.com/D-Programming-Language/druntime.git I can't because make file is only for dmd. What i try to said, yes we need 1 druntime s=for this reason druntime installer need support at least dmd, ldc, gdc.=.But is not case currently. And for this reason d2 can't go to Fedora 16=esn'tBecause ldc2 use cmake for build 3 projects (ldc, druntime, phobos) I need 3 installer separately. And ldc2 use a druntime fork! =20 thanks for any answer :-)I believe that it's _expected_ that other compilers will use forks of druntime. They may have to make changes to druntime to work, and Sean do=er,want to have to maintain all of the differences for every compiler. Rath=pilerdruntime is the reference implementation intended for dmd, and other com=itmaintainers do whatever they need to with their own version of it to get=rencework with their compiler. - Jonathan M Davis=20 Exactly this, and the case is also vice versa with gdc. The druntime refe=gdc (andlibrary also does many things that are unreasonable and incompatible with=ortsI assume ditto ldc too). =20 One future plan on my list is the restructuring of core/stdc to be more p=long ARMfriendly (the source, not the installed files) - something to help push a=uit. Thedevelopment for D2 with GDC, and hopefully for other archs to follow purs=. :~)result being one elongated patch that won't be accepted upstream for sure==20=20 Regards Iain=20 This is one area that I disagree with Sean on. I think it's worth merging=in as much as we can to the druntime code base. I'm not against having=20=separate trees vended by each compiler, but I hope/expect those to be the=20=lowest level details and not be detectably different from phobos or user=20=code. Having core.stdc diverge, as just one example, is a recipe for=20 having code that only works on top of one specific runtime, which is NOT=20=what we want. =20 I _do_ want druntime to support more compilers than dmd an dmore platforms==20than dmd supports. =20 My 2 cents, Brad
Jul 09 2011