Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3562
Leonid
ничего нам этого не надь, нам бы провославный Delphi7 вернуть под Вынь10

В смысле - вернуть? Delphi5,6,7 отлично работают под последней сборкой Вынь10 (и всеми предыдущими). Скоро, кстати, Fluent Design поддерживать научатся
13 июн 18, 14:20    [21488438]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3562
SOFT FOR YOU
имитация динамических массивов и строк через память на стеке

Я дин. выделение памяти стараюсь вообще не использовать, если важна скорость. Не то, что "имитирую".
Недавно сервер написал на пару сотен клиентов. По потоку на клиента.
Так вот - в нём (в клиентских потоках) нет ни единого выделения памяти - всё на стеке (которого хватило 64k на поток). Т.ч. и "лок-фри менеджер памяти" не пригодился :)
13 июн 18, 17:18    [21489091]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9598
Leonid
но Дельфи за пределами бывшего Совка И Латинской Америки и почему-то Австралии вообще крайне редко где использовали, а теперь так и вообще позабыли.

Не надо свои заблуждения выдавать за истину. Все сильно иначе ...
13 июн 18, 17:19    [21489093]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
YuRock,

Это во-первых, потому, что логика простая
А во-вторых, такое количество потоков - тоже не есть гуд
13 июн 18, 17:26    [21489113]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину
13 июн 18, 17:30    [21489127]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3562
SOFT FOR YOU
Это во-первых, потому, что логика простая

Ну смотря с чем сравнивать. Аутентификация, и затем обмен в обе стороны пакетами репликации и их обработка.
SOFT FOR YOU
А во-вторых, такое количество потоков - тоже не есть гуд

Смотря для чего. Основное время их работы - передача данных. Т.е. ожидание этих данных, сохранение происходит очень быстро (insert в базу закаченного пакета).
А обработка - уже в другом месте - в пуле потоков по кол-ву процессоров.
Т.ч. для [в основном] ожидающих потоков - 100-200 потоков - фигня. У меня вот сейчас на 32бит Win10 после перезагрузки уже больше 1000 каких-то потоков таскменеджер показывает, и ничего.
13 июн 18, 18:39    [21489272]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53908
Блог
defecator
регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво

Когда-то мне тоже казалось, что регистронезависимость - это круто. Но постепенно я понял, что за четверть века работы так и не встретил ни одной ситуации, где бы она пригодилась, и единственное, чему она способствует - стилистическому разнобою, когда один называет переменную i, другой обращается к ней как к I, и это как-то работает. Я понимаю, что в своё время Вирт решил таким образом проблему платформозависимости, приравняв машины, где у символов были регистры, с теми, где их не было - но сейчас это уже неактуально, а в остальном - одни минусы.
13 июн 18, 18:52    [21489297]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
SOFT FOR YOU
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.
14 июн 18, 08:28    [21489966]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

13.06.2018 18:52, softwarer пишет:
> в своё время Вирт решил таким образом проблему платформозависимости, приравняв машины, где у символов были регистры, с теми, где их не было

а ведь лысеешь уже...
и такая хрень в голове!

Posted via ActualForum NNTP Server 1.5

14 июн 18, 13:24    [21490841]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
alekcvp,

У меня есть самописный конвертер
+
var 
 bflush : integer;
begin
  while true do
  begin
	if s.lookahead = 0 then 
	begin 
		fill_window(s);
		if s.lookahead = 0 then 
		begin
			if flush = Z_NO_FLUSH then
			   exit(need_more);
			break;
		end;
	end;
	
	s.match_length := 0;
	Tracevv((stderr,"%c", s.window[s.strstart]));
	_tr_tally_lit(s, s.window[s.strstart], bflush);
	dec(s.lookahead);
    inc(s.strstart);
	
	if bflush then
		FLUSH_BLOCK(s, 0);
  end;

  s.insert := 0;
  if flush = Z_FINISH then 
  begin
	FLUSH_BLOCK(s, 1);
	exit(finish_done);
  end;
  
  if s.last_lit then 
	FLUSH_BLOCK(s, 0);
  Result := block_done;
