Custom Query (1630 matches)
Results (76 - 78 of 1630)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#1711 | fixed | ##sys#read with -keyword-style prefix transforms bare colon into empty symbol | ||
Description |
##sys#read recognizes prefix keywords by ignoring the leading colon and suffix keywords by consuming the trailing colon and then dropping it upon confirming it's the last token in an identifier. I added another case that adds the colon back in the prefix case if no tokens follow the main purpose of this is to allow : from chicken.type to be used in prefix mode. presently it is a syntax error also I fix a silly case where multiple colons would be dropped for prefix keywords, matching the suffix behavior where one is semantically meaningful and the rest go on the identifier tested on PLATFORM=linux. code block below shows 5.2.0 behavior with prefix, patched behavior with prefix, and suffix behavior for comparison (which is unchanged between versions) alice@bellona:~/work/misc/typetest % cat src/typetest.scm (define prefix :pre) (define suffix suf:) (define canonical #:can) (define blank :) (define qpre :|qpre|) (define qsuf |qsuf|:) (define qpreblank :||) (define qsufblank ||:) (define triplepre :::tp) (define triplesuf ts:::) (: typesig fixnum) (define typesig 1) alice@bellona:~/work/misc/typetest % ( chicken src/typetest.scm -keyword-style prefix -check-syntax -debug 1 | grep -v '^$' > /dev/tty ) > & /dev/null [source] (define prefix #:pre) (define suffix |suf:|) (define canonical #:can) (define blank ||) (define qpre #:qpre) (define qsuf |qsuf:|) (define qpreblank #:||) (define qsufblank :) (define triplepre #:tp) (define triplesuf |ts:::|) (|| typesig fixnum) (define typesig 1) alice@bellona:~/work/misc/typetest % ( dev-chicken src/typetest.scm -keyword-style prefix -check-syntax -debug 1 | grep -v '^$' > /dev/tty ) > & /dev/null [source] (define prefix #:pre) (define suffix |suf:|) (define canonical #:can) (define blank :) (define qpre #:qpre) (define qsuf |qsuf:|) (define qpreblank #:||) (define qsufblank :) (define triplepre #:|::tp|) (define triplesuf |ts:::|) (: typesig fixnum) (define typesig 1) alice@bellona:~/work/misc/typetest % ( dev-chicken src/typetest.scm -keyword-style suffix -check-syntax -debug 1 | grep -v '^$' > /dev/tty ) > & /dev/null [source] (define prefix |:pre|) (define suffix #:suf) (define canonical #:can) (define blank :) (define qpre |:qpre|) (define qsuf #:qsuf) (define qpreblank :) (define qsufblank #:||) (define triplepre |:::tp|) (define triplesuf #:|ts::|) (: typesig fixnum) (define typesig 1) |
|||
#1713 | fixed | chicken-install cache doesn't respect isolation | ||
Description |
the directory name "chicken-install" is hardcoded in egg-environment.scm. this patch uses the name of the chicken-install binary instead, so that different versions of chicken built with PROGRAM_PREFIX or PROGRAM_SUFFIX have separate caches different versions with different install locations but the same program names still overlap, but they would overlap in PATH anyway, so this doesn't strike me as a big deal. program prefix/suffix is intended to allow complete isolation of multiple builds tho so separating caches feels obviously correct. (in my own case, I use my distro's packaged chicken for most day-to-day work alongside a prefixed install built from git for messing with chicken itself) the CHICKEN_EGG_CACHE env var still overrides the default cache location unconditionally, which also seems correct even if it allows multiple versions' caches to merge, since the point of env vars is to enforce something system-wide in all cases invariably tested on platform=LINUX |
|||
#1715 | fixed | make -emit-inline-file always write a file | ||
Description |
presently, -emit-inline-file will not emit a file, and will delete one if it exists, if there are no exported procedures that can be inlined. this means in a pattern where you always emit for every -unit, and always consult for every -uses, compilation will halt if a file isn't found it's a matter of opinion what the right thing to do here is, but I'm inclined to think a file should always be emitted if the flag is passed, even it's empty, because:
note the deletion/omission behavor was added on purpose in 2010, so this isn't accidental, but I'm not sure the reasoning tested on platform=LINUX |