Size: a a a

2018 October 24

ПФ

Паша Финкельштейн in graalvm_ru
у кложура выпадать может подходящее по контексту, потом всё остальное. С каждым символом сужать
источник

ПФ

Паша Финкельштейн in graalvm_ru
с этим в хаскеле тоже проблема
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in graalvm_ru
если такой возможности нет, нужно выбрасывать синтаксис и делать другой синтаксис
источник

ПФ

Паша Финкельштейн in graalvm_ru
потому что функциональная композиция так не работает
источник

ПФ

Паша Финкельштейн in graalvm_ru
хаскель с другим синтаксисом! алилуия!
источник

ПФ

Паша Финкельштейн in graalvm_ru
скалу чтоль?
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in graalvm_ru
> С каждым символом сужать
как сужать то, если вначале ты пишешь самый конец (самую вложенную скобочку), и потом обвешиваешь ее вплоть до начала? То есть контекст только расширяется)
источник
2018 October 25

ПФ

Паша Финкельштейн in graalvm_ru
Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀
> С каждым символом сужать
как сужать то, если вначале ты пишешь самый конец (самую вложенную скобочку), и потом обвешиваешь ее вплоть до начала? То есть контекст только расширяется)
Во-первых, в кложе достаточно мало функций. Во-вторых, функций, начинающихся с определённого набора символов ещё меньше. В-третьих там есть куски джава-подобного синтаксиса (когда работаем с джавовой экосистемой), где указывается класс
источник
2018 October 26

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in graalvm_ru
Паша Финкельштейн
Во-первых, в кложе достаточно мало функций. Во-вторых, функций, начинающихся с определённого набора символов ещё меньше. В-третьих там есть куски джава-подобного синтаксиса (когда работаем с джавовой экосистемой), где указывается класс
мало функций? предствь полномасшатбный ынтерпрайзный проект) Сколько у тебя сейчас классов в жабе? Вот будет допустим, будет кложа на десять тысяч файлов...
источник
2018 October 28

ВВ

Виктор Вербицкий in graalvm_ru
Ну вот ведь блин...

error: target class must inherit directly from Object: class org.apache.logging.log4j.core.appender.db.jpa.JpaDatabaseManager

Это что же получается? @TargetClass и @Substitute работают только для классов без иерархии? Т.е. если мне надо перекрыть метод в классе со сложной иерархией, то фигвам? Эх...
источник

ВВ

