Replies: 3 comments 25 replies
-
@mflatt Regarding Unicode grapheme clusters: Racket uses data files from Unicode 7. The text segmentation spec has changed somewhat since then (mostly to account for emoji, I think, e.g., flags with zero-width joiners). What are your thoughts on moving to Unicode 14? (And do BC and CS need to change in lock step? I notice that they are both using Unicode 7, but I don't know if that was planned.) |
Beta Was this translation helpful? Give feedback.
-
That's a good question. From what I can tell there isn't a code point that extends a cluster on one side and prevents extension on the other. So, for example: I found a post where a member of the Swift core team mentions this issue. Here's the relevant bit:
So, kind of a |
Beta Was this translation helpful? Give feedback.
-
What is fancy-app ? |
Beta Was this translation helpful? Give feedback.
-
Some things that we can see currently need to be done, roughly in order of complexity:
examples – See Example Rhombus/Shrubbery Programs #186. There's a chicken-and-egg problem here of having enough libraries and figuring out what the libraries should look like.
fancy-app – Might be a relatively small detail, but better to sort out earlier instead of later.
unit testing – Something small and simple enough to be in the core, and that composes well with abstractions like functions and modules (instead of having a parallel set of forms for abstracting over tests).
errors – Figure out how to get primitives to complain with different names, but cheaply. Hopefully, this is not a compiler-improvement exercise.
pretty printer for shrubberies – Sorawee has the starting point here.
syntax-parse – Make more syntax-parse functionality available in the pattern and template sublanguages. One particular challenge is figuring out what needs to be in the base language and what can be in a separate library.
Scribble – Adapted to shrubbery notation (shcribble?), with documentation forms that adapt better to different languages, and with a cleaned-up base library.
in-source documentation – Possibly along the lines of
scribble/srcdoc
. Depends on Scribble adaptation.class system design – Build on the
struct
-likeclass
form, but with methods? Withracket/generic
and/orracket/class
integration?core datatypes – Maps, etc. Jack is working on this, but included here in an attempt at completeness and context.
strings – Support for Unicode grapheme clusters (not just code units). There are questions of how Racket, port counting, and the drawing/GUI/editor libraries interact, so this is an especially wide-ranging problem. But there are some basic design decisions and functionality that might be worked out piecewise, and it might not be all that much code in the end.
annotations/contracts – Extend the annotation library in the direction of contracts. Similar to syntax-parse, figuring out what needs to be core is part if the challenge here. This one interacts with research and ongoing work by Lukas @ Northwestern.
Beta Was this translation helpful? Give feedback.
All reactions