-
Notifications
You must be signed in to change notification settings - Fork 150
Improvements to predicate_property/2 #2902
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: rebis-dev
Are you sure you want to change the base?
Conversation
This one was a toughie: it turns out that using `ptr::align_of()`` was a bad idea, since the buffer in `Heap` itself is not aligned to `Heap::heap_cell_alignment()`, so `ptr::align_of()` would sometimes return lower values than expected. That made for an heisenbug: if the alignment of the heap happened to be 4, then the bug wouldn't trigger.
This reverts commit 3b58798.
mark done item
rebis-dev makes the speed difference especially apparent due to the linear scan of strings on the heap in partial_string_tail/2 which is now avoided for repositionable streams, notably files. This addresses mthom#2888 reported and analyzed by @haijinSk. Many thanks!
ENHANCED: dedicated faster branches for repositionable streams
This addresses mthom#2898 reported by @rotu. Thank you a lot! It now also supports nested module qualifications.
I expect that check_predicate_property/5 may crash or yield wrong results for variable Module in general. This must be addressed before merging.
The commit history makes it very hard for me to tell what's going on in this PR. I think rebis-dev must have been rebased after this PR was created. If it's not too much trouble, could you please rebase this PR? |
Look at the changes from just the last 2 commits: https://github.com/mthom/scryer-prolog/pull/2902/files/9acaeb38efa741633ebd76a1b05a7de19a37f8c2..afc3aa253a631d52161640338553c42ce5a3c547 |
@bakaq Thanks, you're right. Those commits even cherry-pick cleanly onto master. |
BTW, if you drop the https://github.com/mthom/scryer-prolog/actions/runs/14579523803/job/40892946221?pr=2902#step:2:62> Checking out the ref
That is, it's cleaner to fork |
The motivation for this is #2898.
However, throwing instantiation errors for variable module leads to Scryer crashing on startup. This must be addressed before merging.
If anyone has any input on this, I would greatly appreciate it. Thank you a lot!