freenode/#clasp - IRC Chatlog
Search
7:51:15
kpoeck
The change for CL_DEFUN T_sp core__hash_table_setf_gethash(HashTable_sp hash_table, T_sp key, T_sp value) {.. might not work for weak hash-tables
8:10:04
kpoeck
I have missed that Open Dylan after 4 years had a new release with a llvm backend https://opendylan.org/news/2019/03/31/new-release.html
8:32:51
kpoeck
They say: Open Dylan generates LLVM bitcode directly using a native Dylan IR and bitcode library.)
8:44:50
beach
It will be in the SICL part, and I am going to use the "Cluster" assembler which currently has a backend only for x86-64. But first, the HIR code will be translated to MIR where address calculations are exposed. After that, some value numbering will be appropriate as well as some other optimizations.
8:46:05
beach
Since nearly every SICL object has an indirection, I need to try to optimize away multiple memory accesses to get to the rack, if possible.
8:51:45
kpoeck
Theoreticaly using llvm as a backend seemed the right thing to do to me, but I wondered about alternatives
9:04:10
beach
1. It is a specification without an independent standard. 2. It has a single implementation. 3. It is not written in Common Lisp. 4. It is written in C++.
9:05:14
beach
So 1 and 2 together implies that it's a moving target that I am not interested in trying to track.
9:07:12
beach
Thanks. It is less important to drmeister. He likes C++, doesn't mind mixing it with Common Lisp (it's a goal of Clasp). Plus, he has all this energy to work on tracking moving targets that I certainly do not have.
9:17:51
kpoeck
2 files missing to complete the cst build with latest everything. Yesterday drmeister changed the implementation of (setf (gethash ..)) lets see whether that helps
9:28:30
kpoeck
I will extend my hashtable-benchmark to include (setf (gethash ..) ). the first version just checked gethash which seems to be on par with sbcl gethash
9:28:51
kpoeck
Hope I can also test the pathlogical case for openhashing that you mentionned yesterday
9:33:00
beach
I was thinking of doing a simulation to count the number of iterations on the average. It should not be too hard to do.
9:33:51
beach
And one could distinguish between the case where the item is in the table and the case where it is not.
9:34:20
beach
The most common use case in Cleavir never removes removes an item, so that aspect is not tested.
9:34:48
beach
I.e., you fill the table, then empty it. Now, every search goes through the entire vector.
9:35:30
beach
Anyway, I personally don't see the advantage of open hashing, but I could have missed something.
9:36:38
beach
But if the number of iterations is small in the use case where things are just added, there must be some other overhead that explains the performance.
11:51:44
kpoeck
Unsurprisingly yesterdays setf-gethash change does not work for weak-hash-tables as I predicted this morning
12:16:43
kpoeck
Condition of type: NO-APPLICABLE-METHOD-ERROR No applicable method for INLINE with arguments (NIL)
12:43:07
kpoeck
I believe it is as easy as CL_DEFUN T_sp core__hash_table_setf_gethash(HashTableBase_sp hash_table, T_sp key, T_sp value) { ...
12:43:20
drmeister
Then we have an issue in clasp 'dev' branch that appears to break quicklisp. I'm trying to figure that out.
12:43:50
kpoeck
For the quicklisp problem I created https://github.com/clasp-developers/clasp/issues/741
12:51:53
kpoeck
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/cleavir/inline.lisp#L905
12:52:48
kpoeck
cleavir-env:function-info returns nil in this case, so cleavir-env:inline in called with nil and errors
12:54:56
kpoeck
and compiling quicklisp/dist.lisp it returns nil for (CLEAVIR-ENVIRONMENT:FUNCTION-INFO #<CLASP-CLEAVIR:CLASP-GLOBAL-ENVIRONMENT> (SETF DIST))
13:00:20
Bike
could be (let ((cmf ...)) (when cmf (let ((func-info ...)) (when func-info ...)))) but that[s kind of lengthy
13:00:37
Bike
i guess you could check func-info first, since it's not like there's going to be a compiler macro but no func info
13:10:54
drmeister
kpoeck, selwyn - we are going to incorporate Jenkins on this end - it's going to be able to test PR's before we incorporate them. That should speed up accepting PR's
13:13:36
kpoeck
Could you also check https://github.com/clasp-developers/clasp/pull/742 for the hashtable change?
13:13:55
Bike
a test? no. but everything was broken, so just being able to use class slots should do it
13:16:18
kpoeck
If you setup Jenkins, perhaps you could include running the regression tests and loading quickload + some libraries
13:23:26
drmeister
Well - if they pass the regression tests - you could say that in the PR and that would have the same effect.
13:32:46
drmeister
Not quite yet - but in a few hours I have to head down to Washington for two days - I'm accepting a prize for a research proposal we came up.
13:35:05
drmeister
We submitted a phase II proposal last Tuesday for $1M/2years of funding to develop Cando.
14:31:36
drmeister
karlosz: If I wanted to pull a specific commit from your PR - I would use what? Here's what I'm using and building with...
14:33:05
drmeister
I'm trying to here: https://github.com/robert-strandh/SICL/pull/131/commits/cf3b1e6e6109c2303713df3855fcec78b3d46892