[system] Repository:
ViewVC logotype

Revision 5729


Jump to revision: Previous Next
Author: gage
Date: Mon Jun 23 23:47:58 2008 UTC (5 years, 9 months ago)
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

Changed paths:

Path Details
Directorybranches/rel-2-4-dev/pg/lib/Value.pm modified , text changed

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9