﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
183	symbols starting with # do not have read-write invariance	Jim Ursetto		"I noticed this because if I have a string ""#hostinfo#"" and do string->symbol on it and write it to a file, (read) on this file causes a syntax error.

I am not sure, but at first glance you might fix this by changing
(not (##core#inline ""C_substring_compare"" ""#!"" str 0 0 2))
to
(not (##core#inline ""C_substring_compare"" ""#"" str 0 0 1))
or a more efficient equivalent in sym-is-readable? in library.scm.  As far as I know, anything starting with # is sharp-syntax and is unlikely to be read as a symbol.  Yes?

Examples:
{{{
#;> (with-input-from-string (with-output-to-string (lambda () (write (string->symbol ""#x"")))) read)
Error: illegal number syntax: """"

#;> (with-input-from-string (with-output-to-string (lambda () (write (string->symbol ""#hostinfo"")))) read)
Error: invalid sharp-sign read syntax: #\h

#;> (symbol? (with-input-from-string (with-output-to-string (lambda () (write (string->symbol ""#t"")))) read))
#f

#;> (char? (with-input-from-string (with-output-to-string (lambda () (write (string->symbol ""#\\x"")))) read))                                                              
#t
}}}

"	defect	closed	minor		core libraries	4.3.x	fixed		felix winkelmann	
