Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv7366
Modified Files:
Tag: develop_2_1
Aim.mpl AutoConf.mpl Class.mpl ConfigFields.mpl HTML.mpl
ManualConfig.dist PackageList SafeParse.mpl
Removed Files:
Tag: develop_2_1
LaTeX.mpl
Log Message:
Many changes. See posting to developers' list.
Index: Aim.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v
retrieving revision 1.1.1.1.2.3
retrieving revision 1.1.1.1.2.4
diff -C2 -d -r1.1.1.1.2.3 -r1.1.1.1.2.4
*** Aim.mpl 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.3
--- Aim.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.4
***************
*** 52,56 ****
proc()
local f,param,require,command,commandprocedure,starttime,endtime,
! subjname,subj,id,password,auth,html,extranames,now;
global Config,DefaultZone,`aim/AssignedNames`,AimCache,AimImageCache;
--- 52,56 ----
proc()
local f,param,require,command,commandprocedure,starttime,endtime,
! subjname,subj,id,password,auth,html,extranames,now;
global Config,DefaultZone,`aim/AssignedNames`,AimCache,AimImageCache;
***************
*** 347,354 ****
`HTML/ToString`(
`HTML/Subs`("subjecttable" = subjecttable,
! "idnote" = DefaultZone['IDNote'],
! "emaillink" = DefaultZone['AdminEmailLink'],
"servleturl" = Config['ServletURL'],
! copy(`aim/SendReminder/Template/NoID`))));
fi;
--- 347,354 ----
`HTML/ToString`(
`HTML/Subs`("subjecttable" = subjecttable,
! "idnote" = DefaultZone['IDNote'],
! "emaillink" = DefaultZone['AdminEmailLink'],
"servleturl" = Config['ServletURL'],
! copy(`aim/SendReminder/Template/NoID`))));
fi;
***************
*** 363,370 ****
`HTML/ToString`(
`HTML/Subs`("subjecttable" = subjecttable,
! "idnote" = DefaultZone['IDNote'],
! "emaillink" = subj['AdminEmailLink'],
"servleturl" = Config['ServletURL'],
! copy(`aim/SendReminder/Template/Unregistered`))));
fi;
--- 363,370 ----
`HTML/ToString`(
`HTML/Subs`("subjecttable" = subjecttable,
! "idnote" = DefaultZone['IDNote'],
! "emaillink" = subj['AdminEmailLink'],
"servleturl" = Config['ServletURL'],
! copy(`aim/SendReminder/Template/Unregistered`))));
fi;
***************
*** 480,484 ****
fi;
! RETURN(subj['HomePage',accesslevel,"StudentID" = id,"Password" = password]);
end
):
--- 480,487 ----
fi;
! ### GWD
! # DIST RETURN(subj['HomePage',accesslevel,"StudentID" = id,"Password" = password]);
! RETURN(subj['HomePageWithMarks',accesslevel,id,"StudentID" = id,"Password" = password]);
! ### END GWD
end
):
***************
*** 497,503 ****
param::table)
local quizcontext,isguest,command,mode,notstrict,showsol,showmark,
! focuslabel,oldfocuslabel;
!
command := param["Command"];
quizcontext := `new/aim/Quiz/Context`();
quizcontext['StartTime'] := `Date/CurrentDate`();
--- 500,510 ----
param::table)
local quizcontext,isguest,command,mode,notstrict,showsol,showmark,
! # KM
! # DIST focuslabel,oldfocuslabel;
! focuslabel,oldfocuslabel,history,historyfile,seed,seedfile,
! solnRevealed;
! # END KM
command := param["Command"];
+
quizcontext := `new/aim/Quiz/Context`();
quizcontext['StartTime'] := `Date/CurrentDate`();
***************
*** 509,512 ****
--- 516,535 ----
quizcontext['Student'] := eval(subj['GetStudent',id]);
quizcontext['StudentID'] := id;
+ # KM
+ # check if the student has previously shown the solutions on
+ # this quiz, show them again until he requests a new version
+ seedfile := cat(quiz['RootDir'],"/records/",id,"/seed.m");
+ solnRevealed := false;
+ if `OS/FileExists`(seedfile) and not command="NewQuizVersion" then
+ seed := AimCache['Load',seedfile];
+ historyfile :=
+ sprintf("%s/records/%s/%A.m",quiz['RootDir'],id,seed);
+ try
+ history := eval(AimCache['Load',historyfile]);
+ solnRevealed := evalb(history['SolutionsRevealed'] = true);
+ catch :
+ end:
+ fi:
+ # END KM
else
quizcontext['Student'] := NULL;
***************
*** 527,533 ****
quizcontext['Focused'] :=
evalb(
! param["Focused"] = "true" and
! command <> "NewQuizVersion" and
! command <> "ShowQuizSolutions"
);
--- 550,559 ----
quizcontext['Focused'] :=
evalb(
! # KM
! # DIST param["Focused"] = "true" and
! # DIST command <> "NewQuizVersion" and
! # DIST command <> "ShowQuizSolutions"
! param["Focused"] = "true"
! # END KM
);
***************
*** 536,539 ****
--- 562,570 ----
focuslabel := "";
fi;
+ # KM
+ if command = "NewQuizVersion" then
+ focuslabel := "1";
+ fi:
+ # END KM
quizcontext['FocusLabel'] := focuslabel;
***************
*** 544,547 ****
--- 575,580 ----
quizcontext['OldFocusLabel'] := oldfocuslabel;
+ ####################
+
if command = "MoveQuizFocus" then
quizcontext['ProcessAll'] := false;
***************
*** 549,553 ****
quizcontext['ProcessOldFocus'] := true;
elif (command = "MarkQuiz" or command = "ValidateQuiz") and
! quizcontext['Focused'] then
quizcontext['ProcessAll'] := false;
quizcontext['ProcessFocus'] := true;
--- 582,586 ----
quizcontext['ProcessOldFocus'] := true;
elif (command = "MarkQuiz" or command = "ValidateQuiz") and
! quizcontext['Focused'] then
quizcontext['ProcessAll'] := false;
quizcontext['ProcessFocus'] := true;
***************
*** 564,569 ****
mode := quiz['Mode'];
notstrict := evalb(mode <> "strict");
! showsol := evalb(command = "ShowQuizSolutions");
!
if quizcontext['AfterDueDate'] then
# If a guest visits after the due date, we just show the questions
--- 597,604 ----
mode := quiz['Mode'];
notstrict := evalb(mode <> "strict");
! # KM
! # DIST showsol := evalb(command = "ShowQuizSolutions");
! showsol := evalb((command = "ShowQuizSolutions") or solnRevealed);
! # END KM
if quizcontext['AfterDueDate'] then
# If a guest visits after the due date, we just show the questions
***************
*** 608,613 ****
quizcontext['ReportSeed'] := isguest;
quizcontext['RecordSeed'] :=
! evalb(not(isguest) and (command = "NewQuizVersion"));
! quizcontext['DeleteSeed'] := showsol;
###########
quizcontext['InviteAnswers'] := not(showsol);
--- 643,654 ----
quizcontext['ReportSeed'] := isguest;
quizcontext['RecordSeed'] :=
! # KM
! # DIST quizcontext['DeleteSeed'] := showsol;
! # TODO: Check if this still works for guests...
! # DIST evalb(not(isguest) and (command = "NewQuizVersion"));
! evalb(not isguest);
! quizcontext['DeleteSeed'] :=
! evalb(command = "NewQuizVersion");
! # END KM
###########
quizcontext['InviteAnswers'] := not(showsol);
***************
*** 616,625 ****
quizcontext['InviteSolutions'] :=
evalb(mode = "practice" and not(showsol));
! quizcontext['InviteNewVersion'] :=
! evalb(mode = "practice");
quizcontext['InviteNewVersion'] := showsol;
quizcontext['InviteNewQuiz'] := true;
###########
! if command = "ShowQuizPage" then
quizcontext['AcceptAnswers'] := false;
quizcontext['UseRecordedAnswers'] := not(isguest);
--- 657,675 ----
quizcontext['InviteSolutions'] :=
evalb(mode = "practice" and not(showsol));
! # KM
! # This line has no effect
! # DIST quizcontext['InviteNewVersion'] :=
! # DIST evalb(mode = "practice");
! # END KM
quizcontext['InviteNewVersion'] := showsol;
quizcontext['InviteNewQuiz'] := true;
###########
! # KM
! if command = "NewQuizVersion" then
! quizcontext['AcceptAnswers'] := false;
! quizcontext['UseRecordedAnswers'] := false;
! elif solnRevealed or command = "ShowQuizPage" then
! # DIST if command = "ShowQuizPage" then
! # END KM
quizcontext['AcceptAnswers'] := false;
quizcontext['UseRecordedAnswers'] := not(isguest);
***************
*** 686,689 ****
--- 736,750 ----
quizcontext :=
eval(`aim/MakeQuizContext`(subj,quiz,id,password,param));
+
+ # KM
+ # had to move these lines from the bottom of the proc
+ # to here in order to accomodate SolutionsRevealed modes
+ if quizcontext['DeleteSeed'] then
+ traperror(
+ `OS/Rename`(sprintf("%s/records/%s/seed.m",quiz['RootDir'],id),
+ sprintf("%s/records/%s/oldseed.m",quiz['RootDir'],id)));
+ fi;
+ # END KM
+
# find the seed to use for randomization
if quizcontext['UseRecordedSeed'] then
***************
*** 761,764 ****
--- 822,829 ----
od;
fi;
+ # KM
+ elif not quizcontext['AcceptAnswers'] then
+ rawtable := table([]);
+ # END KM
else
rawtable := eval(param);
***************
*** 772,775 ****
--- 837,845 ----
if quizcontext['SaveHistory'] then
+ # KM
+ if command = "ShowQuizSolutions" then
+ eval(quizinstance['History'])['SolutionsRevealed'] := true;
+ fi:
+ # END KM
historyfile :=
sprintf("%s/records/%s/%A.m",quiz['RootDir'],id,seed);
***************
*** 777,785 ****
fi;
! if quizcontext['DeleteSeed'] then
! traperror(
! `OS/Rename`(sprintf("%s/records/%s/seed.m",quiz['RootDir'],id),
! sprintf("%s/records/%s/oldseed.m",quiz['RootDir'],id)));
! fi;
RETURN(quizinstance['Show',quizcontext]);
end
--- 847,857 ----
fi;
! # KM
! # DIST if quizcontext['DeleteSeed'] then
! # DIST traperror(
! # DIST `OS/Rename`(sprintf("%s/records/%s/seed.m",quiz['RootDir'],id),
! # DIST sprintf("%s/records/%s/oldseed.m",quiz['RootDir'],id)));
! # DIST fi;
! # END KM
RETURN(quizinstance['Show',quizcontext]);
end
Index: AutoConf.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConf.mpl,v
retrieving revision 1.1.1.1.2.8
retrieving revision 1.1.1.1.2.9
diff -C2 -d -r1.1.1.1.2.8 -r1.1.1.1.2.9
*** AutoConf.mpl 23 Aug 2003 14:14:35 -0000 1.1.1.1.2.8
--- AutoConf.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.9
***************
*** 48,52 ****
setconfig :=
! proc(k::name,v::{integer,string,boolean})
# Set Config[k] to v unless Config[k] is already defined and
# has the same type as v or is NULL.
--- 48,55 ----
setconfig :=
! # KM
! # DIST proc(k::name,v::{integer,string,boolean})
! proc(k::name,v::{numeric,string,boolean})
! # END KM
# Set Config[k] to v unless Config[k] is already defined and
# has the same type as v or is NULL.
***************
*** 454,457 ****
--- 457,492 ----
fi:
+ # KM
+ # dist p("\n"):
+ ######################################################################
+
+ # Look for the Kill Program
+
+ if os_os = "Linux" then
+ Config['KillProgram'] :="/bin/kill";
+ os_osname(look_for_prog(
+ "Kill Process Utility",
+ "Conf" = 'KillProgram',
+ "Path" = "kill",
+ "Def" = "/bin/kill",
+ "Def" = "/usr/bin/kill",
+ "Def" = "/usr/local/bin/kill",
+ "Check" = ["","kill"]
+ )):
+ Config['KillProgramArg'] :="-9";
+ else
+ Config['KillProgram'] :=
+ os_osname(look_for_prog(
+ "Kill Process Utility",
+ "Conf" = 'KillProgram',
+ "Path" = "Process.exe",
+ "Def" = "C:\\AIM\\Process",
+ "Def" = "C:\\Process",
+ "Check" = ["-v","beyondlogic.org"]
+ )):
+ setconfig('KillProgramArg',"-k");
+ fi:
+
+ # END KM
######################################################################
***************
*** 743,746 ****
--- 778,792 ----
)):
fi:
+
+ # KM
+
+ setconfig('AliceHistorySize',20):
+ setconfig('MaxMapleProcesses',8):
+ setconfig('StudentTimeLimit',60000): # one minute
+ setconfig('AdminTimeLimit',1200000): # twenty minutes
+
+ setconfig('TimeLimit',2.0): # two seconds
+
+ # END KM
p("\n"):
Index: Class.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Class.mpl,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3
*** Class.mpl 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.2
--- Class.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.3
***************
*** 160,166 ****
proc(class,x)
local xclassname,xclass;
!
! if not type(x,table) then RETURN(false); fi;
!
xclassname := op(1,eval(x));
if xclassname = NULL then RETURN(false); fi;
--- 160,167 ----
proc(class,x)
local xclassname,xclass;
! # KM
! # DIST if not type(x,table) then RETURN(false); fi;
! if not type(eval(x),table) then RETURN(false); fi;
! # END KM
xclassname := op(1,eval(x));
if xclassname = NULL then RETURN(false); fi;
***************
*** 430,444 ****
proc(classname::name)
global CLASS,CLASSNAME,
! `Package/Name`,`Package/SaveClasses`,`Package/SaveNames/Hidden`,
`Package/Documentation`;
local c,indexfunction,typefunction,
! constructor,consproc,consdoc,x,
! fieldname,fieldtype,fielddefault,realtype,
typespecified,defaultspecified,
! methodname,fullmethodname,methodtype,
methodbody,methodsig,methoddoc,params,
! parent,parenttypes,field,method,
! incclass,indfield,indfields,indmethod,indmethods,
! classdoc;
if (`Package/ReportAssignment` = true) then
--- 431,445 ----
proc(classname::name)
global CLASS,CLASSNAME,
! `Package/Name`,`Package/SaveClasses`,`Package/SaveNames/Hidden`,
`Package/Documentation`;
local c,indexfunction,typefunction,
! constructor,consproc,consdoc,x,
! fieldname,fieldtype,fielddefault,realtype,
typespecified,defaultspecified,
! methodname,fullmethodname,methodtype,
methodbody,methodsig,methoddoc,params,
! parent,parenttypes,field,method,
! incclass,indfield,indfields,indmethod,indmethods,
! classdoc;
if (`Package/ReportAssignment` = true) then
***************
*** 450,468 ****
c := table(['Name' = classname,
'Package' = "",
! 'Constructor' = proc(this) end,
! 'Fields' = {},
! 'FieldType' = table(),
! 'FieldDefault' = table(),
! 'StaticFields' = {},
! 'StaticFieldValue' = table(),
! 'IndirectFields' = {},
! 'FieldIndirectionTable' = table(),
! 'IndirectMethods' = {},
! 'MethodIndirectionTable' = table(),
! 'Methods' = {},
'MethodType' = table(),
'MethodSignature' = table(),
! 'MethodTable' = table(),
! 'Parents' = {}]);
if assigned(`Package/Name`) then
--- 451,469 ----
c := table(['Name' = classname,
'Package' = "",
! 'Constructor' = proc(this) end,
! 'Fields' = {},
! 'FieldType' = table(),
! 'FieldDefault' = table(),
! 'StaticFields' = {},
! 'StaticFieldValue' = table(),
! 'IndirectFields' = {},
! 'FieldIndirectionTable' = table(),
! 'IndirectMethods' = {},
! 'MethodIndirectionTable' = table(),
! 'Methods' = {},
'MethodType' = table(),
'MethodSignature' = table(),
! 'MethodTable' = table(),
! 'Parents' = {}]);
if assigned(`Package/Name`) then
***************
*** 493,498 ****
ERROR(
sprintf(
! __("Extends clause with no parent class in declaration of class %a"),
! classname));
fi;
--- 494,499 ----
ERROR(
sprintf(
! __("Extends clause with no parent class in declaration of class %a"),
! classname));
fi;
***************
*** 521,525 ****
c['IndirectFields'] := c['IndirectFields'] union
! parent['IndirectFields'];
for indfield in parent['IndirectFields'] do
--- 522,526 ----
c['IndirectFields'] := c['IndirectFields'] union
! parent['IndirectFields'];
for indfield in parent['IndirectFields'] do
***************
*** 539,543 ****
c['IndirectMethods'] := c['IndirectMethods'] union
! parent['IndirectMethods'];
for indmethod in parent['IndirectMethods'] do
--- 540,544 ----
c['IndirectMethods'] := c['IndirectMethods'] union
! parent['IndirectMethods'];
for indmethod in parent['IndirectMethods'] do
***************
*** 557,562 ****
ERROR(
sprintf(
! __("Empty constructor clause in declaration of class %a"),
! classname));
fi;
--- 558,563 ----
ERROR(
sprintf(
! __("Empty constructor clause in declaration of class %a"),
! classname));
fi;
***************
*** 568,573 ****
ERROR(
sprintf(
! __("In declaration of class %s: constructor documentation is not a string."),
! classname));
fi;
consdoc := `Package/ConvertAt`(x[2]);
--- 569,574 ----
ERROR(
sprintf(
! __("In declaration of class %s: constructor documentation is not a string."),
! classname));
fi;
consdoc := `Package/ConvertAt`(x[2]);
***************
*** 577,582 ****
ERROR(
sprintf(
! __("In declaration of class %s: constructor is not a procedure."),
! classname));
fi;
--- 578,583 ----
ERROR(
sprintf(
! __("In declaration of class %s: constructor is not a procedure."),
! classname));
fi;
***************
*** 585,590 ****
consdoc := sprintf("<b>Constructor:</b> `new/%A`(",classname),
! op(map((p) -> (`Package/ParamToHTML`(p),","),params)),
! ")\n<p>\n",consdoc,"\n</p>\n";
c['Constructor'] := eval(consproc);
--- 586,591 ----
consdoc := sprintf("<b>Constructor:</b> `new/%A`(",classname),
! op(map((p) -> (`Package/ParamToHTML`(p),","),params)),
! ")\n<p>\n",consdoc,"\n</p>\n";
c['Constructor'] := eval(consproc);
***************
*** 594,604 ****
##########################
elif (x[1] = 'Field' or
! x[1] = 'IncludedField' or
! x[1] = 'StaticField') then
if nops(x) = 1 then
ERROR(
sprintf(
! __("Empty field specification in declaration of class %a"),
! classname));
fi;
--- 595,605 ----
##########################
elif (x[1] = 'Field' or
! x[1] = 'IncludedField' or
! x[1] = 'StaticField') then
if nops(x) = 1 then
ERROR(
sprintf(
! __("Empty field specification in declaration of class %a"),
! classname));
fi;
***************
*** 634,638 ****
ERROR(
sprintf(__("In declaration of class %a: field name %a is not a symbol."),
! classname,fieldname));
fi;
--- 635,639 ----
ERROR(
sprintf(__("In declaration of class %a: field name %a is not a symbol."),
! classname,fieldname));
fi;
***************
*** 640,651 ****
ERROR(
sprintf(__("In declaration of class %a: type specification %a for field %a is invalid."),
! classname,fieldtype,fieldname));
fi;
if nops([fielddefault]) > 1 and
! fieldtype <> anything then
ERROR(
sprintf(__("In declaration of class %a: default value for field %a is an expression sequence"),
! classname,fieldname))
fi;
--- 641,652 ----
ERROR(
sprintf(__("In declaration of class %a: type specification %a for field %a is invalid."),
! classname,fieldtype,fieldname));
fi;
if nops([fielddefault]) > 1 and
! fieldtype <> anything then
ERROR(
sprintf(__("In declaration of class %a: default value for field %a is an expression sequence"),
! classname,fieldname))
fi;
***************
*** 653,657 ****
ERROR(
sprintf(__("In declaration of class %a: default value %a for field %a does not have type %a"),
! classname,fielddefault,fieldname,fieldtype))
fi;
--- 654,658 ----
ERROR(
sprintf(__("In declaration of class %a: default value %a for field %a does not have type %a"),
! classname,fielddefault,fieldname,fieldtype))
fi;
***************
*** 688,700 ****
if type(x[3],string) then
classdoc :=
! classdoc,
! "<p>\n",
! `Package/ConvertAt`(x[3]),
! "\n</p>\n";
else
ERROR(
! sprintf(
! __("In declaration of class %s: documentation for field %a is not a string: %a"),
! classname,fieldname,x[3]));
fi;
fi;
--- 689,701 ----
if type(x[3],string) then
classdoc :=
! classdoc,
! "<p>\n",
! `Package/ConvertAt`(x[3]),
! "\n</p>\n";
else
ERROR(
! sprintf(
! __("In declaration of class %s: documentation for field %a is not a string: %a"),
! classname,fieldname,x[3]));
fi;
fi;
***************
*** 704,715 ****
incclass := eval(cat(`class/`,fieldtype));
indfields :=
! incclass['Fields'] union
! incclass['StaticFields'] union
! incclass['IndirectFields'];
c['IndirectFields'] := c['IndirectFields'] union indfields;
for indfield in indfields do
! c['FieldIndirectionTable'][indfield] := fieldname;
! c['FieldType'][indfield] := incclass['FieldType'][indfield];
od;
--- 705,716 ----
incclass := eval(cat(`class/`,fieldtype));
indfields :=
! incclass['Fields'] union
! incclass['StaticFields'] union
! incclass['IndirectFields'];
c['IndirectFields'] := c['IndirectFields'] union indfields;
for indfield in indfields do
! c['FieldIndirectionTable'][indfield] := fieldname;
! c['FieldType'][indfield] := incclass['FieldType'][indfield];
od;
***************
*** 717,721 ****
c['IndirectMethods'] := c['IndirectMethods'] union indmethods;
for indmethod in indmethods do
! c['MethodIndirectionTable'][indmethod] := fieldname;
od;
fi;
--- 718,722 ----
c['IndirectMethods'] := c['IndirectMethods'] union indmethods;
for indmethod in indmethods do
! c['MethodIndirectionTable'][indmethod] := fieldname;
od;
fi;
***************
*** 726,732 ****
if nops(x) = 1 then
ERROR(
! sprintf(
! __("Empty method specification in declaration of class %a"),
! classname));
fi;
--- 727,733 ----
if nops(x) = 1 then
ERROR(
! sprintf(
! __("Empty method specification in declaration of class %a"),
! classname));
fi;
***************
*** 741,746 ****
if not(type(methodname,symbol)) then
ERROR(
! sprintf(__("In declaration of class %a: method name %a is not a symbol."),
! classname,methodname));
fi;
--- 742,747 ----
if not(type(methodname,symbol)) then
ERROR(
! sprintf(__("In declaration of class %a: method name %a is not a symbol."),
! classname,methodname));
fi;
***************
*** 751,758 ****
methodbody := x[4];
if not(type(methodbody,procedure)) then
! ERROR(
! sprintf(
! __("In declaration of class %a: body of method %a is not a procedure"),
! classname,methodname));
fi;
fullmethodname :=
--- 752,759 ----
methodbody := x[4];
if not(type(methodbody,procedure)) then
! ERROR(
! sprintf(
! __("In declaration of class %a: body of method %a is not a procedure"),
! classname,methodname));
fi;
fullmethodname :=
***************
*** 763,769 ****
else
ERROR(
! sprintf(
! __("In declaration of class %a: method %a has no body."),
! classname,methodname));
fi;
--- 764,770 ----
else
ERROR(
! sprintf(
! __("In declaration of class %a: method %a has no body."),
! classname,methodname));
fi;
***************
*** 781,785 ****
methoddoc := sprintf("<font color='maroon'>%a</font>(",methodname);
methoddoc :=
! methoddoc, op(map((p) -> (`Package/ParamToHTML`(p),","),params));
methoddoc := cat(methoddoc[1..-2],")");
fi;
--- 782,786 ----
methoddoc := sprintf("<font color='maroon'>%a</font>(",methodname);
methoddoc :=
! methoddoc, op(map((p) -> (`Package/ParamToHTML`(p),","),params));
methoddoc := cat(methoddoc[1..-2],")");
fi;
***************
*** 787,807 ****
if type(x[2],`::`) then
methoddoc :=
! cat(methoddoc,"::",`Package/TypeToHTML`(methodtype));
fi;
if type(x[3],string) then
if x[3] <> "" then
! methoddoc :=
! cat(methoddoc,"\n<p>\n",`Package/ConvertAt`(x[3]),"\n</p>\n");
fi;
else
ERROR(
! sprintf(
! __("In declaration of class %s: documentation for method %a is not a string: %a"),
! classname,methodname,x[3]));
fi;
classdoc :=
classdoc,
! "<b>Method:</b> ",methoddoc,"<br/>\n";
##########################
--- 788,808 ----
if type(x[2],`::`) then
methoddoc :=
! cat(methoddoc,"::",`Package/TypeToHTML`(methodtype));
fi;
if type(x[3],string) then
if x[3] <> "" then
! methoddoc :=
! cat(methoddoc,"\n<p>\n",`Package/ConvertAt`(x[3]),"\n</p>\n");
fi;
else
ERROR(
! sprintf(
! __("In declaration of class %s: documentation for method %a is not a string: %a"),
! classname,methodname,x[3]));
fi;
classdoc :=
classdoc,
! "<b>Method:</b> ",methoddoc,"<br/>\n";
##########################
***************
*** 911,915 ****
RETURN(
cat(prefix,"EXPRSEQ\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen))))
fi;
--- 912,916 ----
RETURN(
cat(prefix,"EXPRSEQ\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen))))
fi;
***************
*** 922,927 ****
RETURN(
cat(prefix,"[\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen)),
! prefix,"]\n"));
fi;
elif type(x,set) then
--- 923,928 ----
RETURN(
cat(prefix,"[\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen)),
! prefix,"]\n"));
fi;
elif type(x,set) then
***************
*** 931,936 ****
RETURN(
cat(prefix,"{\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen)),
! prefix,"}\n"));
fi;
elif `Class/IsObject`(x) then
--- 932,937 ----
RETURN(
cat(prefix,"{\n",
! op(map(`Class/ToString0`,x,level + 1,maxdepth,stringlen)),
! prefix,"}\n"));
fi;
elif `Class/IsObject`(x) then
***************
*** 942,946 ****
for f in xclass['Fields'] do
s := sprintf("%s%s %A =\n%s",s,prefix,f,
! `Class/ToString1`([eval(x[f])],
level + 2,maxdepth,stringlen));
od;
--- 943,947 ----
for f in xclass['Fields'] do
s := sprintf("%s%s %A =\n%s",s,prefix,f,
! `Class/ToString1`([eval(x[f])],
level + 2,maxdepth,stringlen));
od;
***************
*** 954,958 ****
for f in indices(x) do
s := sprintf("%s%s %A =\n%s",s,prefix,f,
! `Class/ToString1`([eval(x[op(f)])],
level + 2,maxdepth,stringlen));
od;
--- 955,959 ----
for f in indices(x) do
s := sprintf("%s%s %A =\n%s",s,prefix,f,
! `Class/ToString1`([eval(x[op(f)])],
level + 2,maxdepth,stringlen));
od;
Index: ConfigFields.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ConfigFields.mpl,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3
*** ConfigFields.mpl 9 Jul 2003 09:34:18 -0000 1.1.1.1.2.2
--- ConfigFields.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.3
***************
*** 22,28 ****
integer,"
The major version number of Maple under which AIM is running. The
! known allowed values are 5, 6, 7 or 8 (though some things are undoubtedly
broken for Maple 5)."],
['ServletURL',
string,"
--- 22,34 ----
integer,"
The major version number of Maple under which AIM is running. The
! known allowed values are 5, 6, 7, 8, or 9 (though some things are undoubtedly
broken for Maple 5)."],
+ # KM
+ ['TimeLimit',
+ positive,"
+ The system default for time limits on various computations."],
+ # END KM
+
['ServletURL',
string,"
***************
*** 78,81 ****
--- 84,88 ----
is turned off."],
+
['TempDir',
string,"
***************
*** 133,136 ****
--- 140,175 ----
disallowed. The recommended location is /usr/bin/tth (under Linux) or
c:\\TtH\\tth (under Windows)."],
+
+ # KM
+ ['KillProgram',
+ string,"
+ The absolute path to the kill program (used to kill Maple processes on this OS).
+ Under Windows, the path should use backslashes as separators, and
+ should not contain any spaces; in particular, 'Program Files' is
+ disallowed."],
+
+ ['KillProgramArg',
+ string,"
+ The argument for the kill program to tell it to kill the process whose PID
+ Is the final arg. Typically this is -k for the Process.exe program in Windows, and
+ -9 for the kill command in UNIX."],
+
+ ['AliceHistorySize',
+ posint,"
+ The number of Recent Requests to show on the Alice Monitor page."],
+
+ ['StudentTimeLimit',
+ nonnegint,"
+ The time limit on non-administrative commands in milliseconds."],
+
+ ['AdminTimeLimit',
+ nonnegint,"
+ The time limit on administrative commands in milliseconds."],
+
+ ['MaxMapleProcesses',
+ posint,"
+ The maximum number of Maple processes that can be running at one time."],
+
+ # END KM
['TempDir',
Index: HTML.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/HTML.mpl,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3
*** HTML.mpl 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.2
--- HTML.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.3
***************
*** 977,980 ****
--- 977,983 ----
tag := `new/HTML/Tag`(["inputhidden","name" = nam]);
fi;
+ # KM
+ tag['AddContents',"\n"];
+ # END KM
html := [op(html),eval(tag)];
od;
***************
*** 1000,1006 ****
b := subs( 38 = (38, 97, 109, 112, 59), # &
60 = (38, 108, 116, 59), # <
! 62 = (38, 103, 116, 59), # >
! 34 = (38, 113, 117, 111, 116, 59), # "
! b);
convert(b,bytes);
--- 1003,1009 ----
b := subs( 38 = (38, 97, 109, 112, 59), # &
60 = (38, 108, 116, 59), # <
! 62 = (38, 103, 116, 59), # >
! 34 = (38, 113, 117, 111, 116, 59), # "
! b);
convert(b,bytes);
***************
*** 1044,1050 ****
b := subs( 38 = (38, 97, 109, 112, 59), # &
60 = (38, 108, 116, 59), # <
! 62 = (38, 103, 116, 59), # >
! 34 = (38, 113, 117, 111, 116, 59), # "
! b);
convert([34,op(b),34],bytes);
--- 1047,1053 ----
b := subs( 38 = (38, 97, 109, 112, 59), # &
60 = (38, 108, 116, 59), # <
! 62 = (38, 103, 116, 59), # >
! 34 = (38, 113, 117, 111, 116, 59), # "
! b);
convert([34,op(b),34],bytes);
***************
*** 1129,1133 ****
proc(cells::list(list))
local extra,header,tableattrib,rowattrib,rowattriblist,caption,msg,
! rowcontent,tablecontent,cell,celltagtype,celltag,a,lhs,rhs,i,j;
header := false;
--- 1132,1136 ----
proc(cells::list(list))
local extra,header,tableattrib,rowattrib,rowattriblist,caption,msg,
! rowcontent,tablecontent,cell,celltagtype,celltag,a,lhs,rhs,i,j;
header := false;
Index: ManualConfig.dist
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ManualConfig.dist,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -C2 -d -r1.1.1.1.2.1 -r1.1.1.1.2.2
*** ManualConfig.dist 14 Jul 2003 22:51:47 -0000 1.1.1.1.2.1
--- ManualConfig.dist 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.2
***************
*** 129,136 ****
# Config['DocumentURL']
# Config['ServletURL']
# Config['WEBINFDir']
# Config['WebAppDir']
# Config['WebDir']
-
######################################################################
--- 129,138 ----
# Config['DocumentURL']
# Config['ServletURL']
+ # KM
+ # Config['TimeLimit']
+ # END KM
# Config['WEBINFDir']
# Config['WebAppDir']
# Config['WebDir']
######################################################################
Index: PackageList
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v
retrieving revision 1.1.1.1.2.3
retrieving revision 1.1.1.1.2.4
diff -C2 -d -r1.1.1.1.2.3 -r1.1.1.1.2.4
*** PackageList 10 Jul 2003 23:32:09 -0000 1.1.1.1.2.3
--- PackageList 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.4
***************
*** 10,14 ****
ImageCache
HTML
! LaTeX
Local
SafeParse
--- 10,14 ----
ImageCache
HTML
! aim/LaTeX
Local
SafeParse
Index: SafeParse.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/SafeParse.mpl,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3
*** SafeParse.mpl 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.2
--- SafeParse.mpl 25 Aug 2003 18:33:23 -0000 1.1.1.1.2.3
***************
*** 382,385 ****
--- 382,388 ----
"StruveH",
"StruveL",
+ # KM
+ "Sum",
+ # END KM
"WeberE",
"WeierstrassP",
--- LaTeX.mpl DELETED ---
|