From: Marek K. <mar...@sa...> - 2017-02-13 10:02:04
|
Dear Arthur, Your recent commits (3894 - 3897) solved two of the CSL problems I reported last week: 1. tracing segfault 2. catastrophic error in GCD Thank you very much for your effort! Marek Kosta On 08.02.2017 12:52, Arthur Norman wrote: > I am busy right now re-working the trace mechanism in a manner where the > implementation will be internally much tidier and so in a way that I hope and > expect to make it more reliable. The current effect is fall-out from the > transition to use of C++ catch and throw and to using class destructors to reset > stack pointers and restore fluid variable (etc) when functions are exited. It > makes more sense to me that I move forward on this and complete the new and > nicer implementation rather than delay that by patching something that I believe > only has days to remain in place! It remain possible for people to use a > slightly earlier revision of CSL when this is a bad disruption to them or use > PSL until I have things fixed. Which - as I say - I am right in the middle of! > > Arthur > > On Wed, 8 Feb 2017, Marek Kosta wrote: > >> Dear all, >> >> tracing in CSL produces segfaults. Consider the following input: >> >> --- BEGIN --- >> rlset r$ >> on ofsfvs$ >> tr vsdb_expandNode; >> rlqe ex({k64, k65}, k43*k64**2 + 2*k43*k64*k65 + k43*k65**2 + k64**2*k65 + >> k64*k65**2 = 0); >> --- END --- >> >> running this I obtain: >> >> mkosta@alfred:/local/var/tmp/mkosta/reduce-algebra [524] ./bin/redcsl >> Reduce (Free CSL version, revision 3890), 08-Feb-17 ... >> >> 1: rlset r$ >> >> 2: on ofsfvs$ >> >> 3: tr vsdb_expandNode; >> >> (vsdb_expandnode) >> >> 4: rlqe ex({k64, k65}, k43*k64**2 + 2*k43*k64*k65 + k43*k65**2 + k64**2*k65 + >> k64*k65**2 = 0); >> Entering vsdb_expandnode (2 args) >> Arg1: %(vsdb (k65 k64) #1=(or (equal (((k64 . 1) . 1) ((k65 . 1) . 1)) nil) ( >> equal (((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1)) ((k64 . 1) ((k65 . 1) . 1))) >> nil)) nil (k64 k65) nil nil nil nil (vsht ((#1# #1#))) nil) >> Arg2: (vsnd nil nil (k65 k64) (or (equal (((k64 . 1) . 1) ((k65 . 1) . 1)) nil) >> (equal (((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1)) ((k64 . 1) ((k65 . 1) . 1))) >> nil)) nil) >> = (nil) >> Entering vsdb_expandnode (2 args) >> Arg1: [vsdb (k65 k64) (or (equal (((k64 . 1) . 1) ((k65 . 1) . 1)) nil) (equal ( >> ((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1)) ((k64 . 1) ((k65 . 1) . 1))) nil)) >> nil (k64 k65) nil nil nil nil (vsht ((true true) ((or (equal (((k64 . 1) . 1) (( >> k65 . 1) . 1)) nil) (equal (((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1)) ((k64 . >> 1) ((k65 . 1) . 1))) nil)) (or (equal (((k64 . 1) . 1) ((k65 . 1) . 1)) nil) ( >> equal (((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1)) ((k64 . 1) ((k65 . 1) . 1))) >> nil))))) nil] >> Arg2: (vsnd nil (vsts k65 (vstp (1) nil nil (vspr (((k65 . 1) . 1) ((k64 . 1) . >> 1)) k65 ((1 . 1)) true))) (k64) true (vsnd nil nil (k65 k64) (or (equal (((k64 . >> 1) . 1) ((k65 . 1) . 1)) nil) (equal (((k43 . 1) ((k64 . 1) . 1) ((k65 . 1) . 1) >> ) ((k64 . 1) ((k65 . 1) . 1))) nil)) nil)) >> Segmentation fault >> >> >> When commenting the "tr" command everything runs smoothly. The PSL >> version can run with "tr" and also without "tr". As usual I tested >> this on two independent Linux systems. >> >> Best, >> Marek Kosta >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> _______________________________________________ >> Reduce-algebra-developers mailing list >> Red...@li... >> https://lists.sourceforge.net/lists/listinfo/reduce-algebra-developers >> |