LINUX.ORG.RU

Сообщения staseg

 

[CL] [Пакеты] Переопределение функции

Привет. Столкнулся с проблемой переопределения функции из наследованного пакета. Мне нужно в своем пакете переопределить функцию своей, которая использует эту функцию. Пример:

(defpackage :x1
 (:use :cl)
 (:export :foo))

(in-package :x1)

(defun foo ()
 (format t "42~%"))


(defpackage :x2
 (:use :cl :x1)
 (:shadowing-import-from :x1 :foo))

(in-package :x2)

(defun foo ()
 (x1::foo)) <- stack overflow

(foo)

Получается бесконечная рекурсия. Если бы x1 не импортировал foo, проблемы не возникло, но как победить эту ситуацию?

 

staseg
()

[Трекер] Ссылка на раздел

Привет!

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

 

staseg
()

[emacs] Подсветка парных скобок

Привет!

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

 

staseg
()

C++ итераторы: признак конца последовательности

Пишу функцию, принимающую строковый итератор, в функции нужно пройтись по всем элементам начиная с указанного до конца. Как определить этот конец при условии, что сама последовательность в функции недоступна, а передавать дополнительный параметр string.end() - не хочется? Попробовал так - работает:

void foo(std::string::const_iterator i){
 for(i;*i!=0;i++)
  printf("%c",*i);
 printf("\n");}

Но я не уверен, есть ли гарантия, что std::string обязана хранить завершающий 0.

staseg
()

[сашбаш] Жобэ упоролся?

Зачем удалил тему? Всякие не менее офтопичные жопсы мрут, их на главной вешают, а в толксах уже и помники нельзя устроить?

www.linux.org.ru/forum/talks/7428046

staseg
()

[CL] Частное против общего, setq VS setf

Привет. Недавно просил оценить пару десятков строк своего кода на лиспе и получил несколько ссылок «как правильно писать». Одним из пунктов было примерно следующее: старайтесь в каждом случае использовать частные решения вместо общих, когда это возможно eq вместо equal, setq вместо setf и т.д. И если со сравнением все понятно - у разных функций разная точность и разная скорость выполнения, - то ситуация с setq и setf не совсем ясна.

С одной стороны я и сам давно привык присваивать значения символам через setq, но борюсь с этой привычкой для однообразного отражения в коде однотипных операций; для присваивания символам setf раскрывается в setq - о производительности речи не идет. С другой стороны, увидел этот совет и задумался: setq и setf и так визуально достаточно похожи, в коде однозначно читаются как «присваивание», зато по setq можно сразу определить, что присваивание происходит просто переменной, а по setf - что это модификация части какого-то объекта.

Кто какого мнение придерживается в данном вопросе и почему?

staseg
()

[gentoo] Dolphin из KDE-4.8 и превьюшки

Привет!

Нет, на этот раз превьюшки не сломались. Ну не так, чтобы совсем. Но они катастрофически маленькие.

http://ompldr.org/vY2h2eA/snapshot27.png

Раньше они были намного больше. Вон сколько пустого пространства вокруг иконок с фильмами. Если увеличением массштаба привести иконки с фильмами до прежнего размера, то иконки с директориями становятся вообще на четверть окна. Как сделать вернуть нормальные размер превьюшек?

В настройках долфина не нашел. Обычно использую kffmpegthumbnailer, пробовал менять на mplayer - не помогло.

 

staseg
()

[emacs] Подсветка синтаксиса C++

Есть ли нормальная система подсветки синтаксиса для емакса? Сейчас используется то ли встроенная, то ли из CEDET - пичалька. Иногда возврашаемое значение функции подкрашивается как объявление переменной (пока такое замечал только на шаблонах), типы-параметры шаблонов часто забываются внутри функции, несколько раз наблюдал глюк при объявлении переменной вида type abc123def, подсвечивалось только abc - в этих случаях вроде бы всегда помогает перезагрузка исходника. Для любых невсторенных типов не работает подсветка заголовка функции void foo(owntype const &x), при этом void(const owntype &x) работает правильно, но тут он вообще игнорит проверку типа и просто подсвечивает любое слово после const.

Есть ли для емакса нормально работающая система подсветки с++?

 

