freenode/#clasp - IRC Chatlog
Search
15:57:00
jackdaniel
kpoeck_: thank you, I've reported it: https://gitlab.com/embeddable-common-lisp/ecl/issues/464
17:23:55
kpoeck_
drmeister: the pr for the gensym cases is in https://github.com/clasp-developers/clasp/pull/665
18:21:16
drmeister
This new macMini required 40 min to build cando (that's more C++ but the same amount of Common Lisp as clasp).
18:49:45
Bike
drmeister: is the "reader" function mentioned in the load machine code something that exists already or no
18:52:59
drmeister
No, the reader function doesn't exist yet - it should be straightforward to implement it though.
18:53:42
drmeister
The trickiest part of the load machine (let's stick with that name - the "load machine").
18:54:39
drmeister
The trickiest part is reading a value that corresponds to a pointer. I figure it will be a tagged value with an integer index into the literal vector or the temporary/working vector.
18:55:23
drmeister
the "reader" function will read a word and split it into a tag and an integer index. Depending on the tag it will look up the index in a vector and return the address of that entry.
18:57:37
rjid
Hi all... I'm sorry for the general question and for the lazyness since I've not looked at the code, anyway I would like to ask you just for the sake of curiosity how is semantic analysis implemented in bclasp / clasp. Thank you in advance
18:57:37
drmeister
I envisioned two vectors, one for the literals and another 'working' vector that can be discarded once all of the top-level forms have been evaluated. You had ideas about building a stack machine. I didn't understand how but I would welcome a stack machine.
18:58:11
drmeister
The function pointers we can put into an array of function pointers and then use another tag and index to look them up.
18:59:00
drmeister
Doubles we can put in a vector of doubles. We can have as many kinds of data we want - each has a tag and an index.
19:00:02
drmeister
rjid: Clasp has one interpreter and two compilers. Semantic analysis is handled by three different blocks of code.
19:00:31
drmeister
rjid: You can look in evaluator.cc for the interpreter, codegen-special-operators.lsp for aclasp/bclasp and cleavir is spread over many files.
19:05:05
rjid
Really I've implemented a basic LR(1) parser and I have not prolem with S-attributed grammars but I'm still trying to figure how to use L-attributed grammars. For sure I need more than one pass
19:09:45
rjid
I would like to know if and how yacc uses inherited attributes... for now. Just because it uses LR(1) and LALR(1) if I remember well
2:18:55
drmeister
That is a small part of a "free energy perturbation" calculation. It's a graph of connected molecular simulations.