LINUX.ORG.RU

Сообщения Aswed

 

Ассемблерные ошибки при компиляции С кода

У меня такая ситуация:

Есть функция:

void $lambda_1(Registers* registers, FunEnv *env, Var c) {
    NEW_INT(registers, registers->result, GET_INT(env->outers[0]) + GET_INT(c));
}

void make_lambda(Registers* registers, Var a) {
    FunEnv* new_env;
    OO_Lambda_new((void*)&$lambda_1, registers, (int)1, &new_env);
    ...
}

Если закоментировать вызов OO_Lambda_new, то все ок. С самим вызовом, при сборке компилятор выдает.

/tmp/ccyO0QEF.s: Assembler messages:
/tmp/ccyO0QEF.s:305: Error: junk `(%rip)' after expression
/tmp/ccyO0QEF.s:305: Error: operand type mismatch for `lea'

Меня эта ошибка вводит в ступор, так как у меня в коде нигде нет ассемблерных вставок и ранее, на другой машине, в gcc все компилировалось ок. Я бы решил, что это баг в gcc, но clang тоже выдает такую ошибку. Это не единственное использование OO_Lambda_new в коде, и в других местах проблем с ней нет.

Чем пробовал собирать:
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

У кого есть мысли? какую информацию нужно предоставить для анализа?

 , ,

Aswed ()

Теория вероятностей

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

 

Aswed ()

Где найти словарь ударений в удобном для парсинга формате?

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

 , ,

Aswed ()

tkinter не рисует картинки

Я тут делаю простенький гуй на ткинтере, но вот эта зараза не хочет никак рендерить картинки. Я делаю так

        pic = tkinter.PhotoImage(self.path)
        self.canvas.create_image(0, 0, image=pic)
Или так
        pic = PIL.ImageTk.PhotoImage(PIL.Image.open(self.path))
        self.canvas.create_image(0, 0, image=pic)

В обоих случаях никаких исключений не выбрасывается, но картинка не рисуется. Пробовал jpg и png. ЧЯДНТ?

 , ,

Aswed ()

Почему iw может не видеть сеть?

У меня есть очень своеобразный девайс на QNX, который умеет раздавать вайфай. Мне нужно приконнектится к нему с opangePI с вайфай адаптером. Пытаюсь сделать это через iw, но не вижу сетку. При том, что другие сетки вижу. Я бы решил что девайс просто не работает, но сетка видна с телефона. Почему ее может не видеть iw? Куда копать? Сканирую так

sudo iw dev wlx74da38de33cd scan | grep SSID

 , ,

Aswed ()

Ассемблерные ошибки при сборке GCCшкой

Привет. У меня есть небольшой just-for-fun проект. Под линуксом все собирается и работает ок, а под виндой при компиляции(или линковке?) виндовой gcc выпадает ошибка

C:\Users\user\AppData\Local\Temp\ccF9IWCB.s: Assembler messages:
C:\Users\user\AppData\Local\Temp\ccF9IWCB.s:343: Error: junk `(%rip)' after expression
C:\Users\user\AppData\Local\Temp\ccF9IWCB.s:343: Error: operand type mismatch for `lea'
В параметрах компиляции ничего необычного
-Wall -g -O0
Фишка в том, что у меня в исходниках нет ни одной ассемблерной вставки, я даж не знаю на какую часть кода жаловаться. Любезные GCC сеньоры, подскажите мне, куда копать.

 , ,

Aswed ()

Как правильно в rustdoc?

Друзья растаманы, подскажите как правильно пользоваться rustdoc. У меня есть cargo проект. Я делаю cargo doc и генерируется дока только для main.rs. Как сгенерить для всех модулей? ЧЯДНТ?

 ,

Aswed ()

pytest force html report

Есть такая ситуация. У нас фреймворк на питоне, который работает через pytest. pytest генерит годные отчеты опциями --html и --junitxml. Но люди которые пользуются нашим поделием не всегда пишут эти аргументы. Можно как-нибудь фикстурами проставить дефолтные значения этих параметров для pytest, что бы отчеты генерились всегда при использовании нашего фреймворка?

 , ,

