| 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
|