profile
viewpoint
Crispin Wellington retrogradeorbit Epic Castle Perth, Australia https://epiccastle.io/blog/

retrogradeorbit/bootleg 153

Simple template processing command line tool to help build static websites

babashka/babashka.nrepl 16

The nREPL server from babashka as a library, so it can be used from other sci-based CLIs.

chr15m/speedy-spa 6

Fast loading material SPA test in LISP

retrogradeorbit/cloud-fighter 6

August 2016 Lisp Game Jam

retrogradeorbit/biscuit-switch 3

Theme: Shapeshift

chr15m/gamejame_2015_team_farnarkle 2

retrogradeorbit and chr15m at Global Game Jam 2015

retrogradeorbit/bouncr 2

Resonant Baby Auto Rocker DIY Project

retrogradeorbit/decloj 2

A test project for building clojure + javacpp + libqt + graal

retrogradeorbit/earth-vr 2

clojurescript planet earth using three.js

retrogradeorbit/croak 1

A remote host health monitoring and reporting application

issue openedepiccastle/spire

upload of file to inside a directory hangs

(spire/upload {:src "acmetool_0.2.1_amd64.deb"
                 :dest "/usr/src/"})

hangs.

but:

(spire/upload {:src "acmetool_0.2.1_amd64.deb"
                 :dest "/usr/src/acmetool_0.2.1_amd64.deb"})

works

created time in 3 hours

issue openedepiccastle/spire

add network information to facts

facts needs to contain details of the network configuration

created time in 4 hours

issue openedepiccastle/spire

user module sometimes reports change when no change occurs

(spire/user :present {:name "tinydns" :uid 1200 :group "admin" :shell "/bin/false"})
=>  {:exit 0, :out "", :err "usermod: no changes\n", :out-lines [""], :result :changed}

created time in 4 hours

startedJaidedAI/EasyOCR

started time in 6 hours

issue openedepiccastle/spire

add a `:success-test` to shell to test the return code

tomc 4:05 AM I've run into a situation a few times now where I want to run a shell command not have non-zero exit codes crash the script. Would it make sense for spire to allow something like that? perhaps (shell {:cmd "whatever" :accept-codes #{0 254}})? Crispin 10:41 AM yeah that makes total sense. the module curl has something like that :success-test. Would make it take a function, so you could put a predicate there, or a set.

created time in 7 hours

issue commentepiccastle/spire

implement a shell context manipulation macro

It would prefix the call to each invocation. It still could be a convenience function. It might also be useful for a common environment variable setting like PATH.

retrogradeorbit

comment created time in 19 hours

issue openedepiccastle/spire

line-in-file :string-match has problems with a colon

:string-match "Version:" failed to find the line but :string-match "Version" worked.

created time in a day

issue openedepiccastle/spire

shell non zero exit code doesn't fail

shell command exit's with value 2, yet the module result is marked as :result :ok

created time in a day

issue openedepiccastle/spire

implement a shell context manipulation macro

Often the context of running shells needs to be mainuplated for a bunch of shell commands. I propose a shell context macro. Something like

(with-shell-context {:cmd-prefix ". .nvm/nvm.sh"}
    (shell {:cmd "nvm install 12.18.2"})
    (shell {:cmd "nvm alias default node"}))

or

(with-shell-context {:env {:NVM_BIN "/home/crispin/.nvm/versions/node/v12.18.2/bin"
                          :NVM_CD_FLAGS ""
                          :NVM_DIR "/home/crispin/.nvm"
                          :NVM_INC "/home/crispin/.nvm/versions/node/v12.18.2/include/node"}}
    (shell {:cmd "nvm alias default node"})
    (shell {:cmd "npx electron-packager . tilemapgl --platform=win32 --arch=x64"}))

created time in a day

push eventepiccastle/spire

Crispin Wellington

commit sha 00a57243900422e2ec526f7feac8b2f6a98a8ab7

correct misreporting max filename length for progress bar - #110

view details

Crispin Wellington

commit sha e4a1a7800f897ad88999200ecf10234b31c75e31

unite terminal width calls

view details

Crispin Wellington

commit sha 070c72e69c6f3cf6d059dc24fe40a4d83f90bcf6

fix one occurance of stale line overwrite

view details

push time in 2 days

issue openedepiccastle/spire

package updaters and upgraders could have :print option as well

(apt :upgrade) takes it's time. It would be nice to also have :print option.

created time in 2 days

issue openedepiccastle/spire

add link module

making symlinks with shell is too hard. Make a ln module. call it ln or link?

created time in 2 days

issue openedepiccastle/spire

improve rm module

rm is barely implemented. do it properly.

created time in 2 days

push eventretrogradeorbit/nativegl

Crispin Wellington

commit sha b666c7c0fe325e7208db595ed9e0c792dbd0ac40

fix java home

view details

push time in 2 days

push eventretrogradeorbit/nativegl

Crispin Wellington

commit sha 2433af992c451beccfbc4b6a77003cc5334943da

include path

view details

Crispin Wellington

commit sha a01ef9d8b3ea2c41974bf6e90e826b5c9f51634a

echo command

view details

push time in 2 days

issue openedbabashka/babashka.nrepl

implement interrupt

I'm beginning to need interrupt support. This one will be interesting...

https://github.com/clojure-emacs/cider/blob/dffe8c5c0bb6d07157e3db7322a0c8076ccb3a7b/cider-client.el#L387

created time in 2 days

push eventretrogradeorbit/nativegl

Crispin Wellington

commit sha 7aa8264d32369f34a90e3572b0da1f2e3e49495f

make header file

view details

push time in 2 days

push eventretrogradeorbit/nativegl

Crispin Wellington

commit sha d5bb7acfdccca3e49801a06b27c6a708399191e4

compile dll attempt 1

view details

push time in 2 days

push eventretrogradeorbit/nativegl

Crispin Wellington

commit sha 7dd8d9f9163c8f82b0eb14fcaf847981645b4e21

hook in appveyor template

view details

push time in 2 days

create barnchretrogradeorbit/nativegl

branch : master

created branch time in 3 days

created repositoryretrogradeorbit/nativegl

experimental application base combing graal, jni and opengl

created time in 3 days

pull request commentSaikyun/clobits

set and assert env vars are correct

:+1:

retrogradeorbit

comment created time in 3 days

issue openedepiccastle/spire

add babashka's wait-for-port

created time in 3 days

issue openedepiccastle/spire

add aws module

Write a convenient wrapper for the aws cli program as a module. This can run locally or on a remote machine.

created time in 3 days

startedborkdude/michielborkent.nl

started time in 3 days

issue openedepiccastle/spire

rename curl option :decode? into :decode

no other boolean key has a question mark

created time in 3 days

push eventepiccastle/spire

Crispin Wellington

commit sha 05da53dde5814be8715edee23975ddbe724a77f2

update documentation

view details

push time in 3 days

startedLokeh/helix

started time in 4 days

issue closedepiccastle/spire

Unclean remote terminal session causes upload, download and shell modules to hang.

