[GSoC] 'Replace Runtime Hooks with Templates' progress and update thread

Dan Printzell xwildn00bx at gmail.com
Tue May 28 10:47:03 UTC 2019


Hey everyone,

I have now started with my Google Summer of Code project, Replace
Runtime Hooks with Templates. A small recap on what my project is 
about:

       A lot of the language features depend on runtime hooks,
       which in turn requires the TypeInfo class. This is a problem
       for betterC code, as classes are not supported. Another
       problem is that the current hooks can lie about their
       safety. Both of these problems can be solved by moving
       runtime hooks to use templates instead. This solves the
       betterC issue by removing the dependency of classes (the
       TypeInfo class), and it solves the safety issue because now
       the compiler will have all the information about the hook
       and the type it works on.

       This project will work on translating all the array hooks
       from using the TypeInfo class to using templates.

The full proposal pdf and LaTeX files can be found in the 
following
Github repo: [https://github.com/Vild/GSOC2019-Proposal]


This month
==========

As a warm-up project I have been working on learning about the 
dmd and
druntime codebases by implementing more descriptive error 
messages for
when a template hook is missing.
[https://github.com/dlang/dmd/pull/9839]

I have also read though, more in-depth, all of the previous hooks
conversion pull-requests to try and build up a mental picture of 
all the
code their conversion touched, and their problems and solutions.


Next month
==========

Over the next four weeks I will translate following hooks:

Week 22-23:
- _d_arrayappend*
Week 24-25:
- _d_arraysetctor
- _d_arrayctor
- _d_arraycat*

The first two weeks will be allocated to only the _d_arrayappend*
functions as these are the first hooks I will be translating and 
I will
also need to study and do two exams.


Blockers
========

So far I have not encountered any problems with the project.



More information about the Digitalmars-d mailing list