freenode/lisp - IRC Chatlog
Search
5:57:36
beach
As part of the CST (Concrete Syntax Tree) library, the Earley-based lambda-list parsers now seem to work, but in order to simplify my job, I made them work on ordinary Common Lisp S-expressions and not on CSTs.
5:57:37
beach
The next step is to change that so that they work on CSTs instead. And I just figured that the classes that represent the different parts of the lambda list, such as the lambda-list keywords and the parameters, should just be subclasses of CST, as opposed to containing CSTs.
10:40:21
Grue``
does anyone know how to avoid warnings like "could not optimize away %SAP-ALIEN: forced to do runtime allocation of alien-value structure" in SBCL?
10:44:51
loke___
I looked at it, and it's not entirely clear what happens. I think what happens is that there is effectively a malloc call to allocate the memory for the string
10:45:30
loke___
I think, maybe you can work around it by declaring the pathname variable as DYNAMIC-EXTENT, but that's just speculation.
10:46:47
Grue``
well, clhs says that (defun g (x) (declare (dynamic-extent x)) ...) is essentially useless
11:25:55
flip214
for the lisp-to-fpga people around here: http://zipcpu.com/blog/2017/06/12/minimizing-luts.html
11:26:12
flip214
would be interesting to know what kind of optimizations the translator already does
11:28:53
Cymew
Anyone know how planet lisp works? There seems to be very much about postgresql lately.
11:38:16
jackdaniel
I don't know exact details, but yes, it can subscribe to some specific tags on the blog
11:40:49
flip214
Bike: there was "VeriLisp: turns Common Lisp into a frontend to Verilog." but it seems dead now.
11:43:29
_user
seems nobody is on the clnoobs channel, so I I ask here, any good reccomendations on how to properly learn lisp, I've started with the practical common lisp book, but it has gone too deep too fast
11:43:50
minion
gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
11:44:50
Bike
flip214: if you're targeting verilog your optimization options are limited to expanding your high level constructs into verilog constructs appropriate for whatever combination of synthesizer you're using, i would think
11:45:36
_user
Bike: thanks for the reccomendation, I'd already come across that book, but I had dismissed it due to its age
11:46:01
Bike
as far as i remember there's some stuff that's not the best style now, but it should all basically work
11:56:48
flip214
Bike: yes, of course. I don't know about any other way to have Lisp as high-level language for FPGAs, though.
12:03:06
Bike
the only high level hw design things i'm aware of also output verilog. there's lots of vendor secrecy
12:07:04
Bike
it's pretty annoying since, as you can see in that post, a lot of the lower optimization seems to be reconstructing high level blocks from the sequential logic that nobody actually wants to write anyway
13:05:29
attila_lendvai
slick FPGA's, with competition among hw manufacturers, and good highlevel compilers would be a big liberation to computing
13:10:39
TeMPOraL
sure you won't fab a new 3GHz CPU, but maybe fabbing something that used to be commercially valuable in the 90s?
13:13:46
Bike
a MOS successor opened their micrometer fab in the nineties, but they got shut down by the EPA on account of being an environmental disaster
13:14:08
Bike
maybe there are similar companies except for the last part. but then, fpgas are usually for super high performance crap anyway
15:14:41
Grue``
paule32: src3 is a list, src2 is a string, you need to join src3 back to string to be able to compare them
15:22:45
Reinisch
hi paule32, that error message seems like it's saying, "you gave me the list ("something") instead of a string "something""
15:24:18
Reinisch
you could use (car '("mouse")) or (first '("mouse")) to get "mouse" from '("mouse")
16:58:52
Shinmera
In an ASDF system definition, how would I make a file in a module depend on a file outside of the module? as in, :coponents ((:module "foo" :components ((:file "bar" :depends-on ("baz")))) (:file "baz"))
17:00:42
jackdaniel
you have to make a separate module for file baz (you can provide pathname for module I think)
17:01:09
jackdaniel
(:module "bam" :pathname "bu" :components ((:file "baz"))) and then depend on "bam"
17:02:19
Shinmera
That doesn't work either. From the source code it seems like find-component only ever searches within the current parent of a component and not any higher up.
17:08:14
jackdaniel
for non-sibling dependencies you'd have to provide method for asdf:find-component indeed
17:09:43
jackdaniel
ah, if you don't want to, then you are out of luck, because imagine situation, where you have non-sibling dependency on "baz", but you have file "baz" at two different nodes (modules)
17:13:12
Shinmera
Here we go: (defmethod asdf/find-component:resolve-dependency-combination (component (combinator (eql :parent)) args) (asdf/find-component:resolve-dependency-spec (asdf:component-parent component) args))
17:24:43
paule32
Reinisch: thank you, now i am motivated to implement new free lisp derivate based on clisp
17:42:12
gigamonkey
I feel like this was discussed on comp.lang.lisp a long time ago but Google isn't helping me find it but is there some history about why CL:AND and CL:OR don't pass through multiple values?
17:49:20
aeth
"and passes back multiple values from the last subform but not from subforms other than the last."