Size: a a a

2020 May 02

EP

Egor Pugin in pro.cxx
и ещё с шаблоном сверху
источник

CD

Constantine Drozdov in pro.cxx
я не понимаю главного: почему мы вообще хотим парсить плюсовые данные, а не генерировать их из любого приемлемого DSL? нам нужен язык для более высокого уровня (и другой модели ценностей), в экосистеме такого нет, может, его нужно просто сделать?
источник

EP

Egor Pugin in pro.cxx
из похожего протобаф, я вроде делал на нём некоторые генераторы несетевого кода
источник

IA

Igor Akhmetov in pro.cxx
Constantine Drozdov
я не понимаю главного: почему мы вообще хотим парсить плюсовые данные, а не генерировать их из любого приемлемого DSL? нам нужен язык для более высокого уровня (и другой модели ценностей), в экосистеме такого нет, может, его нужно просто сделать?
Nim как для тебя придумали. Высокоуровневый, транспилируется в C++, биндится к C++ библиотекам.
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Zaitsev
а можно подробнее про хардкорность? я имею некоторый опыт работы с Clang API для AST. вроде сильно сложно не выглядит. но я никогда генерацией новых нод не занимался - только снятием инфы с AST
А там разве не просто фронтенд? Для этой фичи нужен полноценный транслятор в машкод
источник

EP

Egor Pugin in pro.cxx
Побитый Кирпич
А там разве не просто фронтенд? Для этой фичи нужен полноценный транслятор в машкод
зачем, мы просто на выход новый цпп сделаем и всё
источник

ПК

Побитый Кирпич... in pro.cxx
Egor Pugin
из похожего протобаф, я вроде делал на нём некоторые генераторы несетевого кода
с метаклассами прото схемы можно будет писать на С++
источник

CD

Constantine Drozdov in pro.cxx
Igor Akhmetov
Nim как для тебя придумали. Высокоуровневый, транспилируется в C++, биндится к C++ библиотекам.
Это точно не паскаль без объектов?
источник

ПК

Побитый Кирпич... in pro.cxx
Вот это круто будет)
источник

IA

Igor Akhmetov in pro.cxx
Constantine Drozdov
Это точно не паскаль без объектов?
Есть все - объекты, макросы, шаблоны, дженерики, нативная память, GC. Простор для творчества.
источник

МВ

Макс Воробьев... in pro.cxx
есть еще D/betterC =)
источник

CD

Constantine Drozdov in pro.cxx
Igor Akhmetov
Есть все - объекты, макросы, шаблоны, дженерики, нативная память, GC. Простор для творчества.
И чистые функции с монадами? :)
источник

A

AlexWhite in pro.cxx
Работал кто-нибудь с httlib? Не понимаю, как там скачивание файла с сайта реализовать
источник

OT

Oleh Tymoshenko in pro.cxx
Хай
Вопрос по winapi
Пытаюсь из моего процесса вызвать дочерний 7zip.exe, и заархивировать файл, файл архивируется, но получить тот же  результирующий текст, что и при обычном использовании 7zip не получается. т.е. я перенаправляю потоки stderr, stdout в канал, который читаю в главном процесе, но он  всегда пустой, что не так?
Код:
HANDLE hServer = { NULL };
HANDLE hClient = { NULL };
 
// set default setting and enable inherit
SECURITY_ATTRIBUTES sa = { NULL };
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;

// try to create pipe
if ((!CreatePipe(&hServer, &hClient, &sa, NULL)) ||
(hServer == INVALID_HANDLE_VALUE)||(hClient == INVALID_HANDLE_VALUE))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

// set default settings for STARTUPINFO structa and
// redirect stderr and stdout to pipe (phServer)
STARTUPINFO si = { NULL };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdError = hServer;
si.hStdOutput = hServer;

PROCESS_INFORMATION pi = { NULL };

if (!CreateProcess(NULL,
cmdForNewProc,
NULL,
NULL,
TRUE,
ABOVE_NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi
))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

WaitForSingleObject(pi.hProcess, INFINITE); // wait until the process completes
TerminateProcess(pi.hProcess, 0); // terminate process 7zip process

DWORD dwReadedBytes = 0;
TCHAR buff[READ_PIPE_BUFF_SIZE] = { '\0' };
//OVERLAPPED overlaped = { NULL };
while (ReadFile(hClient, buff, sizeof(buff), &dwReadedBytes, NULL))
{
cout << buff;
}
источник

IA

Igor Akhmetov in pro.cxx
Constantine Drozdov
И чистые функции с монадами? :)
Конечно: чистые функции https://nim-lang.org/docs/manual.html#pragmas-nosideeffect-pragma, монады будем считать библиотечной фичей https://rosettacode.org/wiki/Monads/Writer_monad#Nim
источник

IL

Ignat Loskutov in pro.cxx
Но монады без специального синтаксиса неюзабельны, особенно когда синтаксис для лямбд вербозный
источник

IA

Igor Akhmetov in pro.cxx
Ignat Loskutov
Но монады без специального синтаксиса неюзабельны, особенно когда синтаксис для лямбд вербозный
Посмотри пример, вполне читаемо.
источник

IL

Ignat Loskutov in pro.cxx
Ну на хаскеле читаемее, код с каким-нибудь глобальным логгером тоже был бы читаемее
источник

IL

Ignat Loskutov in pro.cxx
(да и вообще это не монада никакая, типовый параметр гвоздями же прибит)
источник

IA

Igor Akhmetov in pro.cxx
Ignat Loskutov
(да и вообще это не монада никакая, типовый параметр гвоздями же прибит)
Я набрасываю конечно, но в целом я думаю с макросами и операторами можешь накрутить такой синтаксис какой душа пожелает. https://gist.github.com/superfunc/36242904c2b7b10b0bd5 - вот например Maybe, выглядит узнаваемо?
источник