<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/haskell.git/docs, branch wip/stringbuffer</title>
<subtitle>gitlab.haskell.org: ghc/ghc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/'/>
<entry>
<title>Implement -ddump-c-backend argument</title>
<updated>2020-11-22T11:28:10+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2020-11-20T22:31:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=bc9c3916df96a20c58b91fd383a0da77ec83c4b0'/>
<id>bc9c3916df96a20c58b91fd383a0da77ec83c4b0</id>
<content type='text'>
To dump output of the C backend.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To dump output of the C backend.
</pre>
</div>
</content>
</entry>
<entry>
<title>rts: Post ticky entry counts to the eventlog</title>
<updated>2020-11-21T18:13:29+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2020-04-14T01:12:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=7e93ae8b2257c17d5ae5ef7832db723e897c8e8b'/>
<id>7e93ae8b2257c17d5ae5ef7832db723e897c8e8b</id>
<content type='text'>
We currently only post the entry counters, not the other global
counters as in my experience the former are more useful. We use the heap
profiler's census period to decide when to dump.

Also spruces up the documentation surrounding ticky-ticky a bit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently only post the entry counters, not the other global
counters as in my experience the former are more useful. We use the heap
profiler's census period to decide when to dump.

Also spruces up the documentation surrounding ticky-ticky a bit.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Plugins into HscEnv (#17957)</title>
<updated>2020-11-21T06:14:09+00:00</updated>
<author>
<name>Sylvain Henry</name>
<email>sylvain@haskus.fr</email>
</author>
<published>2020-11-03T11:04:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=ecfd0278cb811c93853c176fe5df60222d1a8fb5'/>
<id>ecfd0278cb811c93853c176fe5df60222d1a8fb5</id>
<content type='text'>
Loaded plugins have nothing to do in DynFlags so this patch moves them
into HscEnv (session state).

"DynFlags plugins" become "Driver plugins" to still be able to register
static plugins.

Bump haddock submodule
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Loaded plugins have nothing to do in DynFlags so this patch moves them
into HscEnv (session state).

"DynFlags plugins" become "Driver plugins" to still be able to register
static plugins.

Bump haddock submodule
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce -fprof-callers flag</title>
<updated>2020-11-21T06:13:26+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2020-08-12T18:07:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=53ad67eacacde8fde452f1a323d5886183375182'/>
<id>53ad67eacacde8fde452f1a323d5886183375182</id>
<content type='text'>
This introducing a new compiler flag to provide a convenient way to
introduce profiler cost-centers on all occurrences of the named
identifier.

Closes #18566.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introducing a new compiler flag to provide a convenient way to
introduce profiler cost-centers on all occurrences of the named
identifier.

Closes #18566.
</pre>
</div>
</content>
</entry>
<entry>
<title>users-guide: A bit of clean-up in profiling flag documentation</title>
<updated>2020-11-21T06:13:26+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2020-11-11T20:51:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=2a8a979c24fe34a81a438ae179693ddaca12709f'/>
<id>2a8a979c24fe34a81a438ae179693ddaca12709f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update user's guide entry on demand analysis and worker/wrapper</title>
<updated>2020-11-20T07:09:51+00:00</updated>
<author>
<name>Sebastian Graf</name>
<email>sebastian.graf@kit.edu</email>
</author>
<published>2020-11-10T12:20:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=3a55b3a2574f913d046f3a6f82db48d7f6df32e3'/>
<id>3a55b3a2574f913d046f3a6f82db48d7f6df32e3</id>
<content type='text'>
The demand signature notation has been undocumented for a long time.
The only source to understand it, apart from reading the `Outputable`
instance, has been an outdated wiki page.

Since the previous commits have reworked the demand lattice, I took
it as an opportunity to also write some documentation about notation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The demand signature notation has been undocumented for a long time.
The only source to understand it, apart from reading the `Outputable`
instance, has been an outdated wiki page.

Since the previous commits have reworked the demand lattice, I took
it as an opportunity to also write some documentation about notation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clarify interruptible FFI wrt masking state</title>
<updated>2020-11-20T07:09:16+00:00</updated>
<author>
<name>Kamil Dworakowski</name>
<email>kamil@dworakowski.name</email>
</author>
<published>2020-10-23T12:18:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=b57845c3d80f5bed8f498f27fb7a318f2b2f8b2c'/>
<id>b57845c3d80f5bed8f498f27fb7a318f2b2f8b2c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nativeGen/dwarf: Only produce DW_AT_source_note DIEs in -g3</title>
<updated>2020-11-15T08:35:45+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2019-12-27T04:41:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=1e19183d08a3312ac2331b8284d17bc17170a51e'/>
<id>1e19183d08a3312ac2331b8284d17bc17170a51e</id>
<content type='text'>
Standard debugging tools don't know how to understand these so let's not
produce them unless asked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Standard debugging tools don't know how to understand these so let's not
produce them unless asked.
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable -fexpose-internal-symbols when debug level &gt;=2</title>
<updated>2020-11-11T08:20:00+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2020-03-18T19:54:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=584058ddff71460023712a8d816b83b581e6e78f'/>
<id>584058ddff71460023712a8d816b83b581e6e78f</id>
<content type='text'>
This seems like a reasonable default as the object file size increases
by around 5%.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This seems like a reasonable default as the object file size increases
by around 5%.
</pre>
</div>
</content>
</entry>
<entry>
<title>codeGen: Produce local symbols for module-internal functions</title>
<updated>2020-11-11T08:20:00+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2019-12-27T17:38:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=c6264a2d652517954b7cd076c7bc4487ed17c97d'/>
<id>c6264a2d652517954b7cd076c7bc4487ed17c97d</id>
<content type='text'>
It turns out that some important native debugging/profiling tools (e.g.
perf) rely only on symbol tables for function name resolution (as
opposed to using DWARF DIEs). However, previously GHC would emit
temporary symbols (e.g. `.La42b`) to identify module-internal
entities. Such symbols are dropped during linking and therefore not
visible to runtime tools (in addition to having rather un-helpful unique
names). For instance, `perf report` would often end up attributing all
cost to the libc `frame_dummy` symbol since Haskell code was no covered
by any proper symbol (see #17605).

We now rather follow the model of C compilers and emit
descriptively-named local symbols for module internal things. Since this
will increase object file size this behavior can be disabled with the
`-fno-expose-internal-symbols` flag.

With this `perf record` can finally be used against Haskell executables.
Even more, with `-g3` `perf annotate` provides inline source code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It turns out that some important native debugging/profiling tools (e.g.
perf) rely only on symbol tables for function name resolution (as
opposed to using DWARF DIEs). However, previously GHC would emit
temporary symbols (e.g. `.La42b`) to identify module-internal
entities. Such symbols are dropped during linking and therefore not
visible to runtime tools (in addition to having rather un-helpful unique
names). For instance, `perf report` would often end up attributing all
cost to the libc `frame_dummy` symbol since Haskell code was no covered
by any proper symbol (see #17605).

We now rather follow the model of C compilers and emit
descriptively-named local symbols for module internal things. Since this
will increase object file size this behavior can be disabled with the
`-fno-expose-internal-symbols` flag.

With this `perf record` can finally be used against Haskell executables.
Even more, with `-g3` `perf annotate` provides inline source code.
</pre>
</div>
</content>
</entry>
</feed>