staseg
()

[c++] структура данных типа ассоциативного массива

Привет.

Ищу структура данных, которая делала бы отображение не только ключ->значение, но одновременно и значение->ключ, т.е. я завожу объект, забиваю его уникальными парами ключ-значение и могу получить как ключ по значению, так и значение по ключу.

Интересуют готовые решения из std, Qt или небольшой внешней библиотеки. БД не предлагать :)

 

staseg
()

emacs/slime автодополнение путей файлов

Привет! Продолжаю разбираться с емаксов вообще и слаймом в частности. Натолкнулся на такую проблему: при включенном slime-mode имена файлов автодополняются до абсолютного пути. Например стоит создать временный буфер, включить в нем slime-mode, написать в кавычках ".", после точки нажать таб и эта строка раскроется в «/absolute/path/to/current/dir». Раньше я пользовался более старой версией слайма, такого поведения не было - имена файлов добивались в в виде относительных путей, и я никак не могу ни сообразить, ни нагуглить, как вернуть старое поведение автодополнялки.

staseg
()

[emacs] slime-cd

Привет! Не могу найти, как изменить рабочую директорию CL-рантайма. К примеру создаю в глубинах хомяка файл 1.lisp с содержимым 42 и 2.lisp - (load «1.lisp»), запускаю емакс, M-x slime, открываю файл 2, хочу выполнить ту функцию load и получаю сообщение об ошибке от SBCL: file does not exists. Если указать полный путь - все ОК. В документации нашел функции slime-cd и slime-pwd, но у меня их почему-то нет. Есть просто cd и pwd, но они вроде как отвечают за рабочую директорию самого емакса, игры с ними не помогли. Как заставить это работать с относительными путями?

app-editors/emacs-23.3-r2
app-emacs/slime-2.0_p20080731

 

staseg
()

[поиск игр] Строительный симулятор

Привет! Недавно поиграл в Bau-Simulator 2012, даже с множеством явных косяков игра очень понравилась. А есть ли еще что-нибудь подобное? Гугл на «строительный симулятор» отсылает ко всяким симситям.

staseg
()

Забаньте по айпишнику и фичреквест

Анонимуса, кричащего про хибоя. Я все понимаю, несправедливый бан и все такое, но размазывать свои сопли по всему ЛОРу нехорошо.

//На самом деле я потерял из-за переписки с ним сколько очков скора, у меня дикий баттхерт, пена по всему монитору и хочется страшной мести!11

ПС. Анона в настройках выключать очень не хочется, потому что у него бывают годные комментарии, не видеть которые нежелательно.

(Вообще, если серьзено, будь я модератором, разбанил Ахо взад и строго-строго так сказал, чтоб больше не безобразничал анонимусом)

А теперь обещанный фичреквест: почему бы не запилить игнор по айпишнику? В окошке пользователя добавить кнопку «игнорировать IP-адрес», можно даже с настройкой по какой подсети.

staseg
()

AdBlock Plus разделит рекламу на правильную и неправильную

Чем больше отстегнул, тем реклама правильнее :) Шутка. Надеюсь.

Вторая версия надстройки над браузерами AdBlock Plus, позволяющая удалять со страниц сайтов рекламные блоки, будет пропускать «приемлемые» баннеры. Описание новой функции дано на сайте проекта.

AdBlock Plus позволяет блокировать загрузку баннеров и рекламных блоков по специальному списку. Кроме того, существует возможность добавить «белый лист» блоков, которые будут всегда показываться. Включение «приемлемой» рекламы фактически осуществляется добавлением специально подготовленного «белого листа».

Подробности на ленте

Подробности на оф.сайте

staseg
()

2 User:AlexCones

Ты в вику статью про вм пр. пишешь. Распиши пожалуйста там же о том, что они такое, для чего предназначены и чем друг от друга отличаются по сути (dm от wm и тд.). Много нубских вопросов одним выстрелом можно убить.

Спасибо :)

staseg
()

[CL] format итерации

Привет!

Хочу сгенерировать следующую строку: x=1 or x=2 or x=3.

