freenode/#clasp - IRC Chatlog
Search
14:24:34
Bike
my understanding is that ftypes don't actually refer to the function object itself. i sort of remember that conversation though.
14:26:07
Bike
i see. well, we can think about what other information we'd want in a "database" or extended type at least.
14:30:52
Bike
in sbcl the fun-info has, let's see... whether it calls arguments; whether it unwinds (marked as unused); whether any arguments escape; whether it can be constant folded; whether it can be eliminated if the value is discarded; whether a style warning should be signaled if the value is discarded; whether it's a predicate; whether it's recursive; whether it's commutative.
14:31:38
Bike
also since sbcl has transformations specific to function calls instead of only inlining, there's a lot or even most information implicit in transformation functions
14:33:48
beach
Bike: So that challenge would be to turn that information into something independent of SBCL, and perhaps make it extensible.
14:35:54
Bike
i think stassats was also working on something so that which arguments were called or dxable or so on particularly was specified, like as a lambda list type.
14:41:05
beach
Bike: SBCL might be limited by the fact that the compiler can not use generic functions.
14:43:30
Bike
I mean, did you have a limitation in mind? I was expecting this would be something like a type, probably returned by function-info. Which is already extensible but were you thinking of something additionally?
14:44:51
beach
Nothing more specific. Just thinking how an implementation might want to override the behavior or adapt it, or supply information about internal functions, etc.
14:52:11
Bike
there's a lot of stuff we could do really. ftypes probably aren't adequate for a lot of stuff and they're frankly pretty weird
14:57:09
Bike
Shinmera: by the way, extremely obscure documentation question- method combinations have their own documentation, but you can also specify documentation on the method groups. do you have a protocol for retrieving that?
14:58:54
Shinmera
I have been thinking about a general protocol for "local definitions" -- things that are not in the global namespace, but reside under a global definition. For instance restarts and special bindings. No idea how you'd go about discovering those things, but I've wished for documentation of such things for a while.
15:00:46
Shinmera
I mean, for Definitions it doesn't matter. If you have a definition instance, you just call DOCUMENTATION on it and it does whatever.
15:01:25
Shinmera
So if the implementation offers a way of retrieving the docstring then Definitions can just hook into that.
15:53:26
Nephromancer
man, the minimizer function that we're using *really* doesn't like big structures :|
15:59:14
Nephromancer
I'm trying to get a Jupyter Lab notebook to give me a 3D structure for the subunit of this membrane we're building - it's three triangular macrocycles crosslinked together at their tips
15:59:35
Nephromancer
kinda looks like a radiation symbol (in terms of how the triangles are splayed out)
16:01:06
drmeister
Nephromancer: dvssa is on slack - you could copy/paste the structure into the most appropriate slack channel.
16:01:45
drmeister
I don't have you all on IRCCloud yet - that would allow you to paste it here - but it would be slightly more appropriate on slack.
16:02:19
drmeister
I'm still not sure if I will get everyone on IRCCloud - it would allow you to drag and drop files here.
16:03:24
drmeister
But this channel is more for clasp and compiler development and less for molecular design - but I'm a fan of all of this.
16:04:27
drmeister
But yeah - you are hitting the wall that I have been banging in to for decades. Energy minimization is great for structures up to a certain size and then it stops being useful because you get into a size regime where folding becomes an issue.
16:05:19
drmeister
Liz (Nephromancer) is working on running molecular dynamics simulations. We are trying to get the whole tool chain up and running to simulate the behavior of those membranes.
16:05:58
dvssa
Ah exciting. I've been working through that computational chem book. Liz if you'd like I can share some notes.
16:06:06
drmeister
Nephromancer is using the latest docker image to build 3D structures of the channel molecule from a Chemdraw sketch.
16:07:00
drmeister
I'm working on the atom tree code - it will give us the best way to build large structures. It's a work in progress that I have to get back to work on today TODAY!!!! ARGH
16:10:14
drmeister
If anyone knows more about npm and Node.js - I'd love to ask some questions. I've pounding head shaped depressions into that wall.
16:16:58
dvssa
Liz thanks I'll give it a look! I'll also share my notes, I add to them daily though so I'm still thinking of the best way to do this, probably will add you to a private bitbucket if you have an account?
16:17:06
drmeister
https://orig00.deviantart.net/53e6/f/2010/245/4/2/top_of_the_tower_by_rachelcurtis-d2xvcng.jpg https://usercontent.irccloud-cdn.com/file/zf5EerT1/image.png
16:17:40
dvssa
drmeister: What do you need to know I have a little experience with node and npm but I also have a few people I could ask.
16:18:59
drmeister
It's pretty specialized and it would take a while to explain. I'm trying to get a jupyter widget called jupyter-cytoscape working with jupyterlab. It looks like I have to fix the Javascript for the project and then publish in on npm. I've done that and made some progress - but there are still problems.
16:19:33
drmeister
We have translated the Python code for jupyter-cytoscape - but the Javascript needs some work as well.
16:20:02
Nephromancer
@dvssa: I’ve gotta head downtown for a bit, but I’ll make a bitbucket account as soon as I get back to the lab. Thanks again.
18:25:46
kpoeck
in issue 436 there is an example from Bike that shows that the function does not wirk correctly
18:38:31
drmeister
kpoeck: How bits are stored in the word is buried in the functions that set and test bits I'm afraid. That's where I would start looking.
18:38:58
akkad
drmeister: are there any video demos of the widgets in jupyter in action? curious what is possible on that front
18:41:25
drmeister
::notify kpoeck Digging into how bits are stored... here --> https://github.com/clasp-developers/clasp/blob/dev/include/clasp/gctools/gcbitarray.h#L116
18:43:06
drmeister
::notify kpoeck That function handles "BitUnit(s)", those are 1-bit, 2-bit and 4-bit wide values
18:43:37
Bike
it's building aclasp. doing it in parallel, which makes me nervous, but it hasn't crashed yet
18:53:21
Colleen
kpoeck: drmeister said 11 minutes, 56 seconds ago: Digging into how bits are stored... here --> https://github.com/clasp-developers/clasp/blob/dev/include/clasp/gctools/gcbitarray.h#L116
18:53:21
Colleen
kpoeck: drmeister said 10 minutes, 15 seconds ago: That function handles "BitUnit(s)", those are 1-bit, 2-bit and 4-bit wide values
19:02:10
balrog
kpoeck: go to the install folder (where `make install` was run from https://github.com/clasp-developers/forkable-boehm/blob/master/makefile ) and run `make uninstall`
19:25:54
Nephromancer
@drmeister are you still at the lab? I just got the aquaporin (from the demo notebook) to build.
19:47:04
Bike
DO-NOT-FUNCALL-SPECIAL-OPERATOR (MULTIPLE-VALUE-PROG1) which is i think what it was before
20:36:46
Bike
however, the file compiled just previous ends with a macro definition that involves multiple-value-prog1.
20:37:57
Bike
there's a codegen function for multiple-value-prog1, but it's commented out in the table
20:38:48
drmeister
https://github.com/drmeister/clasp/blob/cst/src/lisp/kernel/cmp/codegen-special-form.lsp#L234
20:40:14
drmeister
Right - dev has this... https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/cmp/codegen-special-form.lsp#L220
20:42:37
drmeister
karlosz: When you said yesterday that the cleavir generated code was less good than the clisp compiler generated code - what led you to conclude that?
20:44:23
drmeister
On the other hand - if your conclusion is driven by the observation that Cleavir generates many more lexical variables - clasp already has a way to deal with that.
20:53:17
karlosz
i do enough constant propogation on SSA to get rid of unnecessary lexical variables
20:57:15
Shinmera
drmeister: constant folding means detecting expressions that 1) have no side-effects 2) are constant at compile-time, and thus 3) evaluating them at compile-time
21:07:40
Bike
clasp special cases it for basic arithmetic. doing it in cleavir would be more involved and general.
21:09:25
karlosz
clisp assigns side effect classes to its functions -- i was just thinking of plugging into that