Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[c/README.markdown] begin the 6model/c subproject

  • Loading branch information...
commit f6f0936dc93a9cfbe0bf8f4843989b74c9263abc 1 parent 7a3e9da
@mberends mberends authored
Showing with 39 additions and 0 deletions.
  1. +39 −0 c/README.markdown
View
39 c/README.markdown
@@ -0,0 +1,39 @@
+# README.markdown for 6model/c
+
+This subproject will try to port 6model to the C language. There are
+similarities with the 6model/java subproject, and some differences
+besides the target language.
+
+This port will also track upstream changes, but not from another subtree
+such as ../dotnet/ in the 6model repository. Instead, the prototype is
+https://github.com/perl6/nqp because of some useful advantages:
+
+* Much of the source code is already written in C.
+
+* The code is frequently improved and tested.
+
+There are some small practical inconveniences. The build tools assume
+that 6model and nqp are sibling project directories. After Rakudo/nom
+replaces Rakudo/beta, the build tools will be adjusted to assume that
+6model and Rakudo are sibling directories.
+
+## Supplying the functionality missing in C
+
+Compared to other Perl 6 runtime environments such as Parrot, CLR or
+JVM, C lacks some fairly essential capabilities. Here is how this
+subproject proposes to provide what is missing:
+
+* Hashes. There will be a HashTable library.
+
+* Garbage Collection. There will be a reference counting garbage
+collector, similar to the one in Perl 5, maybe improved with circular
+reference detection. It would be nice to also have a shim that allows
+other garbage collectors such as libgc (Boehm) to be used instead.
+
+* Unicode handling. There will be UTF-8 awareness in the input/output
+routines and in the byte-oriented storage. The port will make the
+imperfect assumption that codepoints are equivalent to characters.
+Later there will be hooks for dynamically loadable libraries to override
+that assumption (Unicode is huge and growing and implies performance
+tradeoffs).
+
Please sign in to comment.
Something went wrong with that request. Please try again.