converted xpath, curl, pcre to autoconf 2.71
various fixes to dbdrivers config
preliminary suppport for mariadbb
converted configure stuff in packages/dbdrivers to autoconf 2.71
tested on windows
change py-xsb to janus-xsb in one place
minor
converted to autoconf 1.71 - a major update to configuration.
updated janus/configure.ac, janus/m4/* for autoconf 2.71
fixing the janus config for the latest autoconf
The updates to autoconf in the latest ubuntu 24.04 and Mint 22 are so far reaching that they break XSB config.
Minor change to test to account for extra ?-'s
Updated a test to coincide with an error message.
Updating parts of the testsuite.
Tweaks for the testsuite.
fixed a cosmetic config bug in windows64
Fixed bug in switchonterm with terms of form f(). And fixed bug in load_dyn(c) for similar terms.
updated right answer for an incr test whose error message seems to have changed.
This one too.
Forgot to commit?
Took a couple of obsolete predicates for incr tabling out of the manual.
Test for add_incr_dependency/1.
Documentation of add_incr_dependency/1.
Accidentally committed a file with some debug statements. This file has the debug statements removed.
Added the builtin add_incr_dependency/1.
fixed bug in subset_db/2
Made a function, print_registers, usable outside of this file. I used it for debugging cutting over tables.
taking out printf.
I'm agreeing that the change from a couple months ago is a good fix, because I backported it to: https://downloads.sourceforge.net/xsb/XSB-4-0-0.tar.gz (with additional patches from https://dev.gentoo.org/~keri/distfiles/xsb/xsb-4.0.0-gentoo-patchset-3.tar.gz) I haven't tried building from git, no.
I'm agreeing that the change from a couple months ago is a good fix, because I backported it to: https://downloads.sourceforge.net/xsb/XSB-4-0-0.tar.gz (with additional patches from https://dev.gentoo.org/~keri/distfiles/xsb/xsb-4.0.0-gentoo-patchset-3.tar.gz) I haven't tried building from git, no.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style id="bidiui-paragraph-margins" type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style> are you sure you are using the latest from the git repository? This bug was fixed exactly 2 months ago On 5/14/24 11:23 PM, Eli Schwartz wrote: It should, yes, that's the local fix I made too. --- **[bugs:#265] Build fails with implicit-int in a configure test probe** **Status:** open **Group:** Performance problem **Created:**...
Unfortunately after backporting the patches, it still fails: -e [x86_64-pc-linux-gnu-gcc] loader_xsb.c using -fPIC -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Werror=int-conversion -Werror=incompatible-pointer-types -Wno-error=format-security loader_xsb.c: In function ‘get_index_tab’: loader_xsb.c:136:16:...
Oh hrm right, fixed by edce993d1a837707781dbd4b5025e22e694c9053.
Note that implicit-function-declaration is tied to https://sourceforge.net/p/xsb/bugs/265/ This is an easy case because you can just include the header you forgot. Some Modern C errors are a lot harder to fix.
I see you committed a fix, unfortunately attempting to backport it emits a different fatal error instead: In file included from tst_utils.c:45: cell_xsb_i.h: In function ‘bld_boxedfloat’: cell_xsb_i.h:42:5: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration] 42 | memcpy(&tempUIFloat,&value,sizeof(tempUIFloat)); | ^~~~~~ cell_xsb_i.h:1:1: note: include ‘<string.h>’ or provide a declaration of ‘memcpy’ +++ |+#include <string.h> 1 | #include "register.h" cell_xsb_i.h:42:5:...
It should, yes, that's the local fix I made too.
fixed typo in err msg
Adding back the printf for cutting over a table.
Put goal into the context for error when floundering tnot/1.
Added more descriptive error message, and put the gzbld bdinb cut over into the context.
Added comment to force-truth-value predicates in tables.P to record difference in WF simplification and SM simplification.
Merge branch 'git-origin' of ssh://git.code.sf.net/p/xsb/code into git-origin
Changed error type.
Minor changes to janus-plg.
Updatd from xp to jns.
Added safety check to free python object
Minor fix to number_codes/chars. reset string if int conversion fails.
included string.h, which some compilers seem to need for memcpy,
Fixed (this time, I hope) number_chars/codes to handle multiple bases.
Fixed (I hope) the strict-aliasing violations pointed out. Used memcpy to avoid bad coercions.
Concatenate multiple -e command arguments to accumulate command.
Thanks very much for that information. I will look into seeing what can be done. (I haven't understood that code for handling byte-backward issues for at least 35 years, if I ever did, even though I'm quite sure I wrote it. I hope I'm not too old to relearn it....)
The standards conformant way to do this without invoking UB is to use either that (union type access) or a memcpy. Both are commonly used in this scenario. Both will produce, on gcc or clang with optimizations enabled, the same code (in fact, the same code that the strict-aliasing violation produces, except the aliasing could trigger UB and explode instead). It's a well known pattern that the compiler has been taught to recognize. The memcpy guarantees there are no alignment issues whereas the union...
So I guess the accepted way to do these things would be to use union types? And storing under one type and retrieving through the other? Hmmm. If that would work, that would require having an extra memory location for the union variable and the copy. If this would work, and it's worth the trouble, I could look into it.
Small bug fixes, fix number_chars/codes, handle 0-divide, bug in =.. in not handling floats right (an oddity remains, but...)
fix a register allocation bug; finally get HoldR management right, I hope.
Some cleanup in compiler; minor improvement in code generation reducing redundant loads.
Fixed compiler bug in register allocation (reporter Paulo Maura); cmpreg overwrites its 2nd arg, and HoldR incorrectly built.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style id="bidiui-paragraph-margins" type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style> I hope I fixed this by changing to int main(){return 0;} On 3/14/24 8:23 PM, Eli Schwartz wrote: <meta http-equiv="content-type" content="text/html; charset=UTF-8"> [bugs:#265] Build fails with implicit-int in a configure test probe Status: open Group: Performance problem Created: Fri Mar 15, 2024 12:23 AM UTC by Eli Schwartz...
possibly fixed a configure.in bug with --export-dynamic
Build fails with implicit-int in a configure test probe
Build fails with strict-aliasing violations.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style id="bidiui-paragraph-margins" type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style> I may have found what's wrong with this package. Please try On 3/1/24 4:36 AM, Alvin Hsu wrote: <meta http-equiv="content-type" content="text/html; charset=UTF-8"> I believe I may have found one more case. Recompilation is triggered for at least a subset of packages in $XSB_DIR/packages. I can get it to reliably reproduce...
replaced file_time with path_sysop
added notolderthan; made newerthan into a strict comparison
I believe I may have found one more case. Recompilation is triggered for at least a subset of packages in $XSB_DIR/packages. I can get it to reliably reproduce with the following shell script on a fresh build of git-origin (using [wildmatch] as an example, although brief testing of [regmatch] shows the same result): # In $XSB_DIR # Attempt to load [wildmatch] package, and see it works fine without # recompilation. bin/xsb # Simulate all timestamps being set as Guix does ($date is arbitrary; just...
Fixed bug by replacing jsonld with json-ld
More file time comparisons to change to strict.
You found another way file times are tested. OK. I've made changes to the system, as you suggested. Maybe now we've found them all? Thanks for your patience.
Hi Michael, The touch commands were meant to emulate an XSB source file having the same modtime as its compiled file. This issue is not unique to xsb_configuration.P; I just used it as an example. Guix sets all file modtimes to the UNIX epoch and installs packages in read-only directories for reproducibility purposes, so this issue should show up with any built-in recompile-able module.
Hi David, It looks like XSB still encounters the same error. The offender seems to be the use of path_sysop/3 on line 227 of consult.P in this case; I've attached a patch that swaps it out for file_strictly_older_than/2 which allows me to start the REPL without an error.
I've committed the changes. Alvin, can you try again?
Another update to change file time testing to < from <=
I see I didn't change all the places that file times were checked. I've found and changed more. I will see if it passes the testsuite, and if so, commit the changes. Stay tuned....
Why do you touch xsb configuration.p? You can see that this causes an error. Try touching a new empty file Feb 13, 2024 02:44:27 Alvin Hsu alvhsu@users.sourceforge.net: Hi Michael, Thanks for going through with this! Unfortunately, it appears that the issue is still present at commit [660f0f79b1007f2f0be5bfa4e079abaf12b4f1d9]; building without my patch results in XSB attempting to recompile for equal modtimes as it did before. I've written a shell script that reproduces this on my end with a standard...
Hi Michael, Thanks for going through with this! Unfortunately, it appears that the issue is still present at commit [660f0f79b1007f2f0be5bfa4e079abaf12b4f1d9]; building without my patch results in XSB attempting to recompile for equal modtimes as it did before. I've written a shell script that reproduces this on my end with a standard (non-Guix) build that follows "Installing XSB under UNIX" in the manual: # Example with xsb_configuration file, but similarly errors out when applied to # other files...
I see that David changed<= to <. Will use it for now unless someone complains that this breaks something Feb 8, 2024 23:27:09 Alvin Hsu alvhsu@users.sourceforge.net: Hello again, I finally got around to bringing the modtime recompilation issue up with others in the Guix community, and it seems like resolving it without a downstream patch would indeed require a change in how XSB decides when recompilation is needed. Would a build-time flag for determining this be acceptable? An environment variable...
Changed recompile timme diff between .P and .xwam to be < rather than <=
Hello again, I finally got around to bringing the modtime recompilation issue up with others in the Guix community, and it seems like resolving it without a downstream patch would indeed require a change in how XSB decides when recompilation is needed. Would a build-time flag for determining this be acceptable? An environment variable check might also work (we can wrap xsb to always have it set in this case).
ignore janus*.egg-info
ignore janus.egg-info
Fixed janusm.c for windows and added DllExport to newly used error function.
smb forgot to commit
smb forgot to commit
smb forgot to commit
builtin and C functions to speed up prolog_db lookup.
Added documentation about atom_prefi/2
Added atom prefix with behavior similar to list_prefix.
Added exportt statement for list_prefix/2.
Small change to .gitignore
Added documentation for list prefix.
Changed the name last to list_last.
Added a prefix/2.
Changed around a couple of errors.
Added extern for domain_error_vargs.
Changed a couple of existence errors to python errors.
A couple of minor updates to make janus (prolog calling python) work (mostly) on windows (with correct PYTHON_LIBRARY env var.
made loader error message clearer.
Portability fix as reported by Felix.
More work with Mcintyre unearthed the following additional issue: The predicates save_..., which are supposed to copy "sampled" facts into a new predicate "mem" and then retract the "sampled" facts, are currently implemented using the schema save_samples(M,G):- sampled(R,Sub,V), assert(M:mem(G,R,Sub,V)), retract(sampled(R,Sub,V)), fail. save_samples(_M,_G). In SWI-Prolog, the failure-driven loop executes correctly, but XSB doesn't seem to take well to backtracking over a partially retracted predicate...