LINUX.ORG.RU

Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью

 , ,


1

5

Проект развивает Робин Роу (Robin Rowe), бывший профессор компьютерных наук, принимавший участие в комитетах по развитию стандартов С и С++, в своё время создавший графический редактор Cinepaint, использовавшийся при создании некоторых голливудских фильмов, и POSIX-библиотеку libunistd для Windows. Соучредителем компании Trasec выступает Габриэль Пантера (Gabrielle Pantera), занимавшая руководящий пост в компании Disney.

Из особенностей:

  • Проверки выхода за границы массива. В TrapC применяется фундаментально иной способ работы с указателями и специальный механизм перехвата ошибок на основе обработчиков исключений (trap).

  • Проверки use after free.

  • Наличие GC.

  • Выделение памяти через new. *alloc и free нет.

  • Явная инициализация нулями.

  • Строгая типизация.

Исходный код компилятора для TrapC планируют открыть в 2025 году.

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

★★★★★

Проверено: maxcom ()

Ответ на: комментарий от AntonI

Особенно удобно

Никто не обещал, что будет легко. Таков путь чтобы не юзать Garbage Collector'ы.

saahriktu ★★★★★
()

А нельзя попытаться сделать один язык для всех задач? Нужно быстродействие — используешь такие-то конструкции и типы данных, нужна безопасность и удобство — другие. Ну чтобы не надо было писать биндинги од одного языка программирования к другому.

Wapieth
()
Ответ на: комментарий от wandrien

Ещё раз. Ты путаешь OLE, COM и, возможно, DDE.

99% того, что я обычно вижу в винде по рабочим делам, это либо Проводник, построенный на архитектуре COM, либо MS Office, построенный на архитектуре COM, либо браузер, использующий свой собственный тулкит.

Ты секретарь, что-ли? :) Даже бухгалтеры всякие хотя бы 1C видят.

Предлагаю таки почитать какую-нибудь матчасть.

Давай вместе почитаем микрософтовскую матчасть: https://learn.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-create-a-windows-explorer-style-interface-on-a-windows-form?view=netframeworkdesktop-4.8

Windows Explorer is, essentially, a TreeView control and a ListView control on separate panels. The panels are made resizable by a splitter. This arrangement of controls is very effective for displaying and browsing information.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

с максимально похожим на С синтаксисом.

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

thunar ★★★★★
()
Ответ на: комментарий от Stanson

Пользовательские массивы на фоне предсказателя ветвлений не выглядят такой уж сложной задачей.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от MOPKOBKA

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

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от Stanson

Ты секретарь, что-ли? :) Даже бухгалтеры всякие хотя бы 1C видят.

))) Лол =)

Это говорит не о моей работе, а о том, насколько к ней мало имеет отношения винда)

Впрочем, я утрировал. Еще я запускаю автокад, gimp, и редактор pdf.

А чаще я винду как пускалку Rimworld использую в последние 2-3 месяца.

Давай вместе почитаем микрософтовскую матчасть:

Learn - .NET - Windows Forms

Ясненько, что за «матчасть». xD

https://learn.microsoft.com/en-us/windows/win32/shell/shell-entry

Ещё раз. Ты путаешь OLE, COM и, возможно, DDE.

Еще раз. Я ничего не путаю. Ну собственно, какой тезис, такой и ответ =)

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Еще я запускаю автокад, gimp, и редактор pdf. А чаще я винду как пускалку Rimworld использую в последние 2-3 месяца.

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

Так точно. Отдельно специалист по правой ноздре, отдельно по левой.

wandrien ★★
()
Ответ на: комментарий от wandrien

редактор pdf

Да, это жоостка

винду как пускалку Rimworld

Линукс нинче уже игровая ОС, если ты из криокамеры еще не вылез. Тем более, что РиммингВорл есть нативный под линукс)))

BceM_IIpuBeT ★★☆☆☆
()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 1)
Ответ на: комментарий от BceM_IIpuBeT

Линукс нинче уже игровая ОС, если ты из криокамеры еще не вылез. Тем более, что РиммингВорл есть нативный под линукс)))

Значит, рассказываю.

Я пробовал запустить римку на win7. Она запускаться отказалась, падала при старте. Перезагрузился в Арч, запустил в вайне. Работает. Но немного глючит. Поюзал какое-то время так. Потом думаю: так у меня же десятка есть, чо я страдаю? Скопировал туда. Работает идеально. Там и оставил.

Фанатизмом не страдаю.

wandrien ★★
()

планируют открыть в 2025 году.

Вот после открытия и приходите.

Shushundr ★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Одним из симптомов аутизма является компульсивное поведение — намеренное соблюдение неких правил, например расположение объектов определённым образом; ритуальное поведение; потребностью в однообразии.

