Неверный тип приведения: красный контекст
Я использую --red-only
переключитесь с многословием, установленным в 2, чтобы скомпилировать очень простую программу Red в ее эквивалент Red/System. Программа является:
Red []
red-load: func [source [file! url! string! binary!]] [
load source
]
Он производит определенное количество выходных данных, которые я перенаправил в файл. Моей целью было добавить к этому заголовок Red/System и собрать его.
После избавления от некоторых строк комментариев следующий барьер состоит в том, что этот код не расширил хотя бы некоторые макросы, поэтому мне пришлось добавить #include
для времени выполнения / macros.reds. Но затем я получил эту ошибку в расширении одного из них (макросы TO_CTX):
*** Compilation Error: invalid target type casting: red-context!
*** in file: %/home/hostilefork/Projects/red/embedme.reds
*** in function: f_modulo
*** at line: 11
*** near: (as red-context! ((as series! ctx15/value) + 1))
я видел red-context!
и некоторые другие red-*!
типы данных, используемые в коде времени выполнения Red... когда Red/System нужно говорить о значениях, которые он получает от Red. Но они не упоминаются в спецификации Red/System. Могут ли они использоваться в обычном коде Red/System, или есть что-то "особенное", позволяющее им только внутренне?
1 ответ
Verbosity 2 - неправильная настройка, если вы хотите получить полный красный / системный вывод, подробность должна быть установлена на 3 (-v 3
). Я никогда не пытался на самом деле скомпилировать такой вывод, поэтому я не уверен, что он все равно будет работать. --red-only?
Опция предназначается для отладки вывода Red/System из высокоуровневого компилятора Red.
red-*!
определения являются макросами над внутренними структурами Red, они не являются частью Red/System. Они определены в библиотеке времени выполнения Red.