Exact actions, test name and scenario, or code for duplicating the bug.
Working on D400 and D383 in an attempt to minimize Simplex spam, at line 28 in simplex.cpp this diff, I set the Simplex messages to IOCat::debug. To test if it was doing what I expected, I tried inserting channel.shut_up(IOCat::debug);at line 65 of the tester's main.cpp and ran the tester. All the messages still appeared. Also tested the same command at line 81, and in Ratscript in D383 diff 1861, I added the same command in lexer.cpp at line 59 immediately prior to the match attempts generating the excess console spam. In all cases shut_up() failed to turn off the lines at 28-36 in simplex.cpp.
A detailed description of the exact bug. This includes compiler warnings, terminal output, Valgrind output, crash reports, and all other such information.
Running tests in simplexpress-tester generates output such as:
===== [Member Match using char*] ===== Pass 1 of 1 Matching b against Unit<specifier>::(d)::(!)... true Assert true is true Matching ^ against Unit<specifier>::(d)::(!)... true Assert true is true Matching 4 against Unit<specifier>::(d)::(!)... false Assert false is false TEST COMPLETE
Instead of the expected:
===== [Member Match using char*] ===== Pass 1 of 1 Assert true is true Assert true is true Assert false is false TEST COMPLETE
if debug messages are off.
Running a match on anything in the Ratscript console generates output such as the following for tokenizing input "steve":
Welcome to Ratscript v0.1 console! Enter code to tokenize: steve Matching s against Unit<literal>::(()::()... false Matching s against Unit<literal>::())::()... false Matching s against Unit<literal>::({)::()... false Matching s against Unit<literal>::(})::()... false Matching s against Unit<literal>::(,)::()... false Matching s against Unit<literal>::(.)::()... false Matching s against Unit<literal>::(-)::()... false Matching s against Unit<literal>::(+)::()... false Matching s against Unit<literal>::(;)::()... false Matching s against Unit<literal>::(*)::()... false Matching s against Unit<literal>::(!)::()... false Matching s against Unit<literal>::(=)::()... false Matching s against Unit<literal>::(<)::()... false Matching s against Unit<literal>::(>)::()... false Matching s against Unit<literal>::(#)::()... false Matching s against Unit<specifier>::(n)::()... false Matching s against Unit<specifier>::(w)::()... false Matching s against Unit<literal>::(")::()... false Matching s against Unit<specifier>::(d)::(+~)... false Matching s against Unit<specifier>::(a)::(+~)... true Matching steve against Unit<specifier>::(a)::(+~)... true IDENTIFIER IDENTIFIER "steve" at position 1:0 ENDOFFILE "" at position 1:5
while with debug messages turned off it should instead generate:
Welcome to Ratscript v0.1 console! Enter code to tokenize: steve IDENTIFIER IDENTIFIER "steve" at position 1:0 ENDOFFILE "" at position 1:5
Your development environment; at the minimum, include your operating system. If you are staff, you are expected to be running the company’s standardized development environment. Otherwise, you should include your exact compiler version, linked library versions, compiler settings, and all other relevant development data.
Standard, but verified that most recent version of iosqueak is present.