end;



А воот так выглядит фаст фибаначи на cи
+
int Fibonacci(int n) {
	unsigned long Result = 1;
	unsigned long cash = 0;
	unsigned long cash2;

	if(n < 1)
		return 0;

	for(int i = 1; i < n; i++) {
		cash2 = Result;
		Result += cash;
		cash = cash2;
	}
	return Result;
}



А так на дельфи через мой конвертер
+
function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;



Программка
[spoiler]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;

var
  n: Integer;

begin
  try
    while True do
    begin
      Readln(n);
      Writeln('Result Fibonacci: ', Fibonacci(n));
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.

[/spoiler]
14 июн 18, 14:18    [21491012]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
ВаСЁКПупкин
alekcvp,

У меня есть самописный конвертер
+
var 
 bflush : integer;
begin
  while true do
  begin
	if s.lookahead = 0 then 
	begin 
		fill_window(s);
		if s.lookahead = 0 then 
		begin
			if flush = Z_NO_FLUSH then
			   exit(need_more);
			break;
		end;
	end;
	
	s.match_length := 0;
	Tracevv((stderr,"%c", s.window[s.strstart]));
	_tr_tally_lit(s, s.window[s.strstart], bflush);
	dec(s.lookahead);
    inc(s.strstart);
	
	if bflush then
		FLUSH_BLOCK(s, 0);
  end;

  s.insert := 0;
  if flush = Z_FINISH then 
  begin
	FLUSH_BLOCK(s, 1);
	exit(finish_done);
  end;
  
  if s.last_lit then 
	FLUSH_BLOCK(s, 0);
  Result := block_done;
end;




А воот так выглядит фаст фибаначи на cи
+
int Fibonacci(int n) {
	unsigned long Result = 1;
	unsigned long cash = 0;
	unsigned long cash2;

	if(n < 1)
		return 0;

	for(int i = 1; i < n; i++) {
		cash2 = Result;
		Result += cash;
		cash = cash2;
	}
	return Result;
}




А так на дельфи через мой конвертер
+
function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;




Программка
[spoiler]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;

var
  n: Integer;

begin
  try
    while True do
    begin
      Readln(n);
      Writeln('Result Fibonacci: ', Fibonacci(n));
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.


[/spoiler]


на каком основании из этого:
int Fibonacci(int n)

получилось это:
function Fibonacci(n: Integer): Cardinal;

?

Сдаётся мне, что кто-то несколько трындит !
14 июн 18, 14:22    [21491028]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
defecator,

На основание
unsigned long Result = 1;


Я не мог положится на возврат из функции, потому что не один компилятор и сам на него не полагается - исходя только из возврата

+

http://imglink.ru/show-image.php?id=448b1ef95e30b9299b6ba11bfbaaefed
Картинка с другого сайта.
14 июн 18, 14:32    [21491064]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
так и знал, что ты рукам переписывал
14 июн 18, 14:33    [21491071]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator
SOFT FOR YOU
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.

Когда научишься писать быстрый код - он тоже будет лапшеобразным
14 июн 18, 14:39    [21491088]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
defecator,

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

Исходя из этого, из всех return (Массив в базе) Можно просмотреть все возможные типы - тип будет один, и надо будет выбрать общий подходящий, под это попадает переменная - которая имеет постоянный возврат, а не символический - статический, который бы и преобразовался в конечном итоге в integer но как есть unsigned long в типе возврата, мы не может позволить создать утечку в данных - переполнения, по этому мы выбираем в пользу unsigned long нежели чем integer и преобразовываем на стеке вывода в Delphi нужный тип Cardinal


Вот так это и работает

