Skip to content

Commit 90d1f10

Browse files
committed
Add xml project
1 parent 997d4c5 commit 90d1f10

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

gsoc/2017.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,41 @@ Here are some project ideas. The list is non-binding and any reasonable
4545
project related to Scala that is proposed by a student will be thoroughly
4646
reviewed.
4747

48+
### String interpolator for XML literals
49+
50+
We have wanted for a long time to deprecate XML literals in Scala and replace them by a string interpolator. That is, instead of
51+
52+
<body>
53+
...
54+
</body>
55+
56+
future Scala programs would use an interpolated string
57+
58+
xml"""
59+
<body>
60+
...
61+
</body>
62+
"""
63+
64+
This project should turn the wish into reality by implementing the
65+
`xml` interpolator. The implementation should re-use most of the
66+
existing infrastructure for xml literals. It would probably be a good
67+
idea to re-package the existing XML parser in the Scala compiler, and
68+
to map interpolated strings to constructors from the existing
69+
`scala.xml` library. Some other aspects need to be re-thought. In
70+
particular name-space management should be handled by implicts
71+
instead of being hard-coded in the Scala typer.
72+
73+
The project is a success if it can support essentially all legal XML
74+
expressions in Scala as interpolated strings. By contrast, support for
75+
XML patterns is optional: it would be nice if we could do it, but it's
76+
not required.
77+
78+
This project is ideal for someone who knows XML basics, and is
79+
interested to learn enough about aspects of the compiler (either Scala 2.12
80+
or Dotty) to identify what can be re-used.
81+
82+
Supervised by [Denys Shabalyn]](http://github.com/densh)
4883

4984
### Dotty Documentation Compiler ###
5085

0 commit comments

Comments
 (0)