From: Mike G. v. a. <we...@ma...> - 2008-06-24 00:05:12
|
Log Message: ----------- - [ ] pg - [ ] lib - [ ] Value - [ ] inheritance improvements The make() method now inherits all the settings of the parent object, so that flags set by the user (e.g., tolerances, periods, and so on) will be passed on as new objects are created. For example, in $x = Real(1)=>with(tolerance=>.0001); $y = sin($x); $y will also have tolerance set to .0001. This also applies to binary operations, where the result will now inherit all the values of either operand, with the left-hand operand taking precedence when they both have a flag set but to different values. This is a significant change, and there may be unforeseen side effects that I'll have to take care of as they appear. It passes my test suite, however, so I'm hoping they will be limited. - [ ] AnswerChecker.pm - [ ] allow diagonostics to work for Complex types - [ ] equivalent wrong answer message is now part of Formula->cmp - [ ] bug fixes - [ ] Complex.pm - [ ] inheritance - [ ] Context.pm - [ ] point context no longer includes vector operations - [ ] error message methods Allow conversion of error messages after the value substitution has been performed. Also provide a subroutine to do more complex conversion of error messages: Context()->{error}{convert} = sub { my $message = shift; ... manipulate message ... return $message; } - [ ] Formula.pm - [ ] 1.59 fixed memory leak. - [ ] bug fixes - [ ] Infinity.pm - [ ] bug fixes - [ ] Interval.pm - [ ] generalize input Allow interval data to be given in more forms (eg, (a,b,"(",")") in addition to ("(",a,b,")"), since that is the order that the value() method returns the data.) - [ ] bug fixes - [ ] List.pm bug fixes - [ ] Matrix.pm - [ ] inheritance - [ ] Point.pm - [ ] inheritance - [ ] Real.pm - [ ] inheritance - [ ] Set.pm - [ ] bug fixes - [ ] improved error reporting - [ ] String.pm - [ ] Union.pm - [ ] improved error reporting - [ ] Vectorpm - [ ] inheritance - [ ] ijkAnyDimension Make vectors that are creates using ijk notation remain in ijk notation when displayed. (This is easy now that objects produced by combining others inherit the parent objects' flags.) Added another context flag (ijkAnyDimension) that controls whether vectors in ijk notation will conform to whatever dimension is used by the vector they are being compared to. When set, i+2*j will equal <1,2> even though i and j are vectors in 3-space. The value of ijkAnyDimension is 1 by default. This eliminates the need for the Vector2D context. - [ ] WeBWorK - [ ] Translator.pm bug and security fixes - [ ] Parser memory leak Formula objects and Context objects contain reference loops, which prevent them from being freed properly by perl when they are no longer needed. This is a source of an important memory leak in WeBWorK. The problem has been fixed by using Scalar::Util::weaken for these recursive references, so these objects can be freed properly when they go out of scope. This should cause an improvement in the memory usage of the httpd child processes. - [ ] Context.pm point to name attribute - [ ] Differentian.pm improved differentiation of log() and abs() - [ ] bug fixes - [ ] operator // provides in line fractions in TeX form a//b is in-line - [ ] BOP-bug fixes - [ ] Context - bug fixes - [ ] Function - - [ ] numeric2.pm In the past, Formula objects included a pointer to the Context in which the object was created, but other MathObject did not. This update is the first round of updates to include the context in the other MathObjects, but more work needs to be done. - [ ] Legacy - [ ] NumberWithUnits.pm Has this been replaced??? Fixed a problem where Real's were being promoted to NumberWithReals during the numeric comparison (when units should be ignored). This error was a result of the changes made this summer. [This class should probably be redesigned to implement the overloaded operators and, in particular, handle the equality check in compare() rather than an over-ridden cmp_parse. That would make it possible to manipulate numbers-with-units via perl code in a natural way, just like all the other MathObjects.] - [ ] List - [ ] UOP --bug fixes - [ ] Applet - [ ] Fraction.pm - [ ] List.pm - [ ] Parser.pm - [ ] Units.pm - [ ] Value.pm - [ ] VectorField.pm - [ ] macros - [ ] PGchoicemacros.pl - [ ] PGinfo.pl - [ ] compoundProblem.pl - [ ] contextPiecewiseFunction.pl - [ ] parserAssignment.pl - [ ] PGstringevaluators - [ ] contextInequalities - [ ] PGbasicmacros.pl - [ ] PGfunctionevaluators.pl - [ ] AppletObjects.pl - [ ] parserFormulaUpToConstant.pl - [ ] parserRadioButtons.pl - [ ] dangerousMacros.pl Fix loadMacros() and alias() so that they find auxiliary files even when the .pg file is in templates/tmpEdit. The Library Browser has a bad interaction with browser image caches if it displays two .pg files with fixed .gif files that have the same name (this happens in several of the setMV* files, for example setMVlevelsets/levels-1/levels-1.pg and setMVlevelsets/levels-2/levels-2.pg). This fixes the problem by including a portion of the file name in the name of the gif file to (help) make it unique. - [ ] extraAnswerEvaluators.pl Modifications to pass answer label for previous answer. This still does not provide correct functionality because the previous answer is an equation of the form lhs = rhs while the form being passed to fun_cmp is lhs - rhs - [ ] MultiAnswer.pl (renamed from MultiPart) -- point to features - [ ] contextCurrency.pl -- new - [ ] PGnumericevaluators.pl -- new - [ ] PGmiscevaluators.pl -- new - [ ] PGtextevaluators.pl -- new - [ ] contextLimitedPolynomial.pl -- point to features - [ ] PGgraphmacros.pl Changed plot_functions so that it uses the Formula MathObject to parse the the function in $f1 = qq! x^2 - 3*x + 45 for x in [0, 45) using color:red and weight:2! instead of using the built in perl parser. This allows things such as $formula=Formula("|x|"); $f1 = qq! $formula for x in [0, 45) using color:red and weight:2! to be evaluated. There should be no apparent change to old problems since the Formula MathObject parser handles a superset of the builtin perl parser syntax. -- some conflicts with old matrix types. - [ ] displayMacros.pl --- remove???? -- only used in webwork 1.9 - [ ] problemPreserveAnswers.pl This is a temporary hack that allows sticky answers to preserve all the characters the student typed. PGbasicmacros.pl currently removes several characters, including $, which is needed for monitary answers. Eventually, PGbasicmacros.pl should be fixed, but for now this will work, and it should not cause trouble after PGbasicmacros.pl is fixed. In the end, this file can be emptied, then it should issue a warning message, and finally it can be removed. The hack is to copy the inputs_ref and modify the answers so that the PGbasicmacros.pl macros will not remove those characters (the key is to convert them to HTML entities instead). Then after the problem has been processed, we put the original answers back so that the answer checkers will work properly on them. This is accomplished by replacing ENDDOCUMENT with a new routine that first puts back the answers and then calls the old ENDDOCUMENT. This has the unwanted side effect of putting error messages into the error log, but I can't seem to work around that. - [ ] problemRandomize.pl -- new Had a typo: answer_submitted should have been answers_submitted, but it turns out that this is ALWAYS set, even when answers AREN'T submitted, so I had to look for the individual buttons instead. This might break if someone adds more buttons, but it works for now. - [ ] answerHints.pl -- new Use alternative method of testing if whether two objects are the same (without causing them to stringify first). [Technically, this should call Value::address, the renamed version of Value::Ref, but I didn't want the AIM participants to have to update to the latests version of MathObjects to be able to use this.] Revision 1.1 / (view) - annotate - [select for diffs] , Wed Aug 15 02:58:26 2007 UTC (10 months, 1 week ago) by dpvc Branch: MAIN This file implements a postfilter for AnswerEvaluators that allows you to specify answer hint messages to use when specific answers or sets of answers are given by the student. You can use specific constants or a perl subroutine to determine which answers to respond to. You can also specify a score to use when the answers are triggered, and whether to replace existing messages or not. See the comments in the file for more details. - [ ] answerVariableList.pl -- point to features - [ ] contextLimitedPowers.pl -- point to features Updated to allow more flexibility in controlling the range of powers to be allowed (as per John Jones' suggestion). Also changed the way that you request the changes: you now make a function call rather than modify the operators list directly yourself. (The old way is still provided, however, for backward compatibility.) See the comments in the file for more details. - [ ] contextScientificNotation -- new Use new feature to make Real() create ScientificNotation objects. -- fix e vs. E used by perl-- safe compartment troubles? - [ ] contextString.pl - [ ] bug fixes - [ ] parserAutoStrings.pl -- new - [ ] parserFunction.pl -- point to features - [ ] parserMultipart.pl -- remove???? - [ ] doc Tags: ---- rel-2-4-dev Modified Files: -------------- pg/lib: Value.pm Revision Data ------------- Index: Value.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value.pm,v retrieving revision 1.53.2.2 retrieving revision 1.53.2.3 diff -Llib/Value.pm -Llib/Value.pm -u -r1.53.2.2 -r1.53.2.3 --- lib/Value.pm +++ lib/Value.pm @@ -16,6 +16,7 @@ like equality are "fuzzy", meaning that two items are equal when they are "close enough" (by tolerances that are set in the current Context). + =cut |