Неужели нельзя знать основ ? Или реально, delphi отупляет... Да, C++ Сложный Дядя, но он построен так, что способен глотнуть ошибки программиста и преобразовать в правильный кол. А Delphi что - же ? И не видала такого наверное
14 июн 18, 14:39    [21491091]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
SOFT FOR YOU
defecator
пропущено...


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.

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


моя система видеонаблюдения перемалывает огромные потоки видео,
и в ней нет ни строчки лапшекода.
14 июн 18, 14:44    [21491108]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь
14 июн 18, 14:50    [21491134]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
SOFT FOR YOU
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь


вся обработка видео написана с нуля лично,
так что о чём ты не знаешь, о том и не говори.

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного
14 июн 18, 14:58    [21491165]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 236
Один чел на собеседовании у нас сказал, что ученые доказали не так давно, что С++ настолько сложен и всеобъемлющ, что вся его мощь женщине открыться, например, не может. Мозгов женщине не хватает. Только мужик может освоить всю его глубину. Чел этот, кстати, даже результатами своего собеседования не поинтересовался, сбежал, узнав, что мы тут на Delphi программируем. А вот шеф задумался крепко, сказал даже мне, что, может, стоило программу-то складского учета на С++ писать...
14 июн 18, 15:07    [21491185]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator
SOFT FOR YOU
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь


вся обработка видео написана с нуля лично,
так что о чём ты не знаешь, о том и не говори.

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного

Ты видеокодеки самолично писал?
Ну-ну, втирай дальше )
14 июн 18, 16:50    [21491529]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38711
SOFT FOR YOU
defecator
пропущено...


вся обработка видео написана с нуля лично,
так что о чём ты не знаешь, о том и не говори.

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного

Ты видеокодеки самолично писал?
Ну-ну, втирай дальше )


видекодеки используются системные виндовые, кроме MJPEG, G.7xx - это всё самописное.
но видеокодеки - это 1% от кода системы
14 июн 18, 18:04    [21491783]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
alekcvp
Member

Откуда:
Сообщений: 1103
ВаСЁКПупкин,

+ А если не пытаться из Delphi сделать суррогатный си, то:
function Fibonacci(n: Integer): Cardinal;
var
  i: Integer;
  m1, m2: Cardinal;
begin
  m1 := 0;
  m2 := 1;
  Result := 0;
  for i := 1 to n do begin
    Inc(Result, m2);
    m2 := m1;
    m1 := Result;
  end;
end;
14 июн 18, 20:46    [21492218]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3312
_Vasilisk_
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

1 - странно костыль выдавать за преимущества
2 - фиговая штука - может конечно для питона и норм, всегда отключаю.
3 - зачем??? в паскале тип после имени объявляется
4 - чё-чё?
15 июн 18, 09:53    [21492843]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3312
Mikhail Tchervonenko
Всем доброго времени суток!

сегодня в очередной раз наткнулся тут на упоминание о omniPascal, кто то его уже пробовал? Какие впечатления?
Чем это лучше/хуже родной среды от delphi или lazarus и в чём смысл сего творения?

Спасибо.

возможно отлаживать будет кое как совмещённые проекты если пошаманить, возникает иногда такая потребность
а в общем без отладчика это творение нафиг не нужно

Архитектурно выходит пшик с кучей дублируемого кода из компилятора. IDE для системных языков можно нормально сделать только с поддержкой компилятора, как например было сделано в BP 7.0.
15 июн 18, 10:06    [21492896]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 24312
kealon(Ruslan)
_Vasilisk_
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

1 - странно костыль выдавать за преимущества
2 - фиговая штука - может конечно для питона и норм, всегда отключаю.
3 - зачем??? в паскале тип после имени объявляется
4 - чё-чё?

Кроме делфей не пользовал другие иде?
В идее это настолько привычные фичи, что диву даюсь, насколько делфи отстает от норм по удобствам.
15 июн 18, 10:35    [21492960]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Delphi Ответить