Неверный тип приведения: красный контекст

Я использую --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.

Другие вопросы по тегам