LINUX.ORG.RU

Не получается вызвать gsl из cffi.

 ,


0

1

Начал использовать cl for fun, но для решения практических задач, для этого мне нужно использовать gsl, чтобы не писать рунге-кутты метод.

Для cl существует gsll, который довольно плохо задокументирован.

Попробовал использовать cffi, c ним тоже проблемы. Даже пример из туториала не работает, такой код

 #!/usr/local/bin/sbcl --script
 (asdf:oos 'asdf:load-op :cffi)
   
  ;;; Nothing special about the "CFFI-USER" package.  We're just
  ;;; using it as a substitute for your own CL package.
  (defpackage :cffi-user
    (:use :common-lisp :cffi))
   
  (in-package :cffi-user)
   
  (define-foreign-library libcurl
    (:unix (:or "libcurl.so.3" "libcurl.so"))
    (t (:default "libcurl")))
   
  (use-foreign-library libcurl)
 ;;; A CURLcode is the universal error code.  curl/curl.h says
  ;;; no return code will ever be removed, and new ones will be
  ;;; added to the end.
  (defctype curl-code :int)
   
  ;;; Initialize libcurl with FLAGS.
  (defcfun "curl_global_init" curl-code
    (flags :long))

вываливается в следующее

sbcl --script cffi.lisp
unhandled SB-KERNEL:SIMPLE-PACKAGE-ERROR in thread #<SB-THREAD:THREAD
                                                     "initial thread" RUNNING
                                                      {AAF2841}>:
  The name "ASDF" does not designate any package.

0: (SB-DEBUG::MAP-BACKTRACE
    #<CLOSURE (LAMBDA # :IN BACKTRACE) {AB0001D}>
    :START
    0
    :COUNT
    128)
1: (BACKTRACE 128 #<SB-SYS:FD-STREAM for "standard error" {AAF51B1}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK
    #<SB-KERNEL:SIMPLE-PACKAGE-ERROR
      "The name ~S does not designate any package." {AAFD5E9}>
    #<unavailable argument>)
3: (SB-DEBUG::RUN-HOOK
    *INVOKE-DEBUGGER-HOOK*
    #<SB-KERNEL:SIMPLE-PACKAGE-ERROR
      "The name ~S does not designate any package." {AAFD5E9}>)
4: (INVOKE-DEBUGGER
    #<SB-KERNEL:SIMPLE-PACKAGE-ERROR
      "The name ~S does not designate any package." {AAFD5E9}>)
5: (ERROR
    SB-KERNEL:SIMPLE-PACKAGE-ERROR
    :PACKAGE
    "ASDF"
    :FORMAT-CONTROL
    "The name ~S does not designate any package."
    :FORMAT-ARGUMENTS
    ("ASDF"))
6: (SB-INT:%FIND-PACKAGE-OR-LOSE "ASDF")
7: (SB-IMPL::READ-TOKEN
    #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
    #\a)
8: (SB-IMPL::READ-MAYBE-NOTHING
    #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
    #\a)
9: (SB-IMPL::READ-LIST
    #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
    #<unavailable argument>)
10: (SB-IMPL::%READ-PRESERVING-WHITESPACE
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     NIL
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     T)
11: (SB-IMPL::%READ-PRESERVING-WHITESPACE
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     NIL
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     NIL)
12: (SB-C::READ-FOR-COMPILE-FILE
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     0)
13: (SB-INT:LOAD-AS-SOURCE
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     :VERBOSE
     NIL
     :PRINT
     NIL
     :CONTEXT
     "loading")
14: ((FLET SB-FASL::LOAD-STREAM :IN LOAD)
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     NIL)
15: (LOAD
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>
     :VERBOSE
     NIL
     :PRINT
     NIL
     :IF-DOES-NOT-EXIST
     T
     :EXTERNAL-FORMAT
     :DEFAULT)
16: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT)
     #<SB-SYS:FD-STREAM for "file /home/aptyp/cffi.lisp" {AAF3EB9}>)
17: ((FLET #:WITHOUT-INTERRUPTS-BODY-5532 :IN SB-IMPL::PROCESS-SCRIPT))
18: (SB-IMPL::PROCESS-SCRIPT "cffi.lisp")
19: (SB-IMPL::TOPLEVEL-INIT)
20: ((FLET #:WITHOUT-INTERRUPTS-BODY-221821 :IN SAVE-LISP-AND-DIE))
21: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))

unhandled condition in --disable-debugger mode, quitting

И заодно подскажите форум, сообщество по common lisp.

cast mv, archimag

★★★★

Ответ на: комментарий от anonymous

можешь кратко написать что за софт для телекомов ты пишешь на лиспе?

IVR + системы сборки различной статистики

gensym ★★
()
Ответ на: комментарий от quasimoto

но теперь, следуя инструкциям на quicklisp.org/beta, большинство систем можно поставить за считанные минуты.

Не везде - мой запросик на работу через запаролированный прокси всё ещё не реализован. Хотя, конечно, всегда можно поставить сквид...

yyk ★★★★★
()
Ответ на: комментарий от mv

mv, Lisp давно предвосхитил множество того, что сейчас внедряется (часто неаппетитно) в мейнстрим. Есть ли в его современном развитии что-то что будет передним краем через, скажем, 10 или 20 лет? То есть разрабатываются ли в нем какие-то новые концепции компутерной науки?

cab ★★★★
()
Ответ на: комментарий от cab

mv, Lisp давно предвосхитил множество того, что сейчас внедряется (часто неаппетитно) в мейнстрим. Есть ли в его современном развитии что-то что будет передним краем через, скажем, 10 или 20 лет? То есть разрабатываются ли в нем какие-то новые концепции компутерной науки?

Аспектно-ориентированное и контекстно-ориентированное программирование вырабатывалось с использованием Common Lisp.

Развитие такого языка, как CL, достаточно неоднозначное. Базовая часть языка маленькая и очень гибкая, а сверху стандартом ещё 800 страниц библиотеки приписано. Что развивать в языке? Библиотеку? Не имеет академического смысла. Базовую часть? Особо нечего, т.к. история возникновения CL достаточно поучительная, и он является практически идеальным синтезом инженерной и научной мысли. Косяков мало, и они не критичные.

mv ★★★★★
()
Ответ на: комментарий от cab

Есть ли в его современном развитии что-то что будет передним краем через, скажем, 10 или 20 лет?

Безотносительно намерений автора - это очень тнкое замечание, до тонкости которого «разоблачателям псевдоэлитарности» никогда не дорасти.

antares0 ★★★★
()
Ответ на: комментарий от mv

Базовая часть языка маленькая и очень гибкая


mv, спасибо за ответ -я большой любитель минималистских языков, где прорыв в функциональности достагается за счет удачной комбинации небольшого количества простых решений. Насколько я понял, Lisp такому критерию соответствует.

cab ★★★★
()
Ответ на: комментарий от antares0

antares0, просто я давно хочу восполнить пробел в своем образовании, т.к. я слабо знаю lisp-системы. Они меня очень привлекают.
Да, я вижу высокий уровень многих местных лисперов, но очень важно, способно ли современное сообщество лисперов реализовать передовые мысли компутерной науки или само их генерировать (что важнее)? Или, все-таки оно живет по инерции былых наработок?
Вы можете что-то сказать по этому поводу?

cab ★★★★
()
Ответ на: комментарий от cab

Это однобокий взгляд на вещи. Если концепция правильная и удачная, то люди будут к ней обращаться постоянно.

Например, забуксовал рост производительности одного процессора, а масштабировать задачи, написанные на распространённых языках, на много процессоров не то, что линейно не получается - вообще сложно в принципе. А вот если вместо полдюжины универсальных кобмайнов сделать сотню простых форт-процессоров, обменивающихся между собой сообщениями а-ля smalltalk или flavors, то софт весело начинается писать и работать.

Форт идею сотен простых процессоров вместо нескольких сложных разве двигал? Нет. Но идея Форта на столько подошла для решения этой задачи, что люди сами к Форту обратились. Так что сложно просто так сказать, если что-то является двигателем чего-то, пока это «чего-то» не появится.

mv ★★★★★
()
Ответ на: комментарий от cab

передовые мысли компутерной науки

Есть критерий отличающий «передовые мысли» от вау-эффекта «языков свехвысокого уровня в хренад-цатом поколении» ?

способно ли современное сообщество лисперов реализовать передовые мысли компутерной науки или само их генерировать (что важнее)?

Racket в стадии роста, можеть быть.

CL сугубо практичен. На «передовых генераторов» смотрят скептически.

antares0 ★★★★
()
Ответ на: комментарий от antares0

1) нет критерия. Нет вопросов
2) Сам на «передовых генераторов» смотрю аналогично. В конце-концов если что-то полезное где-то обнаружат, я думаю, реализуют.

cab ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.