Page MenuHomePhabricator

IOCat shut_up() not working
Open, Triage PriorityPublic

Description

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.

Details

Task Type
Bug
Proposed Urgency
4: Significant
Gravity
Triage Gravity
Distance
Triage Distance
Friction
Triage Friction
Relativity
Triage Relativity
Volatility (Caught At)
v3: Production
Origin
Not a Bug/Unknown