> 1 <

Автор Сообщение

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#353   2009-04-30 18:00 GMT+3 часа(ов)      
В sbcl (на linux) вызов (symbol-function 'f) в случае компилированной функции и некомпилированной, возвращает одно значения #<FUNCTION F>, вызов
(compiled-function-p 'f) возвращает NIL, даже если был вызов (compile 'f).
Вопрос: Функция не была скомпилирована?

archimag

Members


Статус

48 сообщений

Где: Russia
Род занятий:
Возраст:

#354   2009-04-30 18:32 GMT+3 часа(ов)      
а теперь попробуй (compiled-function-pd #'f)
:-)

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#355   2009-04-30 19:10 GMT+3 часа(ов)      
Да, действительно - функция compiled-function-p возвращает истину если тип аргумента compiled-function, и в случае запуска sbcl на linux (и скорее всего не только на Linux) возвращает истину, даже если функция не компилировалась (с помощью compile). Значит, надо полагать, что при вызове defun символ связывается сразу же со скомпилированной функцией? Кстати и disassemble возвращает один и тот же листинг...

love5an

Members


Статус

25 сообщений

Где: Russia
Род занятий:
Возраст:

#356   2009-05-02 18:31 GMT+3 часа(ов)      
SBCL, по умолчанию, компилирует весь код. Даже в REPL.
Интерпретатор можно включить, установив значение переменной sb-ext:*evaluator-mode* в :interpret (и обратно - в :compile)
> 1 <


Онлайн :

0 пользователь(ей), 19 гость(ей) :




Реклама на сайте: