On Friday, 29 October 2021 at 13:37:16 UTC, Imperatorn wrote:
Yes! I would say that's the place where discussions happen in
general.
https://discord.gg/bMZk9Q4
Eh, plenty of discussion happens here, too. Discord is where
fast-paced discussions happen. Forum discussions are less frantic
an
On Wednesday, 25 August 2021 at 01:40:39 UTC, Mike Parker wrote:
So the formatting got borked and my first paragraph ended up with
the quoted text. In case it isn't clear:
`
Yes, `run` is the default. But you are misunderstanding how dub
works. Neither `dub run` nor `dub build` acce
On Tuesday, 24 August 2021 at 23:30:22 UTC, Ruby The Roobster
wrote:
I changed test.d to be the same code as in the
HelloWorld.d(https://github.com/gtkd-developers/GtkD/blob/master/demos/gtk/HelloWorld.d)example that is provided by the GtkD github. Adding the comment to the top of the file and
On Tuesday, 24 August 2021 at 19:07:11 UTC, Ruby The Roobster
wrote:
Doing this, works though:
dub add gtkd-3@3.9.0
then
dub fetch gtkd-3@3.9.0
then dub test.d
Will cause the program to run and execute. However, it doesn't
save an executable to disk, which is what I want. Is there a
way,
On Sunday, 21 March 2021 at 06:30:03 UTC, Preetpal wrote:
On Saturday, 20 March 2021 at 13:36:41 UTC, Imperatorn wrote:
On Sunday, 21 February 2021 at 01:56:28 UTC, Preetpal wrote:
It would be great if it GDC could be installed with MSYS2.
Update:
There will soon be a native Windows gdc build
On Saturday, 28 December 2019 at 08:25:16 UTC, BoraxMan wrote:
The problem is that GDC is part of GCC now, and part of the
Fedora installation I'm using. I take it then if I am to start
a new project where I may end up providing binaries, I should
eschew using the GDC compiler and use LDC ins
On Monday, 20 May 2019 at 08:21:19 UTC, Iain Buclaw wrote:
Looks like you've done a typo to me. Memory should be a
clobber, not an input operand.
Yes, that too.
On Monday, 20 May 2019 at 08:11:19 UTC, Mike Franklin wrote:
But I can't get GDC to do the same:
https://explore.dgnu.org/z/quCjhU
Is this currently possible in GDC?
Gah!! Ignore that. `version (GNU)`, not `version(GDC)`.
This works:
void use(void* p)
{
versio
t.org/z/qbg54J
But I can't get GDC to do the same:
https://explore.dgnu.org/z/quCjhU
Is this currently possible in GDC?
Mike
hil/stm32f42_discovery_demo).
Everything worked fine.
I don't know if that helps, but that's my experience for whatever
it's worth.
Mike
On Saturday, 4 May 2019 at 11:34:16 UTC, Iain Buclaw wrote:
1. Where is development taking place? Where is HEAD?
It's happening in SVN, there are a few official git mirrors
however.
Is that also where I can find the latest GDC with the D frontend?
Now that GDC has been officially released with GCC 9.1...
1. Where is development taking place? Where is HEAD?
2. Where do we file bugs?
Thanks,
Mike
choice.
I doesn't need to be avoided. As long as you provide a proper
implementation of `memset` you can use memset-like patterns as
you wish.
Mike
ed for
`-ffreestanding`, as GDC always seems to do the right thing for
me. It does generate calls for `memset`, `memcmp`, etc..., but
as long as I provide my own implementation with the correct
symbol name as it expects (i.e. `memset` with no name mangling,
a.k.a `extern(C) void* memset(void*, int, size_t)`) it seems to
work fine.
Mike
alloca)
void* alloca(size_t size) pure;
---
Is there a way to do something like that in GDC. I don't care if
I have to use `__builtin_alloca` or some other identifier, I just
don't want to create the C standard library module hierarchy.
Thanks,
Mike
On Friday, 20 July 2018 at 11:11:12 UTC, Mike Franklin wrote:
I ask for any insight you might have, should you wish to give
this your attention. Regardless, I'll keep investigating.
Just to follow up, after I enabled `-funroll-loops` for GDC, it
was almost twice as fast as LDC, thoug
On Friday, 20 July 2018 at 12:49:59 UTC, Mike Franklin wrote:
GDC
---
arm-none-eabi-gdc -c -O2 -nophoboslib -nostdinc -nodefaultlibs
-nostdlib -mthumb -mcpu=cortex-m4 -mtune=cortex-m4
-mfloat-abi=hard -Isource/runtime -fno-bounds-check
-ffunction-sections -fdata-sections -fno-weak
cmp r3, r1
add r4, r4, #480
bge .L51
.L47:
pop {r4, r5, r6}
bx lr
Mike
which are SIMD instructions (load multiple, and
store multiple), but I'm not sure.
I've tried a number of different optimization permutations (too
many to list here), but they didn't seem to make any difference.
I ask for any insight you might have, should you wish to give
this your attention. Regardless, I'll keep investigating.
Thanks,
Mike
, fortunately. The asm output I am looking
at is seen through the telescope that is Matt GodBolt’s
Compiler Explorer at http://explore.dgnu.org so I possibly
would want to pull the asm text from that site (somehow).
Bugs can be filed at https://bugzilla.gdcproject.org/
Mike
++count[3];
^
gdc --version
gdc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Is this a bug?
This seems to work fine in GDC 7. See
https://explore.dgnu.org/g/1pfiY2
Mike
and I'm terribly
sorry for the noise.
Mike
On Friday, 21 July 2017 at 23:44:53 UTC, Mike wrote:
However, I'm getting broken binaries with -O2 and -O3. I've
nailed the culprit down to -fschedule-insns (i.e. if I add
-fno-schedule-insns to -O2 or -O3, the binary works fine).
I've confirmed that -fschedule-insns is reor
On Friday, 21 July 2017 at 23:44:53 UTC, Mike wrote:
I'm getting broken binaries with -O2 and -O3. I've nailed the
culprit down to -fschedule-insns (i.e. if I add
-fno-schedule-insns to -O2 or -O3, the binary works fine).
I disassembled '-O2' and '-O2 -fno-schedule-
2, [sp, #8]')
Is there anything I can do to provide more actionable information
to help identify the underlying cause?
Mike
thing, though not the random
rectangles I was expecting. I suspect it's just a matter of
debugging my hardware initialization procedures now. I hope I'll
have something to show soon, though I may need to obtain some new
hardware.
Mike
g the object file I see this: arm-none-eabi-nm
binary/fimrware.o
U _D4core5bitop12volatileLoadFPhZh
U _D4core5bitop12volatileLoadFPkZk
U _D4core5bitop12volatileLoadFPtZt
U _D4core5bitop13volatileStoreFPhhZv
U _D4core5bitop13volatileStoreFPkkZv
U _D4core5bitop13volatileStoreFPttZv
Am I doing something wrong?
Thanks,
Mike
changes you made. But with
optimizations, everything gets removed.
Anyway, I'm going to move on from this for now and just try to
get a working binary. I believe once I properly implement
volatileLoad and volatileStore, I'll be able to get a working
binary.
Mike
nary/firmware.o
U _Dmain
U _d_run_main
T main
Are you sure this works with multiple modules passed to the
compiler on one line?
Mike
On Thursday, 6 July 2017 at 14:26:08 UTC, jallersma wrote:
Perhaps I have a bit of a noob question, but how come I cannot
use any of the GTKd headers on GCD? On DMD there's no header
that works. I tried to use dub to install the GTKD libraries,
but without any luck. Everytime I try to compile t
ntrypoint. That is, if
there's no entry point, the whole program gets garbage collected.
I think you might be on to something here though.
I'm out of time now; gotta catch a plane soon. I'll try to do
more troubleshooting when I return.
Mike
On Wednesday, 28 June 2017 at 16:52:26 UTC, Iain Buclaw wrote:
You probably want to tone down on optimizations as well. -O3
will be doing a lot of work, sometimes for little or no gain.
In most cases, -O2 -finline-functions is good enough, which can
be abbreviated further as simply -Os. [fo
ource/stm32f42/rng.d source/stm32f42/nvic.d
source/stm32f42/mmio.d source/stm32f42/flash.d
source/stm32f42/gpio.d source/stm32f42/ltdc.d source/main.d -o
binary/firmware.o
real1m0.518s
user0m54.594s
sys 0m2.558s
Mike
On Wednesday, 28 June 2017 at 11:19:10 UTC, Mike wrote:
I'd be glad to do some troubleshooting if you have any ideas.
I just checked in a branch that will compile with a desktop GDC
compiler in case someone wants to give it a try. I tested with
6.2.1 20160830 from the Arch Linux repos
e may have been other changes in newer frontend versions
improving build performance.
dmd --version
DMD64 D Compiler v2.074.0
Mike
/firmware.o
real0m3.086s
user0m2.569s
sys 0m0.517s
Not sure if that's a valid comparison, but that's a huge
difference.
I'd be glad to do some troubleshooting if you have any ideas.
But I may not get to it right away as I will be traveling for a
few weeks.
Mike
until yesterday, that GDC isn't
using the DDMD frontend. How do you usually handle such things?
Just use the transpiler between your ears?
Also, what's the plan for GDC w/ DDMD?
Mike
On Sunday, 25 June 2017 at 13:40:56 UTC, Iain Buclaw wrote:
I'll make a formal PR when I have some time later.
Iain.
For those who may encounter this post at a later date, the PR is
here: https://github.com/D-Programming-GDC/GDC/pull/505 and it
seems to solve the problem. Yeah!
On Sunday, 25 June 2017 at 10:18:04 UTC, Mike wrote:
Compile Speed
=
It takes about 1 minute 30 seconds to build and link the STM32
demo resulting in a 6kB binary. That's pretty bad, but I
suspect that's a DMD CTFE problem.
I'm been informed that this PR
(htt
On Sunday, 25 June 2017 at 10:53:35 UTC, Mike wrote:
I'm not really interested in that because its too blunt of an
instrument. I'd like to use TypeInfo, but only if I'm doing
dynamic casts or other things that require such runtime
information. Also, I'd only want the Ty
it in my binary. I've said this before but I'll repeat: I
like TypeInfo; I just don't like dead code.
Mike
the STM32 demo is about 600kB when it should be
more like 6kB.
Compile Speed
=
It takes about 1 minute 30 seconds to build and link the STM32
demo resulting in a 6kB binary. That's pretty bad, but I suspect
that's a DMD CTFE problem.
Mike
://issues.dlang.org/show_bug.cgi?id=13826).
The `volatile` keyword was removed in March 2016.
(https://github.com/dlang/dmd/pull/5556)
`core.volatile` seems like a good place for this `Volatile(T)`
implementation, IMO.
Mike
guate the cases where an architecture/profile supports
both Thumb and ARM -- like the A profile, if I remember correctly.
So, I still only see the need for one ARM_Thumb instruction set
identifier, but that could very well be a limitation of my own
understanding, and a lack of knowledge about your current project.
Mike
t-architectures/
Mike
Mike
On Thursday, 6 August 2015 at 11:07:33 UTC, Mike Parker wrote:
Haven't tried the 64-bit binaries yet, but any attempt to
compile an executable with the 32-bit binaries results in this:
OK, I've tried the x86_64-w64-mingw32 binaries. When compiling
with -m32, I get the same error
Haven't tried the 64-bit binaries yet, but any attempt to compile
an executable with the 32-bit binaries results in this:
c:/d/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libg
phobos2.a(thread.o): In function `_lambda3':
/home/build/tmp/build/.build/src/gcc-4.9.2/libph
mpiler would be a
sufficient start in my opinion.
Mike
On Wednesday, 3 June 2015 at 12:54:32 UTC, Johannes Pfau wrote:
That's correct. All ARM GCC compilers can generate code for all
ARM variants (the hf compiler can generate softfloat code and
the softfloat compiler can generate hf code as well). The
difference between the compilers are the ship
simply add the platform flags: -mthumb
-mcpu=cortex-m4
I hope that helps.
Mike
rom here
writeln(add(1, 2));
^
Shouldn't it be able to inline the "add" function since the
source code is there in the testInline.d file? Should I file a
bug?
Mike
rward, please let me know.
Mike
) if(A.length > 0 && is(A[0] ==
string))
{
// line 10
return Attribute!A(args);
}
//line 13
public enum inline = gcc.attribute.attribute("forceinline");
public enum naked = gcc.attribute.attribute("naked");
Without the -fno-rtti switch, everything builds fine.
Mike
On Sunday, 10 May 2015 at 12:48:55 UTC, Mike wrote:
On Sunday, 10 May 2015 at 09:54:51 UTC, Mike wrote:
Looks like someone picked up on this and submitted a patch:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=192#c9 Cool!!
But I still have yet to test it.
Damn! Didn't work.
ion even though I compile with -fdata-sections. I guess I'll
have to inspect the binary compiled with the patch to see what's
happening.
Mike
On Sunday, 10 May 2015 at 09:54:51 UTC, Mike wrote:
Looks like someone picked up on this and submitted a patch:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=192#c9 Cool!!
But I still have yet to test it.
Damn! Didn't work.
problem by
patching
the compiler (@notypeinfo or -fnortti).
Looks like someone picked up on this and submitted a patch:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=192#c9 Cool!! But
I still have yet to test it.
-fnortti would still be most welcome.
Mike
iscussions that there was work to be
done in binutils to get better LTO and dead-code removal. I'd be
interested in hearing more details about that too.
Thanks for the continued support,
Mike
On Tuesday, 28 April 2015 at 05:00:50 UTC, Timo Sintonen wrote:
../$gccver/configure --target=arm-eabi --disable-bootstrap \
--enable-languages=c --enable-multilib --disable-nls \
--without-isl --without-cloog \
--without-gmp --without-mpfr --without-mpc \
--disable-libphobos
I th
ARM_Cortex-M_study/wiki/1.3-Structs.
For 64-bit it may need to be different. See:
https://github.com/JinShil/druntime_level_0/blob/master/source/object.d
I figured out the size of each `ignore` array by trial and error.
Mike
ke this:
.L11:
.word .LC1
.word .LC2
.word .LC3
Therefore, the linker can see the link to the string literals and
doesn't strip them out (Again, that's my theory)
Can anything be done about this in GDC?
Thanks always for the help,
Mike
.rodata:
400168 780a x.
size test
textdata bss dec hex filename
338 0 0 338 152 test
6) execute:
./test
x
Filthy, but cheap and effective. Fortunately it's all automated
with rdmd.
Mike
On Sunday, 11 January 2015 at 16:57:41 UTC, Johannes Pfau wrote:
If you only want to disable TypeInfo for some classes that's
more
difficult:
https://github.com/D-Programming-microD/GDC/commit/f0614bc9480dacd1ec6bb75277d280afa96e08bb
Is this good enough for a pull request upstream, or just a
hould able
to engineer a workaround for now. Nice find, and thank you!
Mike
showing is how little I understand about
this problem. Again, I ask for help.
Mike
On Wednesday, 14 January 2015 at 14:34:48 UTC, Mike wrote:
I'll try to make a reduced test case on Linux that others can
run
and see.
Ok, here's my reduced test case that runs on Linux 64-bit. I
don't know if I really needed to implement the syscalls, but I
just wante
post.
The problem was my .rodata was filling up with the names of every
single type in my program. The .text section was quite small
(2K), so I don't think it was the executable code generated from
the trace module.
I'll try to make a reduced test case on Linux that others can run
and see.
Mike
On Wednesday, 14 January 2015 at 13:32:53 UTC, Mike wrote:
Well, I was working a reduced test case and found that it has
something to do with my trace.d file here:
https://github.com/JinShil/stm32f42_discovery_demo/blob/master/source/stm32f42/trace.d
If I add a trace.writeLine("x&qu
On Wednesday, 14 January 2015 at 09:04:50 UTC, Mike wrote:
Ok, but I have a mess of classes generated by templates (and I
love it). Their `name` properties [1] should go in .rodata,
right? But why aren't they being put in their own sections
when compiling with -fdata-sections?
On Wednesday, 14 January 2015 at 08:42:55 UTC, Iain Buclaw via
D.gnu wrote:
On 14 January 2015 at 04:00, Mike via D.gnu
wrote:
On Tuesday, 13 January 2015 at 14:36:15 UTC, Dicebot wrote:
I remember speaking about it with Martin and Daniel during
DConf 2014 and
I think it was Daniel who
On Tuesday, 13 January 2015 at 10:49:43 UTC, Iain Buclaw via
D.gnu wrote:
I can assist, though timing is a problem as of late. I'll have
a list
of jobs to catch-up on my side before my attention becomes
undivided.
Iain.
Thanks, Iain. I patiently await any assistance you can provide.
it was
mentioned they had to change ModuleInfo emitting to make it
actually work.
Can it be the same issue?
Thanks, Dicebot, for bringing this to my attention. That would
explain what I'm seeing.
Is this something unique to GDC, or is it an artifact inherited
from DMD?
Mike
On Tuesday, 13 January 2015 at 14:20:43 UTC, Mike wrote:
Here's what I'm seeing:
arm-none-eabi-objdump -t binary/firmware
binary/firmware: file format elf32-littlearm
SYMBOL TABLE:
0800 ld .text .text
08000a44 ld .rodata
M (merge), S (strings)
You can see the .rodata section is orders of magnitude larger
than any other section.
Mike
ind on how the differnt pieces would come together, but
I'm not getting it by reading the source code. How would you
approach this? Can you formulate it into a list of tasks to
perform?
Mike
On Sunday, 11 January 2015 at 15:02:07 UTC, bearophile wrote:
Mike:
I'm building some code that is heavily templated. Therefore,
I have many very small classes.
This is a non sequitur.
I believe it is because nearly every one of the instantiated
template names is appears in the .r
m guessing this is RTTI. Is there any way, either through
linker scripting, or the compiler to keep this stuff out of my
binary?
Thanks,
Mike
using GDC 4.9 arm-none-eabi cross-compiler.
compiler flags:
arm-none-eabi-gdc -O3 -nophoboslib -nostdinc -nodefaultlibs
-nostdlib -fno-emit-moduleinfo
ils should have to know about D's codegen,
but there's a lot of things I don't understand.
Anyway, please let me know what the plan is, and if there is
anything I might be able to do to move it forward.
Mike
On Sunday, 12 October 2014 at 09:11:16 UTC, Iain Buclaw via D.gnu
wrote:
On 12 October 2014 01:29, Mike via D.gnu
wrote:
I'm wondering, if some of you that do development on GDC could
briefly
describe how you set up your development environment.
I can build GDC fine, but I can't
On Sunday, 12 October 2014 at 09:11:16 UTC, Iain Buclaw via D.gnu
wrote:
Incremental Builds:
When you make a change to either the gdc or gcc sources,
running make
inside objdir will keep on doing incremental builds for you.
Some
exceptions to the rule:
* Adding/Removing files from libpho
end up with something non-ideal.
So, please take a few minutes to give me the basic rundown. If I
can get set up, and if you think it would help, I'll give back by
writing a wiki page on how to get set up from a beginner's
perspective.
Thanks,
Mike
On Saturday, 11 October 2014 at 17:37:22 UTC, Kevin Lamonte wrote:
On Saturday, 11 October 2014 at 06:59:33 UTC, Mike wrote:
Hello,
In my continued, though stalled, effort to try and make
minimal runtime for embedded systems, I've tried to find a way
for users to know at compile-time
anguage and the compiler, and can
be treated just like any other library function: If the
declaration doesn't exist, compiler error.
* Runtime hooks can be easily decorated with @deprecated or other
attributes and enable several techniques to test language changes
without having to rebuild the compiler.
Thanks for your thoughtful consideration,
Mike
ch
monitor. Can you please point it out for me?
Thanks,
Mike
more /language/ hacks are proposed...
Do you mean the problems with --gc-sections breaking code?
Mike
this situation demonstrates why having an intelligent linker
is a better solution than decorating with attributes. The linker
should know if you took an address of an always-inlined function
or not and decide whether or not to remove it from the binary.
Mike
is currently a pull request to remove the monitor from
object field from object and therefore all classes:
https://github.com/D-Programming-Language/druntime/pull/789.
Mike
On Wednesday, 16 July 2014 at 13:52:57 UTC, Mike wrote:
I received a question from Dicebot in at the end of my
presentation. He asked about the --gc-sections linker flag
breaking code from GDC.
I recently discovered how one can see why this is occurring,
and I hope this will help identify
of this in GCC's internal linker script
below.
If my theory is correct, GDC may have to make an internal linker
script specifically for D's code generation that marks such code
as KEEP.
I hope I'm not just blowing smoke.
Mike
==
/* S
arm-none-eabi folder.
###
# gcc.gnu.org/install/configure.html
# http://wiki.dlang.org/GDC/Cross_Compiler/Generic
set -e
export TARGET=arm-none-eabi
export PREFIX=/home/mike/gdc-arm-none-eabi
# export PATH=$PATH:$PREFIX/bin
# Delete existing binutils source archive an
.
Thanks, I'll have a read through these. :-)
I ran into some trouble with crosstools. If you're going to do
bare-metal, have a look at this thread as well to hopefully save
yourself some frustration
(http://forum.dlang.org/post/ftnzzsekkcepcthrj...@forum.dlang.org).
Mike
h. It will likely need
the support of those with some clout in the D community.
Mike
On Wednesday, 11 June 2014 at 21:54:28 UTC, Iain Buclaw wrote:
It's done, after 2 months brewing in development.
https://github.com/D-Programming-GDC/GDC/pull/76
This is great news. Thank you to all those involved.
On Saturday, 19 April 2014 at 01:50:45 UTC, Iain Buclaw via D.gnu
wrote:
I think you mean to 'extern (C) extern'
Yes, that's what I was looking for. Thanks.
but unfortunately this puts new variables in the .bss
segment. I want the un-mangled name, so I can refer to it
easily, but I also want it to be truly "extern" (defined
elsewhere). Is that possible at this moment in D?
Thanks for the help,
Mike
On Wednesday, 26 March 2014 at 13:44:56 UTC, Johannes Pfau wrote:
Am Wed, 26 Mar 2014 13:20:48 +
schrieb "Mike" :
I get the an "undefined identifier destroy" message when
trying to compile the following with GDC.
void main()
{
X x = new X();
destroy(x);
}
On Wednesday, 26 March 2014 at 13:27:03 UTC, ketmar wrote:
just checked it with todays GDC git and gcc 4.8.2 — it works ok.
Thanks for the reply.
I just rebuilt, and I get the same error. Are you using the GDC
4.8 branch with GCC 4.8.2?
My build is an ARM Cortex-M cross compiler, but the l
I get the an "undefined identifier destroy" message when trying
to compile the following with GDC.
void main()
{
X x = new X();
destroy(x);
}
...but it compiles fine in DMD 2.065.0.
I'm using a week-old build of 4.8.2. Is this not implemented yet?
Mike
On Sunday, 23 March 2014 at 07:51:14 UTC, Johannes Pfau wrote:
Some time ago LTO was only supported by the gold linker, so you
might
need to configure binutils with --enable-gold --enable-plugins
--enable-lto
GCC should also be compiled with --enable-gold --enable-plugins
--enable-lto
http:/
binary/memory.map
--gc-sections -flto ...
I'm using my arm-none-eabi cross toolchain built from the GDC 4.8
branch. I tried adding --enable-lto to my toolchain's configure,
but that had no effect. It's my understanding that it's enabled
by default anyway.
Does anyone know how I can get this level of inlining without
compiling all my source into one object file?
Thanks for any help,
Mike
1 - 100 of 160 matches
Mail list logo