2014-11-28 2 views
2

Я использую переключатель --red-only с многословием, установленным в 2, чтобы скомпилировать очень простую красную программу в ее эквивалент Red/System. Программа такова:Недопустимый тип целевого типа: red-context

Red [] 

red-load: func [source [file! url! string! binary!]] [ 
    load source 
] 

Он производит определенный объем вывода, который я перенаправил в файл. Моя цель состояла в том, чтобы добавить к этому заголовок Red/System и создать его.

После устранения некоторых строк комментария следующий барьер заключается в том, что этот код не расширил хотя бы некоторые макросы, поэтому мне пришлось добавить #include для runtime/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/Система должна говорить о значениях, которые он получает от красного. Но они не упоминаются in the Red/System spec. Могут ли они использоваться в обычном красном/системном коде или есть что-то «специальное», позволяющее им только внутренне?

ответ

3

Verbosity 2 - неправильная настройка, если вы хотите иметь полный красный/системный выход, значение должно быть установлено равным 3 (-v 3). Я никогда не пытался скомпилировать такой вывод, поэтому я не уверен, что он все равно будет работать. Назначение опции --red-only? предназначено для отладки вывода Red/System из компилятора высокого уровня Red.

Определения red-*! являются макросами над красными внутренними структурами, они не являются частью Red/System. Они определены в Красном runtime library.

+0

Спасибо, он работал с небольшими трюками. В этом случае просто содержимое ** output: ** с поиском и заменой '~%' => '~ percent',' ~ // '=>' ~ slashslash', '~ /' => '~ slash '... then и добавить' # include' вверху для 'red.reds'. – HostileFork

+0

Хорошо, хорошо знать, спасибо. – DocKimbel

Смежные вопросы