Hello,

I'm having some troubles making a ssh connection. I believe it's related to using ecdsa keys, although I'm hardly an expert in ssh troubleshooting. Here's the output with --debug-ssh:

Connection established
Remote version string: SSH-2.0-Go
Local version string: SSH-2.0-JSCH-0.1.54
CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
ecdsa-sha2-nistp256 is not available.
ecdsa-sha2-nistp384 is not available.
ecdsa-sha2-nistp521 is not available.
SSH_MSG_KEXINIT sent
SSH_MSG_KEXINIT received
kex: server: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
kex: server: ssh-rsa
kex: server: aes128-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr
kex: server: aes128-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr
kex: server: hmac-sha2-256-etm@openssh.com,hmac-sha2-256,hmac-sha1,hmac-sha1-96
kex: server: hmac-sha2-256-etm@openssh.com,hmac-sha2-256,hmac-sha1,hmac-sha1-96
kex: server: none
kex: server: none
kex: server: 
kex: server: 
kex: client: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
kex: client: ssh-rsa,ssh-dss
kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc
kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc
kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-```96,hmac-md5-96
kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
kex: client: none
kex: client: none
kex: client: 
kex: client: 
kex: server->client aes128-ctr hmac-sha1 none
kex: client->server aes128-ctr hmac-sha1 none
SSH_MSG_KEX_ECDH_INIT sent
expecting SSH_MSG_KEX_ECDH_REPLY
ssh_rsa_verify: signature true
Host '<hostname>' is known and matches the RSA host key
SSH_MSG_NEWKEYS sent
SSH_MSG_NEWKEYS received
SSH_MSG_SERVICE_REQUEST sent
SSH_MSG_SERVICE_ACCEPT received
Authentications that can continue: publickey,keyboard-interactive,password
Next authentication method: publickey
Disconnecting from .. <hostname> .. port 2200
Exception in thread "async-dispatch-1" com.jcraft.jsch.JSchException: Auth fail
	at com.jcraft.jsch.Session.connect(Session.java:519)
	at com.jcraft.jsch.Session.connect(Session.java:183)

I'm setting setting the :private and :public-key fields with:

{:private-key (slurp "<home>/.ssh/id_ecdsa")
 :public-key (slurp "<home>/.ssh/id_ecdsa.pub")

I've also tried connecting without setting :private-key and :public-key, but no luck. I am able to connect with plain ssh at the commandline no problem.

Regards, John C.

closed time in 4 days

cartesian-theatrics

issue commentepiccastle/spire

Unclean remote terminal session causes upload, download and shell modules to hang.

Theres not much I can do with an unclean terminal session so closing this. Thank's @cartesian-theatrics for reporting as it's here in the archives in case others experience it.

cartesian-theatrics

comment created time in 4 days

issue closedepiccastle/spire

Difficulties w/ line-in-file module

I'm attempting to use line-in-file to add a known_hosts key for cloning repos from github. I hit a few snags:

  • line-in-file doesn't modify the file when it's completely empty. I had to manually add a blank line to the file, then line-in-file would work correctly.
  • the regex support can be difficult to use. In my use case, I want to check whether an exact line is present in the file. The line contains regex special characters, so it doesn't match itself when converted to a regex. In java-land, I can fix that by quoting the regex w/ java.util.regex.Pattern.quote, but that doesn't translate to the same thing when the regex is converted to sed syntax.

Ideas:

  • Allow :regexp to be a string, and convert it to a regex that will only match that string.
  • When :regexp isn't provided, convert :line to a regex that will only match :line, and use that.
  • Document that the module doesn't actually use java regular expressions

closed time in 4 days

tomconnors

issue commentepiccastle/spire

Difficulties w/ line-in-file module

this is all implemented in v0.1.0-alpha.15

tomconnors

comment created time in 4 days

issue closedepiccastle/spire

add an option to shell module to stream output

had the case of a long running remote shell script (40+ minutes). Would be nice to be able to stream the stdout back to the client as it happens for these cases.

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

add an option to shell module to stream output

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

Allow line-in-file to match lines with a string, rather than a regexp

"Allow :regexp to be a string, and convert it to a regex that will only match that string." - #84

Should be uncomplected from :regexp and use something like :string-match or :line-match

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

Allow line-in-file to match lines with a string, rather than a regexp

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

line-in-file module: match by line if only line is provided

When :regexp isn't provided, convert :line to a regex that will only match :line, and use that.

#84

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

line-in-file module: match by line if only line is provided

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

add line-in-file documentation around the regexp being converted to sed patterns

also consider adding java regexp special match modifier support

#84

closed time in 4 days

retrogradeorbit

issue closedepiccastle/spire

output module should print out multiple line forms rather than truncating the line

If there is a large form that needs to be printed, it should print out all the lines, not just truncate at a single line.

closed time in 4 days

retrogradeorbit

issue closedepiccastle/spire

output module should have a toggle option to enable printing output of the module to the terminal

would really help nrepl development to be able to c-x c-e (shell {:cmd "ls"}) and instead of seeing it as a data structure inside cider, see the actual stdout echo in the spire command line terminal.

closed time in 4 days

retrogradeorbit

issue closedepiccastle/spire

apt-key module

add an apt-key module

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

apt-key module

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

apt-repo requires curl to be installed

but it isnt properly listed as a requirement

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

apt-repo requires curl to be installed

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

missing spit

clojure.lang.ExceptionInfo: Could not resolve symbol: clojure.core/spit [at line 1, column 2]
{:type :sci/error, :line 1, :column 2}

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

missing spit

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

issue closedepiccastle/spire

piping spire shell :print output to dev null results in divide by zero

spire$ lein trampoline run -- -e '(shell {:cmd "echo bar 1>&2" :print true})' 1>/dev/null
bar
Exception in thread "async-thread-macro-1" java.lang.ArithmeticException: Divide by zero
	at clojure.lang.Numbers.quotient(Numbers.java:195)
	at clojure.lang.Numbers.quotient(Numbers.java:1879)
	at spire.utils$num_terminal_lines.invokeStatic(utils.clj:399)
	at spire.utils$num_terminal_lines.invoke(utils.clj:392)
	at spire.output.default$print_state.invokeStatic(default.clj:220)
	at spire.output.default$print_state.invoke(default.clj:190)
	at spire.output.default$state_change$iter__17988__17992$fn__17993.invoke(default.clj:339)
	at clojure.lang.LazySeq.sval(LazySeq.java:42)
	at clojure.lang.LazySeq.seq(LazySeq.java:51)
	at clojure.lang.RT.seq(RT.java:535)
	at clojure.core$seq__5405.invokeStatic(core.clj:137)
	at clojure.core$dorun.invokeStatic(core.clj:3135)
	at clojure.core$doall.invokeStatic(core.clj:3150)
	at clojure.core$doall.invoke(core.clj:3150)
	at spire.output.default$state_change.invokeStatic(default.clj:337)
	at spire.output.default$state_change.invoke(default.clj:223)
	at spire.output.default$eval18117$fn__18118$fn__18119.invoke(default.clj:407)
	at clojure.core.async$thread_call$fn__15344.invoke(async.clj:484)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

closed time in 4 days

retrogradeorbit

issue commentepiccastle/spire

piping spire shell :print output to dev null results in divide by zero

fixed in v0.1.0-alpha.15

retrogradeorbit

comment created time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha 6979fd86246776ad9f782c0a5031ca1d8c3dd096

update CHANGELOG

view details

Crispin Wellington

commit sha a32a4cd2050e30c63aa7fd6ca1998546f2213f93

bump version numbers

view details

push time in 4 days

created tagepiccastle/spire

tagv0.1.0-alpha.15

pragmatic provisioning using clojure

created time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha cee092947e2f0f333866e28f9ea654722aebb784

changelog updated

view details

push time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha 6c39faff5fce8aa76465f10c0aa30686e0e49096

if/elif bsd matcher

view details

push time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha 21617d6207ab66cd4f26e9161c90c5b08dc72d79

fix broken insert-at for bsd

view details

push time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha 4a23519c4712b5cfbba7f7fe46434d11c89eb47f

more tests

view details

push time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha d65f56f1cd176549794d138b9eff2f39e4ac1cc8

bunch of line-in-file tests

view details

Crispin Wellington

commit sha 732ac5ba35b3ca9928750dd99ad08c591e5ccda1

rearrange selector

view details

Crispin Wellington

commit sha d42b14e43303bd19c260e9dcdd50a0e927ecbc90

fix broken insert-at

view details

push time in 4 days

push eventepiccastle/spire

Crispin Wellington

commit sha c5ce7819e1a30bd0d7a96f59d5b2a076234c2ad9

default :line-match to :line - #86

view details

push time in 5 days

push eventepiccastle/spire

Crispin Wellington

commit sha ef0ae5bbeb4187b0bd91d32a14f30c0ea63f2470

implement :line-match in line-in-file - #86

view details

push time in 5 days

push eventepiccastle/spire

Crispin Wellington

commit sha 19face37fc23584272c9a426d6ecaf1023ab274b

add $LINE_MATCH option to line-in-file scripts - #86

view details

Crispin Wellington

commit sha f63a4c6f6070f1e60133bdd9b5f8a392b4ad1e55

fix introduced bug in line-in-file :get - #86

view details

push time in 5 days

push eventepiccastle/spire

Crispin Wellington

commit sha 5c1a12867cbe1553dad4859c6ea63b7f92085f5d

changelog for docs

view details

Crispin Wellington

commit sha 580b6851c50690ed7571207e6485a5da71fd12b5

line-in-file :string-match implemented - #85

view details

Crispin Wellington

commit sha 01682d54ca624154e3cb67e1dfb05aee46557009

fix breakage - #85

view details

push time in 6 days

pull request commentSaikyun/clobits

set and assert env vars are correct

Updated readme

retrogradeorbit

comment created time in 7 days

push eventepiccastle/clobits

Crispin Wellington

commit sha 6d78ccff5c11e2a367994e240b6d64b76b6eb797

update docs to reflect easier makefile setup

view details

push time in 7 days

push eventepiccastle/spire

Crispin Wellington

commit sha 171f5205dbe52e43ebf1b6665e20dd3605f16b0c

add line-in-file documentation about :regexp being sed formulation - #87

view details

push time in 7 days

push eventepiccastle/spire

Crispin Wellington

commit sha 82ac4a20194401ec52f44397b4b5ee3e3daef7b4

apt-key documentation

view details

push time in 7 days

push eventepiccastle/spire

Crispin Wellington

commit sha fc63163c20585c25ee7a8f0f68aac0c4e3311fcc

update changelog

view details

push time in 7 days

pull request commentSaikyun/clobits

set and assert env vars are correct

@Saikyun do you want me to also update the Readme?

retrogradeorbit

comment created time in 7 days

PR opened Saikyun/clobits

set and assert env vars are correct

Are you using a mac? Please chack this works on the mac. It should.

With no env set:

crispin@vash:~/dev/epiccastle/clobits$ unset JAVA_HOME
crispin@vash:~/dev/epiccastle/clobits$ unset GRAALVM_HOME
crispin@vash:~/dev/epiccastle/clobits$ unset LLVM_TOOLCHAIN
crispin@vash:~/dev/epiccastle/clobits$ make clean sdl-poly
make: /bin/lli: Command not found
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm -r target
rm -r libs/*

  Error: You must set or pass in the GRAALVM_HOME environment variable.

Makefile:46: recipe for target 'assert-graal' failed
make: *** [assert-graal] Error 1

with GRAALVM_HOME as environment var

crispin@vash:~/dev/epiccastle/clobits$ export GRAALVM_HOME=/home/crispin/graalvm-ce-java11-20.1.0/
crispin@vash:~/dev/epiccastle/clobits$ make clean sdl-poly
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm: cannot remove 'src/bindings': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r target
rm: cannot remove 'target': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r libs/*
rm: cannot remove 'libs/*': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
/home/crispin/graalvm-ce-java11-20.1.0/languages/llvm/native/bin/clang --version
clang version 9.0.0 (GraalVM.org llvmorg-9.0.0-5-g80b1d876fd-bgb66b241662 80b1d876fd4296b48433de5b66eaebe551897508)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/crispin/graalvm-ce-java11-20.1.0/lib/llvm/bin
LLVM_TOOLCHAIN=/home/crispin/graalvm-ce-java11-20.1.0/languages/llvm/native/bin lein exec -ep "(require '[clobits.examples.sdl.create-sdl-lib]) (clobits.examples.sdl.create-sdl-lib/-main)"
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Creating libs
Generating bindings.sdl
Creating dir #object[java.io.File 0x671facee /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x46a953cf /home/crispin/dev/epiccastle/clobits/src/bindings]
Creating dir #object[java.io.File 0x154bd49b /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x3a01773b /home/crispin/dev/epiccastle/clobits/src/bindings]
Spitting c-code: // includes
#include "sdl.h"

// inline-c
int GET_SDL_INIT_VIDEO() { return SDL_INIT_VIDEO; }
int GE ...

Spitting h-code: #if IS_POLYGLOT
#include <polyglot.h>
#endif
#include <stdio.h>
#include <SDL2/SDL.h>

int  _SHADOWI ...

Compilation results:
{:exit 0, :out , :err src/bindings/sdl.c:72:11: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
 title634 = title;
          ^ ~~~~~
1 warning generated.
}
{:exit 0, :out , :err }
Creating dir #object[java.io.File 0x5477a1ca /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x3ae9d1e2 /home/crispin/dev/epiccastle/clobits/src/bindings]
Persisting clj to: src/bindings/sdl_ns.clj
Done!
rm -r target
LLVM_TOOLCHAIN=/home/crispin/graalvm-ce-java11-20.1.0/languages/llvm/native/bin lein exec -ep "(require '[clobits.examples.ncurses.create-ncurses-lib]) (clobits.examples.ncurses.create-ncurses-lib/-main)"
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Creating libs
Generating bindings.ncurses
Creating dir #object[java.io.File 0xf288c14 /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x6794ac0b /home/crispin/dev/epiccastle/clobits/src/bindings]
Creating dir #object[java.io.File 0x7be71476 /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x5cb5bb88 /home/crispin/dev/epiccastle/clobits/src/bindings]
Spitting c-code: // includes
#include "ncurses.h"

// inline-c


// fns
void  _SHADOWING_free( void * ptr) {
  free(p ...

Spitting h-code: #if IS_POLYGLOT
#include <polyglot.h>
#endif
#include <ncurses.h>
#include <stdlib.h>
#include <stri ...

Compilation results:
{:exit 0, :out , :err }
{:exit 0, :out , :err }
Creating dir #object[java.io.File 0x4d1f1ff5 /home/crispin/dev/epiccastle/clobits/src]
Creating dir #object[java.io.File 0x222afc67 /home/crispin/dev/epiccastle/clobits/src/bindings]
Persisting clj to: src/bindings/ncurses_ns.clj
Done!
rm -r target
lein with-profiles +linux,+sdl-poly do clean, run
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
In polyglot context
WARNING: delay already refers to: #'clojure.core/delay in namespace: bindings.sdl-ns, being replaced by: #'bindings.sdl-ns/delay
rgb1 16777215
rgb2 16711680

Overriding GRAALVM_HOME on make line with graal that has no llvm installed

crispin@vash:~/dev/epiccastle/clobits$ make clean sdl-poly GRAALVM_HOME=/home/crispin/graalvm-ce-java11-20.2.0-devrm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:15: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm -r target
rm -r libs/*
/home/crispin/graalvm-ce-java11-20.2.0-dev/languages/llvm/native/bin/clang --version
Tool execution failed. Are you sure the toolchain is available at /home/crispin/graalvm-ce-java11-20.2.0-dev/lib/llvm
You can install it via GraalVM updater: `gu install llvm-toolchain`

More infos: https://www.graalvm.org/docs/reference-manual/languages/llvm/
Makefile:52: recipe for target 'assert-clang' failed
make: *** [assert-clang] Error 1

+15 -3

0 comment

1 changed file

pr created time in 7 days

create barnchepiccastle/clobits

branch : auto-set-env-in-makefile

created branch time in 7 days

issue closedSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: truffle polyglot raises java.nio.file.NoSuchFileException for libs/libbindings$sdl.so

using on ubuntu 18.04 linux, openjdk-11. Same problem happens with sdl-poly, sdl-ni target and bindings target.

crispin@vash:~/dev/clojure/clobits$ make clean sdl-poly
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm: cannot remove 'src/bindings': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r target
rm -r libs/*
rm: cannot remove 'libs/*': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
lein exec -ep "(require '[clobits.examples.sdl.create-sdl-lib]) (clobits.examples.sdl.create-sdl-lib/-main)"
Syntax error (ClassNotFoundException) compiling at (clobits/native_image.clj:11:4).
org.graalvm.nativeimage.c.struct.CField

Full report at:
/tmp/clojure-4110579083862828447.edn
Subprocess failed (exit code: 1)
Makefile:21: recipe for target 'sdl-bindings' failed
make: *** [sdl-bindings] Error 1
$ cat /tmp/clojure-4110579083862828447.edn
{:clojure.main/message
 "Syntax error (ClassNotFoundException) compiling at (clobits/native_image.clj:11:4).\norg.graalvm.nativeimage.c.struct.CField\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 11,
  :clojure.error/column 4,
  :clojure.error/source "native_image.clj",
  :clojure.error/path "clobits/native_image.clj",
  :clojure.error/class java.lang.ClassNotFoundException,
  :clojure.error/cause "org.graalvm.nativeimage.c.struct.CField"},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message
    "Syntax error compiling at (clobits/native_image.clj:11:4).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 11,
     :clojure.error/column 4,
     :clojure.error/source "clobits/native_image.clj"},
    :at [clojure.lang.Compiler analyze "Compiler.java" 6808]}
   {:type java.lang.ClassNotFoundException,
    :message "org.graalvm.nativeimage.c.struct.CField",
    :at
    [java.net.URLClassLoader findClass "URLClassLoader.java" 471]}],
  :trace
  [[java.net.URLClassLoader findClass "URLClassLoader.java" 471]
   [clojure.lang.DynamicClassLoader
    findClass
    "DynamicClassLoader.java"
    69]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 589]
   [clojure.lang.DynamicClassLoader
    loadClass
    "DynamicClassLoader.java"
    77]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 522]
   [java.lang.Class forName0 "Class.java" -2]
   [java.lang.Class forName "Class.java" 398]
   [clojure.lang.RT classForName "RT.java" 2211]
   [clojure.lang.RT classForName "RT.java" 2220]
   [clojure.lang.Compiler resolveIn "Compiler.java" 7395]
   [clojure.lang.Compiler resolve "Compiler.java" 7358]
   [clojure.lang.Compiler analyzeSymbol "Compiler.java" 7319]
   [clojure.lang.Compiler analyze "Compiler.java" 6768]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$MapExpr parse "Compiler.java" 3103]
   [clojure.lang.Compiler analyze "Compiler.java" 6797]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3888]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7109]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$VectorExpr parse "Compiler.java" 3260]
   [clojure.lang.Compiler analyze "Compiler.java" 6791]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$LetExpr$Parser parse "Compiler.java" 6436]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$FnMethod parse "Compiler.java" 5467]
   [clojure.lang.Compiler$FnExpr parse "Compiler.java" 4029]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7105]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler access$300 "Compiler.java" 38]
   [clojure.lang.Compiler$DefExpr$Parser parse "Compiler.java" 596]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 512]
   [clobits.examples.sdl.create_sdl_lib$eval146$loading__6721__auto____147
    invoke
    "create_sdl_lib.clj"
    1]
   [clobits.examples.sdl.create_sdl_lib$eval146
    invokeStatic
    "create_sdl_lib.clj"
    1]
   [clobits.examples.sdl.create_sdl_lib$eval146
    invoke
    "create_sdl_lib.clj"
    1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7166]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [user$eval7 invokeStatic nil 1]
   [user$eval7 invoke nil 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler load "Compiler.java" 7583]
   [clojure.core$load_reader invokeStatic "core.clj" 4087]
   [clojure.core$load_string invokeStatic "core.clj" 4089]
   [clojure.core$load_string invoke "core.clj" 4089]
   [user$eval5 invokeStatic "form-init8544657221453783428.clj" 1]
   [user$eval5 invoke "form-init8544657221453783428.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7167]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler loadFile "Compiler.java" 7574]
   [clojure.main$load_script invokeStatic "main.clj" 475]
   [clojure.main$init_opt invokeStatic "main.clj" 477]
   [clojure.main$init_opt invoke "main.clj" 477]
   [clojure.main$initialize invokeStatic "main.clj" 508]
   [clojure.main$null_opt invokeStatic "main.clj" 542]
   [clojure.main$null_opt invoke "main.clj" 539]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "org.graalvm.nativeimage.c.struct.CField",
  :phase :compile-syntax-check}}

closed time in 7 days

retrogradeorbit

issue commentSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: truffle polyglot raises java.nio.file.NoSuchFileException for libs/libbindings$sdl.so

Alright! tried with 20.1.0 and success! wooot! :partying_face:

@Saikyun you could set your LLVM_TOOLCHAIN env in the header of the makefile (something like LLVM_TOOLCHAIN := $(shell lli --print-toolchain-path) )

I also setup vars in my Makefile header like this. I adjust the PATH in my make to ensure its the graal bin.

https://github.com/retrogradeorbit/bootleg/blob/master/Makefile#L1-L3

You can override these by suffixing the make command line:

eg:

make clean sdl-poly UNAME=Darwin # now my makefile thinks I'm on a mac

I can whip up a PR with some minor changes if you would like and you can take them or leave them...

retrogradeorbit

comment created time in 7 days

issue commentSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: truffle polyglot raises java.nio.file.NoSuchFileException for libs/libbindings$sdl.so

OK. looks like my llvm-toolchain failed to install:

$ bin/gu install llvm-toolchain
Downloading: Component catalog from raw.githubusercontent.com
Processing Component: LLVM.org toolchain
Downloading: Component llvm-toolchain: LLVM.org toolchain  from github.com
Error: Package for component llvm-toolchain is not accessible at https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/20.2.0-dev-20200516_0204/llvm-toolchain-installable-java11-linux-amd64-20.2.0-dev.jar

my 20.2.0-dev graal is out of date. will download latest and try again.

retrogradeorbit

comment created time in 7 days

issue commentSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: "Cannot run program \"/clang\": error=2, No such file or directory"

Ok after reading the source code saw the use of LLVM_TOOLCHAIN env var to find clang (and its in the docs but I must be blind).

$ export LLVM_TOOLCHAIN=$(lli --print-toolchain-path)
$ echo $LLVM_TOOLCHAIN
/home/crispin/graalvm-ce-java11-20.2.0-dev/languages/llvm/native/bin
$ make clean sdl-poly 
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm -r target
rm -r libs/*
rm: cannot remove 'libs/*': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
lein exec -ep "(require '[clobits.examples.sdl.create-sdl-lib]) (clobits.examples.sdl.create-sdl-lib/-main)"
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Creating libs
Generating bindings.sdl
Creating dir #object[java.io.File 0x671facee /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x46a953cf /home/crispin/dev/clojure/clobits/src/bindings]
Creating dir #object[java.io.File 0x154bd49b /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x3a01773b /home/crispin/dev/clojure/clobits/src/bindings]
Spitting c-code: // includes
#include "sdl.h"

// inline-c
int GET_SDL_INIT_VIDEO() { return SDL_INIT_VIDEO; }
int GE ...

Spitting h-code: #if IS_POLYGLOT
#include <polyglot.h>
#endif
#include <stdio.h>
#include <SDL2/SDL.h>

int  _SHADOWI ...

Compilation results:
{:exit 1, :out , :err Tool execution failed. Are you sure the toolchain is available at /home/crispin/graalvm-ce-java11-20.2.0-dev/lib/llvm
You can install it via GraalVM updater: `gu install llvm-toolchain`

More infos: https://www.graalvm.org/docs/reference-manual/languages/llvm/
}
{:exit 1, :out , :err Tool execution failed. Are you sure the toolchain is available at /home/crispin/graalvm-ce-java11-20.2.0-dev/lib/llvm
You can install it via GraalVM updater: `gu install llvm-toolchain`

More infos: https://www.graalvm.org/docs/reference-manual/languages/llvm/
}
Creating dir #object[java.io.File 0xe9dc4d0 /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x670d4d38 /home/crispin/dev/clojure/clobits/src/bindings]
Persisting clj to: src/bindings/sdl_ns.clj
Done!
rm -r target
lein exec -ep "(require '[clobits.examples.ncurses.create-ncurses-lib]) (clobits.examples.ncurses.create-ncurses-lib/-main)"
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Creating libs
Generating bindings.ncurses
Creating dir #object[java.io.File 0xf288c14 /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x6794ac0b /home/crispin/dev/clojure/clobits/src/bindings]
Creating dir #object[java.io.File 0x7be71476 /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x5cb5bb88 /home/crispin/dev/clojure/clobits/src/bindings]
Spitting c-code: // includes
#include "ncurses.h"

// inline-c


// fns
void  _SHADOWING_free( void * ptr) {
  free(p ...

Spitting h-code: #if IS_POLYGLOT
#include <polyglot.h>
#endif
#include <ncurses.h>
#include <stdlib.h>
#include <stri ...

Compilation results:
{:exit 1, :out , :err Tool execution failed. Are you sure the toolchain is available at /home/crispin/graalvm-ce-java11-20.2.0-dev/lib/llvm
You can install it via GraalVM updater: `gu install llvm-toolchain`

More infos: https://www.graalvm.org/docs/reference-manual/languages/llvm/
}
{:exit 1, :out , :err Tool execution failed. Are you sure the toolchain is available at /home/crispin/graalvm-ce-java11-20.2.0-dev/lib/llvm
You can install it via GraalVM updater: `gu install llvm-toolchain`

More infos: https://www.graalvm.org/docs/reference-manual/languages/llvm/
}
Creating dir #object[java.io.File 0x54f4a7f0 /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x61a1ea2c /home/crispin/dev/clojure/clobits/src/bindings]
Persisting clj to: src/bindings/ncurses_ns.clj
Done!
rm -r target
lein with-profiles +linux,+sdl-poly do clean, run
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
In polyglot context
Execution error (NoSuchFileException) at sun.nio.fs.UnixException/translateToIOException (UnixException.java:92).
libs/libbindings$sdl.so

Full report at:
/tmp/clojure-9997606897705644445.edn
Error encountered performing task 'do' with profile(s): 'base,system,user,provided,dev,linux,sdl-poly'
Suppressed exit
Makefile:31: recipe for target 'sdl-poly' failed
make: *** [sdl-poly] Error 1

$ cat /tmp/clojure-9997606897705644445.edn
{:clojure.main/message
 "Execution error (NoSuchFileException) at sun.nio.fs.UnixException/translateToIOException (UnixException.java:92).\nlibs/libbindings$sdl.so\n",
 :clojure.main/triage
 {:clojure.error/class java.nio.file.NoSuchFileException,
  :clojure.error/line 92,
  :clojure.error/cause "libs/libbindings$sdl.so",
  :clojure.error/symbol
  sun.nio.fs.UnixException/translateToIOException,
  :clojure.error/source "UnixException.java",
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message "Syntax error macroexpanding at (sdl_ns.clj:36:43).",
    :data
    {:clojure.error/phase :execution,
     :clojure.error/line 36,
     :clojure.error/column 43,
     :clojure.error/source "sdl_ns.clj"},
    :at [clojure.lang.Compiler$InvokeExpr eval "Compiler.java" 3707]}
   {:type java.nio.file.NoSuchFileException,
    :message "libs/libbindings$sdl.so",
    :at
    [sun.nio.fs.UnixException
     translateToIOException
     "UnixException.java"
     92]}],
  :trace
  [[sun.nio.fs.UnixException
    translateToIOException
    "UnixException.java"
    92]
   [sun.nio.fs.UnixException
    rethrowAsIOException
    "UnixException.java"
    111]
   [sun.nio.fs.UnixException
    rethrowAsIOException
    "UnixException.java"
    116]
   [sun.nio.fs.UnixFileSystemProvider
    newFileChannel
    "UnixFileSystemProvider.java"
    182]
   [com.oracle.truffle.polyglot.FileSystems$NIOFileSystem
    newByteChannel
    "FileSystems.java"
    721]
   [com.oracle.truffle.api.TruffleFile
    newByteChannel
    "TruffleFile.java"
    788]
   [com.oracle.truffle.api.TruffleFile
    readAllBytes
    "TruffleFile.java"
    858]
   [com.oracle.truffle.api.source.Source
    buildSource
    "Source.java"
    1063]
   [com.oracle.truffle.api.source.Source$SourceBuilder
    build
    "Source.java"
    1577]
   [com.oracle.truffle.api.source.Source$LiteralBuilder
    build
    "Source.java"
    1737]
   [com.oracle.truffle.polyglot.PolyglotSource
    build
    "PolyglotSource.java"
    296]
   [org.graalvm.polyglot.Source$Builder build "Source.java" 920]
   [jdk.internal.reflect.NativeMethodAccessorImpl
    invoke0
    "NativeMethodAccessorImpl.java"
    -2]
   [jdk.internal.reflect.NativeMethodAccessorImpl
    invoke
    "NativeMethodAccessorImpl.java"
    62]
   [jdk.internal.reflect.DelegatingMethodAccessorImpl
    invoke
    "DelegatingMethodAccessorImpl.java"
    43]
   [java.lang.reflect.Method invoke "Method.java" 566]
   [clojure.lang.Reflector invokeMatchingMethod "Reflector.java" 167]
   [clojure.lang.Reflector
    invokeNoArgInstanceMember
    "Reflector.java"
    438]
   [bindings.sdl_ns$source_f636 invokeStatic "sdl_ns.clj" 32]
   [bindings.sdl_ns$source_f636 invoke "sdl_ns.clj" 21]
   [clojure.lang.AFn applyToHelper "AFn.java" 152]
   [clojure.lang.AFn applyTo "AFn.java" 144]
   [clojure.lang.Compiler$InvokeExpr eval "Compiler.java" 3702]
   [clojure.lang.Compiler$InstanceMethodExpr eval "Compiler.java" 1548]
   [clojure.lang.Compiler$DefExpr eval "Compiler.java" 457]
   [clojure.lang.Compiler eval "Compiler.java" 7182]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clobits.examples.sdl.startup$eval179 invokeStatic "startup.clj" 10]
   [clobits.examples.sdl.startup$eval179 invoke "startup.clj" 5]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [user$eval140$fn__144 invoke "form-init7455286192221710235.clj" 1]
   [user$eval140 invokeStatic "form-init7455286192221710235.clj" 1]
   [user$eval140 invoke "form-init7455286192221710235.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7167]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler loadFile "Compiler.java" 7574]
   [clojure.main$load_script invokeStatic "main.clj" 475]
   [clojure.main$init_opt invokeStatic "main.clj" 477]
   [clojure.main$init_opt invoke "main.clj" 477]
   [clojure.main$initialize invokeStatic "main.clj" 508]
   [clojure.main$null_opt invokeStatic "main.clj" 542]
   [clojure.main$null_opt invoke "main.clj" 539]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "libs/libbindings$sdl.so",
  :phase :execution}}

Any ideas?

retrogradeorbit

comment created time in 7 days

push eventepiccastle/spire

Crispin Wellington

commit sha 1f93290874edbf726e8af4fc2aa48a9cce8dcf53

implement apt-key :absent - #99

view details

push time in 7 days

push eventepiccastle/spire

Crispin Wellington

commit sha daf9885f7de228d16cf2d183d69dfde1083c9c3d

implement apt-key :present - #99

view details

push time in 7 days

issue commentSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: org.graalvm.nativeimage.c.struct.CField class not found syntax error

I had followed the prerequisites shown but that is not enough. Even with GRAALVM_HOME and JAVA_HOME set as shown, the version of java continues to be the system java:

crispin@vash:~/dev/clojure/clobits$ echo $JAVA_HOME
/home/crispin/graalvm-ce-java11-20.2.0-dev
crispin@vash:~/dev/clojure/clobits$ echo $GRAALVM_HOME
/home/crispin/graalvm-ce-java11-20.2.0-dev
crispin@vash:~/dev/clojure/clobits$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)

If I change the PATH I get a bit further: (And as a sidenote, bash does not permit spaces around the equals sign on an export command. You might want to remove those spaces in your readme assuming zshell allows no spaces)

crispin@vash:~/dev/clojure/clobits$ export PATH=$GRAALVM_HOME/bin:$PATH
crispin@vash:~/dev/clojure/clobits$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment GraalVM CE 20.2.0-dev (build 11.0.7+10-jvmci-20.1-b02)
OpenJDK 64-Bit Server VM GraalVM CE 20.2.0-dev (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing)

Now during the bindings generation it fails with:

$ make clean sdl-poly 
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm -r target
rm -r libs/*
rm: cannot remove 'libs/*': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
lein exec -ep "(require '[clobits.examples.sdl.create-sdl-lib]) (clobits.examples.sdl.create-sdl-lib/-main)"
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Creating libs
Generating bindings.sdl
Creating dir #object[java.io.File 0x16872c4d /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x671facee /home/crispin/dev/clojure/clobits/src/bindings]
Creating dir #object[java.io.File 0x46a953cf /home/crispin/dev/clojure/clobits/src]
Creating dir #object[java.io.File 0x154bd49b /home/crispin/dev/clojure/clobits/src/bindings]
Spitting c-code: // includes
#include "sdl.h"

// inline-c
int GET_SDL_INIT_VIDEO() { return SDL_INIT_VIDEO; }
int GE ...

Spitting h-code: #if IS_POLYGLOT
#include <polyglot.h>
#endif
#include <stdio.h>
#include <SDL2/SDL.h>

int  _SHADOWI ...

Syntax error (IOException) compiling at (REPL:1:50).
error=2, No such file or directory

Full report at:
/tmp/clojure-17987426163650073084.edn
Subprocess failed (exit code: 1)
Makefile:21: recipe for target 'sdl-bindings' failed
make: *** [sdl-bindings] Error 1
crispin@vash:~/dev/clojure/clobits$ cat /tmp/clojure-17987426163650073084.edn
{:clojure.main/message
 "Syntax error (IOException) compiling at (REPL:1:50).\nerror=2, No such file or directory\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 1,
  :clojure.error/column 50,
  :clojure.error/class java.io.IOException,
  :clojure.error/cause "error=2, No such file or directory"},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message "Syntax error compiling at (1:50).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 1,
     :clojure.error/column 50},
    :at [clojure.lang.Compiler load "Compiler.java" 7648]}
   {:type java.io.IOException,
    :message
    "Cannot run program \"/clang\": error=2, No such file or directory",
    :at [java.lang.ProcessBuilder start "ProcessBuilder.java" 1128]}
   {:type java.io.IOException,
    :message "error=2, No such file or directory",
    :at [java.lang.ProcessImpl forkAndExec "ProcessImpl.java" -2]}],
  :trace
  [[java.lang.ProcessImpl forkAndExec "ProcessImpl.java" -2]
   [java.lang.ProcessImpl <init> "ProcessImpl.java" 340]
   [java.lang.ProcessImpl start "ProcessImpl.java" 271]
   [java.lang.ProcessBuilder start "ProcessBuilder.java" 1107]
   [java.lang.ProcessBuilder start "ProcessBuilder.java" 1071]
   [java.lang.Runtime exec "Runtime.java" 592]
   [clojure.java.shell$sh invokeStatic "shell.clj" 113]
   [clojure.java.shell$sh doInvoke "shell.clj" 79]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 665]
   [clojure.core$apply invoke "core.clj" 660]
   [clobits.gen_c$compile_c invokeStatic "gen_c.clj" 160]
   [clobits.gen_c$compile_c invoke "gen_c.clj" 143]
   [clobits.gen_c$persist_lib_BANG_ invokeStatic "gen_c.clj" 173]
   [clobits.gen_c$persist_lib_BANG_ invoke "gen_c.clj" 171]
   [clobits.examples.sdl.create_sdl_lib$_main
    invokeStatic
    "create_sdl_lib.clj"
    141]
   [clobits.examples.sdl.create_sdl_lib$_main
    invoke
    "create_sdl_lib.clj"
    119]
   [user$eval632 invokeStatic nil 1]
   [user$eval632 invoke nil 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler load "Compiler.java" 7583]
   [clojure.core$load_reader invokeStatic "core.clj" 4087]
   [clojure.core$load_string invokeStatic "core.clj" 4089]
   [clojure.core$load_string invoke "core.clj" 4089]
   [user$eval5 invokeStatic "form-init7503436891845914948.clj" 1]
   [user$eval5 invoke "form-init7503436891845914948.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7167]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler loadFile "Compiler.java" 7574]
   [clojure.main$load_script invokeStatic "main.clj" 475]
   [clojure.main$init_opt invokeStatic "main.clj" 477]
   [clojure.main$init_opt invoke "main.clj" 477]
   [clojure.main$initialize invokeStatic "main.clj" 508]
   [clojure.main$null_opt invokeStatic "main.clj" 542]
   [clojure.main$null_opt invoke "main.clj" 539]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "error=2, No such file or directory",
  :phase :compile-syntax-check}}

I have clang installed:

$ clang --version
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

But it looks from the traceback it is now trying to run clang from the root directory?

retrogradeorbit

comment created time in 7 days

issue openedSaikyun/clobits

Attempting to run sdl-poly or sdl-ni: org.graalvm.nativeimage.c.struct.CField class not found syntax error

using on ubuntu 18.04 linux, openjdk-11. Same problem happens with sdl-ni target and bindings target.

crispin@vash:~/dev/clojure/clobits$ make clean sdl-poly
rm sdl_example
rm: cannot remove 'sdl_example': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r src/bindings
rm: cannot remove 'src/bindings': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
rm -r target
rm -r libs/*
rm: cannot remove 'libs/*': No such file or directory
Makefile:12: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
lein exec -ep "(require '[clobits.examples.sdl.create-sdl-lib]) (clobits.examples.sdl.create-sdl-lib/-main)"
Syntax error (ClassNotFoundException) compiling at (clobits/native_image.clj:11:4).
org.graalvm.nativeimage.c.struct.CField

Full report at:
/tmp/clojure-4110579083862828447.edn
Subprocess failed (exit code: 1)
Makefile:21: recipe for target 'sdl-bindings' failed
make: *** [sdl-bindings] Error 1
$ cat /tmp/clojure-4110579083862828447.edn
{:clojure.main/message
 "Syntax error (ClassNotFoundException) compiling at (clobits/native_image.clj:11:4).\norg.graalvm.nativeimage.c.struct.CField\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 11,
  :clojure.error/column 4,
  :clojure.error/source "native_image.clj",
  :clojure.error/path "clobits/native_image.clj",
  :clojure.error/class java.lang.ClassNotFoundException,
  :clojure.error/cause "org.graalvm.nativeimage.c.struct.CField"},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message
    "Syntax error compiling at (clobits/native_image.clj:11:4).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 11,
     :clojure.error/column 4,
     :clojure.error/source "clobits/native_image.clj"},
    :at [clojure.lang.Compiler analyze "Compiler.java" 6808]}
   {:type java.lang.ClassNotFoundException,
    :message "org.graalvm.nativeimage.c.struct.CField",
    :at
    [java.net.URLClassLoader findClass "URLClassLoader.java" 471]}],
  :trace
  [[java.net.URLClassLoader findClass "URLClassLoader.java" 471]
   [clojure.lang.DynamicClassLoader
    findClass
    "DynamicClassLoader.java"
    69]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 589]
   [clojure.lang.DynamicClassLoader
    loadClass
    "DynamicClassLoader.java"
    77]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 522]
   [java.lang.Class forName0 "Class.java" -2]
   [java.lang.Class forName "Class.java" 398]
   [clojure.lang.RT classForName "RT.java" 2211]
   [clojure.lang.RT classForName "RT.java" 2220]
   [clojure.lang.Compiler resolveIn "Compiler.java" 7395]
   [clojure.lang.Compiler resolve "Compiler.java" 7358]
   [clojure.lang.Compiler analyzeSymbol "Compiler.java" 7319]
   [clojure.lang.Compiler analyze "Compiler.java" 6768]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$MapExpr parse "Compiler.java" 3103]
   [clojure.lang.Compiler analyze "Compiler.java" 6797]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3888]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7109]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$VectorExpr parse "Compiler.java" 3260]
   [clojure.lang.Compiler analyze "Compiler.java" 6791]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$LetExpr$Parser parse "Compiler.java" 6436]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$FnMethod parse "Compiler.java" 5467]
   [clojure.lang.Compiler$FnExpr parse "Compiler.java" 4029]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7105]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler access$300 "Compiler.java" 38]
   [clojure.lang.Compiler$DefExpr$Parser parse "Compiler.java" 596]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 512]
   [clobits.examples.sdl.create_sdl_lib$eval146$loading__6721__auto____147
    invoke
    "create_sdl_lib.clj"
    1]
   [clobits.examples.sdl.create_sdl_lib$eval146
    invokeStatic
    "create_sdl_lib.clj"
    1]
   [clobits.examples.sdl.create_sdl_lib$eval146
    invoke
    "create_sdl_lib.clj"
    1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7166]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [user$eval7 invokeStatic nil 1]
   [user$eval7 invoke nil 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler load "Compiler.java" 7583]
   [clojure.core$load_reader invokeStatic "core.clj" 4087]
   [clojure.core$load_string invokeStatic "core.clj" 4089]
   [clojure.core$load_string invoke "core.clj" 4089]
   [user$eval5 invokeStatic "form-init8544657221453783428.clj" 1]
   [user$eval5 invoke "form-init8544657221453783428.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7167]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.Compiler loadFile "Compiler.java" 7574]
   [clojure.main$load_script invokeStatic "main.clj" 475]
   [clojure.main$init_opt invokeStatic "main.clj" 477]
   [clojure.main$init_opt invoke "main.clj" 477]
   [clojure.main$initialize invokeStatic "main.clj" 508]
   [clojure.main$null_opt invokeStatic "main.clj" 542]
   [clojure.main$null_opt invoke "main.clj" 539]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "org.graalvm.nativeimage.c.struct.CField",
  :phase :compile-syntax-check}}

created time in 8 days

startedjoncol/hello-libgdx

started time in 8 days

push eventepiccastle/spire

Crispin Wellington

commit sha d724ad8474464c98a3d971f3ca6e6cbed1d67363

start apt-key module with :list command - #99

view details

Crispin Wellington

commit sha 9250fe321e2ffe06a1d179f4db20fe74b68946fd

comment lines

view details

Crispin Wellington

commit sha d97f01295cd31e9a851a4ae1518f062274947318

process apt-ket list output (aparently we shouldnt) - #99

view details

push time in 8 days

push eventepiccastle/spire

Crispin Wellington

commit sha a32e5507d869afe2357b8dd0e038766f6d16069d

add tty test function to libspire - #103

view details

Crispin Wellington

commit sha 0134c25e50b6c794921343468b8a56235dc16260

correctly calculate line occupancy when not on tty - #103

view details

push time in 9 days

push eventepiccastle/spire

Crispin Wellington

commit sha 1e3c7eaf7ca48e4fe797f7710d37958dea0c3b3c

refactor

view details

Crispin Wellington

commit sha 01b08d68163aa7ec8778c4c95e2ae471ebd46bd6

break out stream reading function

view details

Crispin Wellington

commit sha 65dce8be1cb49657a2a0564a4bc85b18bb929d57

stream stderr aswell

view details

push time in 9 days

issue openedepiccastle/spire

piping spire shell :print output to dev null results in divide by zero

spire$ lein trampoline run -- -e '(shell {:cmd "echo bar 1>&2" :print true})' 1>/dev/null
bar
Exception in thread "async-thread-macro-1" java.lang.ArithmeticException: Divide by zero
	at clojure.lang.Numbers.quotient(Numbers.java:195)
	at clojure.lang.Numbers.quotient(Numbers.java:1879)
	at spire.utils$num_terminal_lines.invokeStatic(utils.clj:399)
	at spire.utils$num_terminal_lines.invoke(utils.clj:392)
	at spire.output.default$print_state.invokeStatic(default.clj:220)
	at spire.output.default$print_state.invoke(default.clj:190)
	at spire.output.default$state_change$iter__17988__17992$fn__17993.invoke(default.clj:339)
	at clojure.lang.LazySeq.sval(LazySeq.java:42)
	at clojure.lang.LazySeq.seq(LazySeq.java:51)
	at clojure.lang.RT.seq(RT.java:535)
	at clojure.core$seq__5405.invokeStatic(core.clj:137)
	at clojure.core$dorun.invokeStatic(core.clj:3135)
	at clojure.core$doall.invokeStatic(core.clj:3150)
	at clojure.core$doall.invoke(core.clj:3150)
	at spire.output.default$state_change.invokeStatic(default.clj:337)
	at spire.output.default$state_change.invoke(default.clj:223)
	at spire.output.default$eval18117$fn__18118$fn__18119.invoke(default.clj:407)
	at clojure.core.async$thread_call$fn__15344.invoke(async.clj:484)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

created time in 9 days

push eventepiccastle/spire

Crispin Wellington

commit sha 50a3c75df122d3199012e0e713d896bc4fad5206

print output streams to default output

view details

Crispin Wellington

commit sha 681dc549c8d5241f5bf18469a9e6ec5c04771b16

ssh and java process are different apis

view details

Crispin Wellington

commit sha daa8ee2b1bc6f84e5054843b7e6021b15f4b0f86

implementation class

view details

Crispin Wellington

commit sha af31573f57a591eaf20a2bb039280c113c576093

rename stream to print

view details

Crispin Wellington

commit sha a7049d8f8b8a5f992e9d28f7d92bcf2f00108ce9

quiet

view details

push time in 10 days

issue openedepiccastle/spire

make spire behave like command line ssh with regards unencrypted .ssh/id_rsa key

If the key is not present in the ssh-agent, cli ssh will try to use the default ~/.ssh/id_rsa or ~/.ssh/id_dsa key. spire should mimic the behaviour.

created time in 10 days

push eventepiccastle/spire

Crispin Wellington

commit sha d84c748b1c326fe352656ad6d4ac8c4fe238718d

store stream packet in state

view details

push time in 10 days

push eventepiccastle/spire

Crispin Wellington

commit sha 612936713ce9a8d92e13074e83fbdd1d004dad7a

read cursor position from ansi terminals

view details

push time in 11 days

push eventepiccastle/spire

Crispin Wellington

commit sha faa822b08d074c1f9554b2f8bd56bbefabadb72c

process streams and pass to output module - #82

view details

Crispin Wellington

commit sha 03372d1ac62e7159bb42911a70d9115c5c29493c

print streams output method - #82

view details

push time in 11 days

push eventepiccastle/spire

Crispin Wellington

commit sha aee050e0b22f917e2f97371460a5943687e49893

update sci

view details

push time in 11 days

push eventepiccastle/spire

Crispin Wellington

commit sha ce8c9537c0c2b707d810fa7ffa641ae1eb7ec91b

correctly handle shell module option :out being :stream - #82

view details

push time in 11 days

push eventepiccastle/spire

Crispin Wellington

commit sha 4807ca44e1b4bc066bb2cca9aa99c56b375c7fde

add :stdin option to shell module - #98

view details

push time in 12 days

push eventepiccastle/spire

Crispin Wellington

commit sha 2c6c7c87e9c5afb5dae215289bdabdbaf8740942

option to elide long strings in form printing using default output module

view details

push time in 12 days

push eventepiccastle/spire

Crispin Wellington

commit sha 35765ad67503ce74780086cdf82537e3b1edb0b7

hook in remaining line-count values

view details

push time in 12 days

more