freenode/#clasp - IRC Chatlog
Search
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
5:43:13
beach
Depends on what you want to accomplish. As a user of Clasp, you don't need any of that.
5:43:47
beach
If you want to attack the compiler, you need to be an experienced Common Lisp programmer with lots of CLOS experience, and you need to know about compiler design.
11:24:22
drmeister
beach: I'm thinking of serializing HIR so that we can get optcl (sp?) running and render HIR from clasp.
11:25:01
drmeister
Bike has got a nasty inlining bug and I'm thinking about tools that could help debug the problem.