2025-04-18

vak: (Украина)

Меморандум о намерениях между правительством США и правительством Украины по завершению официального соглашения об экономическом партнерстве и инвестиционном фонде для восстановления.
  • Учитывая, что Соединенные Штаты Америки оказали значительную финансовую и материальную поддержку Украине с момента полномасштабного вторжения России в Украину в феврале 2022 года; 
  • Учитывая, что американский народ желает инвестировать вместе с украинским народом в свободную, суверенную и безопасную Украину;
  • Учитывая, что Соединенные Штаты Америки и Украина стремятся к длительному миру в Украине и крепкому партнерству между их народами и правительствами;
  • Учитывая, что Соединенные Штаты Америки и Украина признают вклад Украины в укрепление международного мира и безопасности путем добровольного отказа от третьего по величине в мире ядерного арсенала;
  • Учитывая, что Соединенные Штаты Америки и Украина намерены создать инвестиционный фонд для восстановления как часть экономического партнерства между двумя народами и правительствами;
  • Учитывая, что Соединенные Штаты Америки и Украина провели продуктивные технические обсуждения в Вашингтоне, округ Колумбия, недавно, с 11 по 12 апреля 2025 года, чтобы завершить переговоры по соглашению о создании инвестиционного фонда для восстановления;
  • Учитывая, что Соединенные Штаты уважают намерение Украины избежать конфликтов в разработке соглашения с ее обязательствами в рамках вступления в Европейский Союз или соглашений с международными финансовыми учреждениями и другими официальными кредиторами;
  • Учитывая, что без ущерба для любых остаточных политических или юридических процедур, необходимых для завершения договоренностей, премьер-министр Украины Шмыгаль посетит Вашингтон, округ Колумбия, на неделе с 21 апреля 2025 года, чтобы встретиться с министром финансов США Бессент и оказать поддержку на самом высоком уровне для завершения технических обсуждений условий соглашения о создании инвестиционного фонда для восстановления. От переговорных команд ожидается отчет о прогрессе до 26 апреля 2025 года, с целью завершения обсуждений к этой дате и подписания соглашения как можно скорее;
Итак, в результате этого, как подтверждается подписями ниже, правительство Соединенных Штатов Америки и правительство Украины подписывают этот меморандум о намерениях с целью скорейшего завершения подготовки необходимых документов для официального заключения соглашения об экономическом партнерстве между народами Америки и Украины и создания инвестиционного фонда для восстановления.
vak: (бэсм-6)
Переписал некоторые функции рантайм библиотеки с ассемблера на Би. К примеру, было:
    writeb: ,name,
         12 ,base,*
c
c Append one byte to output buffer.
c
 b/output:lc,block, w_count, b_shift, buffer(22)
c
    flush:  ,subp,
            ,aax, =377
            ,aex, =12       . compare to linefeed
            ,uza, flush
            ,aex, =12
c
            ,utc, w_count
            ,xts,
            ,aex, =26       . 22 words
            ,u1a, putchar
            ,ita, 13
            ,its,
            ,call, flush
            ,sti,
            ,ati, 13
c
 putchar:   ,bss,           . append byte to buffer
            ,sti,
         11 ,vtm, b/output
         11 ,wtc, 1         . b_shift
            ,asn, 64-40     . shift left
         11 ,wtc, 0         . w_count
         11 ,aox, 2         . read word from buffer
         11 ,wtc, 0         . w_count
         11 ,atx, 2         . write word to buffer
c
         11 ,xta, 1         . b_shift
            ,aex, =50
            ,uza, next_w
            ,aex, =50
            ,arx, =10       . increase shift
         11 ,atx, 1         . b_shift
         13 ,uj,
c
 next_w:    ,bss,           . advance to next word
         11 ,atx, 1         . clear b_shift
         11 ,xta, 0         . w_count
            ,arx, =1        . increment word count
         11 ,atx, 0         . w_count
         13 ,uj,
            ,end,
Стало:
/*
 * Append one byte to output buffer.
 */
writeb(b) {
    extrn out_cnt, out_shft, out_buff;
    auto p;

    b = b & 0377;
    if (b == '*n') {
        flush();
        return;
    }

    if (out_cnt == 22) {
        flush();
    }

    p = &out_buff[out_cnt];
    *p = *p | (b << (40 - out_shft));

    if (out_shft == 40) {
        /* next word */
        out_shft = 0;
        ++out_cnt;
    } else {
        /* next byte */
        out_shft = out_shft + 8;
    }
}

out_cnt;
out_shft;
out_buff[22];
Так ведь понятнее выходит, правда?
vak: (Знайка)
Here is a more detailed elaboration.
  1. Make it work.
  2. Make it right (the code is readable [uses intention revealing names] and every idea is expressed once and only once).
  3. Make everything work.
  4. Make everything right.
  5. Use the system and find performance bottlenecks.
  6. Use a profiler in those bottlenecks to determine what needs to be optimized. See Profile Before Optimizing.
  7. Make it fast. You maintained unit tests, right? Then you can refactor the code mercilessly in order to improve the performance.
-- Guillermo Schwarz