Тем более, что РиммингВорл есть нативный под линукс)))

Римка есть нативная.

И правда что. Похоже, это про тебя.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)

Теперь банановый.
Си как и был небезопасной херней, так и нужен кроссплатформенным ассемблером. Проще на паскале писать, чем из него огород городить.

Tark ★★
()
Ответ на: комментарий от BceM_IIpuBeT

редактор pdf

Да, это жоостка

Не, эт не жоска еще.

Жоска это когда одна организация пролюбила исходники чертежей, поэтому другой организации пришлось мне заплатить за сканирование бумажных копий и их последующую ретуш. А через несколько месяцев эта вторая организация пролюбила на серваке папку в 50 гигов, где лежали эти файлы + еще куча других исходников.

Вот это было жоско.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

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

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от wandrien

Ну я аутист, я не ем зеленую еду, не люблю четные числа, из тригонометрии предпочитаю косинус и мне не нравится синус, и не люблю смотреть в пустые окна. А еще психопат диагнастированный психотерапевтом. Жить вообще не мешает.

Tark ★★
()
Ответ на: комментарий от BceM_IIpuBeT

Ага. Уровень маразма:

Скачал за 3 минуты торрент с известного всем места, запустил, играю.

Уровнем горения на ЛОРе удовлетворён.

Представим, что ты ешь калл

Необычные у тебя фантазии, это мягко сказать.

wandrien ★★
()
Ответ на: комментарий от gns

Это понятно. Ди хоть и лапушка, но ощутимого сообщества вокруг себя не собрал, зато и пошёл на дно в забвении. Увы и ах, но что делать. Оставаться на легаси, для си и крестов задач лет на двадцать ещё хватит точно.

Hertz ★★★★★
()
Ответ на: комментарий от Stanson

Примитивы, соответствующие вендовому GDI, как раз рисует сервер X11. С этим в иксах всё отлично и прозрачно в смысле сети. А вот в венде, чтобы работал RDP приходится перехватывать вызовы соответствующих функций GDI при помощи костылей, чтобы суметь послать по сети что там рисуют на экране.

Во-первых, вам бы похоронить уже эту мертвую лошадь Х11. Я помню когда появился XFontServer, и как начали болеть места, о существовании которых никто даже не подозревал. Да даже ЛОР помнит. А вы хотите целые виджеты, и некоторые даже с текстом.

Во-вторых, винапи разработали не последние люди. Скорее наоборот, лучшие инженеры каких можно было купить на рынке. Формат eMF существовал с начала времен, и это никак не костыли.

Третье. Обратите внимание на тенденцию — сейчас, в 2024м — делать приложениям слева ListView/TreeView и справа навигацию. Повсюду: в макос и линуксах, в виндовз, в вебе и на мобильных устройствах. Есть некий консенсус по UI. В его русле надо действовать.

sarumeister
()

Проект развивает Робин Роу (Robin Rowe)

Посмотрел его linkedin. Это какой-то мастер по разводам/распилам.

Соучредителем компании Trasec выступает Габриэль Пантера (Gabrielle Pantera)

Баба, никакого отношения к софтверу не имеющая.

Вывод: кто-то дал им деньги, и они их резво осваивают.

rupert ★★★★★
()
Ответ на: комментарий от qulinxao3
int PyList_Insert(PyObject *op, Py_ssize_t where, PyObject *newitem);

вызывает

static int ins1(PyListObject *self, Py_ssize_t where, PyObject *v);
который вызывает
static int list_resize(PyListObject *self, Py_ssize_t newsize);

который делает

    new_allocated = ((size_t)newsize + (newsize >> 3) + 6) & ~(size_t)3;

где здесь список как структура данных, lbvf50txt?

zx_gamer ★★★
()
Ответ на: комментарий от zx_gamer

Вы вынуждены таскать транслятор вместе с скомпилированной программой на Хаскель.

Зачем?

$ ghc test.hs
[1 of 2] Compiling Main             ( test.hs, test.o )
[2 of 2] Linking test [Objects changed]
$ ldd test
        linux-vdso.so.1 (0x00007ff80e5d5000)
        libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007ff80e529000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff80e333000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff80e24d000)
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007ff80e240000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff80e5d7000)
monk ★★★★★
()

Пока на «языке» нельзя нормально матерится, это ещё язык, а картавый суржик. Так что пускай переписывает

fMad ★★★
()
Ответ на: комментарий от zx_gamer

Чтобы работал eval

Зачем в Хаскеле eval? И если так смотреть, то чтобы работал tcc_compile_string, программа на Си тоже вынуждена таскать транслятор.

monk ★★★★★
()
Ответ на: комментарий от zx_gamer

вызывает

который вызывает

который делает

Рано остановился.

