4 ms·
Some coming features of Scryer Prolog for those interested: - Automatic detection and compilation of partial strings - Streams, including sockets - Garbag
by mthom 6y ago
Some coming features of Scryer Prolog for those interested:
- Automatic detection and compilation of partial strings
- Streams, including sockets
- Garbage collection in anticipation of very fast yet logically pure I/O
- Improvements to the instruction dispatch loop (many opportunities for enhancement there, probably a good place to start for a beginning contributor)
In the past few months, we've added delimited continuations, tabling, partial strings, and Markus' CLP(B), CLP(ℤ) and format libraries. For a hobbyist project I'd say we're moving at a fairly quick pace!
Longer term, we're interested in:
- JIT compilation to native code (Cranelift seems a good candidate?)
- Low-level integration with Common Lisp environments
I'd love to have system-level contributors, although library contributions are always very welcome!
- triska 6y agoThank you a lot Mark for participating in this discussion, and for all your work on Scryer Prolog during the last few years! In the hope to attract further contributors to Scryer Prolog, especially with interest in Rust, I have now created a GitHub issue that collects a few self-contained features that could be interesting to look into for Rust programmers: https://github.com/mthom/scryer-prolog/issues/319 https://github.com/mthom/scryer-prolog/issues/319 I hope that's OK, and I invite everyone who is interested in these topics to contribute to this very innovative new Prolog system! Already in this early stage, it provides several important features that no other system currently has. Thank you again!
- mthom 6y agoYes, thank you for the Power of Prolog! Scryer was and is being written under its influence.
- 7thaccount 6y agoHow usable is Scryer Prolog? Is it a single executable, or does it have a complex install?
- mthom 6y agoDecently, I'd say. It is a single executable that you have to build yourself. If you want a recent build, there are a few extra steps, but they're nbd. There are build instructions in the README ("Installing Scryer Prolog") at: http://github.com/mthom/scryer-prolog http://github.com/mthom/scryer-prolog
- koeng 6y agoI'm fairly new to programming in Prolog - how does Scryer Prolog compare to more common implementations like Swi Prolog?
- mthom 6y agoScryer is not yet as fast or feature-rich as SWI. SWI has been in business for about 30 years longer, so that shouldn't surprise anyone. Also, Scryer is committed to strict conformance to the ISO Prolog standard, which SWI has disregarded for a while now.
- felixyz 6y ago> very fast yet logically pure I/O Sounds interesting, do you have a link or something else to share regarding your conception of logically pure I/O?
- falsissime 6y agoSee https://github.com/mthom/scryer-prolog/issues/251 https://github.com/mthom/scryer-prolog/issues/251
- Avshalom 6y agohttps://www.swi-prolog.org/pldoc/man?section=pio https://www.swi-prolog.org/pldoc/man?section=pio https://github.com/SWI-Prolog/swipl-devel/blob/master/library/pure_input.pl https://github.com/SWI-Prolog/swipl-devel/blob/master/librar... this (I assume) is the library(pio) mentioned in the github issue
- falsissime 6y agoFrom the interface (mostly yes, that, is apart from the impure extensions added later, and that chars are used and not codes) it is the same. But from the implementation behind it´s different. In particular from the space requirements. A text of n characters requires 3 * 8 * n bytes in SWI, but n + 2 * 8 bytes in Scryer. So there is a factor 24 in space requirements (on 64bit). Also, there is now ample room for input that SWI once almost offered.