Markus Triska
Markus Triska
@Skgland: Since you have a particular talent for far-reaching adaptations that improve correctness, I hope this may interest you for example? I.e., to implement the Rust vocabulary that provides access...
Another candidate where a better building block that papers over the internal representation difference could be useful and help to avoid mistakes: https://github.com/mthom/scryer-prolog/commit/b2cfc8b6f2fbcd26cbe99f98b4a03679dab8671b
One additional motivation to limit the places that see the internal representation difference: In the future, **binary blobs** (of fixed, known length) could be an interesting addition to the engine,...
Partial strings are internally stored in **UTF-8 encoding**, a very compact representation explained in #24 and #95. Another key benefit: UTF-8 encoded text files that don't have 0-bytes can be **mmapped**...
@haijinSk: Writing strings verbatim to a file does not guarantee that they form valid Prolog syntax that can be consulted. For example, we equally have, with Trealla Prolog: ?- phrase_to_file("hello('\n').",...
Another case that could benefit from this approach: #3086.
Another case that can maybe benefit from such an approach: #3089.
This issue is also related to #2594: In the future, yet another term representation may be introduced to support terms with unbounded arities, and the interface described above would make...
A conceptually related issue is `Lis` vs. `'.'(_, _)`, unexpectedly yielding https://github.com/mthom/scryer-prolog/issues/3171, and handling in https://github.com/mthom/scryer-prolog/pull/3173/commits/268ba289e4e6740be074a43771e9b13398284e9b. Ideally, the internal distinction is visible to as few places as possible.
As an addendum, what I actually wanted to test in this case is whether the module prefix is *not* added in cases where it can be rightfully omitted. For instance,...