freenode/#lisp - IRC Chatlog
Search
11:37:27
lukego
pfdietz: I'm not sure what the context of your comment is exactly, but I think a really interesting point in the design space is dependency sets that update automatically but are also tracked in version control. That way when something somewhere breaks you can 'git bisect' to find the problem. I can sometimes do this with nixpkgs dependencies, https://github.com/lukego/blog/issues/17
11:38:50
pfdietz
It was referring to an earlier discussion here of Ultralisp. Your comment is interesting and useful, thank you.
12:54:50
easye
lukego: Having a bisect command available to use is always very handy. hg bisect works well for me!
12:58:19
lukego
I'm just thinking about how to take that to the next level now. Current crazy idea is a Lisp-based DSL for writing network dataplane applications that transpiles them into various targets e.g. CPU/GPU/FPGA. So have to learn a bit about CUDA and HDL now... which is a fun problem to have :)
12:59:18
easye
Know of any good hosted CUDA solutions? I don't need my aging equipment's fans wheezing around me.
13:00:10
easye
ACTION been meaning to get to GPU/FPGA now that I have a reasonable CFFI working in abcl-1.6.0
13:00:48
lukego
EC2 seems to be a one stop shop for CPU + GPU + FPGA now. GCE does GPU at least too. Just recently realized that Amazon F1 FPGA instances provide ~1Tbps of CPU<->FPGA I/O bandwidth (8 x PCIe3 x8) and so it should be fine for doing really high-end development. $13/hour but I think you'd only run the big iron about 1% of the time during dev anyway.
13:01:51
lukego
I have a bunch of servers full of e.g. 100Gbps network cards at home but I think I'll move my testing over to EC2 with FPGAs pretending to be NICs under heavy load. Safe the noisy boxes at home and their care and feeding.
13:03:19
lukego
I moved from Switzerland to Sweden recently and was tempted to leave the boxes behind, but they ended up being pretty easy in a moving van.
13:03:59
lukego
pfdietz: yeah. I had all the servers in a cool cellar before, but at my new digs I don't know if I'll be able to keep them happy in summer.
13:04:31
puchacz
hi, is it possible to log all sbcl output to a file (but keep printing it as usual)?
13:55:08
drmeister
If I knew what Instagram was I’d Instagram these. https://usercontent.irccloud-cdn.com/file/ht9VDfBH/1574603679.JPG
14:23:01
sugarwren
mit-scheme appears to support threads (it has at least the procedures current-thread, thread? and create-thread) but I can't find any further information in its docs
14:23:41
drmeister
I've been working on figuring out how to make sourdough bread - that's my fifth loaf and the first one that looks good.
14:24:27
drmeister
This time I tried scalding 1/3rd of the flour and my starter "Wheatley" was especially precocious this week.
14:25:14
drmeister
That's just a bit of backstory - I had meant to post that to #clasp where we talk about developing of the Clasp implementation of Common Lisp and baking.
14:27:26
drmeister
Has anyone generated Microsoft Excel spreadsheets by some other approach than CSV files using Common Lisp?
14:37:01
drmeister
Yeah - I've been searching the interwebs - it doesn't look good. I'm looking into the XML formats now.
14:44:21
flip214
--accept=accept-string Specifies a UNO-URL connect-string to create a UNO acceptor through which other programs can connect to access the API.
15:26:43
knegg
im reading a book on neural networks and LISP came up and im reading about homoiconicity. i have some basic programming knowledge and am trying to figure out what the specialty of that homoiconicity is.
15:34:13
beach
knegg: There are no "commands" in Common Lisp. EVAL is a function that that takes data that represents code and executes that data as if it were a program.
15:35:58
knegg
hmm.. data that represents code. if something is code then its code unless i would mark it as text in vba (sorry - i said basic :])
15:37:08
puchacz
knegg, you may want to see the presentation "clojure for java programmers", where the clojure author explains what "code is data" means in lisp world
15:37:29
beach
knegg: In Common Lisp, the READ function turns a sequence of characters into a data structure. Whether that data structure represents code or not depends on what other program is processing it.
15:38:14
beach
knegg: For example, if it is further processed by the compiler, then the compiler assumes that the data structure represents code.
15:47:51
beach
knegg: Most languages do not expose the representation of code, other than as a sequence of characters.
15:48:29
beach
knegg: Common Lisp has a defined way of turning that sequence of characters into code represented as nested linked lists, symbols, numbers, etc.
15:49:15
beach
knegg: Then, everything else in the language is defined in terms of those nested lists.
15:50:06
knegg
the big point must be that the following java code (in that video) for that simple example is about 3 pages long.
15:52:38
knegg
i think i need to get what that code is doing. he defines a function that sets variable b (which obviously is not a variable because it is lisp/clojure)to 15. then by that function (eval a) he returns that "variable" and for the program this is both the variable and the value 15 ? am i getting it right so far?
15:54:32
beach
knegg: I didn't watch the video. But let's do the analogous thing in Common Lisp, to be on topic. If I type (defparameter a '(defparameter b 15)) for instance...
15:54:46
Bike
that sets the value of the variable A to be a list of three elements SETF, B, 15. then (eval a) means the value of A, that is, that list, is passed to the eval function, which treats the list as code and performs what it says to do, namely (setf b 15), which sets the value of the variable B to be 15
15:57:13
Bike
also, in his notation here, the return values are indicated in the comments. (eval a) will return 15, not the symbol B
16:03:17
Bike
well, we might more specifically say A is a symbol that names a variable, but we often conflate the name with the variable
16:06:17
jackdaniel
setf is an operator which sets places (place is more general than a variable behind a symbol
16:10:15
beach
knegg: You can see it as if in C you had a function eval that let you do eval("b = 15"); the result of which would assign 15 to the variable b.
16:10:31
knegg
so 1st line defines what happens when a is called/executed. then 2nd line does that and the variable b is set to value 15. then 2nd line is just "a" which i take the program to run the thing and assign the value 15 to variable b.
16:11:20
Bike
your framing in terms of "called/executed" is wrong. a variable binding is just a mapping from variables to values.
16:12:08
Bike
the first line sets a value of a. the second line just returns the value of a without doing anything.
16:12:47
Bike
between lines two and three, B has no defined value, unless it was defined earlier i guess.
16:16:09
knegg
the ;; and => is indicating what? what i would see when i do somehting line "print a" "print b"?
16:20:23
knegg
ok, 2nd line gives me the value of a which is the list i assigned it and 3d line (eval a)gives me not the list like when i let the value of a return but it gives me the 2nd element of the list.
16:22:00
Bike
that's because eval would evaluate the list SETF, B, 15, and the assignment returns the value (15)
16:24:40
knegg
(oh.. why does it put 15 in comment text then?)so (eval a)does nothing by itself but b in the next line will return the value for b which is 15? like i would define setf b 15 c 28 and then go (eval a)c it would return 28?
16:27:34
knegg
you are doing your best mate! but i think i need to actually do a basic lisp tutorial to understand it.
16:36:17
akoana
knegg: I'm too learning Common Lisp, entering the example code into a REPL session is quite instructive... play with the real thing :)
16:40:42
knegg
whats repl? im watching a tutorial on the syntax now. maybe that helps for that simple example already
16:42:26
akoana
knegg: when you start a common lisp you it will wait until you enter something and read it
16:45:56
knegg
im glad it does. on the recent vba version the alt+ctrl+break doesnt help anymore. had a hard time exiting my latest endless loop :D
16:50:42
akoana
knegg: portacle (https://portacle.github.io/) has everything you need, it runs on Windows, OS X, and Linux.
16:53:32
knegg
ok cool. ill try to understand that concept with minimal effort to be frank because i wanna continue with that book to continue with another book... looking into machine learning took me several days already. its super interesting and i understood the basic stuff but i did not programm any neural networks there either :D
16:59:22
knegg
"to be fairly easy to use so that even intermediate Common Lisp programmers" thx man. but.. im a total noob :D
17:07:27
knegg
lol... the video tutorial on lisp ends at min 6:31 with nothing like eval. only having shown "strings", 'symbols t, nil and how calculations are done :D
17:08:39
akoana
knegg: hey, using _death's suggestion (cl-mep) you'll have fun and will advance by exploring the examples
17:09:16
akoana
knegg: I'd also recommend Little Bits of Lisp https://www.youtube.com/watch?v=m0TsdytmGhc
20:49:48
puchacz
phoe: most ML is done by wrapping C++ or C libraries in Python, basically - how does it compare, do you know?
20:50:24
puchacz
with Matlab being astonishingly slow, and Python C/C++ fast, do you know where does cl-mlep sit?
21:13:27
puchacz
jfb4: I am on a course in a bank, there was just one class as of now, with neural network recognising handwriting digits, honestly I did not check the full curriculum.
21:13:53
puchacz
but I would like to know if a library can "scale" to be used out of the course as well
21:44:55
no-defun-allowed
puchacz: Depends on your compiler, but you should expect fairly close to C.
22:36:29
_death
I thought cl-online-learning would be cool for actual use, though I've not yet had the chance