@@ -1,6 +1,6 @@
11[](http://purescript.org)
22
3−This is an experimental C++(11+)/native compiler backend for [PureScript](https://github.com/purescript/purescript). It attempts to generate "sane", debuggable, and portable C++ code as an intermediate language, which is then compiled to a native executable binary. This enables easy interoperability with existing C/C++ frameworks and libraries on a number of platforms.
3+This is an experimental C++11 (or later) compiler backend for [PureScript](https://github.com/purescript/purescript). It attempts to generate "sane", debuggable, and portable C++ code as an intermediate language, which is then compiled to a native executable binary. This enables easy interoperability with existing C/C++ frameworks and libraries on a number of platforms.
44
55---
66
@@ -12,25 +12,24 @@ This is an experimental C++(11+)/native compiler backend for [PureScript](https:
1212
1313#### Performance
1414
15−* No runtime system (beyond some support classes and the standard C++(11+) runtime library)
16−* For automatic memory management, uses native C++(11+) reference counting (`std::shared_ptr`)
15+* No runtime system beyond some support classes and the standard C++11 (or later) runtime library
16+* For automatic memory management, uses native C++11 reference counting (`std::shared_ptr`)
1717* Uses PureScript's normal tail call optimization techniques for generated C++ code
1818
1919#### Differences from PureScript:
2020
21−* Foreign imports are C++(11+) (or C) instead of JavaScript ([FFI examples](https://github.com/andyarvanitis/purescript-cpp-ffi))
21+* Foreign imports are C++ instead of JavaScript ([FFI examples](https://github.com/andyarvanitis/purescript-cpp-ffi))
2222* No C++-specific REPL
2323
2424#### Other notes:
2525
2626* PureScript arrays are implemented using [`std::deque`](http://en.cppreference.com/w/cpp/container/deque) (random access *O(1)*)
27−* `String` types are implemented using either C-strings (for literals) or `std::string`
27+* `String` types are implemented with C++11 `u8` literals (UTF-8) and `std::string`
2828* `Number` is C++ `double`, `Int` is C++ `int`, `Char` is `std::string` (single UTF-8 entity), `Boolean` is `bool`
2929
3030#### Future ideas:
3131
3232* Nice facilities (modules) for concurrency/parallelism, using `std::thread`, `std::async`, etc. under the hood (output is already generally thread-safe for immutable values, thanks to `std::shared_ptr`)
33−* `BigInt` via GNU GMP (or an alternative)
3433
3534#### Requirements for building the compiler itself
3635