Aswed ()

qemu в Armbian

Дублирую вопрос с /admin, так как там не ответил никто.

У меня стоит armbian на orange pi, мне нужно вкрутить туда qemu. Qemu есть в репах, но когда я пытаюсь ее поставить aptitude-ом начинает тянуть за ним libpulse0. И все падает с

Err http://ports.ubuntu.com xenial-updates/main armhf libpulse0 armhf 1:8.0-0ubuntu3.4
  404  Not Found
Я нагуглил что с libpulse0 в arm вообще какие-то проблемы. При этом реальная функциональность pulseaudio в том, что мне нужно запускать посредством qemu мне не нужна. Как мне можно это обойти? Собирать руками из исходников pulseaudio на ARM-e не вариант.

 , , , ,

Aswed ()

qemu в Armbian

У меня стоит armbian на orange pi(там ARM если что), мне нужно вкрутить туда qemu. Qemu есть в репах, но когда я пытаюсь ее поставить, aptitude начинает тянуть за ним libpulse0. И все падает с

Err http://ports.ubuntu.com xenial-updates/main armhf libpulse0 armhf 1:8.0-0ubuntu3.4
  404  Not Found
Как мне можно это обойти?

P.S. не уверен, что в правильной ветке форума, перенесите если что.

 ,

Aswed ()

x86_64 драйвер на arm

Привет Лор. У меня такая ситуация. Есть usb свич от acroname. Мне нужно управлять им с orange pi. Свитч не открывает в системе последовательного порта работать с ним можно только через официальный dev kit. Dev kit есть под линукс, вот только там всего две архитектуры x86_64 и i686. Dev kit как вы уже поняли бинарный, там только .so да хедеры. Ну и инструкция как пользовать. А у меня orange pi на armv7. С поддержкой акронейма я уже пообщался, они мне любезно говорят: «не используйте orange pi, там usb стек вообще плохой», но я им не верю. Есть ли какая-нибудь костыльная возможность бинарники другой архитектуры в линуксе, при условии что бинарники делают что-то около драйверовое?

P.S. Сам dev kit https://acroname.com/software/brainstem-development-kit

 , ,

Aswed ()

python package data

Подскажите пожалуйста, как включить в свой пакет, который собирается с помощью setuptools файлы не являющиеся .py, и как их потом открыть из питона. Вроде как нужно добавить package_data в setup.py что б включить дату в пакет. А что дальше-то?

 

Aswed ()

python kill thread

У меня есть такая проблема. Есть скрипт на питоне, он использует библиотеку что б работать с valueCAN железкой. Внутри библиотеки запускается собственный тред, который что-то делает и он не тормозится автоматом. В линуксе когда отрабатывает MainThread приложение завершается и все отлично. В винде же, где все через одно место, после завершения MainThread, питон повисает в ожидании когда завершится тред из библиотеки. Я этот тред могу найти через threading.enumerate(). Можно ли как-нибудь остановить его, не внося руками изменения в код библиотеки? Или сконфигурить питон, что б он работал как в линуксе?

 , ,

Aswed ()

python package version

Скажите пожалуйста как из кода пакета узнать его версию? Т.е. у меня есть пакет. В setup.py есть указание версии

setup(
    ...
    version = '0.1',
    ...
)
Внутри кода пакета в определенный момент запускается логер, и я хочу, что бы логер указал в логах версию пакета, который был использован. Как мне получить то, что я указывал в setup.py?

 

Aswed ()

python delayed assert

Я тут пишу тесты с использованием pytest, в которых из скрипта опрашиваю железку разными ассертами. Но после каких либо изменений на железке, ось может не сразу вдуплить изменения. Например флешку вставили, а железка ее увидела через секунду, две или полсекунды. И мне нужен, механизм, который работал бы так.
* даю ассерт
* если условие True, идем дальше
* если условие False, вычисяляем условие еще N раз с задержкой M, до первой ситуации, когда условие True. Если такой ситуации не возникло, то уже полноценно ассертим False.
Гугления по delayed assert приводят меня вот к этой либе, но это совсем не то

 

