Size: a a a

2021 May 30

IM

Igor Mikhailov in Kotlin Native
Такой странный вопрос возник, кто-нибудь пытался запустить массив байт как функцию:
val code = ubyteArrayOf(
 0x55u,//push rbp
 0x48u, 0x89u, 0xe5u,//mov rbp,rsp
 0x89u, 0x7du, 0xfcu,//mov    DWORD PTR [rbp-0x4],edi
 0x8bu, 0x45u, 0xfcu,//mov    eax,DWORD PTR [rbp-0x4]
 0x0fu, 0xafu, 0xc0u,//imul   eax,eax
 0x5du,//pop    rbp
 0xc3u,//ret
)
memScoped {
 val pointer = code.toCValues().getPointer(this)
 val func = pointer.reinterpret<CFunction<(Int) -> Int>>()
 println(func.invoke(2))
 println(func.invoke(3))
 println(func.invoke(5))
}
байты взял отсюда https://godbolt.org/z/9P6Mfer1v, по идее просто возведение int в квадрат
При запуске сразу завершается, без сообщений об ошибках и без вывода
PS я знаю что хочу странного и небезопасного
источник

IM

Igor Mikhailov in Kotlin Native
В общем разобрался, ассемблер немного не тот был и память надо было пометить как исполняемую(код для винды)
Вот так всё работает
val code = ubyteArrayOf(
   0x89u, 0xc8u,//mov    eax,ecx
   0x0fu, 0xafu, 0xc0u,//imul   eax,eax
   0xc3u,//ret
)
fun main() {
   memScoped {
       val systemInfo = alloc<SYSTEM_INFO>()
       GetSystemInfo(systemInfo.ptr);
       val page_size = systemInfo.dwPageSize;
       val buffer = VirtualAlloc(null, page_size.toULong(), MEM_COMMIT, PAGE_READWRITE) ?: return@memScoped
       memcpy(buffer, code.toCValues(), code.size.toULong());
       val q = alloc<DWORDVar>()
       VirtualProtect(buffer, code.size.toULong(), PAGE_EXECUTE_READ, q.ptr);
       val func = buffer.reinterpret<CFunction<(Int) -> Int>>()
       println(func.invoke(2))
       println(func.invoke(3))
       println(func.invoke(5))
       VirtualFree(buffer, 0, MEM_RELEASE);
   }
}
источник
2021 June 17

AN

Alexander Nozik in Kotlin Native
Товарищи, в доке написано, что cinterop должен находить хедеры по относительному имени (относительно def файла). А чего-то не находит. Что тут не так?
источник

AN

Alexander Nozik in Kotlin Native
Так, вроде разобрался методом копипасты. Правда совсем не очевидно
источник
2021 July 08

ВЖ

Виталий Жаков... in Kotlin Native
Все привет.

Пытаюсь разобраться с html dsl ktor.

https://ktor.io/docs/html-dsl.html#templates

Образец работает, но пытаюсь добавить заголовок страницы - ошибка типов.

Можете подсказать, что делаю не так?
Может, у кого есть пример?
источник

V

Vadya in Kotlin Native
В начале класса объявлен header, у которого тип Placeholder<FlowContent>, функция принимает строку или лямбду. Если нужен header: String из констрактора, добавьте перед ним в констракторе val/var и сделайте чтобы имена не пересекались
источник

ВЖ

Виталий Жаков... in Kotlin Native
Спасибо!

Заработало
package com.worldmap.templates

import io.ktor.html.*
import kotlinx.html.*

class LayoutTemplate (val header: String): Template<HTML> {
   val content = TemplatePlaceholder<ContentTemplate>()
   override fun HTML.apply() {
       head {
           title (header)
       }
       body {
           h1 {
               +header
           }
           insert(ContentTemplate(), content)
       }
   }
}
источник

V

Vadya in Kotlin Native
Бтв, вижу вы не состоите в основном чате, вот ссылка - https://t.me/kotlin_lang
Этот конкретно под Kotlin Native
источник
2021 August 08

BV

Boris Vanin in Kotlin Native
Trying out the experimental new Kotlin/Native memory model - DEV Community
https://dev.to/touchlab/trying-out-the-experimental-new-kotlin-native-memory-model-235k
источник

BV

Boris Vanin in Kotlin Native
Хотелось бы конечно немного больше информации про новую модель
источник

AN

Alexander Nozik in Kotlin Native
источник
2021 August 16

🐴🐴

🐴 🐴 in Kotlin Native
Здравствуйте, ищу обертку над platform.posix которая давала бы что-то хоть отдаленно похожее на kotlin.io. Существует такое?
источник

🐴🐴

🐴 🐴 in Kotlin Native
Даже не так. Не важно, обертка ли вообще и над чем. Есть ли возможность общаться с файловой системой каким-то идеоматичным котлину способом? Какой-нибудь вообще аналог kotlin.io то бишь.
источник

AN

Alexander Nozik in Kotlin Native
platform.posix - это уже обёртка. Чего в ней не устраивает?
источник

IP

Iaroslav Postovalov in Kotlin Native
То, что работать с файлами через open/close/lseek/read/write чуть менее удобно, чем через java.nio.*, к которому еще экстеншены kotlin.io присобачены?
источник
2021 November 20

O

OlegKrikun in Kotlin Native
Народ, а чем бы в https из под нейтива? ктор говорит что он в https не будет =)
источник

O

OlegKrikun in Kotlin Native
(клиент нужен)
источник

AN

Alexander Nozik in Kotlin Native
Где говорит? Вроде с 2.0 должна быть полная поддержка и клиента и сервера, разве нет?
источник

O

OlegKrikun in Kotlin Native
Говорит в рантайме, ща не у компа и не помню какую версию кейтора заюзал (вроде последнюю стабилную)
источник

O

OlegKrikun in Kotlin Native
Да, заюзал не 2.0, ща обновлюсь
источник