Обновить
17

Пользователь

0,2
Рейтинг
3
Подписчики
Отправить сообщение

Самое время убедиться, что нейронами действительно на что-то полезное способны, а не токенами трепать.

https://devblogs.microsoft.com/oldnewthing/20121218-00/?p=5803

https://devblogs.microsoft.com/oldnewthing/20220106-00/?p=106122

Такое может отловить и статический анализ кода.

Возможно там никто не настраивал или не смотрел на результаты.

Вот из небольшого найденного. А починили ли всё, вопрос хороший.

https://pvs-studio.com/en/blog/posts/cpp/0460/

С моделями конечно проще проверить не меняя самой системы. Но это не отменяет необходимости в статическом и динамическом анализе.

Самая интересная часть это модель Mythos

https://freedium-mirror.cfd/https://medium.com/ai-software-engineer/anthropic-leaks-new-claude-mythos-and-might-be-too-dangerous-to-release-16f2d30ea592

И можно посмотреть как строить своих агентов

https://www.markdown.engineering/learn-claude-code/

Там надо ещё допереводить

ИИ , инструмент, биллинг, клиент , профиль, специальность, секретарь, юрист и полно нерусских слов.

Много чего невозможно доказать, однако это не делает действие законным.

Тут зависит от юристов и денег.

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

Брать машинный код для изучения это как раз противоречит лицензии пользования.

Есть и альтернативная мнемоника для лёгкого запоминания для неанглоязычных:
eXtract Ze File
Create Ze File

А если это публикуется в автоматическом режиме без участия человека? Как тогда?

Типизация Питона сделана чтобы сказать "мы сделали", а реально сложные кейсы это не решает.

В C# кстати так можно:

using System.Diagnostics.CodeAnalysis;

class Example
{
    private int? _a;

    [MemberNotNull(nameof(_a))]
    public void Init()
    {
        _a = 1;
    }

    public void Print()
    {
        Init();
        Console.WriteLine(_a.Value); // Тут мы знаем _a is not null == true
    }
}

Вы изобрели структурную типизацию.

В Python можно выразить через typing.Protocol.

Тут в Питоне не хватает возможностей выразить зависимости.

Как вариант можно сделать свойство и в него всунуть assert.

С dataclass нельзя нормально наследовать несколько классов данных.

Т.е. можно было бы но не реализовали, а теперь и менять чревато.

https://discuss.python.org/t/dataclasses-and-non-dataclasses-inheritance/88840

Вот работа в этом направлении:

https://github.com/rust-lang/rust-project-goals/issues/395

Будем ждать.

А что за вид работы ?

У нас не то что не уволили, а наоборот активно набирают.

Согласен, бывают моменты.

В инструкциях прописываю, чтобы писал нормальные тесты, а то так пишет кабы что :)

А вы просите тестов накидывать по мере работы и дизайны делать. Тогда ломать не будет безудержно без причины.

Справедливости ради в TS/JS наследование это всего лишь удобство синтаксиса.

На деле мы можем как и раньше менять прототипы и использовать defineObject.

Также и с методами их можно отдельно писать как и делали раньше.

Просто это достало ;)

Идея интересная но это как бы подмножество языка получается.

Кстати, Rust не sound это значит, что можно и в безопасном коде написать код с проблемой безопасности.

Странное требование.

Ведь любой unsafe можно закопать в “безопасную” функцию.

А нужно на явный неявный?

Транзитивный вызов учитывается ?

Положим Rc использует внутри unsafe, им можно пользоваться ?

Как раз передача по умолчанию по перемещению это наиболее лучший вариант.

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

Можно посмотреть как с этим дела обстоят в C++ и убедиться, что это неудобно и создаёт ошибки при использовании после перемещения.

struct A {}

fn x(a : A) {}

fn main() {
    let a = A {};
    
    x(a);
    x(a);
}

error[E0382]: use of moved value: a
--> src/main.rs:11:7
|
8 | let a = A {};
| - move occurs because a has type A, which does not implement the Copy trait
9 |
10 | x(a);
| - value moved here
11 | x(a);
| ^ value used here after move

А когда мы хотим ссылку, то есть заимствевоние то пишем об этом явно

struct A {}

fn x(a : &A) {}

fn main() {
    let a = A {};
    
    x(&a);
    x(&a);
}


Внезапным исключением являются "методы", где компилятор за нас умеет ставить заимствевование

https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=a0919eb2079c6a9c2b5508998159eebf

trait IA {
    fn x(self: &mut Self);
    fn y(self: &Self);
}

struct A {}

impl IA for A {
    fn x(self: &mut Self) {}
    fn y(self: &Self) {}
}

fn main() {
    let mut a = A {};
    
    a.x();
    a.x();
    a.y();
    a.y();
}


Ну и конечно если мы перемещаем, то не соберёться

trait IA {
    fn x(self: Self);
}

struct A {}

impl IA for A {
    fn x(self: Self) {}
}

fn main() {
    let a = A {};
    
    a.x();
    a.x();
}

error[E0382]: use of moved value: a
--> src/main.rs:15:5
|
12 | let a = A {};
| - move occurs because a has type A, which does not implement the Copy trait
13 |
14 | a.x();
| --- a moved due to this method call
15 | a.x();
| ^ value used here after move



А про макросы всё верно.

Видимо не посмотрели как сделано в других языках и вышло что вышло.

Обещают поправить в будущем.
Надеюсь сделают как полагается с нормальной типизацией и гигиеной.

1
23 ...

Информация

В рейтинге
3 321-й
Зарегистрирован
Активность