Aswed ()

pytest редактирование отчета

Всем привет. Я тут пишу тесты для железа с использованием pytest. В процессе тестрирования железяки скипты собирают логи которые выдает железяка и складывают их на ней же в специальной папке. По окончании тестов pytest генерирует junit-xml ку, с отчетом. Я хочу включить в эту xml инфу о том, где лежат логи, и какой лог соответствует какому тесту. Как можно добавить эту инфу в xml? Проблема собсна в том, что pytest генерит ее полностью автоматически и после того как мои скрипты отработали, так что даже самый тупой вариант в виде прочитать-распарсить-обновить-переписать просто так не реализуешь.

 ,

Aswed ()

Дроны и глушилки.

Я тут вчера прочитал очередной топик про битву дронов и глушилок. Мне вот интересно, почему противодроновые ружья именно глушат сигналы? Я так понимаю, что перед ними не стоит задачи посадить дрон в целости и сохранности. Почему не используют направленное микроволновое излучение или вообще мазер. От микроволн же электроника горит на ура, а электронику с антенной еще и фиг экранируешь от такого. Или иные разрушающие ЭМ импульсы. Это требует каких-то запредельных энергий или сильно затратно в производстве? Кто умеет в физику просвятите пожалуйста.

 ,

Aswed ()

python, telnet через com порт

Здравствуйте. У меня есть такая проблема. Есть железка, которую можно подрубить к машине по usb. После этого она отображается в системе как подключенная по COM порту. Далее, используя Tera Term конекчусь к ней через telnet по этому COM порту и тогда могу посылать железке(там QNX) команды терминала.
Мне нужно написать скрипт на питоне который так же будет общаться по телнету с железкой. Кто-нибудь знает как в питоне развернуть telnet соединение через COM порт?
Вышеописанная схема мной сейчас проворачивается под шиндошс. Однако потом ко мне подъедет rasberry pi и скрипт будет крутиться там. Так что linux-only решения так же вполне подойдут.

 ,

Aswed ()

раскрытие рекурсии в расте(lifetime)

Дорогие растовчане. У меня есть к вам вопрос. Я неоднократно сталкивался с проблемой замены рекурсии на цикл в расте. Например вот такая абстрактная ситуация:

struct Lazy<T> {...}

impl<T> Lazy<T> {
	fn force(&mut self) -> &mut T {...}
}

struct InfLazyList<T> {
	head : T,
	tail : Lazy<InfLazyList<T>>
}

impl<T> InfLazyList<T> {
	fn index(&mut self, i : usize) -> &T {
		if i == 0 {
			&self.head
		} else {
			self.tail.force().index(i - 1)
		}
	}
}
Как бе все норм. Но хочу следать индексирование итеративным.
	fn index(&mut self, i : usize) -> &T {
		let mut top : &mut InfLazyList<T> = &mut self;
		while i > 0 {
			top = top.tail.force();
		}
		&top.head
	}
Ну и сразу «cannot assign to `top` because it is borrowed». Есть какой-то способ сделать это не прибегая к unsafe?

 

Aswed ()

freebsd инет через proxy

Всем привет. Я тут накатил на виртуалку в офисе bsd. А у нас тут для инета надо подкрутить местное прокси. Я добавил в .csshrc и /etc/make.conf строки

setenv http_proxy user:pass@serverip:port
setenv HTTP_PROXY user:pass@serverip:port
setenv ftp_proxy user:pass@serverip:port
setenv FTP_PROXY user:pass@serverip:port
и
FETCH_ENV=http_proxy=user:pass@serverip:port
FETCH_ENV=HTTP_PROXY=user:pass@serverip:port
FETCH_ENV=ftp_proxy=user:pass@serverip:port
FETCH_ENV=FTP_PROXY=user:pass@serverip:port
соответственно. Но make install в портах не работает. И станно ведет себя пинг. А именно
ping distcache.FreeBSD.org
все ок
ping http://distcache.FreeBSD.org
cannot resolve unknown host

 ,

Aswed ()

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