powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Slime не могу начать использовать cl-html-parse
12 сообщений из 12, страница 1 из 1
Slime не могу начать использовать cl-html-parse
    #36166891
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, подскажите как подгружать доп библиотеки в slime.

Интересует пакет cl-html-parse для парсинга html
http://www.cliki.net/CL-HTML-Parse

Вот код проекта.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
(in-package :common-lisp-user)

(defpackage :study
  (:nicknames :study)  
  (:use :cl)
  (:export  
   
   ;; Exported symbols go here
   test_function
))

Код: plaintext
1.
2.
3.
4.
5.
;;;; This is your lisp file. There are many like it, but this one is yours.
(in-package :study)

(defun test_function ()
  "Hello everybody.")

Как сюда и(/или) в .emacs прописать загрузку нужной библиотеки/пакета ???

И как использовать пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
### Example # 1 

(html-parse:parse-html 
 "<html>
<head><title>Parsing HTML is Phun</title></head>
<body>
<h1>Why is it phun?</h1>
<p>Parsing HTML is phun because angle brackets are better than parentheses.</p>
</body>
</html>")

 

((:HTML (:HEAD (:TITLE "Parsing HTML is Phun"))
  (:BODY (:H1 "Why is it phun?")
   (:P
    "Parsing HTML is phun because angle brackets are better than parentheses."))))

Заранее спасибо.
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36167269
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up, ну что совсем никто не знает....
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36167437
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя cl-html-parse должен быть загружен

Если ты в REPL

CL-USER> (in-package :common-lisp-user)
#<PACKAGE "COMMON-LISP-USER">
CL-USER> (defpackage :study
(:nicknames :study)
(:use #:cl #:cl-html-parse)
(:export test))
#<PACKAGE "STUDY">
CL-USER> (in-package :study)
#<PACKAGE "STUDY">
STUDY>

теперь у тебя в Study будет доступно все из cl-html-parse

либо второй вариант с определением системы уже
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36167569
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru пишет:

Терпение, спокойствие.

Кстати, могу порекомендовать jabber-канал по лиспу на jabber.ru и
сайт lisper.ru. Тут-то поменьше людей в лиспе разбирающихся.


> Коллеги, подскажите как подгружать доп библиотеки в slime.

Ну, во-первых, не в slime, а вообще в common lisp, видимо,
потому что slime сам там ничего не делает, а всё, что он
делает, доступно и без него.

В общем, это зависит от системы определения систем,
которую ты используешь, их несколько, но наиболее ходовая
сейчас -- asdf.

Для того, чтобы загрузить систему через asdf, нужно
сделать что-то типа

(asdf:oos 'asdf:load-op :cl-html-parse)

Естественно, до этого надо, чтобы :cl-html-parse
имел определение системы (себя т.е.) на ASDF и
это определение было доступно системе asdf.

Для первого надо иметь файл cl-html-parse.asd,
обычно он есть у всех современных пакетов.
Для последнего надо положить ссылку или сам этот
файл в один из каталогов, указанных в переменной
asdf:*central-registry*.

> (in-package :common-lisp-user)
>
> (defpackage :study
> (:nicknames :study)
> (:use :cl)
> (:export
>
> ;; Exported symbols go here
> test_function
> ))

Вот если ты к этому делу напишешь ещё и .asd,
описание твоей системы, и пропишеш там зависимости
от системы :cl-html-parse, то cl-html-parse загрузится
автоматически при загрузке твоей системы через ASDF.

Документацию по ASDF можно найти в инете, на
cliki.net найдёшь ссылку.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36168448
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GYGYУ тебя cl-html-parse должен быть загружен

Если ты в REPL

CL-USER> (in-package :common-lisp-user)
#<PACKAGE "COMMON-LISP-USER">
CL-USER> (defpackage :study
(:nicknames :study)
(:use #:cl #:cl-html-parse)
(:export test))
#<PACKAGE "STUDY">
CL-USER> (in-package :study)
#<PACKAGE "STUDY">
STUDY>

теперь у тебя в Study будет доступно все из cl-html-parse

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


Не знаю насколько правильно пытаюсь сделать.
скачал cl-html-parse_latest.tar.gz
распаковал в C:\home\myproject
Там создаю файл defp.lsp (C-x C-f)

Вот код
Код: plaintext
1.
2.
3.
4.
5.
(defpackage :study
  (:nicknames :study)  
  (:use #:cl #:cl-html-parser)
  (:export 
     test))

Компилирую через C-c C-b
Выдаёт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
The name "CL-HTML-PARSER" does not designate any package.
   [Condition of type SB-KERNEL:SIMPLE-PACKAGE-ERROR]

Restarts:
  0 : [ABORT] Return to sldb level  1 .
  1 : [ABORT] Return to SLIME's top level.
  2 : [ABORT] Abort
  3 : [CLOSE-CONNECTION] Close SLIME connection
  4 : [ABORT] Exit debugger, returning to top level.

Что делаю не так.
И может что-то стоит прописывать в .emacs ?
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36168572
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru пишет:

> CL-USER> (in-package :common-lisp-user)
> #<PACKAGE "COMMON-LISP-USER">
> CL-USER> (defpackage :study
> (:nicknames :study)
> (:use #:cl #:cl-html-parse)
> (:export test))
> #<PACKAGE "STUDY">
> CL-USER> (in-package :study)
> #<PACKAGE "STUDY">
> STUDY>
>
> теперь у тебя в Study будет доступно все из cl-html-parse

Извините, но к ЗАГРУЗКЕ системы cl-html-parse вышеприведённый
код не имеет никакого отношения.

> Не знаю насколько правильно пытаюсь сделать.
> скачал cl-html-parse_latest.tar.gz
> распаковал в C:\home\myproject
> Там создаю файл defp.lsp (C-x C-f)
>
> Вот код
>
> (defpackage :study
> (:nicknames :study)
> (:use #:cl #:cl-html-parser)
> (:export
> test))

Это ты пакет (свой) определяешь, а не загружаешь.
Это к загрузке cl-html-parser не имеет никакого
отношения. Тебе надо ДО этого ЗАГРУЗИТЬ систему
cl-html-parser в лисп-машину.
Прочитай про asdf, какой-нибудь мануал,
найди на cliki.net, там дофига должно быть всего.


> И может что-то стоит прописывать в .emacs ?

емакс и .emacs тут абсолютно ни при чём.
..emacs используется в самом емаксе, на
ДРУГОМ лиспе, emacs-lisp который.
К common-lisp он не имеет никакого отношения.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36168587
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Попробую почитать ещё.
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36168600
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru пишет:

> Спасибо. Попробую почитать ещё.

Пойми главное:

ты можешь конечно и сам
руками выполнить (load ...)
всех файлов *.lisp из этой
библиотеки в нужном порядке, но
зачем, если есть asdf ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36168756
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>(require :asdf)

>(push #P"<путь до cl-html-parse>" asdf:*central-registry*)

>(require :cl-html-parse)
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36169863
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы хоть что-то уже получить. Делаю так:

Запускаю slime.
Далее:

Код: plaintext
1.
2.
3.
 (setf asdf:*central-registry*
  '(*default-pathname-defaults*
    "C:/home/emacs/site-lisp/cl-html-parse/"))

Выдаёт.
Код: plaintext
1.
(*DEFAULT-PATHNAME-DEFAULTS* "C:/home/emacs/site-lisp/cl-html-parse/")

Далее
Код: plaintext
CL-USER> (require :asdf)

Ответ
Код: plaintext
1.
NIL

Ещё
Код: plaintext
1.
CL-USER> (require :cl-html-parse)

Далее выдаёт примерно 2900 строк какого-то кода, сообщений. Похоже на некую компиляцию,
сорри, я совсем новенький в CL.

Примерно следующее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
; compiling file "C:\\home\\emacs\\site-lisp\\cl-html-parse\\dev\\package.lisp" (written  06  OCT  2006   09 : 09 : 40  AM):
; compiling (IN-PACKAGE :COMMON-LISP-USER)
; compiling (DEFPACKAGE :ACL-COMPAT.EXCL ...)

; C:\home\emacs\site-lisp\cl-html-parse\dev\package.fasl written
; compilation finished in  0 : 00 : 00 . 016 
; compiling file "C:\\home\\emacs\\site-lisp\\cl-html-parse\\dev\\if-star.lisp" (written  06  OCT  2006   09 : 09 : 40  AM):
; compiling (IN-PACKAGE :ACL-COMPAT.EXCL)
; compiling (DEFVAR IF*-KEYWORD-LIST ...)
; compiling (DEFMACRO IF* ...)

; C:\home\emacs\site-lisp\cl-html-parse\dev\if-star.fasl written
; compilation finished in  0 : 00 : 00 . 047 
; compiling file "C:\\home\\emacs\\site-lisp\\cl-html-parse\\dev\\cl-html-parse.lisp" (written  06  OCT  2006   09 : 09 : 40  AM):
; compiling (DEFPACKAGE #:NET.HTML.PARSER ...)
; compiling (IN-PACKAGE #:NET.HTML.PARSER)
; compiling (DEFUN CURRENT-CASE-MODE ...)
; compiling (DEFMACRO TAG-AUTO-CLOSE ...)

Зато потом
Код: plaintext
 (html-parse:parse-html "<dev>xxx</dev>")

Работает
Код: plaintext
1.
((:DEV "xxx"))

Вопрос.
Всё ли я делаю правильно? Как это теперь использовать в проекте в своём? Нужно ли каждый раз проводить эту процедуру при запуске slime, или одного достаточно?

Спасибо
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36169908
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexGru,

На данном этапе и для начала -> правильно (работает же :) )

Только к slime & emacs это все не имеет отношения вообще - будет работать и без них. А они нужны лишь для удобства разработки ( и для много чего ещё не имеющего к делу отношения)

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

Там же в документации -> как сделать образ

Нужна будет документация по ASDF - http://constantly.at/lisp/asdf/index.html#Top
Это для определения своего проекта

Ну и MasterZiv дал хороший совет сходить на www.lisper.ru
...
Рейтинг: 0 / 0
Slime не могу начать использовать cl-html-parse
    #36170016
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru пишет:

> Выдаёт.
>
> (*DEFAULT-PATHNAME-DEFAULTS* "C:/home/emacs/site-lisp/cl-html-parse/")

Очень странно, что у тебя там ДО этого было только *DEFAULT-PATHNAME-DEFAULTS*.

Какой LISP у тебя ? CLISP ?


>
> Далее
>
> CL-USER> (require :asdf)

require может ничего не загрузить вообще.

Надо делать явный LOAD asdf-а всегда.
ПОтому что require - это стандартизированный механизм,
который расширяется внешними по отношению к стандарту
системами организации систем,
например, тем же ASDF. Ну и понятно, что самим ASDF
ты сам ASDF не загрузиш через require -- надо asdf
грузить LOAD-ом.

Но тут ASDF у тебя уже загружен, потому что иначе не
было бы переменной asdf:*central-registry*

Ещё можно проверить, загружен ли ASDF вызовом

(find-package :ASDF)

если вернёт не NIL -- он загружен.


> CL-USER> (require :cl-html-parse)
>
>
> Далее выдаёт примерно 2900 строк какого-то кода, сообщений. Похоже на
> некую компиляцию,
> сорри, я совсем новенький в CL.

Да, это она и есть. Если бы это была бы не она, строк было бы намного меньше :-)

> Зато потом
>
> (html-parse:parse-html "<dev>xxx</dev>")
>
>
> Работает
>
> ((:DEV "xxx"))
>
>
> Вопрос.
> *Всё ли я делаю правильно?

Похоже, пока да.

Как это теперь использовать в проекте в
> своём?
Нужно ли каждый раз проводить эту процедуру при запуске slime,
> или одного достаточно?*

0) Установи ASDF
1) сделай доступным для него через asdf:*central-registry*
библиотеку cl-html-parse. Это делается либо положением
в один из путей из asdf:*central-registry* символьной ссылки на .asd файл
от cl-html-parse (только в *nix) или прописыванием пути к .asd файлу
в asdf:*central-registry* при старте твоего коммон лиспа (не путать с
emacs -лиспом, они не имеют к друг другу никакого отношения),
последнее обычно делается путём записи этого в стартап-скрипт
твоей реализации лиспа (.sbclrc или .clisprc или ещё куда).

(похоже, всё это у тебя уже почти сделано).

2) сделай описание своей системы на asdf (.asd файл),
пропиши его также для загрузки. В описании своей
системы сделай зависимость от cl-html-parse.

Тогда тебе достаточно будет делать только

(asdf:oos 'asdf:load-op :myprogram)
или
(require :myprogram)

чтобы загрузить свою программу, а cl-html-parse она загрузит
уже сама по зависимостям.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Slime не могу начать использовать cl-html-parse
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]