LINUX.ORG.RU

Сообщения KennyMinigun

 

Как изменить target по умолчанию в Clang?

Форум — Development

Есть Clang на оффтопике:

C:\Users>clang++ --version
clang version 8.0.0 (tags/RELEASE_800/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin

По умолчанию он хочет стандартную либу от M$:

C:\Users>clang++ hello.cpp -o hello-clang.exe
clang++: warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt [-Wmsvc-not-found]
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^~~~~~~~~~
1 error generated.

У меня есть MinGW, который я хочу чтоб Clang использовал. Однако надо явно подать аргумент --target:

C:\Users>clang++ --target=x86_64-pc-windows-gnu hello.cpp -o hello-clang.exe

C:\Users>hello-clang.exe
Hello, World!

Можно ли поменять конфигурацию Clang так, чтоб он по умолчанию выбирал target: x86_64-pc-windows-gnu? В интернетах нашел только как пересобрать Clang с таким конфигом. Не очень хочется пересобирать :/ Может есть какая-то переменная среды или текстовый конфиг чтоб поменять умолчания?

 ,

KennyMinigun ()

Установка GNU/Linux в Hyper-V

Форум — Linux-install

Пытаюсь завести Kubuntu 19.04 в мелкомягкой поделке (не спрашивайте почему). Перебираю опции, чтоб машина заработала.

Если устанавливаю как «Generation 1», то LiveDVD загружается до графической менюшки «Try Kubuntu/Use Kubuntu». Try Kubuntu зависает, Install Kubuntu устанавливает, но потом не запускается (тоже зависает).

В «Generation 2» они включают UEFI с проверкой сертификатов (о б-же проверка сертификата для VM (sic!)), и LiveDVD не проходит проверки. Соответственно, не запускается. Одако, для «Generation 2» они обащеют дополнительные фичи виртуализации. Да-да, тот самый Microsoft’овский EEE в действии.

Сейчас думаю, может под Generation 2 таки заработает. Только надо пройти проверку сертификата. Вроди ж LTS релизы должны проходить?

Сорри за нубский вопрос, но может кто-то уже сталвивался и не надо будет копать глубже?

 , ,

KennyMinigun ()

Firefox Premium. А вы готовы заплатить?

Форум — Talks

Согласно с материалом статьи https://www.omgubuntu.co.uk/2019/06/firefox-premium-would-you-pay Mozilla планирует платную Premium подписку на услуги связанные с повышением приватности в сети (напр. VPN). Базовый функционал как был останется безплатным.

Интересно, что такой жест даст Мозилле?

 , ,

KennyMinigun ()

Обновлена страничка KDE Applications

Новости — KDE
Группа KDE

Актуализирована и переработана страничка со списком KDE Applications. Список приложений пересмотрен, неподдерживаемые приложения перенесены в соответствующую категорию. Обновлены описания приложений.

>>> Новая страничка

 ,

KennyMinigun ()

Мультиуровневый bsearch, нужно ли?

Форум — Development

Мои исходные данные – массив структур с географической информацией:

struct Geo {
  std::string airport;  // level: 1
  std::string city;     // level: 2
  std::string province; // level: 3
  std::string nation;   // level: 4
  std::uint8_t subarea; // level: 5 | values: 11, 12, 13, 14, 21, 22, 23, 31, 32, 33, 34
  std::uint8_t area;    // level: 6 | values: 1, 2, 3
};

Надо много (и желательно быстро) отвечать на запрос «принадлежит ли Needle к Haystack». Где Needle всегда более специфично нежели Haystack, например:

belongsTo(Needle=City{Munich}, Haystack=Subarea{21}) -> true

Я думаю посортировать данные иерархически:

std::vector<Geo> geos = allGeos();
std::sort(geos.begin(), geos.end(), 
  [](const Geo& lhs, const Geo& rhs) {
    int areaCmp = lhs.area - rhs.area;
    if (areaCmp != 0)
      return areaCmp < 0;

    int subareaCmp = lhs.subarea - rhs.subarea;
    if (subareaCmp != 0)
      return subareaCmp < 0;

    int countryCmp = lhs.nation.compare(rhs.nation);
    if (countryCmp != 0)
      return countryCmp < 0;

    int provinceCmp = lhs.province.compare(rhs.province);
    if (provinceCmp != 0)
      return provinceCmp < 0;

    int cityCmp = lhs.city.compare(rhs.city);
    if (cityCmp != 0)
      return cityCmp < 0;

    return lhs.airport.compare(rhs.airport) < 0;
  }
);

И потом использовать bsearch() по партициям типа Needle на пути от Haystack. Т.е (псевдокод):

int level = levelOf(Haystack);
std::vector stack{ Range{geos.begin(), geos.end()} };

while (!stack.empty()) {
  Range partition = stack.back();
  if (partition.empty()) {
    stack.pop_back();
    ++level;
  }

  // depth-first
  if (level > levelOf(Needle)) {
    iterator begin = partition.begin();
    iterator end = lower_bound(begin, partition.end(), valueOf(*begin, level));
    stack.push(Range{begin, end})
    level -= 1;
    continue;
  }

  // level == levelOf(Needle)
  if (bsearch(partition, Needle))
    return true;

  // trim parent's begin()
  stack.pop_back();
  stack.back().begin() = partition.end();
  ++level;
}

Где level обозначает поле из Geo, соответсвенно комментарию.

Вопрос такой: может есть алгоритм (или структура данных) лучше подходящая под цель?

 ,

KennyMinigun ()

Подскажите контейнер для const обьектов

Форум — Development

Все прекрасно знают (или сейчас узнают), что std::vector не умеет в const T. Хотя, вполне себе можно представить как такой контейнер будет себя вести:

  • под капотом std::aligned_alloc
  • добавляем через emplace_back(Args&&), который делает placement new
  • operator[] отдает через std::launder (C++17)

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

Есть ли что-нибудь на замену std::vector, чтоб самому не писать? Может boost?

 ,

KennyMinigun ()

Конкурс обоев для KDE Plasma 5.16

Новости — KDE
Группа KDE

В связи с запланированным выходом Plasma 5.16 команда KDE оглашает конкурс на лучшее фоновое изображение для предстоящего релиза.

В 5.16 запланированно полирование множества аспектов Plasma а также добавление нового фукнкционала. Появится режим «Не тревожить», более развитая история уведомлений и групирование, критические уведомления могут быть показаны даже при запущенном полноэкранном приложении, улучшения уведомлений файловых операций. Вишенкой на торте будет значительно улучшеная страничка «Системных настроек» для конфигурирования новых возможностей. Также, страничка «Система и Виджеты» (System and Widget Settings) была портирована на фреймворк Kirigami.

Как обычно, команды VDG (Visual Design Group) и команда Plasma Usability & Productivity продолжают работу по обработке отзывов пользователей и улучшению общего процесса работы с KDE Plasma.

Конкурс

Впервые, команда KDE оглашает конкурс на фоновое изображение рабочего стола по умолчанию: каждый может принять участие. Победитель получит компактный PC Slimbook One v2 (12.4 x 12.8 x 3.7 cm) c Core i5 и 8GB RAM на борту. Естественно, на компьютере будет установлена KDE Plasma 5.16 с вашим фоновым рисунком.

Правила конкурса размещены на страничке wiki: https://community.kde.org/KDE_Visual_Design_Group/Plasma_5.16_Wallpaper_Competition

Подача ваших изображений через специальный пост на форуме: https://forum.kde.org/viewtopic.php?f=312&t=160487

Финальный срок подачи 29/05/2019.

>>> Подробности

 , , ,

KennyMinigun ()

Просьба срочной публикации новости

Форум — Linux-org-ru

Сабж: Конкурс обоев для KDE Plasma 5.16

Дедлайн конкурса очень даже скоро: 29 мая. Чем раньше опубликуется новость, тем больше у людей времени.

Благодарю!

cast @Shaman007 @jollheef @CYB3R

 , ,

KennyMinigun ()

Krita падает на Qt 5.12

Форум — Desktop

Падает с приблизительно таким сообщением:

free(): double free detected in tcache 2

Предыдущие строчки лога чаще всего не повторяются, так что думаю, что к ошибке не относятся. Но на всякий случай пример лога: https://paste.ubuntu.com/p/Cd8VsRT28W/

Покопавшись в инетах, я нашел похожий по симптомам багрепорт: https://bugzilla.redhat.com/show_bug.cgi?id=1666197

Который, в свою очередь, отсылает к: https://bugreports.qt.io/browse/QTBUG-72488

На реддите пишут, что в мейнстриме Krita уже заворкераундили: https://www.reddit.com/r/krita/comments/aanv5s/krita_crashes_when_opening_new_file/

В связи с чем реквест к @Sunderland93. Можете залить свежую версию для Ubuntu Disco в Krita Lime PPA? Спасибо заранее.

 , ,

KennyMinigun ()

C++ обошел Python по популяности

Форум — Talks

Как сообщает https://www.technotification.com/2019/04/c-knocks-python-out-of-top-three.html

согласно индексу TIOBE C++ переместился на третье место по популяности. Взрастание популярности вероятно обусловлено изменениями в стандарте начиная с C++11 и поддержкой среди «главных» компиляторов: GCC, Clang и Visual Studio.

 , ,

KennyMinigun ()

is_assignable<int, int> == false

Форум — Development

Сабж. Но почему?

#include <type_traits>
int main() { return std::is_assignable_v<int, int>; }
// --> 0

https://wandbox.org/permlink/59MyGGpqRz2q1zzq

 ,

KennyMinigun ()

Накладывает ли LGPLv3 ограничения на производимые результаты?

Форум — Development

Вопрос таков: если использовать инструмент под LGPLv3, то можно ли считать произведенные им результаты «work based on»?

https://choosealicense.com/licenses/lgpl-3.0/

https://www.gnu.org/licenses/gpl-3.0.en.html

A “covered work” means either the unmodified Program or a work based on the Program.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

Например, подпадает ли код (текст) написанный в Qt Creator (Community) под определение «covered work»? Причем, код не использует Qt.

 , , ,

KennyMinigun ()

Милота

Форум — Talks

Листал я тут lorquotes. Глядите, что нашел http://www.lorquotes.ru/quotes-autor.php?id=56

Вице президент компании, Джеймс Гослинг, аргументировал данное решение тем, что потенциал мобильных устройств вырос, и настало время, когда они могут справиться с полнофункциональной версией Java.

В телефоны стали ставить двухядерные процессоры с гигом оперативной памяти? Я что то пропустил?
JB (*) (24.10.2007 04:54:21) (Источник)

Если это не вызывает у вас умилительную улыбку на лице, тогда…

 , , ,

KennyMinigun ()

Такое вообще легально?

Форум — Development

Есть шаблонная декларация с возвращаемым типом auto и без «trailing return type». GCC и Clang едят. Такое вообще легально?

Код:

foo.h

#pragma once

#include <string>
#include <utility>

class Foo {
public:
  explicit Foo(std::string name) : _name{std::move(name)} {}

  void bar() const;

private:
  template <typename Callback>
  auto wrap(Callback&& c) const; // <-- !!!
  
  const std::string _name;
};

foo.cpp

#include "foo.h"

#include <iostream>

template <typename Callback>
auto Foo::wrap(Callback&& c) const {
  return [&]() {
    std::cout << "das ist ein Wrapper aus " << _name << '\n';
    c();
  };
}

void Foo::bar() const {
  auto f = wrap([]() { std::cout << "das is ein Lambda\n"; });
  f();
}

main.cpp

#include "foo.h"

int main() {
  Foo foo{"Foo #1"};
  foo.bar();
}

Выводит (как и задумывалось):

das ist ein Wrapper aus Foo #1
das is ein Lambda

GCC: https://wandbox.org/permlink/jXIrkG0U13I9ZRnP
Clang: https://wandbox.org/permlink/6hs2OoxNpzhnu9iX

 ,

KennyMinigun ()

Симулятор трусов

Форум — Games

Разыскиваются поигрульки c более-менее внятным графонием по типу Nier Automata или Tomb Raider. Чтоб главная героиня (или со-героиня) постоянно была в кадре. Жанр не важен. Дискач

 ,

KennyMinigun ()

Не уверен баг ли в GCC или нет

Форум — Development

Есть код с C++Weekly от Jason Turner (только немного изменены имена): https://wandbox.org/permlink/EWlifMBMhvBhSn5B

Info: http://eel.is/c++draft/temp.variadic#5

template <typename... Functors>
struct CompositeVisitor : public Functors...
{
#if 1
  template <typename... Args>
  CompositeVisitor(Args&&... args) : Functors{std::forward<Args>(args)}...
  {
  }
#endif

  using Functors::operator()...;
};

template <typename... Functors>
CompositeVisitor(Functors...) -> CompositeVisitor<std::decay_t<Functors>...>;

struct Foo {};
struct Bar {};
struct Baz {};

int main() {
  CompositeVisitor visitor{
    [](const auto&) { std::puts("got some part"); return true; },
    [](const Bar&) { std::puts("got Bar"); return false; }
  };
  
  Foo foo;
  Bar bar;
  Baz baz;
  
  visitor(foo);
  visitor(bar);
  visitor(baz);
}

Clang собирает и работает, GCC не хочет:

prog.cc: In instantiation of 'CompositeVisitor<Functors>::CompositeVisitor(Args&& ...) [with Args = {main()::<lambda(const auto:1&)>, main()::<lambda(const Bar&)>}; Functors = {}]':
prog.cc:30:3:   required from here
prog.cc:11:72: error: mismatched argument pack lengths while expanding 'Functors'
   11 |   CompositeVisitor(Args&&... args) : Functors{std::forward<Args>(args)}...
      |                                                                        ^~~

Если подать типы Functors explicit, то собирается. Только с лямбдами немного накладно сделать.

Баг ли?

 , , ,

KennyMinigun ()

Unlegacy AOSP 9.0 + OpenGapps на Nexus 5

Форум — Mobile

Накатил тут на Nexus 5 сборку от Unlegacy: https://forum.xda-developers.com/showpost.php?p=74514638&postcount=3

Однако GApps отказывается ставиться:

Open GApps micro 9.0 - 20190303
 
- Mounting  /persist /system
 
- Gathering device & ROM information
 
*** Incompatible Android ROM detected ***
 
This GApps pkg is for Android 9.0.x ONLY
Please download the correct version for
your ROM: 5.1.1 (SDK 22)

Прикол в том, что даже factory image для девайса не 5.1 (a 6.0)

На форуме и в интернетах ответа не нашел. Может есть кто подскажет чего?

cast @DATRAT

 , , ,

KennyMinigun ()

LLVM 8.0 почти вытужили

Форум — Development

На официальном http://llvm.org по графику:

  • 8.0.0:
    • Jan 16: Branch point, rc1
    • Feb 6: rc2
    • Feb 27: final

Но релиза все еще нет: https://prereleases.llvm.org/8.0.0/

На форониксе уже 26-го зафигачили новость: https://www.phoronix.com/scan.php?page=news_item&px=LLVM-Clang-8.0-Features

Кому там скор надо? Расчехляйте машину времени и вперед новость писать!

 , , , ,

KennyMinigun ()

Пользуетесь ли вы локализацией в специализированном ПО?

Голосования — Голосования

Речь идет о ПО с наличием специальной терминологии. Как например Blender, Kdenlive, IDE, Inkscape, GIMP, Krita, etc.

  1. Нет542 (66%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Да263 (32%)

    ***********************************************************************************************************************************************************

  3. Свой вариант в комментариях17 (2%)

    **********

Всего голосов: 822

>>> Результаты

 , ,

KennyMinigun ()

Разочарованным в BMTH - amo

Форум — Talks

Речь о последнем альбоме Bring Me The Horizon под названием amo. Кто в теме, знает насколько «другой» данный альбом.

Так вот, тут недавно одна неплохая группа из Deutchland сделала из nihilist blues нечто: https://www.youtube.com/watch?v=VLGRymyT-mM

Enjoy!

А линукс тут при том, что смотри теги.

 , ,

KennyMinigun ()

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