2014-11-28 1 views
2

아주 간단한 빨간색 프로그램을 해당 Red/System에 해당하는 것으로 컴파일하려면 --red-only 스위치를 2로 설정하고 스위치를 사용하고 있습니다. 프로그램은 다음과 같습니다.잘못된 대상 유형 캐스팅 : 빨간색 컨텍스트

Red [] 

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

출력이 일정하게 생성되어 파일로 리디렉션됩니다. 내 목표는 Red/System 헤더를 추가하고 빌드하는 것이 었습니다.

몇 가지 주석 행을 제거한 후 다음 장벽은이 코드가 적어도 일부 매크로를 확장하지 않았기 때문에 runtime/macros.reds#include을 추가해야한다는 것입니다. 내가 red-context!을 본 적이 및 빨강이/시스템에 필요로 할 때 다른 red-*! 데이터 유형은 레드 런타임 코드 ...에 사용

*** 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)) 

:하지만 나는 그 (매크로 TO_CTX) 중 하나의 확장에서이 오류가 발생했습니다 그것이 붉은 색으로부터 얻는 가치에 대해 이야기하십시오. 그러나 그들은 언급되지 않았습니다 in the Red/System spec. 일반 Red/System 코드에서 사용할 수 있습니까? 아니면 내부에서만 사용할 수있는 "특별한"것이 있습니까?

답변

3

완전한 빨간색/시스템 출력을 원할 경우 자세한 표시가 올바르지 않으므로 자세한 표시는 3 (-v 3)으로 설정해야합니다. 필자는 그러한 출력을 실제로 컴파일하려고 시도하지 않았기 때문에 어쨌든 작동하는지 확신 할 수 없습니다. --red-only? 옵션 목적은 상위 수준의 Red 컴파일러에서 Red/System 출력을 디버깅하는 것입니다.

red-*! 정의는 빨간색 내부 구조에 대한 매크로이며 Red/System의 일부가 아닙니다. 그것들은 빨간 runtime library에 정의되어 있습니다.

+0

감사합니다. 약간의 수정이있었습니다. 이 경우에는 ** 출력 내용 : ** 내용 만 검색하고'~ %'=>'~ percent ','~ /'=>'~ slashslash','~ /'=>'~ slash '... 그리고'red.reds'에'#include '를 추가하십시오. – HostileFork

+0

알았어, 고마워, 고마워. – DocKimbel