Виктор Вербицкий in graalvm_ru
Так. Ладно. Отставить панику. С этим разобрался...
Зато сразу нарвался на NPE:

    [exec] error: Error encountered while parsing com.oracle.graal.enterprise.F.f.primitiveAllocator(jdk.vm.ci.meta.JavaKind)
    [exec] Parsing context:
    [exec]   parsing com.oracle.graal.enterprise.F.f.a(stripped:66)
    [exec]   parsing com.oracle.graal.enterprise.U.c.copyOfLong(stripped:137)
    [exec]   parsing com.oracle.svm.reflect.proxies.Proxy_com_oracle_graal_enterprise_U_c_copyOfLong__J__J_int_int_int_192.invoke(Unknown Source)
    [exec]   parsing java.lang.reflect.Method.invoke(Method.java:498)
    [exec]   parsing org.apache.logging.log4j.util.ReflectionUtil.getCallerClass(ReflectionUtil.java:129)
    [exec]   parsing me.vektory79.svm.log4j.support.LogManagerSupport.callerClass(LogManagerSupport.java:44)
    [exec]   parsing me.vektory79.svm.log4j.support.LogManagerSupport$1.invoke(LogManagerSupport.java:31)
    [exec]   parsing com.sun.proxy.$Proxy149.hashCode(Unknown Source)
    [exec]   parsing org.graalvm.collections.Equivalence$2.hashCode(Equivalence.java:86)
    [exec]   parsing org.graalvm.collections.EconomicMapImpl.getHashIndex(EconomicMapImpl.java:411)
    [exec]   parsing org.graalvm.collections.EconomicMapImpl.putHashEntry(EconomicMapImpl.java:577)
    [exec]   parsing org.graalvm.collections.EconomicMapImpl.put(EconomicMapImpl.java:451)
    [exec]   parsing org.graalvm.collections.EconomicMap.putAll(EconomicMap.java:84)
    [exec]   parsing org.graalvm.collections.EconomicMapImpl.<init>(EconomicMapImpl.java:183)
    [exec]   parsing org.graalvm.collections.EconomicMapImpl.create(EconomicMapImpl.java:158)
    [exec]   parsing org.graalvm.collections.EconomicMap.create(EconomicMap.java:171)
    [exec]   parsing org.graalvm.compiler.options.ModifiableOptionValues.update(ModifiableOptionValues.java:93)
    [exec]   parsing com.oracle.svm.core.option.RuntimeOptionParser.parse(RuntimeOptionParser.java:146)
    [exec]   parsing com.oracle.svm.jni.functions.JNIInvocationInterface$Exports.JNI_CreateJavaVM(JNIInvocationInterface.java:154)
    [exec]   parsing com.oracle.svm.core.code.CEntryPointCallStubs.com_002eoracle_002esvm_002ejni_002efunctions_002eJNIInvocationInterface_0024Exports_002eJNI_005fCreateJavaVM_0028com_002eoracle_002esvm_002ejni_002enativeapi_002eJNIJavaVMPointer_002ccom_002eoracle_002esvm_002ejni_002enativeapi_002eJNIEnvironmentPointer_002ccom_002eoracle_002esvm_002ejni_002enativeapi_002eJNIJavaVMInitArgs_0029(generated:0)
    [exec] Original error: java.lang.NullPointerException
    [exec]   at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:304)
    [exec]   at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:310)
    [exec]   at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:300)
    [exec]   at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
    [exec]   at com.oracle.graal.pointsto.flow.StaticInvokeTypeFlow.update(InvokeTypeFlow.java:346)
    [exec]   at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:508)
    [exec]   at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:174)
    [exec]   at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    [exec]   at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    [exec]   at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    [exec]   at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    [exec]   at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
источник

ВВ

Виктор Вербицкий in graalvm_ru
Выглядит так, буд-то логика формирования интринсика поломана... о_О
источник

ВВ

Виктор Вербицкий in graalvm_ru
Точнее - криволе логирование 😊:

       if (method.getAnnotation(NodeIntrinsic.class) != null) {
           graph.getDebug().log("apply MethodTypeFlow on node intrinsic %s", method);
           AnalysisType returnType = (AnalysisType) method.getSignature().getReturnType(method.getDeclaringClass());
           if (returnType.getJavaKind() == JavaKind.Object) {
                .......
           }
           return;
       }

       if (!parse()) {
           return;
       }
источник

ВВ

Виктор Вербицкий in graalvm_ru
В точке вызова graph.getDebug() поле graph ещё неинициализировано, т.к. оно присваивается в вызове parse() позже!
источник

ВВ

Виктор Вербицкий in graalvm_ru
Таки надо быдет разобраться как самому SVM компилять и начать городить патчи на такие ошибки 😊
источник

ВВ

Виктор Вербицкий in graalvm_ru
Как жешь приятно в этом ковыряться, когда это Java, а не кресты!!!!
источник

OS

Oleg Shelajev in graalvm_ru
Привет, клёвый баг. Там в репо в папке substratevm в ридми написано как ее билдить. И @olegchir делал недавно видео как он чёто там патчил
источник
2018 October 29

p

pragus in graalvm_ru
Я вам народа привел :)) @shelajevoleg @olegchir
источник

OS

Oleg Shelajev in graalvm_ru
Welcome! Спасибо
источник

ИГ

Иван Гладуш in graalvm_ru
всем привет, наверное здесь задавали такой вопрос, так чтопростите за повтореник.
Кто-тов проде юзал граал и если да, то как результаты?(про Твитер я смотрел доклады)
источник