[voikko] Common Lisp ja libvoikko

Teemu Likonen tlikonen at iki.fi
Sun Jul 3 11:56:24 EEST 2011


Onkohan mahdollista käyttää Voikon kirjastoa Common Lisp -ohjelmasta
käsin? Common Lispille (lyh. CL) on olemassa Common Foreign Function
Interface (CFFI), jolla voi muun muassa käyttää C-ohjelmakirjastoja:
<http://common-lisp.net/project/cffi/>.

Omissa, pienissä CL-ohjelmissani olen esimerkiksi käyttänyt
Readline-kirjastoa tähän tapaan:


    (cffi:load-foreign-library '(:default "libreadline"))

    (defun readline (prompt)
      (let ((string-ptr (cffi:foreign-funcall "readline"
                                              :string prompt :pointer)))
        (when (and (cffi:pointerp string-ptr)
                   (not (cffi:null-pointer-p string-ptr)))
          (unwind-protect (cffi:foreign-string-to-lisp string-ptr)
            (cffi:foreign-funcall "free" :pointer string-ptr :void)))))


Pystyykö libvoikkoa käyttämään yhtä helposti? En kovin paljon ymmärrä C-
enkä C++-koodista, joten en myöskään juuri viisastunut lukemalla
libvoikon lähdekoodia. Kirjaston lataaminen kyllä onnistuu
CL-ympäristöön.



More information about the voikko mailing list