Надо было так: который вызывает машинные коды. Которые обрабатываются CPU. Который делает обработку логики кэша, предсказания ветвлений, переименование регистров и еще 100500 всего. Которые реализованы движением электронов.

Короче говоря, ты не понял, что такое информатика.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от zx_gamer

где здесь список как структура данных, lbvf50txt?

Вы демонстрируете поведение тролля: первый тезис опровергли, вы переходите на второй, второй опровергли и так далее. Не капли не смущаясь ложностью ваших тезисов, до той поры пока собеседник не оступится. Постоянно меняете обсуждаемый вопрос, цепляетесь к словам, умышенно пропускаете смысл.

Начали про алгоритмы, вы перепрыгнули на схожие термины: связный список, список как массив, сложность добавления элемента. Юлите.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от zx_gamer

вектор stl C++ ~== list Python

да али нет?

преимущества(о не достатках не ща) джавы от c++ :

джава позволяет pod быть с пропусками что позволяет совместить массив таких объектов в фортран порядок обхода - что при колоночном обходе бережёт кэш ;)

программировали в машкодах?

qulinxao3 ★★
()
Ответ на: комментарий от qulinxao3

вектор stl C++ ~== list Python

Изначально тема была в том, что программистам не нужен GC. Потом перешли на рассказ о условных Python разработчиков не умеющих реализоваывать связные списки. Потом начали рассказывать, что список в Python это не связный список.

Без конца и края. Одну чушь опровергли, тут же появляется вторая.

UPD: Хотя что можно хотеть от собеседника который в 2024 году утверждает что GC не нужен программистам? Что он признает: «Да, да… Вот вы мне дали пару ссылок на общеизвестные ресурсы, и я поменял свое мнение, действительно Python это востребованный язык на котором пишут лучшие программисты планеты. Создают интереснейшие проекты, и GC помогает им сфоркусироваться на решении задачи, вместо ручного управления памятью.». Это по меньшей мере наивно.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)

Глянул на опеннете примеры:

// trapc_ptr.c

   int main()
   {   
           const char* ptr = "Hello World"; // 12 char wide    
           while(ptr) // No buffer overrun with TrapC 
           {       
                printf("%c",*ptr); // print one char at a time 
                ptr++;  // Steps off the end: TrapC nulls ptr!
           }  // Do NOT attempt this in C, will segfault!
           assert(ptr == 0);    
           return 0;
   }

Какая прелесть! МОжно писать как попало, trapc сам разберется!

Psilocybe ★★★★
()

Си-подобный язык, безопасно работающий с памятью

Такой ЯП уже существует. Внезапно, C++.

(Да, безопасность неполная, но всё же.)

kaldeon
()
Ответ на: комментарий от wandrien

Складывается впечатление, что цель этого учонного в том, чтобы некоторые ошибки так и небыли никогда обраружены!

Это какой-то ЛОЛ а не проект.

Psilocybe ★★★★
()
Ответ на: комментарий от Psilocybe

Мне кажется, это из разряда мемов, которые оказались не мемами, а правдой. =)

«Рисовал программист»

«Программировал учёный»

wandrien ★★
()
Ответ на: комментарий от zx_gamer

Программирование машины Фон-Неймана, это написание инструкций для работы с памятью. Без работы с памятью нельзя реализовывать структуры данных. А без структур данных нельзя составить нормальную программу.

Аргумент из разряда «сознание работает посредством мозга, мозг — биологическое явление, следовательно психологи для лечения пациентов должны применять законы биологии/физики/химии». Обе группы мотивированы бегством от реальности, на что указывает «Python/Go/JS-программисты ничего не умеют».

Хэш-таблицы тоже нет в машине Фон-Неймана. Что теперь, выкидывать хэш-таблицы и везде писать ad-hoc работу с хэшами и массивами?

kaldeon
()

Зачем очередное, когда есть Ада, с стандартом и всем всем.

Smetchik
()
Ответ на: комментарий от wandrien

Ага,while(ptr)илиwhile(*ptr), леший их разберёт, «инженерам» думать некогда, им быстрей проект сдать надо.

лисёнок не знает, что NULL возвращает false, как и 0 по разыменованному указателю.

Иди воруй учись.

Ygor ★★★★★
() автор топика
Ответ на: комментарий от Ygor

О, ну это в линейку правдивых мемов.

«Отвечал пятизвёздочник»

wandrien ★★
()

На кой хрен здесь эта копипаста про проприетарщину с опеннета? Кармадрочеры в преддверии зимних каникул активизировались?

zabbal ★★★★★
()
Ответ на: комментарий от Stanson

Но компиляторы низкоуровневых языков работают! С-программы с точки зрения пользователя переносятся активней и быстрее чем тот же самый высокоуровневый андроид, джава и даже электрон.

kirill_rrr ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.