Thread overview |
---|
January 31, 2021 core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Exists for LDC library like core.atomic? |
January 31, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to vitamin | On Sunday, 31 January 2021 at 12:51:57 UTC, vitamin wrote:
> Exists for LDC library like core.atomic?
It look like that dub compile with ldc but use dmd runtime and module core.internal.atomic has version only for dmd and gdc. How to make ldc use ldc runtime?
|
February 01, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to vitamin | The only difference between dmd, ldc and gdc (in effect) is the backend. While druntime and Phobos will be patched for other platform targets, over all its the same library. The same goes for core.atomic. You should not need to know that it has been patched. If you can call it and it gives you the right results, you can assume it worked. Oh and $ dub build --compiler=ldc2 |
February 01, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Monday, 1 February 2021 at 05:23:52 UTC, rikki cattermole wrote: > The only difference between dmd, ldc and gdc (in effect) is the backend. > While druntime and Phobos will be patched for other platform targets, over all its the same library. > > The same goes for core.atomic. You should not need to know that it has been patched. If you can call it and it gives you the right results, you can assume it worked. > > Oh and $ dub build --compiler=ldc2 problem is when I build with ldc then id doesn't work and with dmd it does: try compile this with ldc: https://run.dlang.io/is/gngLFu error on webite run.dlang.io is same as I have. |
February 01, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to vitamin | On Monday, 1 February 2021 at 06:12:59 UTC, vitamin wrote: > On Monday, 1 February 2021 at 05:23:52 UTC, rikki cattermole wrote: >> The only difference between dmd, ldc and gdc (in effect) is the backend. >> While druntime and Phobos will be patched for other platform targets, over all its the same library. >> >> The same goes for core.atomic. You should not need to know that it has been patched. If you can call it and it gives you the right results, you can assume it worked. >> >> Oh and $ dub build --compiler=ldc2 > > problem is when I build with ldc then id doesn't work and with dmd it does: > > try compile this with ldc: > https://run.dlang.io/is/gngLFu > > error on webite run.dlang.io is same as I have. LDC has all LLVM intrinsics so try --- import ldc.intrinsics; ldc.intrinsics.llvm_atomic_rmw_add(...); --- |
February 01, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Basile B. | On Monday, 1 February 2021 at 06:38:16 UTC, Basile B. wrote: > On Monday, 1 February 2021 at 06:12:59 UTC, vitamin wrote: >> On Monday, 1 February 2021 at 05:23:52 UTC, rikki cattermole wrote: >>> The only difference between dmd, ldc and gdc (in effect) is the backend. >>> While druntime and Phobos will be patched for other platform targets, over all its the same library. >>> >>> The same goes for core.atomic. You should not need to know that it has been patched. If you can call it and it gives you the right results, you can assume it worked. >>> >>> Oh and $ dub build --compiler=ldc2 >> >> problem is when I build with ldc then id doesn't work and with dmd it does: >> >> try compile this with ldc: >> https://run.dlang.io/is/gngLFu >> >> error on webite run.dlang.io is same as I have. > > LDC has all LLVM intrinsics so try > > --- > import ldc.intrinsics; > ldc.intrinsics.llvm_atomic_rmw_add(...); > --- It look like atomicFetchAdd a atomicFetchSub was added to ldc 8 days ago and my distro has old version. I replace core.internal.atomic with this https://raw.githubusercontent.com/ldc-developers/druntime/ldc/src/core/internal/atomic.d and now everything works. |
February 03, 2021 Re: core.atomic for ldc. | ||||
---|---|---|---|---|
| ||||
Posted in reply to vitamin | > It look like atomicFetchAdd a atomicFetchSub was added to ldc 8 days ago and my distro has old version. I replace core.internal.atomic with this https://raw.githubusercontent.com/ldc-developers/druntime/ldc/src/core/internal/atomic.d and now everything works.
It's not even in the latest stable version. Should be available in next release.
Also, please note that I haven't had the time to check if anything else was missing. If you do spot something else that is missing, please let me know.
|
Copyright © 1999-2021 by the D Language Foundation