freenode/#clasp - IRC Chatlog
Search
19:14:08
drmeister
cracauer fixed a problem with the docker image builder and hopefully in an hour we will have a new docker image.
23:44:25
drmeister
There are some custom forks of quicklisp libraries in github.com/clasp-developers
23:44:47
drmeister
Use slime from the github repo - slime installed from emacs tend's to be a bit old.
23:52:47
drmeister
I've made some improvements in the last year to the clasp slime support - they might translate to sly.
23:56:02
drmeister
call-with-debugger-environment is quite different - I made changes to it in the last year to generate better backtraces.
23:58:22
drmeister
It doesn't look too bad - it should be fairly straightforward to copy the changes with a little massaging. I'm not sure why it's not connecting. I would expect problems when you hit an error though.
23:58:48
pcr910303
Condition of type: PACKAGE-ERROR Package error on package "ASDF" Available restarts: (use :r1 to invoke restart 1) 1. (RESTART-TOPLEVEL) Go back to Top-Level REPL. Broken at frame[0] NIL. In: #<PROCESS TOP-LEVEL @0x10ff01709>. ;;; Warning: compiled-function-file expected a function as argument - but it got NIL - there may not be any backtrace available COMMON-LISP-USER>> ;;; Warning: Ignoring an unmatched right parenthesis. :r1
23:59:38
drmeister
Ok, you are hitting an error and then it's going nuts because it doesn't have the latest changes for backtraces.
0:17:35
drmeister
It's here: https://github.com/joaotavora/sly/blob/master/slynk/backend/clasp.lisp#L50
0:18:59
drmeister
Change :spawn to nil here: https://github.com/joaotavora/sly/blob/master/slynk/backend/clasp.lisp#L56
0:19:22
drmeister
:spawn is for multi-threaded support. Clasp has that but single threaded might be better to get things working.
0:20:43
drmeister
Then use emacs and M-x ediff . to compare clasp.lisp from sly to the one from slime.
0:21:16
drmeister
Then you can move changes from the slime version to the sly version and change 'swank' to 'slynk'.
0:22:12
drmeister
But Common Lisp is an excellent building material and you'll learn a lot getting it working.
2:11:13
drmeister
Bike: When I speak at Nvidia on Friday - I'm going to lay out a scheme for using Cleavir to generate code for GPU's.
2:12:34
drmeister
Indeedy - We can reuse all of the cleavir machinery with a new system parameter and cleavir methods for generating PTX - https://devblogs.nvidia.com/gpu-computing-julia-programming-language/
2:13:39
drmeister
We can define a new file-local variable like *package* and *readtable* that switches the compiler into cuda mode where the math follows different rules.
2:13:53
Bike
i don't have a super good context of how gpus work, but my impression was that gpu code is pretty different from cpu code
2:15:00
drmeister
Look at the julia example - they reuse the julia compiler and add 1300 LOC and they generate GPU kernels.
2:19:36
drmeister
Yes - of course. Declare local variables, global variables, arithmetic, if and a few other things and you have a language.
2:20:21
drmeister
Modulo integer arithmetic, unboxed single and double precision values, dynamic extent variables.
2:20:39
Bike
so i mean it sounds like a pretty different language from common lisp. so i'm not sure how much we can really reuse.
2:21:43
drmeister
Since we use S-expressions we can use macros and generate kernels on the fly for specific purposes.
2:22:53
drmeister
Like the molecular fragment building code that I want. I can code the structure of the molecule into the kernel. It will only be able to build one kind of molecule - but it will do it really fast and sample lots of conformations and stereoisomers.
2:23:37
drmeister
Run it for a few tens of milliseconds and then build and load a new kernel for a different set of molecules.
2:26:54
Bike
a lter stage would cut out redundant box-unbox sequences, but we don't right now becuase bla bla type inference sucks
2:30:43
drmeister
Once you get inlining to work I say tackle basic value numbering algorithm and type inference again.
2:32:30
Bike
i mean, inlining does work. my optimizations are wrong is all. i could revert a few commits and it would work.
2:34:14
Bike
i guess figuring out the nature of the inlining operation that's resulting in the bad hir
2:34:22
drmeister
How about reverting the changes and applying them back slowly to figure out where things go wrong.
2:35:30
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/cleavir/translate.lisp#L419
2:35:42
Bike
it's two commits. with one commit swank compiles but not my reduced example. so it's both commits that are problematic.
2:56:52
drmeister
Do we need to change how defconstant compiles in Clasp so that we can handle things like...
3:52:54
ringer1_
drmeister, don't want to take up any of your time (tonight) but I do want to use clasp and help in some way
3:53:43
ringer1_
Was starting to fear the project was stalled -- had trouble finding your irc even (my client didn't have the channel)
3:57:59
ringer1_
drmeister, yes it is HUGE, I watched your old talk at Google and you amazed me (I am not that easily impressed either)
4:01:13
ringer1
sorry, got kicked by server issue -- having multiple irc client difficulties getting to you folks
4:01:58
ringer1
beach, I thought that would be enough -- limited Lisp experience and he first got it working and then brought it up to decent performance
4:02:44
ringer1
There isn't detail of that effort in the talk, but I'll bet there are a lot of specifics I don't know about
4:03:30
ringer1
but I can imagine trying to hack through these several code bases, just getting the builds to work can be tedious as soon as you leave the main line
4:03:56
drmeister
beach: I plan to propose at Nvidia that we use cleavir to compile a small subset of Common Lisp to PTX for Nvidia GPU's.
4:04:02
ringer1
I run into this because although I'm willing to do Linux, I typically want to see Windows work also
4:05:56
ringer1
I knew a tiny amount about LLVM since I've been looking into Julia and Haskell to LLVM
4:22:06
drmeister
beach: I'm not sure if I asked this before - we don't have a way of serializing HIR do we?
4:24:25
drmeister
::notify kpoeck Did you see this problem building mcclim? [package iterate]...............Condition of type: SIMPLE-ERRORNo applicable method for UPDATE-INSTANCE-FOR-REDEFINED-CLASS with arguments of types CLAUSE-INFO NULL NULL NULL. ? If so - how did you get past it?
4:38:16
beach
We would need to add methods on that generic function (SAVE-INFO is it?) for every HIR class. But that can be done.
5:42:17
ringer1
good night, any particular thing best to read or do to get up to speed? Found the cleavir.pdf