libera/#clasp - IRC Chatlog
Search
11:16:04
chsasank
I have been trying clbind instructions and building it with ./koga --extensions=my-demo
11:16:29
chsasank
Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
11:40:09
chsasank
I just copy pasted files from here: https://clasp-developers.github.io/clbind-doc.html'
11:47:35
chsasank
I just compiled cloning this into extensions dir and it worked! https://github.com/clasp-developers/demo-clasp-cxx-interoperation
12:18:10
Bubblegumdrop
chsasank I did a little project for a company I was interviewing for, and ended up writing a Dockerfile for a distcc farm
12:18:40
Bubblegumdrop
I didn't get the job, but after some serious consideration, I felt I had built something worthwhile. Then it occured to me, to copy the distcc algorithm to the sbcl compiler back end. So that was my current plan.
12:18:58
Bubblegumdrop
But then I came across lparallel and I believe lfarm but I'm not certain about that, it seems this may already exist.
12:19:21
Bubblegumdrop
Regardless, I plan on publishing the Dockerfiles for the builder and the distcc-worker, and I'll link them here, maybe they will be useful for a compile farm for clasp.
12:19:59
Bubblegumdrop
There is another project based on it, I believe it's lfarm, I will have to check my notes. Good morning :)
12:22:25
Bubblegumdrop
Very cool, I'd be interested to see what you're working on. I played with GLkit a bit ago: https://github.com/lispgames/glkit
12:22:25
chsasank
so the issue I am stuck right now is I am forced to use matrix multiplcations kernels from vendors
12:31:05
yitzi
stassats: koga is the metabuilder for clasp. It runs on a host implementation, usually SBCL.
12:32:50
yitzi
chsasank: did you get your problem figured out? I'm the primary author of koga if you need help.
12:33:43
chsasank
still not working. I am incrementally changing things in example extensions to pinpoint the issue
12:33:45
Bubblegumdrop
actually you may be able to load koga separately, I was looking at that last night
12:36:19
yitzi
All of the extension files need to be in a subdirectory of extensions. Including the asd
12:38:40
chsasank
the documentation doesn't mention this :( https://clasp-developers.github.io/clbind-doc.html#org4c34748
12:42:51
chsasank
ninja: error: '../extensions/my-demo/src/my-demo.cc', needed by 'boehmprecise/extensions/my-demo/src/my-demo.o', missing and no known rule to make it
12:46:17
chsasank
no this is because of `src` issue I mention. I move the code to main dir of extension instead of src it works
12:46:37
chsasank
ninja: error: '../extensions/my-demo/my-demo.lisp', needed by 'boehmprecise/lib/src/lisp/kernel/stage/extension/0-begin.faso', missing and no known rule to make it
12:47:59
yitzi
It should probably be `(k:sources :iclasp #~"src/my-demo.cc")` if you want to make a src subdirectory
12:54:09
yitzi
Because, we can't put extensions in dynamic libraries yet. Some extensions require additional static info to be collected for the GC
12:59:22
Bubblegumdrop
I'll paste my discc-worker by the end of they day and you can load it up on all your spare CPUs to get a boost :)
13:05:16
Bubblegumdrop
https://github.com/clasp-developers/demo-clasp-cxx-interoperation/blob/master/hello-world/hello-world.asd#L8
13:36:05
Bubblegumdrop
chsasank yes, if your asd file has a :components section that says "my-demo" ASDF will look for a file called "my-demo.lisp" regardless of whether it has content or not
13:36:32
Bubblegumdrop
I'm not certain if you can have an asdf:defsystem without a :components section, although I don't see why you would want to do that, as the whole point is you want to be writing lip code.
13:37:12
Bubblegumdrop
however, typically, in my "empty" files I will have a line similar to: (in-package :my-demo)
13:42:49
paulapatience
Sure, you can have a defsystem which just depends-on other systems but has no code itself
15:04:19
Bubblegumdrop
chsasank were you able to get your module to build? did you follow https://github.com/clasp-developers/clasp/wiki/Building-and-Installing-from-Source ? I'm having trouble building: https://pastebin.com/FHg7ZfVt
15:06:37
chsasank
https://github.com/chsasank/chsasank.github.io/blob/ffi-tutorial/_posts/tech/2024-02-20-clasp-ffi.md
15:22:25
Bubblegumdrop
after installing libc++-17-dev I was able to clang++-17 -stdlib=libc++ test.cc on a minimal case
15:28:41
Bubblegumdrop
../include/clasp/core/foundation.h:36:10: fatal error: 'string' file not found 36 | #include <string>
15:41:23
Bubblegumdrop
../include/clasp/core/bignum.h:136:18: error: no type named 'integral' in namespace 'std'
15:48:44
Bubblegumdrop
Um, okay. I re-ran ./koga without --broken-stdlib and it seems to be going now..
15:58:32
Bubblegumdrop
chsasank ninja is pretty efficient, it should only re-compile your changed code
16:02:20
Bubblegumdrop
chsasank has done most of the heavy lifting. I was just debugging. you can ignore my messages, I've figured it out.
16:06:46
paulapatience
Bubblegumdrop: Few Lisp implementations are only interpreters. I think clisp might be one.
16:14:37
drmeister_
My first lisp program was the bclasp lisp compiler - it's mostly gone now, replaced by better compilers.
16:17:33
drmeister_
I always got a thrill when aclasp loaded and then compiled bclasp and then that compiled cclasp. The system got faster and faster and faster.
16:18:24
drmeister_
Bootstrapping is unbelievably messy, complicated, and frustrating but thrilling when it works.
16:19:09
Bubblegumdrop
After it compiled so quickly I'm not sure distributing the work would be helpful to you
16:21:10
Bubblegumdrop
I'm not certain, honestly. I wrote a bit ago about a little side project I worked on, I set up a whole build system to compile android with distcc, with a Docker image you could e.g. load up on any machine to "contribute" to the compile farm
16:21:35
Bubblegumdrop
it uses zeroconf to automagically find new peers to send work to, so you could theoretically just ... add more cores
16:21:43
drmeister_
I'm running Cando code that distributes molecular structure searches across 2,500 CPU's