Skip to content

Instantly share code, notes, and snippets.

View Groostav's full-sized avatar

Geoff Groostav

View GitHub Profile
@Groostav
Groostav / resulting-error.log
Created July 23, 2018 08:13
producer-scope select-scope problem SSCCE
java.lang.ClassCastException: kotlinx.coroutines.experimental.channels.ProducerCoroutine cannot be cast to kotlinx.coroutines.experimental.selects.SelectClause1
at groostav.kotlinx.exec.CoroutineTests$when using select in producer to merge channels should operate normally$1$merged$1.doResume(CoroutineTests.kt:40)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42)
at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:162)
at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:26)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
@Groostav
Groostav / YetMoreExecutors.kt
Created April 19, 2018 23:47
A sequential-izing ExecutorService implementation
package com.empowerops.common
import kotlinx.coroutines.experimental.*
import kotlinx.coroutines.experimental.future.await
import java.time.Duration
import java.util.concurrent.*
import java.util.concurrent.TimeUnit.MILLISECONDS
import java.util.concurrent.TimeUnit.NANOSECONDS
import java.util.concurrent.atomic.AtomicLong
import java.util.concurrent.atomic.AtomicReference
'%RunPerInstance
'@
'@ taken without permission from: http://help.autodesk.com/view/MFIA/2016/ENU/?guid=GUID-202AB85B-5E58-47C9-9514-13BFF790A38D
'@
'@ DESCRIPTION
'@ Split Presssure Time Series Result into Individual Results.
'@ Recreate the Pressure Time Series Result
'@
'@ SYNTAX
'@ ReadingPressureData
@Groostav
Groostav / Z3Converter.kt
Created October 24, 2017 09:27
conversion method from my local antlr-based language to z3 constraints.
override fun exitLiteral(ctx: LiteralContext) {
exprs.push(when {
ctx.FLOAT() != null -> z3.mkReal(ctx.FLOAT().text)
ctx.INTEGER() != null -> z3.mkReal(ctx.INTEGER().text)
ctx.CONSTANT() != null -> when(ctx.text.toLowerCase()){
//RealExpr(z3, Native.rcfMkPi(z3))
// "pi" -> z3.mkReal(Math.PI.toString())
"pi" -> {
val exprCtor = RealExpr::class.constructors.single().apply { isAccessible = true }
val nCtxMember = Context::class.members.single { it.name == "nCtx" }.apply { isAccessible = true }
@Groostav
Groostav / output.log
Created July 24, 2017 22:58
result from running import of points
"C:\Program Files (x86)\Java\jdk1.8.0_121\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:56810,suspend=y,server=n -Djava.library.path=C:\Users\Geoff\Code\OASIS\lib\production -ea -Xmx1G -Dcom.empowerops.common.LoggingService.Bootstrapper.DefaultLevel=INFO -Djava.util.logging.FileHandler.pattern=C:/Users/Geoff/Desktop/testing.log -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext\sune
@Groostav
Groostav / BooleanRewritingWalker.kt
Created July 24, 2017 17:35
initial rewrite of the rewriting walker
package com.empowerops.problem_definition.babel
import com.empowerops.problem_definition.parser.BabelParser.*
import com.empowerops.problem_definition.parser.BabelParserBaseListener
import org.antlr.v4.runtime.CommonToken
import org.antlr.v4.runtime.misc.NotNull
import org.antlr.v4.runtime.tree.ParseTree
import org.antlr.v4.runtime.tree.TerminalNode
import org.antlr.v4.runtime.tree.TerminalNodeImpl
@Groostav
Groostav / ScheduledThreadPoolExecutor.kt
Last active July 1, 2017 22:37
verification that a thread pool executor wont expire threads mid schedule or otherwise run out of threads.
@Test fun `when using thread pool executors should keep threads alive for new jobs`(){
var callCount = 0;
val executor = ScheduledThreadPoolExecutor(1).apply {
setKeepAliveTime(1, TimeUnit.MILLISECONDS)
allowCoreThreadTimeOut(true)
}
System.gc()
@Groostav
Groostav / stack trace and bad gen code.log
Created April 30, 2017 22:48
sequence builder error
Error:Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: wrong code generated
org.jetbrains.kotlin.codegen.CompilationException Back-end (JVM) Internal error: Couldn't transform method node: doResume (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;:
@Lorg/jetbrains/annotations/Nullable;() // invisible
@Lorg/jetbrains/annotations/Nullable;() // invisible, parameter 0
@Lorg/jetbrains/annotations/Nullable;() // invisible, parameter 1
L0
ALOAD 0
GETFIELD com/empowerops/jargon/model/PipeSchedulerFixture$FakeUUIDGenerator$Companion$otherUUIDS$1.p$ : Lkotlin/coroutines/experimental/SequenceBuilder;
ASTORE 3
L1
@Groostav
Groostav / message demultiplexer with actors.kt
Last active April 26, 2017 10:01
heartbeat and IO whiteboarding
class ResponseDemultiplexingPipe(val blockingPipe: Pipe) {
sealed class IO {}
class Read(val id: UUID, response: Channel<MessageDTO>): IO
class Write(val id: UUID, response: MessageDTO): IO
var map: Map<UUID, Differed<MessageDTO>> = emptyMap()
val actor = actor<IO>(CommonPool) {
@Groostav
Groostav / Existing pipe code.kt
Last active April 8, 2017 20:41
Sample current pipe code on our codebase
import some.jna
import some.dtos
import some.other.domainmodels
makeEncodingAndConnectingPipe(/* makes a connected pipes using Win32 CreateNamedPipe over JNA */).use { pipe ->
pipe.writeMessage(json(StartMessage))
expect<StartAck>(pipe.readMessage())
while(isBusinessLogic()){