ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Mikhail Zabaluev <mhz@altlinux.org>
To: devel@altlinux.ru
Cc: Alexey Voinov <voins@voins.program.ru>
Subject: [devel] Re: alternatives
Date: Sun, 30 Mar 2003 15:35:40 +0400
Message-ID: <20030330113540.GA1430@mhz.mikhail.zabaluev.name> (raw)
In-Reply-To: <20030330074431.GA2006@voins.local>

[-- Attachment #1: Type: text/plain, Size: 2717 bytes --]

Hello Alexey,

On Sun, Mar 30, 2003 at 11:44:31AM +0400, Alexey Voinov wrote:
>
> > > на glib2 (1207356) и

Без GObject и пр. имеем:

-rwxr-xr-x    1 root     root       435172 Фев  5 07:42 /usr/lib/libglib-2.0.so.0.200.1

Сам пакет большой, но в runtime это довольно компактная библиотека.

> > Нужно учесть ещё накладные расходы на порождение кода из шаблонов.
> > std::map<foo, bar> вряд ли даётся бесплатно.
> Всё решается во время компиляции.
> 
> Пример простого шаблона:
> template <int i>
> 	struct f { static const int r = i * f<i-1>::r; };
> 
> template <>
> 	struct f<0> { static const int r = 1; };
> 
> Так вот, f<5>::r при компиляции заменяется костантой 120, а
> f<10>::r --- 3628800. Где накладные расходы от шаблонов?
> Я не вижу.

Я говорил об std::map и других не вполне тривиальных классах.

> > > переходе на менее удобный (для того, кто это пишет)
> > > синтаксис? :)
> > Более удобно -- это там, где опасным и неинтуитивным образом
> > переопределяются операторы непонятно для чего? ;)
> Конкретный пример можно? Оператор [] у std::map переопределён
> неинтуитивно?

Класс Ing::FileSystem переопределяет * и ++ явно в целях
конспирации. Правильный operator++ должен возвращать отнюдь не bool.
Кстати, если уж переопределять ++, принято ещё и постфиксную форму
предоставлять.
Непонятно, почему вообще немудрёный итератор
по файловым деревьям назван FileSystem.
И почему у него семантика линейного итератора. Мне известны
как минимум два способа обхода дерева, см параметры утилиты
file. Файловые ссылки добавляют неопределённости.
Негибкий этот класс и в других отношениях: всегда делает fstat,
нужно это или нет (тем более что fts_* вроде бы предоставляют
и эти данные). В-общем, я не увидел здесь _полезного_
использования C++.

> > > В чём преимущество предложенного?
> > В том, что не надо думать, каким компилятором собраны
> > библиотека и приложение. У нас сейчас полно головной
> > боли из-за gcc 2.96 и gcc 3.2. А если кто-нибудь,
> > не дай бог, захочет использовать компилятор Intel?
> > Стандартный ABI уже есть, но он молод и недостаточно
> > отлажен, не говоря уж о реализациях.
> Не надо думать. У нас стандартный компилятор gcc3.2.

Разработчики GCC пока не дали гарантии, что C++ ABI версии 3.2
окончательный.

> Я скажу так: я начал делать свой вариант альтернатив на C (и без glib2),
> но потом решил, что продуктивнее будет слать патчи к тому, что уже есть.
> Постепенно это можно довести до очень неплохого состояния.

Да, вероятно.
Можно было бы постепенно сводить классы к их заменам на C.
В отсутствие наследования это будет нетрудно.

-- 
Stay tuned,
  MhZ                                     JID: mhz@altlinux.org
___________
Sinners can repent, but stupid is forever.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2003-03-30 11:35 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-29 13:11 [devel] alternatives Mikhail Zabaluev
2003-03-29 16:24 ` [devel] alternatives, security issues of Mikhail Zabaluev
2003-03-29 16:46   ` Ivan Zakharyaschev
2003-03-29 21:34     ` [devel] " Mikhail Zabaluev
2003-03-29 19:15   ` [devel] " Alexey Voinov
2003-03-29 17:56 ` [devel] alternatives Alexander Bokovoy
2003-03-29 19:41 ` Alexey Voinov
2003-03-29 21:27   ` [devel] alternatives Mikhail Zabaluev
2003-03-30  7:44     ` Alexey Voinov
2003-03-30 11:35       ` Mikhail Zabaluev [this message]
2003-04-01  7:44         ` Stanislav Ievlev
2003-03-30 20:01 ` [devel] alternatives Igor Tertishny
2003-03-30 20:20   ` [devel] alternatives Mikhail Zabaluev
2003-03-30 22:07     ` Dmitry V. Levin
2003-03-31  7:29 ` [devel] alternatives Stanislav Ievlev
2003-03-31 23:09   ` [devel] alternatives Mikhail Zabaluev
2003-04-01  7:37     ` Stanislav Ievlev
2003-04-01 12:14       ` Mikhail Zabaluev
2003-04-01 13:00         ` Dmitry V. Levin
2003-04-01 19:13           ` Mikhail Zabaluev
2003-04-01 19:59             ` Dmitry V. Levin
2003-04-01 20:16               ` Mikhail Zabaluev
2003-04-01 20:23                 ` Mikhail Zabaluev
2003-04-01 20:30                 ` Dmitry V. Levin
2003-04-02  6:57               ` Michael Shigorin
2003-04-01 19:26       ` Mikhail Zabaluev
2003-04-01 10:36   ` [devel] no black box (was: alternatives) Michael Shigorin
2003-04-01 12:00   ` [devel] Re: alternatives Vitaly Ostanin
2003-04-02  6:55 ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030330113540.GA1430@mhz.mikhail.zabaluev.name \
    --to=mhz@altlinux.org \
    --cc=devel@altlinux.ru \
    --cc=voins@voins.program.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git