(format nil "~{x=~a~^ or ~}" '(1 2 3))

А как поступить, если сам «х» я тоже хочу задать в параметрах формата?

http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node200.html курил, курил, но так и не вкурил.

staseg
()

[mysql] Выборка диапазонов дат неизменных значений

Доброе утро!

Табличка с полями

id:INT | datetime: TIMESTAMP | speed: DOUBLE

Это упрощенная табличка трека автомобиля. Иногда автомобиль останавливается, и тогда в базе оказывается несколько подряд записей, в которых speed=0. И мне нужно сделать выборку, как бы сгруппированную по таким диапазонам. В целом нужно узнать время и длительность стоянок. Есть ли решения? Ручная постобработка - в крайнем случае.

 

staseg
()

[PC Games] Посоветуй игру

Вот тут была темка про скайрим, и я задался вопросом. Задал его уже там, но лучше продублирую. Итак. Суть такова. Чтобы в игре была развитая система магии, колдовства и прочей эзотерической нечести. Всякие друиды, монахи, маги, некроманты, все вместе или по отдельности - не важно. Чтобы можно было самому создавать заклинания из какого-то большого набора базовых заклинаний или еще что-нибудь необычное. Чтоб не просто штамповать фаерболлы, а с умом, с фантазией. Может быть с соблюдением всяких физических законов вроде пламя плавит лед, а растаявшая вода тушит огонь. Или испаряется. Или огонь выжигает нафик деревушку. Вообще это уже мысль куда-то не туда пошла, главное - магия!

Естественно, можно грабить корованы, набигать домиками на стражей и т.д.

staseg
()

[C++] Автоматическая правка кода

Здравствуйте!

Мне нужно обработать исходный код на С++ и привести его в божеский, как считает заказчик, вид. А это отступы табами, выравнивание скобочек и еще какая-то мелочь, с этим справится astyle. Но второй пунктик: венгерская нотация. Есть ли что-нибудь, автоматизирующее сей увлекательный процесс? Сейчас склоняюсь к написанию велосипеда, после которого скорее всего придется еще немного руками подправить код, но в целом наверное с задачей справится. Но может быть есть что-то готовое? Я даже не знаю по каким ключевым словам гуглить этот вопрос.

На чем будет написана тулза не важно, лишь бы что-нибудь до селе поддерживаемое. Можно и под вражескую ось :)

 

staseg
()

[CL] ECL и кодировки

Привет!

Разбираюсь с ECL. Все были ничего, пока не потребовалось работать с русскими словами, их нужно уметь вводить и выводить из скриптов на лиспе.

1. Ввод

int main(int argc,char **argv){
 cl_boot(argc,argv);
 cl_object obj=c_string_to_object("\"Привет!\"");
 cl_funcall(2,c_string_to_object("print"),obj);//печатаем "ÐÑивеÑ!"
 printf("\n");
 cl_eval(c_string_to_object("(format t \"~a~%\" \"Привет!\")"));//печатаем ÐÑивеÑ!
 /*
  * $ cat test.lisp
  * (format t "~a~%" "Прииивет!")
  */
 cl_eval(c_string_to_object("(load \"test.lisp\")"));//печатаем правильно
 printf("Привет!\n");//печатаем правильно
 cl_shutdown();
 return 0;}
Как побороть ecl и заставить его правильно понимать вводимые из исходника данные?

2.

/*
 * $cat test.lisp
 * (defun foo() "Прииииивет!")
 */
cl_eval(c_string_to_object("(load \"test.lisp\")"));
cl_object obj=cl_funcall(1,c_string_to_object("foo"));
printf("%s\n",obj->string.self); //пусто. если из фу возвращать "foo", все ок

Смотрел в EQL функции toCString и toQString (вроде так называются) (да, вариант с использованием Qt вполне подойдет), но получал абракадабры, один раз что-то вроде ÐÑивеÑ!, второй - одни знаки вопросов.

Я сейчас разбираюсь в исходниках екаэля, но на это может йти много времени. Если кто сталкивался или просто имеет веское мнение, варианты решения приветствуются. Судя по докам ECL полностью реализует анси-коммон-лисп, поэтому решение из более традиционных sbcl и clisp может быть тоже подойдут...

Локаль в системе en_US.UTF-8.

staseg
()

RSS подписка на новые темы